diff options
author | Doc Manager <doceng@FreeBSD.org> | 2000-06-19 13:43:43 +0000 |
---|---|---|
committer | Doc Manager <doceng@FreeBSD.org> | 2000-06-19 13:43:43 +0000 |
commit | 8e4cc57db2eae0274cee3998c1c5e96667ac2bfa (patch) | |
tree | a198525ddb5145adc535c2b55cee24e2b9f5e364 | |
parent | 3753f0b6406980ca6e9d4c357b96169fc5a69095 (diff) |
Notes
252 files changed, 0 insertions, 196813 deletions
diff --git a/de_DE.ISO8859-1/books/handbook/Makefile b/de_DE.ISO8859-1/books/handbook/Makefile deleted file mode 100644 index f145787f6c..0000000000 --- a/de_DE.ISO8859-1/books/handbook/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -# -# $FreeBSD$ -# -# Build the FreeBSD Handbook in its German translation. -# - -MAINTAINER=alex@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+= backups/chapter.sgml - -# Entities -SRCS+= authors.ent -SRCS+= chapters.ent -SRCS+= newsgroups.ent - -DOC_PREFIX?= ${.CURDIR}/../../.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/de_DE.ISO8859-1/books/handbook/backups/chapter.sgml b/de_DE.ISO8859-1/books/handbook/backups/chapter.sgml deleted file mode 100644 index aa2c62baa6..0000000000 --- a/de_DE.ISO8859-1/books/handbook/backups/chapter.sgml +++ /dev/null @@ -1,848 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD German Documentation Project - - Original version 1.23 - $FreeBSD$ ---> - -<chapter id="backups"> - <title>Datensicherung</title> - - <para><emphasis>Übersetzt von &a.de.bwarken, - Januar 1999</emphasis></para> - - <para>Das folgende Kapitel beschäftigt sich mit der Datensicherung und - den dazu verwendeten Programmen. Wenn Sie etwas zu diesem Kapitel - beisteuern möchten, senden Sie es bitte an die (englischsprachige) - &a.doc;</para> - - <sect1 id="backups-tapebackups"> - <title>Bandmedien</title> - - <para>Die wichtigsten Bandmedien sind 4mm, 8mm, QIC, - Mini-Cartridge und DLT.</para> - - <sect2 id="backups-tapebackups-4mm"> - <title>4mm (DDS: Digital Data Storage)</title> - - <para>Die 4mm-Bänder ersetzen mehr und mehr das QIC-Format als - Backupmedium der Wahl für Workstations. Dieser Trend nahm stark - zu, als Conner die Firma Archive, einen führenden Hersteller von - QIC-Laufwerken, aufkaufte und die Produktion von QIC-Laufwerken - stoppte. 4mm-Laufwerke sind klein und ruhig, haben aber nicht den - gleichen Ruf der Zuverlässigkeit, den die 8mm-Laufwerke - genießen. Die 4mm-Kassetten sind preiswerter und mit den - Maßen 76,2 x 50,8 x 12,7 mm (3 x 2 x 0,5 Inch) kleiner als die - 8mm-Kassetten. Sowohl die 4mm- als auch die 8mm-Magnetköpfe - haben eine relativ kurze Lebensdauer, weil beide die gleiche - Helical-Scan-Technologie benutzen.</para> - - <para>Der Datendurchsatz dieser Laufwerke beginnt bei etwa 150 - kByte/s, Spitzenwerte liegen bei etwa 500 kByte/s. Die - Datenkapazität liegt zwischen 1,3 GB und 2 GB. Die meisten - Geräte haben eine Hardwarekompression eingebaut, die die - Kapazität ungefähr verdoppelt. Es gibt - Multi-Drive-Einheiten für Bandbibliotheken mit bis zu 6 - Laufwerken in einem Gehäuse und automatischem Bandwechsel. Die - Kapazität einer solchen Bibliothek liegt bei 240 GB.</para> - - <para>Der Standard DDS-3 unterstützt nun Bandkapazitäten bis - zu 12 GB (oder komprimiert 24 GB).</para> - - <para>4mm-Laufwerke, ebenso wie 8mm-Laufwerke, verwenden Helical-Scan. - Alle Vor- und Nachteile von Helical-Scan gelten sowohl für 4mm- - als auch für 8mm-Laufwerke.</para> - - <para>Bänder sollten nach 2.000 Banddurchläufen oder 100 - vollen Backups ersetzt werden.</para> - </sect2> - - <sect2 id="backups-tapebackups-8mm"> - <title>8mm (Exabyte)</title> - - <para>8mm-Bänder sind die verbreitetsten SCSI-Bandlaufwerke; sie - sind das geeignetste Bandformat zum Austausch von Bändern. Fast - an jedem Standort gibt es ein 8mm-Bandlaufwerk mit 2 GB. - 8mm-Bänder sind zuverlässig, gut zu handhaben und arbeiten - leise. Bandkassetten sind preiswert und klein mit 122 x 84 x 15 mm - (4,8 x 3,3 x 0,6 Inch). ein Nachteil der 8mm-Technologie ist die - relativ kurze Lebensdauer des Schreib-/Lesekopfs und der Bänder - auf Grund der hohen Relativgeschwindigkeit des Bandes über die - Köpfe hinweg.</para> - - <para>Der Datendurchsatz liegt ungefähr zwischen 250 kByte/s und - 500 kByte/s. Die Datenkapazität beginnt bei 300 MB und erreicht - bis zu 7 GB bei den Spitzengeräten. Die meisten Geräte - haben eine Hardwarekompression eingebaut, die die Kapazität - ungefähr verdoppelt. Diese Laufwerke sind erhältlich in - Form von Einzelgeräten oder als Multi-Drive-Bandbibliotheken mit - 6 Laufwerken und 120 Bändern in einem Gehäuse. Die - Bänder werden von der Geräteeinheit automatisch gewechselt. - Die Kapazität einer solchen Bibliothek liegt bei 840 GB und - mehr.</para> - - <para>Das Exabyte-Modell <quote>Mammoth</quote> unterstützt 12 GB - auf einem Band (24 MB mit Kompression) und kostet etwa doppelt so viel - wie ein konventionelles Bandlaufwerk.</para> - - <para>Die Daten werden mittels Helical-Scan auf das Band - aufgezeichnet, die Köpfe sind leicht schräg zum Medium - angebracht (mit einem Winkel von etwa 6 Grad). Das Band wickelt sich - 270 Grad um die Spule, die die Köpfe trägt. Die Spule dreht - sich, während das Band darüberläuft. Das Resultat ist - eine hohe Datendichte und eng gepackte Spuren, die von einem Rand des - Bands zum gegenüberliegenden quer über das Band abgewinkelt - verlaufen.</para> - </sect2> - - <sect2 id="backups-tapebackups-qic"> - <title>QIC</title> - - <para>QIC-150-Bänder und -Laufwerke sind wohl der am weitesten - verbreitete Bandtyp überhaupt. QIC-Bandlaufwerke sind die - preiswertesten "seriösen" Backupgeräte, die angeboten - werden. Der Nachteil dabei ist der hohe Preis der Bänder. - QIC-Bänder sind im Vergleich zu 8mm- oder 4mm-Bändern bis zu - 5 Mal teurer, wenn man den Preis auf 1 GB Datenkapazität - umrechnet. Aber wenn Ihr Bedarf mit einem halben Dutzend Bänder - abgedeckt werden kann, mag QIC die richtige Wahl sein.</para> - - <para>QIC ist der <emphasis>gängigste</emphasis> - Bandlaufwerkstyp. Jeder Standort hat ein QIC-Laufwerk der einen oder - anderen Dichte. Aber gerade das ist der Haken an der Sache, QIC - bietet eine große Anzahl verschiedener Datendichten auf - physikalisch ähnlichen (manchmal identischen) Bändern. - QIC-Laufwerke sind nicht leise. Diese Laufwerke suchen lautstark die - richtige Bandstelle, bevor sie mit der Datenaufzeichnung beginnen. - Sie sind während des Lesens, Schreibens und Suchens deutlich - hörbar.</para> - - <para>Die Abmessungen der QIC-Kassetten betragen 152.4 x 101.6 x 17.78 - mm (6 x 4 x 0,7 Inch), die QIC-Bandbreite beträgt 6,35 mm (1/4 - Inch). <link - linkend="backups-tapebackups-mini">Mini-Cartridges</link>, die die - gleiche Bandbreite verwenden, werden gesondert vorgestellt. - Bandbibliotheken und Bandwechselgeräte gibt es im QIC-Format - keine.</para> - - <para>Der Datendurchsatz liegt ungefähr zwischen 150 kByte/s und - 500 kByte/s. Die Datenkapzität reicht von 40 MB bis zu 15 GB. - Hardwarekompression ist in vielen der neueren QIC-Laufwerke eingebaut. - QIC-Laufwerke werden heute seltener eingesetzt; sie werden von den - DAT-Laufwerken abgelöst.</para> - - <para>Die Daten werden auf dem Band in Spuren aufgezeichnet. Die - Spuren verlaufen entlang der Längsachse des Bandmediums von einem - Ende zum anderen. Die Anzahl der Spuren, und damit auch die Breite - einer Spur, variiert mit der Kapazität des Laufwerks. Die - meisten, wenn nicht alle neueren Laufwerke sind - rückwärtskompatibel, zumindest zum Lesen (aber oft auch zum - Schreiben). QIC hat einen guten Ruf bezüglich der - Datensicherheit (die Mechanik ist einfacher und robuster als diejenige - der Helical-Scan-Laufwerken).</para> - - <para>Bänder sollten nach 5,000 Backups ersetzt werden.</para> - </sect2> - -<![ %not.published; [ - - <sect2 id="backups-tapebackups-mini"> - <title>* Mini-Cartridge</title> - - <para></para> - </sect2> - -]]> - - <sect2 id="backups-tapebackups-dlt"> - <title>DLT</title> - - <para>DLT hat die schnellste Datentransferrate von allen hier - aufgelisteten Gerätetypen. Das 1/2-Inch-Band (12,7 mm) befindet - sich in einer Spulkassette mit den Abmessungen 101,6 x 101,6 x 25,4 mm - (4 x 4 x 1 Inch). Die eine Seite der Kassette hat eine bewegliche - Abdeckung. Der Laufwerksmechanismus öffnet diese Abdeckung und - zieht die Bandführung heraus. Die Bandführung trägt - ein ovales Loch, die das Laufwerk zum "Einhängen" des Bandes - benutzt. Die Aufwickelspule befindet sich im Innern des - Bandlaufwerks. Bei allen anderen hier besprochenen Bandkassetten - (9-Spur-Bänder sind die einzige Ausnahme) befinden sich sowohl - die Auf- als auch die Abwickelspule im Inneren der - Bandkassette.</para> - - <para>Der Datendurchsatz liegt bei etwa 1,5 MBytes/s, der dreifache - Durchsatz der 4mm-, 8mm- oder QIC-Bandlaufwerke. Die - Datenkapazität reicht von 10 GB bis 20 GB für - Einfachlaufwerke. Auch Mehrfachbandgeräte sind erhältlich, - sowohl als Bandwechsler wie auch als Multi-Drive-Bandbibliotheken, die - Platz für 5 bis 900 Bänder verteilt auf 1 bis 20 Laufwerke - enthalten, mit einer Speicherkapazität von 50 GB bis 9 TB.</para> - - <para>Mit Kompression unterstützt das Format DLT Type IV bis zu - 70 GB Kapazität.</para> - - <para>Die Daten werden auf dem Band in Spuren aufgezeichnet, die - parallel zur Bewegungsrichtung verlaufen (gerade so wie bei den - QIC-Bändern). Zwei Spuren werden dabei gleichzeitig beschrieben. - Die Lebenszeit der Lese- und Schreibköpfe sind relativ lang; denn - sobald das Band anhält, gibt es keine Relativbewegung mehr - zwischen den Köpfen und dem Band.</para> - </sect2> - - <sect2> - <title id="backups-tapebackups-ait">AIT</title> - - <para>AIT ist ein neues Format von Sony, das (mit Kompression) bis zu - 50 GB pro Band speichern kann. Die Bänder haben einen - Speicherchip, der einen Index mit dem Inhalt des Bandes anlegt. - Dieser Index kann vom Bandlaufwerk zur schnellen Bestimmung der Lage - von Dateien auf dem Band benutzt werden, während andere - Bänder einige Minuten zur Lokalisierung benötigen.</para> - - <para>Entsprechende Software wie etwa SAMS:Alexandria - können 40 oder mehr AIT-Bandbibliotheken verarbeiten, indem sie - direkt mit dem Speicherchip des Bandes kommunizieren, wenn der - Bandinhalt am Bildschirm dargestellt werden soll oder bestimmt werden - soll, welche Dateien auf welchem Band gespeichert sind, oder um das - richtige Band zu lockalisieren, zu laden und Daten vom Band - zurückzuspielen. Bibliotheken dieser Art liegen in der - Preiskategorie von $20,000, womit sie etwas aus dem Hobbymarkt - herausfallen.</para> - </sect2> - - <sect2> - <title>Die erste Benutzung eines neuen Bands</title> - - <para>Der Versuch ein neues, vollkommen leeres Band ohne weiteres zu - lesen oder zu beschreiben wird schiefgehen. Auf der Konsole werden - dann Meldungen ähnlich wie folgt ausgegeben:</para> - - <screen>sa0(ncr1:4:0): NOT READY asc:4,1 -0(ncr1:4:0): Logical unit is in process of becoming ready</screen> - - <para>Das Band enthält nämlich keinen Identifier-Block - (Blocknummer 0). Alle QIC-Bandlaufwerke seit der Einführung des - QIC-525-Standards schreiben einen Identifier-Block auf das Band. Es - gibt zwei Lösungen:</para> - - <para><command>mt fsf 1</command> veranlasst das Bandlaufwerk einen - Identifier-Block auf das Band zu schreiben.</para> - - <para>Das Band durch Drücken des Bandauswurfknopfs an der - Vorderseite des Bandgeräts auswerfen.</para> - - <para>Danach das Band wieder einlegen und Daten auf das Band - übertragen wie in &man.dump.8; beschrieben.</para> - - <para>Das Kommando &man.dump.8; gibt die Meldung <literal>DUMP: End of - tape detected</literal> zurück und die Konsole zeigt: - <literal>HARDWARE FAILURE info:280 asc:80,96</literal></para> - - <para>Das Band zurückspulen mit dem Kommando: <command>mt - rewind</command></para> - - <para>Nachfolgende Bandoperationen werden dann erfolgreich - ausgeführt.</para> - </sect2> - </sect1> - - <sect1 id="backup-programs"> - <title>Backup-Programme</title> - - <para>Die drei wichtigsten Programme sind - &man.dump.8;, - &man.tar.1;, - and - &man.cpio.1;.</para> - - <sect2> - <title>Aufspielen und Wiederherstellen</title> - - <para>&man.dump.8; und &man.restore.8; sind die traditionellen - Backupprogramme in UNIX. Sie betrachten das Laufwerk als eine - Ansammlung von Blöcken, operieren also unterhalb dem - Abstraktionslevel von Dateien, Links und Verzeichnissen, die die - Grundlage des Dateisystemkonzepts bilden.</para> - - <para>&man.dump.8; führt Datensicherungen von Geräten aus, - bearbeitet also nur komplette Dateisysteme, nicht jedoch Teile eines - Dateisystems und auch keine Verzeichnisbäume, die mehr als ein - Dateisystem überspannen, was durch Verwendung von symbolischen - Links mittels &man.ln.1; oder durch das Einhängen von - Dateisystemen vorkommen kann. &man.dump.8; schreibt also keine - Dateien und Verzeichnisse auf das Band, sondern direkt die - Datenblöcke, die die Dateien und Verzeichnisse enthalten.</para> - - <para>&man.dump.8; hat einige Eigenarten, die noch aus den frühen - Tagen der Version 6 von ATT UNIX (ca. 1975) stammen. Die Parameter - sind für 9-Spur-Bänder (6250 bpi) voreingestellt, nicht auf - die heute üblichen Medien hoher Dichte (bis zu 62.182 ftpi). Bei - der Verwendung der Kapazitäten moderner Bandlaufwerke muss diese - Voreinstellung auf der Kommandozeile überschrieben werden.</para> - - <para>&man.rdump.8; und &man.rrestore.8; können Daten über - Netzwerk auf ein Band, das sich in einem Laufwerk eines anderen - Computers befindet, überspielen. Beide Programme benutzen die - Befehle &man.rcmd.3; und &man.ruserok.3; zum Zugriff auf das entfernte - Bandlaufwerk. Daher muss der Anwender, der das Backup - durchführt, auf dem entfernten Computer eine Zugangsberechtigung - für <literal>rhosts</literal> haben.</para> - - <para>Die Argumente zu &man.rdump.8; und &man.rrestore.8; müssen - zur Verwendung auf dem entfernten Computer geeignet sein. - (Z.B. lautet das Kommando zum Aufrufen von <command>rdump</command> - von einem FreeBSD-Computer aus auf ein Exabyte-Bandlaufwerk auf einer - Sun namens <hostid>komodo</hostid>: <command>/sbin/rdump 0dsbfu 54000 - 13000 126 komodo:/dev/nrsa8 /dev/rda0a 2>&1</command>). Man - beachte, dass bei der Ausführung die Sicherheitsvorkehrungen wie - beim Aufruf des Kommandos <literal>rhosts</literal> gelten. - Erkundigen Sie sich nach Ihrer Zugangsberechtigung.</para> - </sect2> - - <sect2> - <title>Tar</title> - - <para>&man.tar.1; stammt ebenfalls aus Version 6 von ATT Unix - (ca. 1975). &man.tar.1; arbeitet mit dem Dateisystem, denn es - schreibt Dateien und Verzeichnisse auf das Band. &man.tar.1; - unterstützt zwar nicht den vollen Umfang von Optionen, die bei - &man.cpio.1; zur Verfügung stehen, aber dafür erfordert - &man.tar.1; nicht die ungewöhnliche Kommando-Pipeline,1 die - &man.cpio.1; verwendet.</para> - - <para>Die meisten Versionen von &man.tar.1; unterstützen keine - Backups über das Netzwerk. Die GNU-Version von &man.tar.1;, die - in FreeBSD verwendet wird, unterstüzt jedoch entfernte - Geräte mit der gleichen Syntax wie &man.rdump.8;. Um &man.tar.1; - für ein Exabyte-Bandlaufwerk auf einer Sun - namens<hostid>komodo</hostid> auszuführen, muss folgendes - Kommando aufgerufen werden: <command>/usr/bin/tar cf komodo:/dev/nrsa8 - . 2>&1</command>. Bei den Versionen ohne Unterstützung - für entfernte Geräte kann man die Daten über eine - Pipeline und &man.rsh.1; an ein entferntes Laufwerk senden.</para> - - <screen>&prompt.root; <userinput>tar cf - . | rsh <replaceable>hostname</replaceable> dd of=<replaceable>tape-device</replaceable> obs=20b</userinput></screen> - - <para>Wenn Sie Bedenken bezüglich der Sicherheit beim Backup - über's Netz haben, sollten Sie &man.ssh.1; anstatt - &man.rsh.1; benutzen.</para> - </sect2> - - <sect2> - <title>Cpio</title> - - <para>&man.cpio.1; ist das ursprüngliche Unix-Programm zum - Dateitransfer mit magnetischen Medien. &man.cpio.1; hat (neben vielen - anderen Leistungsmerkmalen) Optionen zum Byte-Swapping, zum Schreiben - einer Anzahl verschiedener Archivformate und zum Weiterleiten von - Daten an andere Programme über Pipeline. Dieses letztes - Leistungsmerkmal macht &man.cpio.1; zu einer ausgezeichneten Wahl - für Installationsmedien. Leider kann &man.cpio.1; keine - Dateibäume durchlaufen, so dass eine Liste der zu bearbeitenden - Dateien über <filename>stdin</filename> angegeben werden - muss.</para> - - <para>&man.cpio.1; unterstützt keine Backups über das - Netzwerk. Man kann aber eine Pipeline und &man.rsh.1 verwenden, um - Daten an ein entferntes Bandlaufwerk zu senden. (XXX ein - Beispiel-Kommando beifügen)</para> - </sect2> - - <sect2> - <title>Pax</title> - - <para>&man.pax.1; ist die Antort von IEEE/POSIX auf &man.tar.1; und - &man.cpio.1;. Über die Jahre hinweg sind die verschiedenen - Versionen von &man.tar.1; und &man.cpio.1; leicht inkompatibel - geworden. Daher hat POSIX, statt eine Standardisierung zwischen - diesen auszufechten, ein neues Archivprogramm geschaffen. &man.pax.1; - versucht viele der unterschiedlichen cpio- und tar-Formate zu lesen - und zu schreiben, außerdem einige neue, eigene Formate. Die - Kommandostruktur ähnelt eher &man.cpio.1; als &man.tar.1;.</para> - </sect2> - - <sect2 id="backups-programs-amanda"> - <title>Amanda</title> - - <para><ulink url="../ports/misc.html#amanda-2.4.0">Amanda</ulink> - (Advanced Maryland Network Disk Archiver) ist ein - Client/Server-Backupsystem, nicht nur ein einzelnes Programm. Ein - Amanda-Server kann auf einem einzigen Bandlaufwerk Datensicherungen - von jeder beliebigen Anzahl von Computern speichern, sofern auf diesen - jeweils ein Amanda-Client läuft und sie über Netzwerk mit - dem Amanda-Server verbunden sind.</para> - - <para>Ein häufiges Problem bei Standorten mit einer Anzahl - großer Festplatten ist, dass das Kopieren der Daten auf Band - langsamer vor sich geht als solche Daten anfallen. Amanda löst - dieses Problem durch Verwendung einer "Holding Disk", einer Festplatte - zum gleichzeitigen Zwischenspeichern mehrerer Dateisysteme.</para> - - <para>Für Datensicherungen über einen längeren Zeitraum - erzeugt Amanda "Archivsets" von allen Dateisystemen, die in Amanda's - Konfigurationsdatei genannt werden. Ein Archivset ist eine Gruppe von - Bändern mit vollen Backups und Reihen von inkrementellen (oder - differentiellen) Backups, die jeweils nur die Unterschiede zum vorigen - Backup enthalten. Zur Wiederherstellung von beschädigten - Dateissystemen benötigt man das letzte volle Backup und alle - darauf folgenden inkrementellen Backups.</para> - - <para>Ein gängiger Datensicherungsplan ist, an den Wochenenden - ein volles Backup und während der Woche jede Nacht ein - inkrementelles Backup zu erstellen.</para> - - <para>Die Konfigurationsdatei ermöglicht die Feineinstellung der - Backups und des Netzwerkverkehrs von Amanda. Amanda kann zum - Schreiben der Daten auf das Band jedes der oben beschriebenen - Backuprogramme verwenden. Amanda ist erhältlich als Portierung - oder als Softwarepaket, es ist nicht von vorne herein auf dem System - installiert.</para> - </sect2> - - <sect2> - <title>Tue nichts</title> - - <para><quote>Tue nichts</quote> ist kein Computerprogramm, sondern die - am häufigsten angewendete Backupstrategie. Diese kostet nichts, - man muss keinen Backupplan befolgen, einfach nur nein sagen. Wenn - etwas passiert, einfach grinsen und ertragen!</para> - - <para>Wenn Ihre Zeit und Ihre Daten nicht so wichtig sind, dann ist - die Strategie <quote>Tue nichts</quote> das geeignetste Backupprogramm - für Ihren Computer. Aber UNIX ein nützliches Werkzeug. Sie - müssen damit rechnen, dass Sie innerhalb von sechs Monaten eine - Sammlung von Dateien haben, die für Sie wertvoll geworden - sind.</para> - - <para><quote>Tue nichts</quote> ist die richtige Backupmethode für - <filename>/usr/obj</filename> und andere Verzeichnisbäume, die - vom Computer exakt wiedererzeugt werden können. Ein Beispiel - sind die Dateien, die diese Handbuchseiten darstellen — sie - wurden aus Quelldateien im Format <acronym>SGML</acronym> erzeugt. Es - ist nicht nötig, Sicherheitskopien der Dateien in den - sekundären Formaten wie etwa <acronym>HTML</acronym> zu - erstellen. Die Quelldateien in <acronym>SGML</acronym> sollten jedoch - in die regelmäßigen Backups mit einbezogen werden.</para> - </sect2> - - <sect2> - <title>Welches Backup-Programm ist am Besten?</title> - - <para>&man.dump.8;, <emphasis>Punkt und Schluss.</emphasis> Elizabeth - D. Zwicky hat alle hier genannten Backup-Programme bis zur - Erschöpfung ausgetestet. Ihre eindeutige Wahl zur Sicherung - aller Daten mit Berücksichtigung aller Besonderheiten von - UNIX-Dateisystemen ist &man.dump.8;.</para> - - <para>Elizabeth erzeugte Dateisysteme mit einer großen Vielfalt - ungewöhnlicher Bedingungen (und einiger gar nicht so - ungewöhnlicher) und testete jedes Programm durch ein Backup und - eine Wiederherstellung dieser Dateisysteme. Unter den Besonderheiten - waren Dateien mit Löchern, Dateien mit Löchern und einem - Block mit Null-Zeichen, Dateien mit ausgefallenen Buchstaben im - Dateinamen, unlesbare und nichtschreibbare Dateien, - Gerätedateien, Dateien, deren Länge sich während des - Backups ändert, Dateien, die während des Backups erzeugt und - gelöscht werden, u.v.m. Sie berichtete über ihre Ergebnisse - in LISA V im Oktober 1991, s. <ulink - url="http://reality.sgi.com/zwicky_neu/testdump.doc.html">Torture-testing - Backup and Archive Programs</ulink>.</para> - </sect2> - - <sect2> - <title>Die Wiederherstellung in einem Notfall</title> - - <sect3> - <title>Vor dem Unglück</title> - - <para>Es sind nur vier Vorkehrungen zu treffen, um auf jedes - erdenkliche Unglück vorbereitet zu sein.</para> - - <para>Als erstes drucken Sie das Disklabel jeder Ihrer Festplatten - (z.B. mittels <command>disklabel da0 | lpr</command>), die - Partitions- und Dateisystemtabelle jeder Festplatte (mit - <filename>/etc/fstab</filename>) sowie alle Bootmeldungen, jeweils - in zweifacher Ausfertigung.</para> - - <para>Zweitens, überzeugen Sie sich, dass sowohl die - Bootdiskette als auch die Reparaturdiskette - (<filename>boot.flp</filename> bzw. <filename>fixit.flp</filename>) - all Ihre Geräte ansprechen können. Die einfachste Methode - dies nach zu prüfen ist, Ihren Rechner mit der Boot-Diskette im - Floppylaufwerk neu zu starten und die Bootmeldungen zu durchzusehen. - Wenn all Ihre Geräte aufgelistet sind und funktionieren, - können Sie weiter zu Schritt drei gehen.</para> - - <para>Ist das nicht der Fall, müssen Sie sich eine eigene - Version der beiden zum Booten benötigten Disketten erstellen. - Diese müssen einen Kernel enthalten, der all Ihre Platten - mounten kann und Zugriff auf Ihr Bandlaufwerk gestattet. Diese - Disketten müssen ferner folgende Programme enthalten: - &man.fdisk.8;, &man.disklabel.8;, &man.newfs.8;, &man.mount.8; sowie - jedes Backup-Programm, das Sie verwenden. Diese Programme - müssen statisch gelinkt sein. Falls Sie &man.dump.8; - verwenden, muss die Diskette auch &man.restore.8; enthalten.</para> - - <para>Drittens, machen Sie oft Backups auf Band. Jede Änderung - seit Ihrem letzten Backup kann unwiederbringlich verloren gehen. - Versehen Sie die Backup-Bänder mit Schreibschutz.</para> - - <para>Viertens, testen Sie aus, wie die Disketten (entweder - <filename>boot.flp</filename> und <filename>fixit.flp</filename> - oder Ihre beiden eigenen Disketten aus Schritt zwei) und die - Bänder mit den Backups zu behandeln sind. Machen Sie sich - Notizen zu diesem Test. Bewahren Sie diese Notizen zusammen mit den - Bootdisketten, den Ausdrucken und den Bändern mit den Backups - auf. Wenn der Ernstfall eintritt, werden Sie vielleicht so genervt - sein, dass Sie ohne Ihre Notizen evt. das Backup auf Ihren - Bändern zerstören. (Wie das geht? Man braucht nur - unglücklicherweise den Befehl <command>tar cvf - /dev/rsa0</command> einzugeben um ein Band zu - überschreiben).</para> - - <para>Als zusätzliche Sicherheitsvorkehrung, kann man jeweils - die Disketten und Bänder zweifach erstellen. Eine der Kopien - sollte an einem entfernten Standort aufbewahrt werden. Ein - entfernter Standort ist NICHT der Keller im gleichen - Bürogebäude. Eine Anzahl von Firmen im World Trade Center - musste diese Lektion auf die harte Tour lernen. Ein entfernter - Standort sollte von Ihrem Computer und Ihren Festplatten - physikalisch durch eine erhebliche Entfernung getrennt sein.</para> - - <para>Ein Beispielskript zum Erstellen eigener Bootdisketten:</para> - - <programlisting> -<![ CDATA [#!/bin/sh -# -# Erstellen einer Diskette zur Wiederherstellung eines Backups -# -# Diskette formatieren -# -PATH=/bin:/sbin:/usr/sbin:/usr/bin - -fdformat -q fd0 -if [ $? -ne 0 ] -then -echo "Bad floppy, please use a new one" -exit 1 -fi - -# Die Bootbloecke auf die Diskette schreiben -# -disklabel -w -B /dev/rfd0c fd1440 - -# -# Dateisystem fuer die (einzige) Partition auf der Diskette -# -newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/rfd0a - -# -# Diskette mounten -# -mount /dev/fd0a /mnt - -# -# Benoetigte Verzeichnisse erstellen -# -mkdir /mnt/dev -mkdir /mnt/bin -mkdir /mnt/sbin -mkdir /mnt/etc -mkdir /mnt/root -mkdir /mnt/mnt # fuer die Root-Partition -mkdir /mnt/tmp -mkdir /mnt/var - -# -# die Verzeichnisse bevoelkern -# -if [ ! -x /sys/compile/MINI/kernel ] -then -cat << EOM -Der MINI_Kernel existiert nicht, bitte einen erzeugen. -Hier ein Beispiel einer Konfigurationsdatei: -# -# MINI -- Ein FreeBSD-Kernel, der auf die Diskette passt. -# -machine "i386" -cpu "I486_CPU" -ident MINI -maxusers 5 - -options INET # notwendig fuer _tcp _icmpstat _ipstat -# _udpstat _tcpstat _udb -options FFS #Berkeley Fast File System -options FAT_CURSOR #Blockcursor in syscons oder pccons -options SCSI_DELAY=15 #traue nicht Joe's SCSI-Geraet -options NCONS=2 #2 virtuelle Konsolen -options USERCONFIG #Konfiguration mit -c XXX zulassen - - -config kernel root on da0 swap on da0 and da1 dumps on da0 - -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 da0 -device da1 -device da2 - -device sa0 - -pseudo-device loop # von INET benoetigt -pseudo-device gzip # komprimierte a.out-Dateien ausfuehren -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 - -# -# Geraetedateien erstellen -# -cd /mnt/dev -./MAKEDEV std -./MAKEDEV da0 -./MAKEDEV da1 -./MAKEDEV da2 -./MAKEDEV sa0 -./MAKEDEV pty0 -cd / - -# -# Minimale Dateisystemtabelle erstellen -# -cat > /mnt/etc/fstab <<EOM -/dev/fd0a / ufs rw 1 1 -EOM - -# -# Minimale Passwortdatei erstellen -# -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 - -# -# Die Diskette aushaengen und den Benutzer informieren -# -/sbin/umount /mnt -echo "Die Diskette wurde ausgehaengt und ist jetzt bereit."]]></programlisting> - </sect3> - - <sect3> - <title>Nach dem Unglück</title> - - <para>Die Schlüsselfrage ist, ob Ihre Hardware überlebt - hat. Denn da Sie ja regelmäßig Backups angefertigt - haben, brauchen Sie sich um die Software keine Sorgen zu - machen.</para> - - <para>Falls die Hardware beschädigt wurde, ersetzen Sie zuerst - die defekten Teile.</para> - - <para>Falls die Hardware funktioniert, überprüfen Sie die - Disketten. Wenn Sie eigene Bootdisketten verwenden, booten Sie im - Single-User-Modus (geben dazu Sie <literal>-s</literal> am - Boot-Prompt <prompt>boot:</prompt> ein). Überspringen Sie den - folgenden Paragrafen.</para> - - <para>Wenn Sie die Standarddisketten <filename>boot.flp</filename> - und <filename>fixit.flp</filename> verwenden, lesen Sie hier weiter. - Legen Sie die Bootdiskette <filename>boot.flp</filename> in das - erste Floppylaufwerk ein und starten Sie den Computer. Wie - üblich wird dann das originale Installationsmenü von - FreeBSD gestartet. Wählen Sie die Option - <literal>Fixit--Repair mode with CDROM or floppy.</literal>. Legen - Sie die Diskette <filename>fixit.flp</filename> ein, wenn danach - gefragt wird. <command>restore</command> und die anderen Programme, - die Sie benötigen, befinden sich dann in - <filename>/mnt2/stand</filename>.</para> - - <para>Stellen Sie die Dateisysteme nacheinander, getrennt von - einander, wieder her.</para> - - <para>Versuchen Sie die Root-Partition Ihrer ersten Festplatte - &man.mount.8; einzuhängen (z.B. mit <command>mount /dev/sd0a - /mnt</command>). Wenn das Disklabel beschädigt wurde, benutzen - Sie &man.disklabel.8; um die Platte neu zu partitionieren und zu - benennen und zwar so, dass die Festplatte mit dem Label - übereinstimmt, das Sie ausgedruckt und aufbewahrt haben.</para> - - <para>Verwenden Sie &man.newfs.8; um neue Dateisysteme auf den - Partitionen anzulegen. Hängen Sie nun die Root-Partition der - Festplatte mit Schreibzugriff ein (mit <command>mount -u -o rw - /mnt</command>). Benutzen Sie Ihr Backup-Programm um die Daten - für das jeweilige Dateisystem aus den Backup-Bändern - wieder her zu stellen (z.B. durch <command>restore vrf - /dev/sta</command>). Hängen Sie das Dateisystem wieder aus - (z.B. durch <command>umount /mnt</command>). Wiederholen Sie diesen - Ablauf für jedes betroffene Dateisystem.</para> - - <para>Sobald Ihr System wieder läuft, machen Sie gleich wieder - ein vollständiges Backup auf neue Bänder. Denn die - Ursache für den Absturz oder den Datenverlust kann wieder - zuschlagen. Eine weitere Stunde, die Sie jetzt noch - dranhängen, kann Ihnen später ein weiteres Missgeschick - ersparen.</para> - </sect3> - -<![ %not.published; [ - - <sect3> - <title>* Ich habe mich nicht auf Missgeschicke vorbereitet - was - nun?</title> - - <para></para> - </sect3> - -]]> - - </sect2> - </sect1> - - <sect1 id="backups-floppybackups"> - <title>Was ist mit Backups auf Disketten?</title> - - <sect2 id="floppies-using"> - <title>Kann ich Disketten zum Backup meiner Daten verwenden?</title> - - <para>Disketten sind kein wirklich geeignetes Medium für Backups - aus folgenden Gründen:</para> - - <itemizedlist> - <listitem> - <para>Disketten sind unzuverlässig, besonders - langfristig.</para> - </listitem> - - <listitem> - <para>Speichern und Wiederherstellen ist sehr langsam.</para> - </listitem> - - <listitem> - <para>Sie haben eine sehr eingeschränkte Kapazität (Die - Zeiten sind längst vorbei, wo eine ganze Festplatte auf ein - Dutzend Floppies oder so gespeichert werden konnte).</para> - </listitem> - </itemizedlist> - - <para>Wenn jedoch keine andere Möglichkeit zum Datenbackup - vorhanden ist, dann sind Disketten immer noch besser als gar kein - Backup.</para> - - <para>Wenn man gezwungen ist Disketten zu verwenden, dann sollte man - auf eine gute Qualität achten. Floppies, die schon einige Jahre - im Büro herumgelegen haben, sind eine schlechte Wahl. Ideal sind - neue Disketten von einem renommierten Hersteller.</para> - </sect2> - - <sect2 id="floppies-creating"> - <title>Wie mache ich ein Backup auf Disketten?</title> - - <para>Die beste Art eines Diskettenbackups ist der Befehl &man.tar.1; - mit der Mehrfachband-Option <option>-M</option>, die es - ermöglicht ein Backup über mehrere Floppies zu - verteilen.</para> - - <para>Ein Backup aller Dateien im aktuellen Verzeichnis - einschließlich aller Unterverzeichnisse wird durch den folgenden - Befehl veranlasst (als root):</para> - - <screen>&prompt.root; <userinput>tar Mcvf /dev/rfd0 *</userinput></screen> - - <para>Wenn die erste Floppy voll ist, meldet sich &man.tar.1; und - verlangt einen Diskettenwechsel (weil &man.tar.1; unabhängig vom - Medium arbeitet, wird der nächste Band (Volume) verlangt, was in - diesem Zusammenhang eine Diskette bedeutet), in etwa wie folgt:</para> - - <screen>Prepare volume #2 for /dev/rfd0 and hit return:</screen> - - <para>Dies wird mit steigender Volumezahl wiederholt, bis alle - angebenen Dateien archiviert sind.</para> - </sect2> - - <sect2 id="floppies-compress"> - <title>Können Diskettenbackups komprimiert werden?</title> - - <para>Leider erlaubt es &man.tar.1; nicht, die Option - <option>-z</option> für Multi-Volume-Archive zu verwenden. Man - kann natürlich alle Dateien mit &man.gzip.1; komprimieren, sie - mit &man.tar.1; auf die Floppies aufspielen, und dann die Dateien - wieder &man.gunzip.1; entkomprimieren!</para> - </sect2> - - <sect2 id="floppies-restoring"> - <title>Wie werden Diskettenbackups wieder her gestellt?</title> - - <para>Zur Wiederherstellung des gesamten Archivs verwendet man:</para> - - <screen>&prompt.root; <userinput>tar Mxvf /dev/rfd0</userinput></screen> - - <para>Eine Methode um nur bestimmte Dateien wieder her zu stellen ist - mit der ersten Diskette den folgenden Befehl auszuführen:</para> - - <screen>&prompt.root; <userinput>tar Mxvf /dev/rfd0 <replaceable>filename</replaceable></userinput></screen> - - <para>&man.tar.1; wird dann dir folgenden Disketten anfordern, bis die - benötigte Datei gefunden ist.</para> - - <para>Wenn man die Diskette kennt auf der sich die Datei befindet, - kann man alternativ diese Diskette auch direkt einlegen und den - gleichen Befehl wie oben verwenden. Man beachte, dass, falls die - erste Datei eine Fortsetzung eine Fortsetzung einer Datei von einer - der vorigen Disketten ist, &man.tar.1; die Warnung ausgibt, dass diese - Datei nicht wiederhergestellt werden kann, selbst dann, wenn dies gar - nicht verlangt wurde!</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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/de_DE.ISO8859-1/books/handbook/book.sgml b/de_DE.ISO8859-1/books/handbook/book.sgml deleted file mode 100644 index bf75db8292..0000000000 --- a/de_DE.ISO8859-1/books/handbook/book.sgml +++ /dev/null @@ -1,100 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD German Documentation Project - - $FreeBSD$ ---> - -<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> -%man; - -<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//EN"> -%bookinfo; - -<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters; -<!ENTITY % authors SYSTEM "authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "mailing-lists.ent"> %mailing-lists; -<!ENTITY % newsgroups SYSTEM "newsgroups.ent"> %newsgroups; -<!ENTITY % not.published "INCLUDE"> - -<!-- Die aktuelle FreeBSD-RELEASE version. Wird für verschiedene Dinge benutzt, - z.B. Links auf Webseiten usw. Solange NICHT ändern wie es nicht wirklich - Release-Zeit ist. --> -<!ENTITY rel.current CDATA "4.0"> -]> - -<book> - <bookinfo> - <title>FreeBSD Handbuch</title> - - <authorgroup> - <author> - <surname>The FreeBSD German Documentation Project</surname> - <affiliation> - <address> - <email>de-bsd-translators@de.FreeBSD.org</email> - </address> - </affiliation> - </author> - </authorgroup> - - <pubdate>February 1999</pubdate> - - <copyright> - <year>1995</year> - <year>1996</year> - <year>1997</year> - <year>1998</year> - <year>1999</year> - <year>2000</year> - <holder>The FreeBSD German Documentation Project</holder> - </copyright> - - &bookinfo.legalnotice; - - <abstract> - <para>Willkommen bei FreeBSD! Dieses Handbuch beschreibt die - Installation und den täglichen Umgang mit <emphasis>FreeBSD - Release &rel.current;</emphasis>. - Das Handbuch ist <emphasis>jederzeit unter Bearbeitung</emphasis> - und die Arbeit vieler Einzelpersonen. Manche Kapitel existieren noch - nicht und andere Kapitel müssen auf den neusten Stand - gebracht werden. - Wenn Sie an diesem Projekt mithelfen möchten, senden Sie bitte - eine E-Mail an die &a.de.translators;. Die letzte Version des - Handbuchs ist immer auf dem - <ulink URL="http://www.FreeBSD.ORG/de/handbook/">FreeBSD Web - Server</ulink> verfügbar. - Es kann außerdem in verschiedenen Formaten und in komprimierter - Form vom <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc">FreeBSD - FTP Server</ulink> oder einer der vielen - -<!-- -<link linkend="mirrors-ftp">Mirror Seiten</link> ---> - - <ulink URL="http://www.FreeBSD.org/handbook/mirrors-ftp.html">Mirror - Seiten</ulink> herunter geladen werden. - Vielleicht möchten Sie das Handbuch auch - <ulink URL="http://www.FreeBSD.org/search.html">durchsuchen</ulink>.</para> - </abstract> - </bookinfo> - - <part> - <title>System Administration</title> - - &chap.backups; - </part> - -</book> - -<!-- - Local Variables: - mode: sgml - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - End: ---> - diff --git a/de_DE.ISO8859-1/books/handbook/chapters.ent b/de_DE.ISO8859-1/books/handbook/chapters.ent deleted file mode 100644 index a7a6d6c3ae..0000000000 --- a/de_DE.ISO8859-1/books/handbook/chapters.ent +++ /dev/null @@ -1,14 +0,0 @@ -<!-- - Die Entities für jedes Kapitel im FreeBSD Handbuch. - Jede Entity heißt chap.foo, wobei foo der Name des ID-Attributes - dieses Kapitels ist und dem Verzeichnis, in dem die entsprechende - .sgml Datei liegt, entspricht. - - Kapitel sollten in der Reihenfolge aufgelistet sein, in der auf sie - referenziert wird. - - $FreeBSD: doc/de_DE.ISO_8859-1/books/handbook/chapters.ent,v 1.1 2000/06/11 18:50:56 alex Exp $ ---> - -<!-- Teil 1 --> -<!ENTITY chap.backups SYSTEM "backups/chapter.sgml"> diff --git a/de_DE.ISO8859-1/books/handbook/mailing-lists.ent b/de_DE.ISO8859-1/books/handbook/mailing-lists.ent deleted file mode 100644 index 6f62fb4418..0000000000 --- a/de_DE.ISO8859-1/books/handbook/mailing-lists.ent +++ /dev/null @@ -1,114 +0,0 @@ -<!-- - Namen der FreeBSD Mailinglisten und verwandter Software - - $FreeBSD: doc/de_DE.ISO_8859-1/books/handbook/mailing-lists.ent,v 1.1 2000/06/11 18:50:56 alex Exp $ ---> - -<!ENTITY a.advocacy "FreeBSD Befürworter Mailingliste - <email>freebsd-advocacy@FreeBSD.org</email>"> - -<!ENTITY a.announce "FreeBSD Ankündigungen Mailingliste - <email>freebsd-announce@FreeBSD.org</email>"> - -<!ENTITY a.bugs "FreeBSD Problem Report (PR) Mailingliste - <email>freebsd-bugs@FreeBSD.org</email>"> - -<!ENTITY a.chat "FreeBSD Chat Mailingliste - <email>freebsd-chat@FreeBSD.org</email>"> - -<!ENTITY a.core "FreeBSD Core Team - <email>freebsd-core@FreeBSD.org</email>"> - -<!ENTITY a.current "FreeBSD-current Mailingliste - <email>freebsd-current@FreeBSD.org</email>"> - -<!ENTITY a.cvsall "FreeBSD CVS Commit Nachrichten Mailingliste - <email>cvs-all@FreeBSD.org</email>"> - -<!ENTITY a.database "FreeBSD basierte Datenbanken Mailingliste - <email>freebsd-database@FreeBSD.org</email>"> - -<!ENTITY a.doc "FreeBSD Documentation Project Mailingliste - <email>freebsd-doc@FreeBSD.org</email>"> - -<!ENTITY a.emulation "FreeBSD-emulation Mailingliste - <email>freebsd-emulation@FreeBSD.org</email>"> - -<!ENTITY a.fs "FreeBSD Filesystem Project (Dateisysteme) Mailingliste - <email>freebsd-fs@FreeBSD.org</email>"> - -<!ENTITY a.hackers "FreeBSD technische Diskussionen Mailingliste - <email>freebsd-hackers@FreeBSD.org</email>"> - -<!ENTITY a.hardware "FreeBSD Hardware und Zubehör Mailingliste - <email>freebsd-hardware@FreeBSD.org</email>"> - -<!ENTITY a.isdn "FreeBSD ISDN Mailingliste - <email>freebsd-isdn@FreeBSD.org</email>"> - -<!ENTITY a.isp "FreeBSD Internet Service Providers Mailingliste - <email>freebsd-isp@FreeBSD.org</email>"> - -<!ENTITY a.java "FreeBSD Java Mailingliste - <email>freebsd-java@FreeBSD.org</email>"> - -<!ENTITY a.jobs "FreeBSD betreffende Stellenangebote/-gesuche Mailingliste - <email>freebsd-jobs@FreeBSD.org</email>"> - -<!ENTITY a.mobile "FreeBSD Laptop Computer Mailingliste - <email>freebsd-mobile@FreeBSD.org</email>"> - -<!ENTITY a.mozilla "FreeBSD Portierung des Mozilla Browsers Mailingliste - <email>freebsd-mozilla@FreeBSD.org</email>"> - -<!ENTITY a.multimedia "FreeBSD Multimedia Mailingliste - <email>freebsd-multimedia@FreeBSD.org</email>"> - -<!ENTITY a.net "FreeBSD Netzwerk und Netzwerktechnik Mailingliste - <email>freebsd-net@FreeBSD.org</email>"> - -<!ENTITY a.newbies "FreeBSD Anfänger Mailingliste - <email>freebsd-newbies@FreeBSD.org</email>"> - -<!ENTITY a.newbus "New Bus Architektur Mailingliste - <email>new-bus-arch@bostonradio.org</email>"> - -<!ENTITY a.ports "FreeBSD Ports Mailingliste - <email>freebsd-ports@FreeBSD.org</email>"> - -<!ENTITY a.questions "FreeBSD generelle Fragen Mailingliste - <email>freebsd-questions@FreeBSD.org</email>"> - -<!ENTITY a.scsi "FreeBSD SCSI Subsystem Mailingliste - <email>freebsd-scsi@FreeBSD.org</email>"> - -<!ENTITY a.security "FreeBSD Security Mailingliste - <email>freebsd-security@FreeBSD.org</email>"> - -<!ENTITY a.security-notifications "FreeBSD Sicherheits Benachrichtungen Mailingliste - <email>freebsd-security-notifications@FreeBSD.org</email>"> - -<!ENTITY a.small "FreeBSD-small Mailingliste - <email>freebsd-small@FreeBSD.org</email>"> - -<!ENTITY a.smp "FreeBSD Symmetric Multiprocessing Mailingliste - <email>freebsd-smp@FreeBSD.org</email>"> - -<!ENTITY a.stable "FreeBSD-stable Mailingliste - <email>freebsd-stable@FreeBSD.org</email>"> - -<!ENTITY a.tokenring "FreeBSD Tokenring Mailingliste - <email>freebsd-tokenring@FreeBSD.org</email>"> - -<!ENTITY a.www "FreeBSD Webmaster Mailingliste - <email>freebsd-www@FreeBSD.org</email>"> - -<!ENTITY a.majordomo "<email>majordomo@FreeBSD.org</email>"> - -<!-- Deutsche Mailinglisten --> - -<!ENTITY a.de.translators "FreeBSD German Documentation Project Mailingliste - <email>de-bsd-translators@de.FreeBSD.org</email>"> - -<!ENTITY a.de.questions "deutsche FreeBSD Fragen Mailingliste - <email>de-bsd-questions@de.FreeBSD.org</email>"> diff --git a/de_DE.ISO8859-1/books/handbook/newsgroups.ent b/de_DE.ISO8859-1/books/handbook/newsgroups.ent deleted file mode 100644 index e580f9e3b7..0000000000 --- a/de_DE.ISO8859-1/books/handbook/newsgroups.ent +++ /dev/null @@ -1,10 +0,0 @@ -<!-- - Namen der FreeBSD Newsgroups - - $FreeBSD$ ---> - -<!ENTITY ng.misc "die - <ulink url='news:comp.unix.bsd.freebsd.misc'>comp.unix.bsd.freebsd.misc</ulink> - Newsgroup"> - diff --git a/de_DE.ISO8859-1/share/sgml/bookinfo.ent b/de_DE.ISO8859-1/share/sgml/bookinfo.ent deleted file mode 100644 index d6e567519c..0000000000 --- a/de_DE.ISO8859-1/share/sgml/bookinfo.ent +++ /dev/null @@ -1,12 +0,0 @@ -<!-- - Querverweise auf andere Dateien können in einem DocBook BookInfo - Element eingefügt werden. - - Entity Namen haben die Form "bookinfo.<element>", wobei <element> der - Name des äußersten Elements in der Entity ist. Beispiele sind - "bookinfo.legalnotice" und "bookinfo.preface". - - $FreeBSD$ ---> - -<!ENTITY bookinfo.legalnotice SYSTEM "legalnotice.sgml"> diff --git a/de_DE.ISO8859-1/share/sgml/freebsd.dsl b/de_DE.ISO8859-1/share/sgml/freebsd.dsl deleted file mode 100644 index b9912bbffb..0000000000 --- a/de_DE.ISO8859-1/share/sgml/freebsd.dsl +++ /dev/null @@ -1,30 +0,0 @@ -<!-- $FreeBSD$ --> - -<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ -<!ENTITY freebsd.dsl SYSTEM "../../../share/sgml/freebsd.dsl" CDATA DSSSL> -]> - -<style-sheet> - <style-specification use="docbook"> - <style-specification-body> - - <![ %output.html; [ - (define ($email-footer$) - (make sequence - (literal "For questions about FreeBSD, e-mail <") - (make element gi: "a" - attributes: (list (list "href" "mailto:questions@FreeBSD.org")) - (literal "questions@FreeBSD.org")) - (literal ">.") - (make empty-element gi: "br") - (literal "For questions about this documentation, e-mail <") - (make element gi: "a" - attributes: (list (list "href" "mailto:doc@FreeBSD.org")) - (literal "doc@FreeBSD.org")) - (literal ">."))) - ]]> - </style-specification-body> - </style-specification> - - <external-specification id="docbook" document="freebsd.dsl"> -</style-sheet> diff --git a/de_DE.ISO8859-1/share/sgml/legalnotice.sgml b/de_DE.ISO8859-1/share/sgml/legalnotice.sgml deleted file mode 100644 index ecb8ba6cee..0000000000 --- a/de_DE.ISO8859-1/share/sgml/legalnotice.sgml +++ /dev/null @@ -1,44 +0,0 @@ -<!-- - Standard FreeBSD Documentation Project Legal Notice. - - $FreeBSD$ ---> - -<legalnotice> - <para>Redistribution and use in source (SGML DocBook) and 'compiled' - forms (SGML, HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions are - met:</para> - - <orderedlist> - <listitem> - <para>Redistributions of source code (SGML DocBook) must retain the - above copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified.</para> - </listitem> - - <listitem> - <para>Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must - reproduce the above copyright notice, this list of conditions and - the following disclaimer in the documentation and/or other - materials provided with the distribution.</para> - </listitem> - </orderedlist> - - <important> - <para>THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION - PROJECT "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 - THE FREEBSD DOCUMENTATION PROJECT 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 DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - DAMAGE.</para> - </important> -</legalnotice> - diff --git a/en/handbook/contrib/chapter.sgml b/en/handbook/contrib/chapter.sgml deleted file mode 100644 index 9a41073467..0000000000 --- a/en/handbook/contrib/chapter.sgml +++ /dev/null @@ -1,5796 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $Id: chapter.sgml,v 1.92 2000-03-19 06:20:31 vanilla Exp $ ---> - -<chapter id="contrib"> - <title>Contributing to FreeBSD</title> - - <para><emphasis>Contributed by &a.jkh;.</emphasis></para> - - <para>So you want to contribute something to FreeBSD? That is great! We can - always use the help, and FreeBSD is one of those systems that - <emphasis>relies</emphasis> on the contributions of its user base in order - to survive. Your contributions are not only appreciated, they are vital - to FreeBSD's continued growth!</para> - - <para>Contrary to what some people might also have you believe, you do not - need to be a hot-shot programmer or a close personal friend of the FreeBSD - core team in order to have your contributions accepted. The FreeBSD - Project's development is done by a large and growing number of - international contributors whose ages and areas of technical expertise - vary greatly, and there is always more work to be done than there are - people available to do it.</para> - - <para>Since the FreeBSD project is responsible for an entire operating - system environment (and its installation) rather than just a kernel or a - few scattered utilities, our <filename>TODO</filename> list also spans a - very wide range of tasks, from documentation, beta testing and - presentation to highly specialized types of kernel development. No matter - what your skill level, there is almost certainly something you can do to - help the project!</para> - - <para>Commercial entities engaged in FreeBSD-related enterprises are also - encouraged to contact us. Need a special extension to make your product - work? You will find us receptive to your requests, given that they are not - too outlandish. Working on a value-added product? Please let us know! We - may be able to work cooperatively on some aspect of it. The free software - world is challenging a lot of existing assumptions about how software is - developed, sold, and maintained throughout its life cycle, and we urge you - to at least give it a second look.</para> - - <sect1> - <title>What Is Needed</title> - - <para>The following list of tasks and sub-projects represents something of - an amalgam of the various core team <filename>TODO</filename> lists and - user requests we have collected over the last couple of months. Where - possible, tasks have been ranked by degree of urgency. If you are - interested in working on one of the tasks you see here, send mail to the - coordinator listed by clicking on their names. If no coordinator has - been appointed, maybe you would like to volunteer?</para> - - <sect2> - <title>High priority tasks</title> - - <para>The following tasks are considered to be urgent, usually because - they represent something that is badly broken or sorely needed:</para> - - <orderedlist> - <listitem> - <para>3-stage boot issues. Overall coordination: &a.hackers;</para> - - <itemizedlist> - <listitem> - <para>Do WinNT compatible drive tagging so that the 3rd stage - can provide an accurate mapping of BIOS geometries for - disks.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Filesystem problems. Overall coordination: &a.fs;</para> - - <itemizedlist> - <listitem> - <para>Fix the MSDOS file system.</para> - </listitem> - - <listitem> - <para>Clean up and document the nullfs filesystem code. - Coordinator: &a.eivind;</para> - </listitem> - - <listitem> - <para>Fix the union file system. Coordinator: &a.dg;</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Implement Int13 vm86 disk driver. Coordinator: - &a.hackers;</para> - </listitem> - - <listitem> - <para>New bus architecture. Coordinator: &a.newbus;</para> - - <itemizedlist> - <listitem> - <para>Port existing ISA drivers to new architecture.</para> - </listitem> - - <listitem> - <para>Move all interrupt-management code to appropriate parts of - the bus drivers.</para> - </listitem> - - <listitem> - <para>Port PCI subsystem to new architecture. Coordinator: - &a.dfr;</para> - </listitem> - - <listitem> - <para>Figure out the right way to handle removable devices and - then use that as a substrate on which PC-Card and CardBus - support can be implemented.</para> - </listitem> - - <listitem> - <para>Resolve the probe/attach priority issue once and for - all.</para> - </listitem> - - <listitem> - <para>Move any remaining buses over to the new - architecture.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Kernel issues. Overall coordination: &a.hackers;</para> - </listitem> - - <listitem> - <para>Add more pro-active security infrastructure. Overall - coordination: &a.security;</para> - - <itemizedlist> - <listitem> - <para>Build something like Tripwire(TM) into the kernel, with a - remote and local part. There are a number of cryptographic - issues to getting this right; contact the coordinator for - details. Coordinator: &a.eivind;</para> - </listitem> - - <listitem> - <para>Make the entire kernel use <literal>suser()</literal> - instead of comparing to 0. It is presently using about half - of each. Coordinator: &a.eivind;</para> - </listitem> - - <listitem> - <para>Split securelevels into different parts, to allow an - administrator to throw away those privileges he can throw - away. Setting the overall securelevel needs to have the same - effect as now, obviously. Coordinator: &a.eivind;</para> - </listitem> - - <listitem> - <para>Make it possible to upload a list of “allowed - program” to BPF, and then block BPF from accepting other - programs. This would allow BPF to be used e.g. for DHCP, - without allowing an attacker to start snooping the local - network.</para> - </listitem> - - <listitem> - <para>Update the security checker script. We should at least - grab all the checks from the other BSD derivatives, and add - checks that a system with securelevel increased also have - reasonable flags on the relevant parts. Coordinator: - &a.eivind;</para> - </listitem> - - <listitem> - <para>Add authorization infrastructure to the kernel, to allow - different authorization policies. Part of this could be done - by modifying <literal>suser()</literal>. Coordinator: - &a.eivind;</para> - </listitem> - - <listitem> - <para>Add code to the NFS layer so that you cannot - <literal>chdir("..")</literal> out of an NFS partition. E.g., - <filename>/usr</filename> is a UFS partition with - <filename>/usr/src</filename> NFS exported. Now it is - possible to use the NFS filehandle for - <filename>/usr/src</filename> to get access to - <filename>/usr</filename>.</para> - </listitem> - </itemizedlist> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Medium priority tasks</title> - - <para>The following tasks need to be done, but not with any particular - urgency:</para> - - <orderedlist> - <listitem> - <para>Full KLD based driver support/Configuration Manager.</para> - - <itemizedlist> - <listitem> - <para>Write a configuration manager (in the 3rd stage boot?) - that probes your hardware in a sane manner, keeps only the - KLDs required for your hardware, etc.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>PCMCIA/PCCARD. Coordinators: &a.msmith; and &a.phk;</para> - - <itemizedlist> - <listitem> - <para>Documentation!</para> - </listitem> - - <listitem> - <para>Reliable operation of the pcic driver (needs - testing).</para> - </listitem> - - <listitem> - <para>Recognizer and handler for <filename>sio.c</filename> - (mostly done).</para> - </listitem> - - <listitem> - <para>Recognizer and handler for <filename>ed.c</filename> - (mostly done).</para> - </listitem> - - <listitem> - <para>Recognizer and handler for <filename>ep.c</filename> - (mostly done).</para> - </listitem> - - <listitem> - <para>User-mode recognizer and handler (partially done).</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Advanced Power Management. Coordinators: &a.msmith; and - &a.phk;</para> - - <itemizedlist> - <listitem> - <para>APM sub-driver (mostly done).</para> - </listitem> - - <listitem> - <para>IDE/ATA disk sub-driver (partially done).</para> - </listitem> - - <listitem> - <para>syscons/pcvt sub-driver.</para> - </listitem> - - <listitem> - <para>Integration with the PCMCIA/PCCARD drivers - (suspend/resume).</para> - </listitem> - </itemizedlist> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Low priority tasks</title> - - <para>The following tasks are purely cosmetic or represent such an - investment of work that it is not likely that anyone will get them - done anytime soon:</para> - - <para>The first N items are from Terry Lambert - <email>terry@lambert.org</email></para> - - <orderedlist> - <listitem> - <para>NetWare Server (protected mode ODI driver) loader and - subservices to allow the use of ODI card drivers supplied with - network cards. The same thing for NDIS drivers and NetWare SCSI - drivers.</para> - </listitem> - - <listitem> - <para>An "upgrade system" option that works on Linux boxes instead - of just previous rev FreeBSD boxes.</para> - </listitem> - - <listitem> - <para>Symmetric Multiprocessing with kernel preemption (requires - kernel preemption).</para> - </listitem> - - <listitem> - <para>A concerted effort at support for portable computers. This is - somewhat handled by changing PCMCIA bridging rules and power - management event handling. But there are things like detecting - internal vs. external display and picking a different screen - resolution based on that fact, not spinning down the disk if the - machine is in dock, and allowing dock-based cards to disappear - without affecting the machines ability to boot (same issue for - PCMCIA).</para> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Smaller tasks</title> - - <para>Most of the tasks listed in the previous sections require either a - considerable investment of time or an in-depth knowledge of the - FreeBSD kernel (or both). However, there are also many useful tasks - which are suitable for "weekend hackers", or people without - programming skills.</para> - - <orderedlist> - <listitem> - <para>If you run FreeBSD-current and have a good Internet - connection, there is a machine <hostid - role="fqdn">current.FreeBSD.org</hostid> which builds a full - release once a day — every now and again, try and install - the latest release from it and report any failures in the - process.</para> - </listitem> - - <listitem> - <para>Read the freebsd-bugs mailing list. There might be a - problem you can comment constructively on or with patches you - can test. Or you could even try to fix one of the problems - yourself.</para> - </listitem> - - <listitem> - <para>Read through the FAQ and Handbook periodically. If anything - is badly explained, out of date or even just completely wrong, let - us know. Even better, send us a fix (SGML is not difficult to - learn, but there is no objection to ASCII submissions).</para> - </listitem> - - <listitem> - <para>Help translate FreeBSD documentation into your native language - (if not already available) — just send an email to &a.doc; - asking if anyone is working on it. Note that you are not - committing yourself to translating every single FreeBSD document - by doing this — in fact, the documentation most in need of - translation is the installation instructions.</para> - </listitem> - - <listitem> - <para>Read the freebsd-questions mailing list and &ng.misc - occasionally (or even regularly). It can be very satisfying to - share your expertise and help people solve their problems; - sometimes you may even learn something new yourself! These forums - can also be a source of ideas for things to work on.</para> - </listitem> - - <listitem> - <para>If you know of any bugfixes which have been successfully - applied to -current but have not been merged into -stable after a - decent interval (normally a couple of weeks), send the committer a - polite reminder.</para> - </listitem> - - <listitem> - <para>Move contributed software to <filename>src/contrib</filename> - in the source tree.</para> - </listitem> - - <listitem> - <para>Make sure code in <filename>src/contrib</filename> is up to - date.</para> - </listitem> - - <listitem> - <para>Look for year 2000 bugs (and fix any you find!)</para> - </listitem> - - <listitem> - <para>Build the source tree (or just part of it) with extra warnings - enabled and clean up the warnings.</para> - </listitem> - - <listitem> - <para>Fix warnings for ports which do deprecated things like using - gets() or including malloc.h.</para> - </listitem> - - <listitem> - <para>If you have contributed any ports, send your patches back to - the original author (this will make your life easier when they - bring out the next version)</para> - </listitem> - - <listitem> - <para>Suggest further tasks for this list!</para> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Work through the PR database</title> - - <para>The <ulink - url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">FreeBSD PR - list</ulink> shows all the current active problem reports and - requests for enhancement that have been submitted by FreeBSD users. - Look through the open PRs, and see if anything there takes your - interest. Some of these might be very simple tasks, that just need an - extra pair of eyes to look over them and confirm that the fix in the - PR is a good one. Others might be much more complex.</para> - - <para>Start with the PRs that have not been assigned to anyone else, but - if one them is assigned to someone else, but it looks like something - you can handle, e-mail the person it is assigned to and ask if you can - work on it—they might already have a patch ready to be tested, - or further ideas that you can discuss with them.</para> - </sect2> - </sect1> - - <sect1> - <title>How to Contribute</title> - - <para>Contributions to the system generally fall into one or more of the - following 6 categories:</para> - - <sect2 id="contrib-general"> - <title>Bug reports and general commentary</title> - - <para>An idea or suggestion of <emphasis>general</emphasis> technical - interest should be mailed to the &a.hackers;. Likewise, people with - an interest in such things (and a tolerance for a - <emphasis>high</emphasis> volume of mail!) may subscribe to the - hackers mailing list by sending mail to &a.majordomo;. See <link - linkend="eresources-mail">mailing lists</link> for more information - about this and other mailing lists.</para> - - <para>If you find a bug or are submitting a specific change, please - report it using the &man.send-pr.1; program or its <ulink - URL="http://www.FreeBSD.org/send-pr.html">WEB-based - equivalent</ulink>. Try to fill-in each field of the bug report. - Unless they exceed 65KB, include any patches directly in the report. - When including patches, <emphasis>do not</emphasis> use cut-and-paste - because cut-and-paste turns tabs into spaces and makes them unusable. - Consider compressing patches and using &man.uuencode.1; if they exceed - 20KB. Upload very large submissions to <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming/">ftp.FreeBSD.org:/pub/FreeBSD/incoming/</ulink>.</para> - - <para>After filing a report, you should receive confirmation along with - a tracking number. Keep this tracking number so that you can update - us with details about the problem by sending mail to - <email>bug-followup@FreeBSD.org</email>. Use the number as the - message subject, e.g. <literal>"Re: kern/3377"</literal>. Additional - information for any bug report should be submitted this way.</para> - - <para>If you do not receive confirmation in a timely fashion (3 days to - a week, depending on your email connection) or are, for some reason, - unable to use the &man.send-pr.1; command, then you may ask - someone to file it for you by sending mail to the &a.bugs;.</para> - </sect2> - - <sect2> - <title>Changes to the documentation</title> - - <para>Changes to the documentation are overseen by the &a.doc;. Send - submissions and changes (even small ones are welcome!) using - <command>send-pr</command> as described in <link - linkend="contrib-general">Bug Reports and General - Commentary</link>.</para> - </sect2> - - <sect2> - <title>Changes to existing source code</title> - - <para>An addition or change to the existing source code is a somewhat - trickier affair and depends a lot on how far out of date you are with - the current state of the core FreeBSD development. There is a special - on-going release of FreeBSD known as “FreeBSD-current” - which is made available in a variety of ways for the convenience of - developers working actively on the system. See <link - linkend="current">Staying current with FreeBSD</link> for more - information about getting and using FreeBSD-current.</para> - - <para>Working from older sources unfortunately means that your changes - may sometimes be too obsolete or too divergent for easy re-integration - into FreeBSD. Chances of this can be minimized somewhat by - subscribing to the &a.announce; and the &a.current; lists, where - discussions on the current state of the system take place.</para> - - <para>Assuming that you can manage to secure fairly up-to-date sources - to base your changes on, the next step is to produce a set of diffs to - send to the FreeBSD maintainers. This is done with the &man.diff.1; - command, with the “context diff” form - being preferred. For example:</para> - - <para> - <screen>&prompt.user; <userinput>diff -c oldfile newfile</userinput></screen> - - or - - <screen>&prompt.user; <userinput>diff -c -r olddir newdir</userinput></screen> - - would generate such a set of context diffs for the given source file - or directory hierarchy. See the man page for &man.diff.1; for more - details.</para> - - <para>Once you have a set of diffs (which you may test with the - &man.patch.1; command), you should submit them for inclusion with - FreeBSD. Use the &man.send-pr.1; program as described in <link - linkend="contrib-general">Bug Reports and General Commentary</link>. - <emphasis>Do not</emphasis> just send the diffs to the &a.hackers; or - they will get lost! We greatly appreciate your submission (this is a - volunteer project!); because we are busy, we may not be able to - address it immediately, but it will remain in the pr database until we - do.</para> - - <para>If you feel it appropriate (e.g. you have added, deleted, or - renamed files), bundle your changes into a <command>tar</command> file - and run the &man.uuencode.1; program on it. Shar archives are also - welcome.</para> - - <para>If your change is of a potentially sensitive nature, e.g. you are - unsure of copyright issues governing its further distribution or you - are simply not ready to release it without a tighter review first, - then you should send it to &a.core; directly rather than submitting it - with &man.send-pr.1;. The core mailing list reaches a much smaller - group of people who do much of the day-to-day work on FreeBSD. Note - that this group is also <emphasis>very busy</emphasis> and so you - should only send mail to them where it is truly necessary.</para> - - <para>Please refer to <command>man 9 intro</command> and <command>man 9 - style</command> for some information on coding style. We would - appreciate it if you were at least aware of this information before - submitting code.</para> - </sect2> - - <sect2> - <title>New code or major value-added packages</title> - - <para>In the rare case of a significant contribution of a large body - work, or the addition of an important new feature to FreeBSD, it - becomes almost always necessary to either send changes as uuencode'd - tar files or upload them to our ftp site <ulink - URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming">ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming</ulink>.</para> - - <para>When working with large amounts of code, the touchy subject of - copyrights also invariably comes up. Acceptable copyrights for code - included in FreeBSD are:</para> - - <orderedlist> - <listitem> - <para>The BSD copyright. This copyright is most preferred due to - its “no strings attached” nature and general - attractiveness to commercial enterprises. Far from discouraging - such commercial use, the FreeBSD Project actively encourages such - participation by commercial interests who might eventually be - inclined to invest something of their own into FreeBSD.</para> - </listitem> - - <listitem> - <para>The GNU Public License, or “GPL”. This license is - not quite as popular with us due to the amount of extra effort - demanded of anyone using the code for commercial purposes, but - given the sheer quantity of GPL'd code we currently require - (compiler, assembler, text formatter, etc) it would be silly to - refuse additional contributions under this license. Code under - the GPL also goes into a different part of the tree, that being - <filename>/sys/gnu</filename> or - <filename>/usr/src/gnu</filename>, and is therefore easily - identifiable to anyone for whom the GPL presents a problem.</para> - </listitem> - </orderedlist> - - <para>Contributions coming under any other type of copyright must be - carefully reviewed before their inclusion into FreeBSD will be - considered. Contributions for which particularly restrictive - commercial copyrights apply are generally rejected, though the authors - are always encouraged to make such changes available through their own - channels.</para> - - <para>To place a “BSD-style” copyright on your work, include - the following text at the very beginning of every source code file you - wish to protect, replacing the text between the <literal>%%</literal> - with the appropriate information.</para> - - <programlisting> -Copyright (c) %%proper_years_here%% - %%your_name_here%%, %%your_state%% %%your_zip%%. - All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer as - the first lines of this file unmodified. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY %%your_name_here%% ``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 %%your_name_here%% 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 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - $Id$</programlisting> - - <para>For your convenience, a copy of this text can be found in - <filename>/usr/share/examples/etc/bsd-style-copyright</filename>.</para> - </sect2> - - <sect2> - <title>Money, Hardware or Internet access</title> - - <para>We are always very happy to accept donations to further the cause - of the FreeBSD Project and, in a volunteer effort like ours, a little - can go a long way! Donations of hardware are also very important to - expanding our list of supported peripherals since we generally lack - the funds to buy such items ourselves.</para> - - <sect3> - <title><anchor id="donations">Donating funds</title> - - <para>While the FreeBSD Project is not a 501(c)(3) (charitable) - corporation and hence cannot offer special tax incentives for any - donations made, any such donations will be gratefully accepted on - behalf of the project by FreeBSD, Inc.</para> - - <para>FreeBSD, Inc. was founded in early 1995 by &a.jkh; and &a.dg; - with the goal of furthering the aims of the FreeBSD Project and - giving it a minimal corporate presence. Any and all funds donated - (as well as any profits that may eventually be realized by FreeBSD, - Inc.) will be used exclusively to further the project's - goals.</para> - - <para>Please make any checks payable to FreeBSD, Inc., sent in care of - the following address:</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>(currently using the Walnut Creek CDROM address until a PO box - can be opened)</para> - - <para>Wire transfers may also be sent directly to:</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>Routing #: 121-000-358</otheraddr> - <otheraddr>Account #: 01411-07441 (FreeBSD, Inc.)</otheraddr> - </address> - - <para>Any correspondence related to donations should be sent to &a.jkh, - either via email or to the FreeBSD, Inc. postal address given above. - </para> - - <para>If you do not wish to be listed in our <link - linkend="donors">donors</link> section, please specify this when - making your donation. Thanks!</para> - </sect3> - - <sect3> - <title>Donating hardware</title> - - <para>Donations of hardware in any of the 3 following categories are - also gladly accepted by the FreeBSD Project:</para> - - <itemizedlist> - <listitem> - <para>General purpose hardware such as disk drives, memory or - complete systems should be sent to the FreeBSD, Inc. address - listed in the <emphasis>donating funds</emphasis> - section.</para> - </listitem> - - <listitem> - <para>Hardware for which ongoing compliance testing is desired. - We are currently trying to put together a testing lab of all - components that FreeBSD supports so that proper regression - testing can be done with each new release. We are still lacking - many important pieces (network cards, motherboards, etc) and if - you would like to make such a donation, please contact &a.dg; - for information on which items are still required.</para> - </listitem> - - <listitem> - <para>Hardware currently unsupported by FreeBSD for which you - would like to see such support added. Please contact the - &a.core; before sending such items as we will need to find a - developer willing to take on the task before we can accept - delivery of new hardware.</para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>Donating Internet access</title> - - <para>We can always use new mirror sites for FTP, WWW or - <command>cvsup</command>. If you would like to be such a mirror, - please contact the FreeBSD project administrators - <email>admin@FreeBSD.org</email> for more information.</para> - </sect3> - </sect2> - </sect1> - - <sect1 id="donors"> - <title>Donors Gallery</title> - - <para>The FreeBSD Project is indebted to the following donors and would - like to publically thank them here!</para> - - <itemizedlist> - <listitem> - <para><emphasis>Contributors to the central server - project:</emphasis></para> - - <para>The following individuals and businesses made it possible for - the FreeBSD Project to build a new central server machine to - eventually replace <hostid role="fqdn">freefall.FreeBSD.org</hostid> - by donating the following items:</para> - - <itemizedlist> - <listitem> - <para>&a.mbarkah and his employer, <ulink URL="http://www.hemi.com"> - Hemisphere Online</ulink>, donated a <emphasis>Pentium Pro - (P6) 200Mhz CPU</emphasis></para> - </listitem> - - <listitem> - <para><ulink URL="http://www.asacomputers.com">ASA - Computers</ulink> donated a <emphasis>Tyan 1662 - motherboard</emphasis>.</para> - </listitem> - - <listitem> - <para>Joe McGuckin <email>joe@via.net</email> of <ulink - URL="http://www.via.net">ViaNet Communications</ulink> donated - a <emphasis>Kingston ethernet controller.</emphasis></para> - </listitem> - - <listitem> - <para>Jack O'Neill <email>jack@diamond.xtalwind.net</email> - donated an <emphasis>NCR 53C875 SCSI controller - card</emphasis>.</para> - </listitem> - - <listitem> - <para>Ulf Zimmermann <email>ulf@Alameda.net</email> of <ulink - URL="http://www.Alameda.net">Alameda Networks</ulink> donated - <emphasis>128MB of memory</emphasis>, a <emphasis>4 Gb disk - drive and the case.</emphasis></para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para><emphasis>Direct funding:</emphasis></para> - - <para>The following individuals and businesses have generously - contributed direct funding to the project:</para> - - <itemizedlist> - <listitem> - <para>Annelise Anderson - <email>ANDRSN@HOOVER.STANFORD.EDU</email></para> - </listitem> - - <listitem> - <para>&a.dillon</para> - </listitem> - - <listitem> - <para><ulink URL="http://www.epilogue.com/">Epilogue Technology - Corporation</ulink></para> - </listitem> - - <listitem> - <para>&a.sef</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>&a.chuckr</para> - </listitem> - - <listitem> - <para>Kenneth P. Stox <email>ken@stox.sa.enteract.com</email> of - <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> of Japan - (a portion of the profits from sales of their various FreeBSD - CD-ROMs.</para> - </listitem> - - <listitem> - <para><ulink URL="http://www.mmjp.or.jp/fuki/">Fuki Shuppan - Publishing Co.</ulink> donated a portion of their profits from - <emphasis>Hajimete no FreeBSD</emphasis> (FreeBSD, Getting - started) to the FreeBSD and XFree86 projects.</para> - </listitem> - - <listitem> - <para><ulink URL="http://www.ascii.co.jp/">ASCII Corp.</ulink> - donated a portion of their profits from several FreeBSD-related - books to the FreeBSD project.</para> - </listitem> - - <listitem> - <para><ulink URL="http://www.yokogawa.co.jp/">Yokogawa Electric - Corp</ulink> has generously donated significant funding to the - FreeBSD project.</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> - - <listitem> - <para><ulink url="http://www.siemens.de/">Siemens AG</ulink> - via <ulink url="mailto:andre.albsmeier@mchp.siemens.de">Andre - Albsmeier</ulink></para> - </listitem> - - <listitem> - <para><ulink url="mailto:ras@interaccess.com">Chris Silva</ulink> - </para> - </listitem> - - </itemizedlist> - </listitem> - - <listitem> - <para><emphasis>Hardware contributors:</emphasis></para> - - <para>The following individuals and businesses have generously - contributed hardware for testing and device driver - development/support:</para> - - <itemizedlist> - <listitem> - <para>Walnut Creek CDROM for providing the Pentium P5-90 and - 486/DX2-66 EISA/VL systems that are being used for our - development work, to say nothing of the network access and other - donations of hardware resources.</para> - </listitem> - - <listitem> - <para>TRW Financial Systems, Inc. provided 130 PCs, three 68 GB - fileservers, twelve Ethernets, two routers and an ATM switch for - debugging the diskless code.</para> - </listitem> - - <listitem> - <para>Dermot McDonnell donated the Toshiba XM3401B CDROM drive - currently used in freefall.</para> - </listitem> - - <listitem> - <para>&a.chuck; contributed his floppy tape streamer for - experimental work.</para> - </listitem> - - <listitem> - <para>Larry Altneu <email>larry@ALR.COM</email>, and &a.wilko;, - provided Wangtek and Archive QIC-02 tape drives in order to - improve the <devicename>wt</devicename> driver.</para> - </listitem> - - <listitem> - <para>Ernst Winter <email>ewinter@lobo.muc.de</email> contributed - a 2.88 MB floppy drive to the project. This will hopefully - increase the pressure for rewriting the floppy disk driver. - <!-- smiley -->;-)</para> - </listitem> - - <listitem> - <para><ulink URL="http://www.tekram.com">Tekram - Technologies</ulink> sent one each of their DC-390, DC-390U - and DC-390F FAST and ULTRA SCSI host adapter cards for - regression testing of the NCR and AMD drivers with their cards. - They are also to be applauded for making driver sources for free - operating systems available from their FTP server <ulink - URL="ftp://ftp.tekram.com/scsi/FreeBSD">ftp://ftp.tekram.com/scsi/FreeBSD</ulink>.</para> - </listitem> - - <listitem> - <para><email>Larry M. Augustin</email> contributed not only a - Symbios Sym8751S SCSI card, but also a set of data books, - including one about the forthcoming Sym53c895 chip with Ultra-2 - and LVD support, and the latest programming manual with - information on how to safely use the advanced features of the - latest Symbios SCSI chips. Thanks a lot!</para> - </listitem> - - <listitem> - <para>Christoph Kukulies <email>kuku@FreeBSD.org</email> donated - an FX120 12 speed Mitsumi CDROM drive for IDE CDROM driver - development.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para><emphasis>Special contributors:</emphasis></para> - - <itemizedlist> - <listitem> - <para><ulink URL="http://www.cdrom.com">Walnut Creek CDROM</ulink> - has donated almost more than we can say (see the <link - linkend="history">history</link> document for more details). - In particular, we would like to thank them for the original - hardware used for <hostid - role="fqdn">freefall.FreeBSD.org</hostid>, our primary - development machine, and for <hostid - role="fqdn">thud.FreeBSD.org</hostid>, a testing and build - box. We are also indebted to them for funding various - contributors over the years and providing us with unrestricted - use of their T1 connection to the Internet.</para> - </listitem> - - <listitem> - <para>The <ulink URL="http://www.interface-business.de">interface - business GmbH, Dresden</ulink> has been patiently supporting - &a.joerg; who has often preferred FreeBSD work over paywork, and - used to fall back to their (quite expensive) EUnet Internet - connection whenever his private connection became too slow or - flakey to work with it...</para> - </listitem> - - <listitem> - <para><ulink URL="http://www.bsdi.com">Berkeley Software Design, - Inc.</ulink> has contributed their DOS emulator code to the - remaining BSD world, which is used in the - <emphasis>doscmd</emphasis> command.</para> - </listitem> - </itemizedlist> - </listitem> - </itemizedlist> - </sect1> - - <sect1> - <title>Core Team Alumni</title> - - <para>The following people were members of the FreeBSD core team during - the periods indicated. We thank them for their past efforts in the - service of the FreeBSD project.</para> - - <para><emphasis>In rough chronological order:</emphasis></para> - - <itemizedlist> - <listitem> - <para>&a.guido (1995 - 1999)</para> - </listitem> - - <listitem> - <para>&a.dyson (1993 - 1998)</para> - </listitem> - - <listitem> - <para>&a.nate (1992 - 1996)</para> - </listitem> - - <listitem> - <para>&a.rgrimes (1992 - 1995)</para> - </listitem> - - <listitem> - <para>Andreas Schulz (1992 - 1995)</para> - </listitem> - - <listitem> - <para>&a.csgr (1993 - 1995)</para> - </listitem> - - <listitem> - <para>&a.paul (1992 - 1995)</para> - </listitem> - - <listitem> - <para>&a.smace (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> - <title>Derived Software Contributors</title> - - <para>This software was originally derived from William F. Jolitz's 386BSD - release 0.1, though almost none of the original 386BSD specific code - remains. This software has been essentially re-implemented from the - 4.4BSD-Lite release provided by the Computer Science Research Group - (CSRG) at the University of California, Berkeley and associated academic - contributors.</para> - - <para>There are also portions of NetBSD and OpenBSD that have been - integrated into FreeBSD as well, and we would therefore like to thank - all the contributors to NetBSD and OpenBSD for their work.</para> - </sect1> - - <sect1 id="contrib-additional"> - <title>Additional FreeBSD Contributors</title> - - <para>(in alphabetical order by first name):</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@mutex.org</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>Adam Strohl <email>troll@digitalspark.net</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>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>Alex Perel <email>veers@disturbed.net</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>Alexander Langer <email>alex@cichlids.com</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 Boothman <email>andrew@cream.org</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 Fosdick <email>bfoz@glue.umd.edu</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 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 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 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>Dominik Brettnacher <email>domi@saargate.de</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>Espen Skoglund <email>espensk@stud.cs.uit.no></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 Mayhar <email>frank@exit.com</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>G. Adam Stanislav<email>adam@whizkidtech.net</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>Gordon Greeff <email>gvg@uunet.co.za</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>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>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 Kumagai <email>kuma@jp.FreeBSD.org</email></para> - </listitem> - - <listitem> - <para>HOTARU-YA <email>hotaru@tail.net</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 Burkholder <email>jake@checker.org</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@noc.dfn.d</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 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>Jose Marques <email>jose@nobody.org</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@wstein.com</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>&a.jhs</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>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>Kelly Yancey <email>kbyanc@posi.net</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 Lo<email>kevlo@hello.com.tw</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>Marc van Woerkom <email>van.woerkom@netcologne.de</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>martti.kuparinen@ericsson.com</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@ARGV.AC</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 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>Maxim V. Sobolev <email>sobomax@altavista.net</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 Sardo <email>jaeger16@yahoo.com</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>Mitsuru Yoshida <email>mitsuru@riken.go.jp</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>Motomichi Matsuzaki <email>mzaki@e-mail.ne.jp</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>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@tutrp.tut.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 Ahlstrom <email>nrahlstr@winternet.com</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>&a.nsayer;</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>Oh Junseon <email>hollywar@mail.holywar.net</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>Oleg V. Volkov <email>rover@lglobus.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>Riccardo Veraldi <email>veraldi@cs.unibo.it</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 Kiss <email>richard@homemail.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>Ryuichiro IMURA <email>imura@cs.titech.ac.jp</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>Sakai Hiroaki <email>sakai@miya.ee.kagu.sut.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>Samuele Zannoli <email>zannoli@cs.unibo.it</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>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 Mitchel <email>scott@uk.FreeBSD.org</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>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 Kosyakov <email>ks@itp.ac.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>Shigio Yamaguchi <email>shigio@tamacom.com</email></para> - </listitem> - - <listitem> - <para>Shinya Esu <email>esu@yk.rim.or.jp</email></para> - </listitem> - - <listitem> - <para>Shuichi Tanaka <email>stanaka@bb.mbn.or.jp</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 Coltrin <email>spcoltri@io.com</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>Sugimoto Sadahiro <email>ixtl@komaba.utmc.or.jp</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>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>mellon@isc.org</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 A. Stephens <email>tas@stephens.org</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 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>Tony Maher <email>tonym@angis.org.au</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>Udo Schweigert <email>ust@cert.siemens.de</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>Will Andrews <email>andrews@technologist.com</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>Yasuhito FUTATSUKI <email>futatuki@fureai.or.jp</email></para> - </listitem> - - <listitem> - <para>Yasuhiro Fukama <email>yasuf@big.or.jp</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>Yuu Yashiki <email>s974123@cc.matsuyama-u.ac.jp</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>386BSD Patch Kit Patch Contributors</title> - - <para>(in alphabetical order by first name):</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-always-quote-attributes: t - sgml-parent-document: ("../handbook.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/Makefile b/en_US.ISO8859-1/Makefile deleted file mode 100644 index 0b2210c098..0000000000 --- a/en_US.ISO8859-1/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -# $FreeBSD$ - -SUBDIR = articles -SUBDIR+= books - -COMPAT_SYMLINK = en - -DOC_PREFIX?= ${.CURDIR}/.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/en_US.ISO8859-1/articles/Makefile b/en_US.ISO8859-1/articles/Makefile deleted file mode 100644 index b35065f966..0000000000 --- a/en_US.ISO8859-1/articles/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# $FreeBSD: doc/en_US.ISO_8859-1/articles/Makefile,v 1.6 2000/02/14 01:25:14 nik Exp $ - -SUBDIR = committers-guide -SUBDIR+= dialup-firewall -SUBDIR+= diskless-x -SUBDIR+= fonts -SUBDIR+= formatting-media -SUBDIR+= mh -SUBDIR+= multi-os -SUBDIR+= new-users -SUBDIR+= programming-tools -SUBDIR+= zip-drive - -# ROOT_SYMLINKS+= new-users - -DOC_PREFIX?= ${.CURDIR}/../.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/en_US.ISO8859-1/articles/Makefile.inc b/en_US.ISO8859-1/articles/Makefile.inc deleted file mode 100644 index 68161e6d79..0000000000 --- a/en_US.ISO8859-1/articles/Makefile.inc +++ /dev/null @@ -1,5 +0,0 @@ -# -# $FreeBSD$ -# - -DESTDIR?= ${DOCDIR}/en_US.ISO_8859-1/articles/${.CURDIR:T} diff --git a/en_US.ISO8859-1/articles/committers-guide/Makefile b/en_US.ISO8859-1/articles/committers-guide/Makefile deleted file mode 100644 index a623572f3e..0000000000 --- a/en_US.ISO8859-1/articles/committers-guide/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -# -# $FreeBSD$ -# -# Build the FreeBSD New Committers Guide -# - -MAINTAINER=jhb@FreeBSD.org - -DOC?= article - -FORMATS?= 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= article.sgml - -DOC_PREFIX?= ${.CURDIR}/../../.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/en_US.ISO8859-1/articles/committers-guide/article.sgml b/en_US.ISO8859-1/articles/committers-guide/article.sgml deleted file mode 100644 index e29f3937dc..0000000000 --- a/en_US.ISO8859-1/articles/committers-guide/article.sgml +++ /dev/null @@ -1,1401 +0,0 @@ -<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> -%man; - -<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN"> -%authors; -]> - -<article> - <artheader> - <title>Committer Guide</title> - - <authorgroup> - <author> - <surname>The FreeBSD Documentation Project</surname> - </author> - </authorgroup> - - <pubdate>$Date: 2000-06-08 18:12:54 $</pubdate> - - <copyright> - <year>1999</year> - <year>2000</year> - <holder>The FreeBSD Documentation Project</holder> - </copyright> - - <abstract> - <para>Welcome, committer, to the FreeBSD development - team!</para> - - <para>The following docs are provided to orient you on doing CVS - operations on the FreeBSD central repository machine. A basic - familiarity with CVS is already assumed, although CVS - reference information, tutorials, and FAQs can also be found - at: <ulink url="http://www.cyclic.com/cyclic-pages/books.html">http://www.cyclic.com/cyclic-pages/books.html</ulink></para> - - <para>Good luck, and welcome aboard!</para> - </abstract> - </artheader> - - <sect1 id="admin"> - <title>Administrative Details</title> - - <informaltable frame="none" orient="port"> - <tgroup cols="2"> - <tbody> - <row> - <entry><emphasis>Main Repository Host</emphasis></entry> - <entry><hostid>freefall.FreeBSD.org</hostid></entry> - </row> - - <row> - <entry> - <emphasis>International Crypto Repository Host</emphasis> - </entry> - <entry><hostid>internat.FreeBSD.org</hostid></entry> - </row> - - <row> - <entry><emphasis>Login Methods</emphasis></entry> - <entry>&man.ssh.1;</entry> - </row> - - <row> - <entry><emphasis>Main CVSROOT</emphasis></entry> - <entry>/home/ncvs</entry> - </row> - - <row> - <entry><emphasis>International Crypto CVSROOT</emphasis></entry> - <entry>/home/cvs.crypt</entry> - </row> - - <row> - <entry><emphasis>Main CVS Repository Meisters</emphasis></entry> - <entry>&a.jdp; and &a.peter; as well as &a.asami; for - <filename>ports/</filename></entry> - </row> - - <row> - <entry> - <emphasis>International Crypto CVS Repository Meister</emphasis> - </entry> - <entry>&a.markm;</entry> - </row> - - <row> - <entry><emphasis>Mailing List</emphasis></entry> - <entry><email>cvs-committers@FreeBSD.org</email></entry> - </row> - - <row> - <entry><emphasis>Noteworthy CVS Tags</emphasis></entry> - <entry>RELENG_3 (3.x-STABLE), RELENG_4 (4.x-STABLE), HEAD (-CURRENT)</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>It is required that you use &man.ssh.1; or &man.telnet.1; - with Kerberos 5 to connect to the repository hosts. These are - generally more secure than plain &man.telnet.1; or - &man.rlogin.1; since credential negotiation will always be - encrypted. All traffic is encrypted by default with &man.ssh.1;. - With utilities like &man.ssh-agent.1; and &man.scp.1; also - available, &man.ssh.1; is also far more convenient. If you do - not know anything about &man.ssh.1;, please see - <xref linkend="ssh.guide">.</para> - </sect1> - - <sect1 id="cvs.operations"> - <title>CVS Operations</title> - - <para>CVS operations are usually done by logging into - <hostid>freefall</hostid>, making sure the - <envar>CVSROOT</envar> environment variable is set to - <filename>/home/ncvs</filename>, and then doing the appropriate - check-out/check-in operations. If you wish to add - something which is wholly new (like new ports, contrib-ified - sources, etc), a script called <quote>easy-import</quote> is - also provided for making the process easier. It automatically - adds the new module entry, does the appropriate thing with - <command>cvs import</command>, etc. – just run it without - arguments and it will prompt you for everything it needs to - know.</para> - - <para>If you are familiar with remote CVS and consider yourself - pretty studly with CVS in general, you can also do CVS - operations directly from your own machine and local working - sources. Just remember to set <envar>CVS_RSH</envar> to - <wordasword>ssh</wordasword> so that you are using a relatively - secure and reliable transport. If you have no idea what any of - the above even means, on the other hand, then please stick with - logging into <hostid>freefall</hostid> and applying your diffs - with &man.patch.1;.</para> - - <para>If you need to use CVS <command>add</command> and - <command>delete</command> operations in a manner that is - effectively a <quote>mv</quote> operation, then a repository - copy is in order rather than your CVS <command>add</command> and - <command>delete</command>. In a repository copy, a <link - linkend="conventions">CVS Meister</link> will copy the file(s) - to their new name and/or location and let you know when it is - done. The purpose of a repository copy is to preserve file - change history, or logs. We in the FreeBSD Project greatly - value the change history CVS gives to the project.</para> - </sect1> - - <sect1 id="conventions"> - <title>Conventions and Traditions</title> - - <para>The CVS Repository Meisters (Peter Wemm and John Polstra) - are the <quote>owners</quote> of the CVS repository and - responsible for any and <emphasis>all</emphasis> direct - modification of it for the purposes of cleanup or fixing some - grievous abuse of CVS by a committer. No one else should - attempt to touch the repository directly. Should you cause some - repository accident, say a bad cvs import or tag operation, do - <emphasis role="bold">not</emphasis> attempt to fix it yourself! - Mail or call John or Peter immediately and report the problem to - one of them instead. The only ones allowed to directly fiddle - the repository bits are the repomeisters. Satoshi Asami is also a - repomeister for the <filename>ports/</filename> portion of the - tree. Mark Murray is the repomeister for the International - Crypto Repository in South Africa.</para> - - <para>If you are a new committer, your very first commit should be - to add yourself to the developer's section (28.2) of the - Handbook and remove yourself from the Additional Contributors section - (19.6). Figuring out how to check the handbook out and add an - entry for yourself is relatively easy but still remains a good - first test of your CVS skills. If you can handle that one, - you are probably going to be ok.</para> - - <para>Your second commit should be to add an entry for yourself to - <filename>www/en/news/newsflash.sgml</filename>. Look for the other - entries that look like <quote>A new committer</quote> and follow the - format.</para> - - <para>Your next step should be to introduce yourself to the other - committers, otherwise no one will have any idea who you are or - what you are working on. You do not have to write a comprehensive - biography, just write a paragraph or two about who you are and - what you plan to be working on as a committer in FreeBSD. Email - this to <email>cvs-committers@FreeBSD.org</email> and you will be on - your way!</para> - - <para>Also, be sure to log into <hostid>hub.FreeBSD.org</hostid> - and create a - <filename>/var/forward/<replaceable>user</replaceable></filename> - (where <replaceable>user</replaceable> is your username) file - containing the e-mail address where you want mail addressed - to <replaceable>yourusername</replaceable>@FreeBSD.org - to be forwarded. This includes all of the commit messages as - well as any other mail addressed to - <email>cvs-committers@FreeBSD.org</email>. Really large - mailboxes which have taken up permanent residence on - <hostid>hub</hostid> often get <quote>accidently</quote> - truncated without warning, so forward it or read it and you will - not lose it.</para> - - <para>All new committers also have a mentor assigned to them for - the first few months. Your mentor is more or less responsible for - explaining anything which is confusing to you and is also - responsible for your actions during this initial period. If you - make a bogus commit, it is only going to embarrass your mentor - and you should probably make it a policy to pass at least your - first few commits by your mentor before committing it to the - repository.</para> - - <para>All commits should go to <literal>-CURRENT</literal> first - before being merged to <literal>-STABLE</literal>. No major new - features or high-risk modifications should be made to the - <literal>-STABLE</literal> branch.</para> - </sect1> - - <sect1 id="developer.relations"> - <title>Developer Relations</title> - - <para>If you are working directly on your own code or on code - which is already well established as your responsibility, then - there is probably little need to check with other committers - before jumping in with a commit. If you see a bug in an area of - the system which is clearly orphaned (and there are a few such - areas, to our shame), the same applies. If, however, you are - about to modify something which is clearly being actively - maintained by someone else (and it is only by watching the - <literal>cvs-committers</literal> mailing list that you can - really get a feel for just what is and is not) then consider - sending the change to them instead, just as you would have - before becoming a committer. For ports, you should contact the - listed <makevar>MAINTAINER</makevar> in the - <filename>Makefile</filename>. For other parts of the - repository, if you are unsure who the active maintainer might - be, it may help to scan the output of <command>cvs log</command> - to see who has committed changes in the past. &a.fenner; has - written a nice shell script that can help determine who the - active maintainer might be. It lists each person who has - committed to a given file along with the number of commits each - person has made. It can be found on <hostid>freefall</hostid> - at <filename>~fenner/bin/whodid</filename>. If your queries go - unanswered or the committer otherwise indicates a lack of - proprietary interest in the area affected, go ahead and commit - it.</para> - - <para>If you are at all unsure about a commit for any reason in - general, have it reviewed by <literal>-hackers</literal> first - before committing. Better to have it flamed then and there - rather than when it is part of the CVS repository. If you do - happen to commit something which results in controversy - erupting, you may also wish to consider backing the change out - again until the matter is settled. Remember – with CVS we - can always change it back.</para> - </sect1> - - <sect1 id="gnats"> - <title>GNATS</title> - - <para>The FreeBSD Project utilizes - <application>GNATS</application> for tracking bugs and change - requests. Be sure that if you commit a fix or suggestion found - in a <application>GNATS</application> PR, you use - <command>edit-pr <replaceable>pr-number</replaceable></command> - on <hostid>freefall</hostid> to close it. It is also considered - nice if you take time to close any PRs associated with your - commits, if appropriate. Your can also make use of - &man.send-pr.1; yourself for proposing any change which you feel - should probably be made, pending a more extensive peer-review - first.</para> - - <para>You can find out more about <application>GNATS</application> - at:</para> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.cs.utah.edu/csinfo/texinfo/gnats/gnats.html">http://www.cs.utah.edu/csinfo/texinfo/gnats/gnats.html</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.FreeBSD.org/support.html">http://www.FreeBSD.org/support.html</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.FreeBSD.org/send-pr.html">http://www.FreeBSD.org/send-pr.html</ulink></para> - </listitem> - - <listitem> - <para>&man.send-pr.1;</para> - </listitem> - </itemizedlist> - - <para>You can run a local copy of GNATS, and then integrate the FreeBSD - GNATS tree in to it using CVSup. Then you can run GNATS commands - locally, or us other interfaces, such as <command>tkgnats</command>. - This lets you query the PR database without needing to be connected to - the Internet.</para> - - <procedure> - <title>Using a local GNATS tree</title> - - <step> - <para>If you are not already downloading the GNATS tree, add this line - to your <filename>supfile</filename>, and re-sup.</para> - - <programlisting>gnats release=current prefix=/usr</programlisting> - - <para>This will place the FreeBSD GNATS tree in - <filename>/usr/gnats</filename>. You can use a - <emphasis>refuse</emphasis> file to control which categories to - receive. For example, to only receive <literal>docs</literal> PRs, - put this line in - <filename>/usr/local/etc/cvsup/sup/refuse</filename><footnote> - <para>The precise path depends on the <literal>*default - base</literal> setting in your - <filename>supfile</filename>.</para> - </footnote>.</para> - - <programlisting>gnats/[a-ce-z]*</programlisting> - - <para>The rest of this examples assume you have only supped the - <literal>docs</literal> category. Adjust them as necessary, - depending on the categories you are synching.</para> - </step> - - <step> - <para>Install the GNATS port from - <filename>ports/databases/gnats</filename>. This will place the - various GNATS directories under - <filename>$PREFIX/share/gnats</filename>.</para> - </step> - - <step> - <para>Symlink the GNATS directories you are supping under the version - of GNATS you have installed.</para> - - <screen>&prompt.root; <userinput>cd /usr/local/share/gnats/gnats-db</userinput> -&prompt.root; <userinput>ln -s /usr/gnats/docs</userinput></screen> - - <para>Repeat as necessary, depending on how many GNATS categories you - are synching.</para> - </step> - - <step> - <para>Update the GNATS <filename>categories</filename> file with these - cageories. The file is - <filename>$PREFIX/share/gnats/gnats-db/gnats-adm/categories</filename>.</para> - - <programlisting># This category is mandatory -pending:Category for faulty PRs:gnats-admin: -# -# FreeBSD categories -# -docs:Documentation Bug:nik:</programlisting> - </step> - - <step> - <para>Run <filename>$PREFIX/libexec/gnats/gen-index</filename> to - recreate the GNATS index. The output has to be redirected to - <filename>$PREFIX/share/gnats/gnats-db/gnats-adm/index</filename>. - You can do this periodically from &man.cron.8;, or run &man.cvsup.1; - from a shell script that does this as well.</para> - - <screen>&prompt.root; <userinput>/usr/local/libexec/gnats/gen-index \ - > /usr/local/share/gnats/gnats-db/gnats-adm/index</userinput></screen> - </step> - - <step> - <para>Test the configuration by querying the PR database. This - command shows open <literal>docs</literal> PRs.</para> - - <screen>&prompt.root; <userinput>query-pr -c docs -s open</userinput></screen> - - <para>Other interfaces, like - <filename>ports/databases/tkgnats</filename> should also work - nicely.</para> - </step> - - <step> - <para>Pick a PR and close it.</para> - </step> - </procedure> - - <note> - <para>This procedure only works to allow you to view and query the PRs - locally. To edit or close them you will still have to log in to - <hostid>freefall</hostid> and do it from there.</para> - </note> - </sect1> - - <sect1 id="people"> - <title>Who's Who</title> - - <para>Besides Peter Wemm and John Polstra, the repository - meisters, there are other FreeBSD project members whom you will - probably get to know in your role as a committer. Briefly, - and by no means all-inclusively, these are:</para> - - <variablelist> - <varlistentry> - <term>&a.asami;</term> - - <listitem> - <para>Satoshi is the Ports Wraith, meaning that he has - ultimate authority over any modifications to the ports - collection or the ports skeleton makefiles. He is also - the one responsible for administering ports freezes before - the releases.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.bde;</term> - - <listitem> - <para>Bruce is the Obersturmbahnfuhrer of the Style Police. - When you do a commit that could have been done better, - Bruce will be there to tell you. Be thankful that someone - is.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.dg;</term> - - <listitem> - <para>David is our principal architect and overseer of the - VM system. If you have a VM system change in mind, - coordinate it with David. Should you become locked in a - bitter, intractable dispute with some other committer over - a proposed change (which does not happen very often, - thankfully) then an appeal to David to put on his P.A. hat - and make a final decision might be necessary.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.jkh;</term> - - <listitem> - <para>Jordan is the release engineer. He is responsible for - setting release deadlines and controlling the release - process. During code freezes, he also has final authority - on all changes to the system for whichever branch is - pending release status. If there is something you want - merged from <literal>-CURRENT</literal> to - <literal>-STABLE</literal> (whatever values those may have - at any given time), he is also the one to talk to about - it.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.markm;</term> - <listitem> - <para>Mark is the CVS repository meister for the - international crypto repository kept on - <hostid>internat.FreeBSD.org</hostid> in South Africa.</para> - - <para>Mark also oversees most of the crypto code; if you have - any crypto updates, please ask Mark first.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.steve;</term> - - <listitem> - <para>Steve is the unofficial maintainer of - <filename>src/bin</filename>. If you have something - significant you'd like to do there, you should probably - coordinate it with Steve first. He is also a Problem - Report-meister, along with &a.phk;.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.brian;</term> - - <listitem> - <para>Official maintainer of - <filename>/usr/bin/ppp</filename> and LPD.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.wollman;</term> - - <listitem> - <para>If you need advice on obscure network internals or - aren't sure of some potential change to the networking - subsystem you have in mind, Garrett is someone to talk - to.</para> - </listitem> - </varlistentry> - </variablelist> - </sect1> - - <sect1 id="ssh.guide"> - <title>SSH Quick-Start Guide</title> - - <procedure> - <step> - <para>Update and install one of the SSH ports. In general, - you will probably want to get OpenSSH from the port in - <filename>/usr/ports/security/openssh</filename>. You - may also wish to check out the original ssh1 in - <filename>/usr/ports/security/ssh</filename>, but make - certain you pay attention to its license. Note that both - of these ports cannot be installed at the same time.</para> - </step> - - <step> - <para>If you do not wish to to type your password in every - time you use &man.ssh.1;, and you use RSA keys to - authenticate, &man.ssh-agent.1; is there for your - convenience. If you want to use &man.ssh-agent.1;, make - sure that you run it before running other applications. X - users, for example, usually do this from their - <filename>.xsession</filename> or - <filename>.xinitrc</filename> file. See &man.ssh-agent.1; - for details.</para> - </step> - - <step> - <para>Generate a key pair using &man.ssh-keygen.1;. The key - pair will wind up in the - <filename><envar>$HOME</envar>/.ssh</filename> - directory.</para> - </step> - - <step> - <para>Send your public key - (<filename><envar>$HOME</envar>/.ssh/identity.pub</filename>) - to the person setting you up as a committer so it can be put - into your <filename>authorized_keys</filename> file in your - home directory on <hostid>freefall</hostid> - (i.e. - <filename><envar>$HOME</envar>/.ssh/authorized_keys</filename>). - </para> - </step> - </procedure> - - <para>Now you should be able to use &man.ssh-add.1; for - authentication once per session. This will prompt you for - your private key's pass phrase, and then store it in your - authentication agent (&man.ssh-agent.1;). If you no longer - wish to have your key stored in the agent, issuing - <command>ssh-add -d</command> will remove it.</para> - - <para>Test by doing something such as <command>ssh - freefall.FreeBSD.org ls /usr</command>.</para> - - <para>For more information, see - <filename>/usr/ports/security/openssh</filename>, &man.ssh.1;, - &man.ssh-add.1;, &man.ssh-agent.1;, &man.ssh-keygen.1;, and - &man.scp.1;.</para> - </sect1> - - <sect1> - <title>The FreeBSD Committers' Big List of Rules</title> - - <orderedlist> - <listitem> - <para>Respect other committers.</para> - </listitem> - - <listitem> - <para>Discuss any significant change - <emphasis>before</emphasis> committing.</para> - </listitem> - - <listitem> - <para>Respect existing maintainers if listed in the - (<makevar>MAINTAINER</makevar> field in - <filename>Makefile</filename> or in the - <filename>MAINTAINER</filename> file in the top-level - directory).</para> - </listitem> - - <listitem> - <para>Never touch the repository directly. Ask a - Repomeister.</para> - </listitem> - - <listitem> - <para>Any disputed change must be backed out pending - resolution of the dispute if requested by a maintainer or - the Principal Architect. Security related changes may - override a maintainer's wishes at the Security Officer's - discretion.</para> - </listitem> - - <listitem> - <para>Changes go to <literal>-CURRENT</literal> before - <literal>-STABLE</literal> unless specifically permitted by - the release engineer or unless they're not applicable to - <literal>-CURRENT</literal>. Any non-trivial or non-urgent - change which is applicable should also be allowed to sit in - <literal>-CURRENT</literal> for at least 3 days before - merging so that it can be given sufficient testing. The - release engineer has the same authority over the - <literal>-STABLE</literal> branch as outlined for the - Principal Architect in rule #5.</para> - </listitem> - - <listitem> - <para>Don't fight in public with other committers; it looks - bad. If you must <quote>strongly disagree</quote> about - something, do so only in private.</para> - </listitem> - - <listitem> - <para>Respect all code freezes and read the - <literal>committers</literal> mailing list on a timely basis - so you know when a code freeze is in effect.</para> - </listitem> - - <listitem> - <para>When in doubt on any procedure, ask first!</para> - </listitem> - - <listitem> - <para>Test your changes before committing them.</para> - </listitem> - </orderedlist> - - <para>As noted, breaking some of these rules can be grounds for - suspension or, upon repeated offense, permanent removal of - commit privileges. Three or more members of core, or the - Principal Architect and another member of core acting in unison, - have the power to temporarily suspend commit privileges until - <literal>-core</literal> as a whole has the chance to review the - issue. In case of an <quote>emergency</quote> (a committer - doing damage to the repository), a temporary suspension may also - be done by the repository meisters or any other member of core - who may happen to be awake at the time. Only core as a whole - has the authority to suspend commit privileges for any - significant length of time or to remove them permanently, the - latter generally only being done after consultation with - committers. This rule does not exist to set core up as a bunch - of cruel dictators who can dispose of committers as casually as - empty soda cans, but to give the project a kind of safety fuse. - If someone is seriously out of control, it's important to be - able to deal with this immediately rather than be paralyzed by - debate. In all cases, a committer whose privileges are - suspended or revoked is entitled to a <quote>hearing</quote>, - the total duration of the suspension being determined at that - time. A committer whose privileges are suspended may also - request a review of the decision after 30 days and every 30 days - thereafter (unless the total suspension period is less than 30 - days). A committer whose privileges have been revoked entirely - may request a review after a period of 6 months have elapsed. - This review policy is <emphasis>strictly informal</emphasis> - and, in all cases, core reserves the right to either act on or - disregard requests for review if they feel their original - decision to be the right one.</para> - - <para>In all other aspects of project operation, core is a subset - of committers and is bound by the <emphasis>same - rules</emphasis>. Just because someone is in core doesn't mean - that they have special dispensation to step outside of any of - the lines painted here; core's <quote>special powers</quote> - only kick in when it acts as a group, not on an individual - basis. As individuals, we are all committers first and core - second.</para> - - <sect2> - <title>Details</title> - - <orderedlist> - <listitem> - <para>Respect other committers.</para> - - <para>This means that you need to treat other committers as - the peer-group developers that they are. Despite our - occasional attempts to prove the contrary, one doesn't get - into committers by being stupid and nothing rankles more - than being treated that way by one of your peers. Whether - we always feel respect for one another or not (and - everyone has off days), we still have to - <emphasis>treat</emphasis> other committers with respect - at all times or the whole team structure rapidly breaks - down.</para> - - <para>Being able to work together long term is this project's - greatest asset, one far more important than any set of - changes to the code, and turning arguments about code into - issues that affect our long-term ability to work - harmoniously together is just not worth the trade-off by - any conceivable stretch of the imagination.</para> - - <para>To comply with this rule, don't send email when you're - angry or otherwise behave in a manner which is likely to - strike others as needlessly confrontational. First calm - down, then think about how to communicate in the most - effective fashion for convincing the other person(s) that - your side of the argument is correct, don't just blow off - some steam so you can feel better in the short term at the - cost of a long-term flame war. Not only is this very bad - <quote>energy economics</quote>, but repeated displays of - public aggression which impair our ability to work well - together will be dealt with severely by the project - leadership and may result in suspension or termination of - your commit privileges. That's never an option which the - project's leadership enjoys in the slightest, but unity - comes first. No amount of code or good advice is worth - trading that away.</para> - </listitem> - - <listitem> - <para>Discuss any significant change - <emphasis>before</emphasis> committing.</para> - - <para>The CVS repository is not where changes should be - initially submitted for correctness or argued over, that - should happen first in the mailing lists and then - committed only once something resembling consensus has - been reached. This doesn't mean that you have to ask - permission before correcting every obvious syntax error or - man page misspelling, simply that you should try to - develop a feel for when a proposed change isn't quite such - a no-brainer and requires some feedback first. People - really don't mind sweeping changes if the result is - something clearly better than what they had before, they - just don't like being <emphasis>surprised</emphasis> by - those changes. The very best way of making sure that - you're on the right track is to have your code reviewed by - one or more other committers.</para> - - <para>When in doubt, ask for review!</para> - </listitem> - - <listitem> - <para>Respect existing maintainers if listed.</para> - - <para>Many parts of FreeBSD aren't <quote>owned</quote> in - the sense that any specific individual will jump up and - yell if you commit a change to <quote>their</quote> area, - but it still pays to check first. One convention we use - is to put a maintainer line in the - <filename>Makefile</filename> for any package or subtree - which is being actively maintained by one or more people; - see <ulink - url="http://www.FreeBSD.org/handbook/policies.html">http://www.FreeBSD.org/handbook/policies.html</ulink> - for documentation on this. Where sections of code have - several maintainers, commits to affected areas by one - maintainer need to be reviewed by at least one other - maintainer. In cases where the - <quote>maintainer-ship</quote> of something isn't clear, - you can also look at the CVS logs for the file(s) in - question and see if someone has been working recently or - predominantly in that area.</para> - - <para>Other areas of FreeBSD fall under the control of - someone who manages an overall category of FreeBSD - evolution, such as internationalization or networking. - See <ulink url="http://www.FreeBSD.org/handbook/staff-who.html">http://www.FreeBSD.org/handbook/staff-who.html</ulink> - for more information on this.</para> - </listitem> - - <listitem> - <para>Never touch the repository directly. Ask a - Repomeister.</para> - - <para>This is pretty clear - you're not allowed to make - direct modifications to the CVS repository, period. In - case of difficulty, ask one of the repository meisters by - sending mail to <email>cvs@FreeBSD.org</email> and simply - wait for them to fix the problem and get back to you. Do - not attempt to fix the problem yourself!</para> - - <para>If you're thinking about putting down a tag or doing a - new import of code on a vendor branch, you might also find - it useful to ask for advice first. A lot of people get - this wrong the first few times and the consequences are - expensive in terms of files touched and angry CVSup/CTM - folks who are suddenly getting a lot of changes sent over - unnecessarily.</para> - </listitem> - - <listitem> - <para>Any disputed change must be backed out pending - resolution of the dispute if requested by a maintainer or - the Principal Architect. Security related changes may - override a maintainer's wishes at the Security Officer's - discretion.</para> - - <para>This may be hard to swallow in times of conflict (when - each side is convinced that they're in the right, of - course) but CVS makes it unnecessary to have an ongoing - dispute raging when it's far easier to simply reverse the - disputed change, get everyone calmed down again and then - try and figure out how best to proceed. If the change - turns out to be the best thing after all, it can be easily - brought back. If it turns out not to be, then the users - didn't have to live with the bogus change in the tree - while everyone was busily debating its merits. People - very very rarely call for back-outs in the repository - since discussion generally exposes bad or controversial - changes before the commit even happens, but on such rare - occasions the back-out should be done without argument so - that we can get immediately on to the topic of figuring - out whether it was bogus or not.</para> - </listitem> - - <listitem> - <para>Changes go to <literal>-CURRENT</literal> before - <literal>-STABLE</literal> unless specifically permitted - by the release engineer or unless they're not applicable - to <literal>-CURRENT</literal>. Any non-trivial or - non-urgent change which is applicable should also be - allowed to sit in <literal>-CURRENT</literal> for at least - 3 days before merging so that it can be given sufficient - testing. The release engineer has the same authority over - the <literal>-STABLE</literal> branch as outlined in rule - #5.</para> - - <para>This is another <quote>don't argue about it</quote> - issue since it's the release engineer who is ultimately - responsible (and gets beaten up) if a change turns out to - be bad. Please respect this and give the release engineer - your full cooperation when it comes to the - <literal>-STABLE</literal> branch. The management of - <literal>-STABLE</literal> may frequently seem to be - overly conservative to the casual observer, but also bear - in mind the fact that conservatism is supposed to be the - hallmark of <literal>-STABLE</literal> and different rules - apply there than in <literal>-CURRENT</literal>. There's - also really no point in having <literal>-CURRENT</literal> - be a testing ground if changes are merged over to - <literal>-STABLE</literal> immediately. Changes need a - chance to be tested by the <literal>-CURRENT</literal> - developers, so allow some time to elapse before merging - unless the <literal>-STABLE</literal> fix is critical, - time sensitive or so obvious as to make further testing - unnecessary (spelling fixes to manpages, obvious bug/typo - fixes, etc.) In other words, apply common sense.</para> - </listitem> - - <listitem> - <para>Don't fight in public with other committers; it looks - bad. If you must <quote>strongly disagree</quote> about - something, do so only in private.</para> - - <para>This project has a public image to uphold and that - image is very important to all of us, especially if we are - to continue to attract new members. There will be - occasions when, despite everyone's very best attempts at - self-control, tempers are lost and angry words are - exchanged, and the best we can do is try and minimize the - effects of this until everyone has cooled back down. That - means that you should not air your angry words in public - and you should not forward private correspondence to - public mailing lists or aliases. What people say - one-to-one is often much less sugar-coated than what they - would say in public, and such communications therefore - have no place there - they only serve to inflame an - already bad situation. If the person sending you a - flame-o-gram at least had the grace to send it privately, - then have the grace to keep it private yourself. If you - feel you are being unfairly treated by another developer, - and it is causing you anguish, bring the matter up with - core rather than taking it public. We will do our best to - play peace makers and get things back to sanity. In cases - where the dispute involves a change to the codebase and - the participants do not appear to be reaching an amicable - agreement, core may appoint a mutually-agreeable 3rd party - to resolve the dispute. All parties involved must then - agree to be bound by the decision reached by this 3rd - party.</para> - </listitem> - - <listitem> - <para>Respect all code freezes and read the - <literal>committers</literal> mailing list on a timely - basis so you know when they are.</para> - - <para>Committing changes during a code freeze is a really - big mistake and committers are expected to keep up-to-date - on what's going on before jumping in after a long absence - and committing 10 megabytes worth of accumulated stuff. - People who abuse this on a regular basis will have their - commit privileges suspended until they get back from the - FreeBSD Happy Reeducation Camp we run in Greenland.</para> - </listitem> - - <listitem> - <para>When in doubt on any procedure, ask first!</para> - - <para>Many mistakes are made because someone is in a hurry - and just assumes they know the right way of doing - something. If you have not done it before, chances are - good that you do not actually know the way we do things - and really need to ask first or you are going to - completely embarrass yourself in public. There's no shame - in asking <quote>how in the heck do I do this?</quote> We - already know you are an intelligent person; otherwise, you - would not be a committer.</para> - </listitem> - - <listitem> - <para>Test your changes before committing them.</para> - - <para>This may sound obvious, but if it really were so - obvious then we probably wouldn't see so many cases of - people clearly not doing this. If your changes are to the - kernel, make sure you can still compile both GENERIC and - LINT. If your changes are anywhere else, make sure you - can still make world. If your changes are to a branch, - make sure your testing occurs with a machine which is - running that code. If you have a change which also may - break another architecture, be sure and test on all - supported architectures. Currently, this is only the x86 - and the alpha so it's pretty easy to do. If you need to - test on the AXP, your account on <hostid - role="fqdn">beast.FreeBSD.org</hostid> will let you - compile and test alpha binaries/kernels/etc. As other - architectures are added to the FreeBSD supported platforms - list, the appropriate shared testing resources will be - made available.</para> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Other Suggestions</title> - - <para>When committing documentation changes, use a spell checker - before committing. :) For all SGML docs, you should also - verify that your formatting directives are correct by running - <command>make lint</command>.</para> - - <para>For all on-line manual pages, run <command>manck</command> - (from ports) over the man page to verify the all of the cross - references and file references are correct and that the man - page has all of the appropriate <makevar>MLINK</makevar>s - installed.</para> - - <para>Do not mix style fixes with new functionality. A style - fix is any change which does not modify the functionality of - the code. Mixing the changes ofucsates the functionality - change when using <command>cvs diff</command>, which can hide - any new bugs. Do not include whitespace changes with content - changes in commits to <filename>doc/</filename> or - <filename>www/</filename>. The extra clutter in the diffs - makes the translators' job much more difficult. Instead, make - any style or whitespace changes in seperate commits that are - clearly labeled as such in the commit message.</para> - </sect2> - </sect1> - - <sect1> - <title>Ports Specific FAQ</title> - - <qandaset> - <qandadiv> - <title>Importing a New Port</title> - - <qandaentry> - <question> - <para>How do I import a new port?</para> - </question> - - <answer> - <para>First, please read the section about repository - copy.</para> - - <para>The easiest way to import a new port is to use the - <command>easy-import</command> script on - <hostid>freefall</hostid>. It will ask you some - questions and import the port in the directory you - specify. It will also add an entry to the - <filename>CVSROOT/modules</filename> file. It was - written by &a.joerg; so please send mail to him if you - have questions about - <command>easy-import</command>.</para> - - <para>One thing it will not do for you is add the port to - the parent (category) <filename>Makefile</filename>. - You have to do that yourself.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Any other things I need to know when I import a new - port?</para> - </question> - - <answer> - <para>Check the port, preferably to make sure it compiles - and packages correctly. This is the recommended - sequence:</para> - - <screen>&prompt.root; <userinput>make install</userinput> -&prompt.root; <userinput>make package</userinput> -&prompt.root; <userinput>make deinstall</userinput> -&prompt.root; <userinput>pkg_add <replaceable>package you built above</replaceable></userinput> -&prompt.root; <userinput>make deinstall</userinput> -&prompt.root; <userinput>make reinstall</userinput> -&prompt.root; <userinput>make package</userinput> - </screen> - - <para>The - <ulink url="../porters-handbook/index.html">Porters - Handbook</ulink> contains more detailed - instructions.</para> - - <para>Use &man.portlint.1; to check the syntax of the port. - You don't necessarily have to eliminate all warnings but - make sure you have fixed the simple ones.</para> - - <para>If the port came from a submitter who has not - contributed to the project before, add that person's - name to the Handbook's <citetitle - pubwork="section">Additional Contributors</citetitle> - section.</para> - - <para>Close the PR if the port came in as a PR. To close - a PR, just do - <userinput>edit-pr <replaceable>PR#</replaceable></userinput> - on <hostid>freefall</hostid> and change the - <varname>state</varname> from <constant>open</constant> - to <constant>closed</constant>. You will be asked to - enter a log message and then you are done.</para> - </answer> - </qandaentry> - </qandadiv> - - <qandadiv> - <title>Repository Copies</title> - - <qandaentry> - <question> - <para>When do we need a repository copy?</para> - </question> - - <answer> - <para>When you want to import a port that is related to - any port that is already in the tree in a separate - directory, please send mail to the ports manager asking - about it. Here <wordasword>related</wordasword> means - it is a different version or a slightly modified - version. Examples are - <filename>print/ghostscript*</filename> (different - versions) and <filename>x11-wm/windowmaker*</filename> - (English-only and internationalized version).</para> - - <para>Another example is when a port is moved from one - subdirectory to another, or when you want to change the - name of a directory because the author(s) renamed their - software even though it is a - descendant of a port already in a tree.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>When do we <emphasis>not</emphasis> need a - repository copy?</para> - </question> - - <answer> - <para>When there is no history to preserve. If a port is - imported into a wrong category and is moved immediately, - it suffices to simply <command>cvs remove</command> the - old one and <command>cvs import</command> the new - one.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>What do I need to do?</para> - </question> - - <answer> - <para>Send mail to the ports manager, who will do a copy - from the old location/name to the new location/name. - You will then get a notice, at which point you are - expected to perform the following:</para> - - <procedure> - <step> - <para><command>cvs remove</command> the old port (if - necessary)</para> - </step> - - <step> - <para>Adjust the parent (category) - <filename>Makefile</filename></para> - </step> - - <step> - <para>Update <filename>CVSROOT/modules</filename></para> - </step> - - <step> - <para>If other ports depend on the updated port, - change their <filename>Makefile</filename>s' - dependency lines</para> - </step> - - <step> - <para>If the port changed categories, modify the - <makevar>CATEGORIES</makevar> line of the port's - <filename>Makefile</filename> accordingly</para> - </step> - </procedure> - </answer> - </qandaentry> - </qandadiv> - - <qandadiv> - <title>Ports Freeze</title> - - <qandaentry> - <question> - <para>What is a <quote>ports freeze</quote>?</para> - </question> - - <answer> - <para>Before a release, it is necessary to restrict - commits to the ports tree for a short period of time - while the packages and the release itself are being - built. This is to ensure consistency among the various - parts of the release, and is called the <quote>ports - freeze</quote>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>How long is a ports freeze?</para> - </question> - - <answer> - <para>Usually two to three days.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>What does it mean to me?</para> - </question> - - <answer> - <para>During the ports freeze, you are not allowed to - commit anything to the tree without explicit approval - from the ports manager. <quote>Explicit - approval</quote> here means either of the - following:</para> - - <itemizedlist> - <listitem> - <para>You asked the ports manager and got a reply - saying, <quote>Go ahead and commit - it.</quote></para> - </listitem> - - <listitem> - <para>The ports manager sent a mail to you or the - mailing lists during the ports freeze pointing out - that the port is broken and has to be fixed.</para> - </listitem> - </itemizedlist> - - <para>Note that you do not have implicit permission to fix - a port during the freeze just because it is - broken.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>How do I know when the ports freeze starts?</para> - </question> - - <answer> - <para>The ports manager will send out warning messages to - the <email>freebsd-ports@FreeBSD.org</email> and - <email>cvs-committers@FreeBSD.org</email> mailing lists - announcing the start of the impending release, usually - two or three weeks in advance. The exact starting time - will not be determined until a few days before the - actual release. This is because the ports freeze has to - be synchronized with the release, and it is usually not - known until then when exactly the release will be - rolled.</para> - - <para>When the freeze starts, there will be another - announcement to the - <email>cvs-committers@FreeBSD.org</email> list, of - course.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>How do I know when the ports freeze ends?</para> - </question> - - <answer> - <para>A few hours after the release, the ports manager - will send out a mail to the - <email>freebsd-ports@FreeBSD.org</email> and - <email>cvs-committers@FreeBSD.org</email> mailing lists - announcing the end of the ports freeze. Note that the - release being cut does not automatically end the freeze. - We have to make sure there will not be any last minute - snafus that result in an immediate re-rolling of the - release.</para> - </answer> - </qandaentry> - </qandadiv> - - <qandadiv> - <title>Miscellaneous Questions</title> - - <qandaentry> - <question> - <para>How do I know if my port is building correctly or - not?</para> - </question> - - <answer> - <para>First, go check - <ulink url="http://bento.FreeBSD.org/~asami/errorlogs/">http://bento.FreeBSD.org/~asami/errorlogs/</ulink>. - - There you will find error logs from the latest package - building runs on 3-stable and 4-current.</para> - - <para>However, just because the port doesn't show up there - doesn't mean it's building correctly. (One of the - dependencies may have failed, for instance.) Here are - the relevant directories on bento, so feel free to dig - around.</para> - - <programlisting> /a/asami/portbuild/3/errors error logs from latest 3-stable run - /logs all logs from latest 3-stable run - /packages packages from latest 3-stable run - /bak/errors error logs from last complete 3-stable run - /bak/logs all logs from last complete 3-stable run - /bak/packages packages from last complete 3-stable run - /4/errors error logs from latest 4-current run - /logs all logs from latest 4-current run - /packages packages from latest 4-current run - /bak/errors error logs from last complete 4-current run - /bak/logs all logs from last complete 4-current run - /bak/packages packages from last complete 4-current run - </programlisting> - - <para>Basically, if the port shows up in - <filename>packages</filename>, or it is in - <filename>logs</filename> but not in - <filename>errors</filename>, it built fine. (The - <filename>errors</filename> directories are what you get - from the web page.)</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I added a new port. Do I need to add it to the - <filename>INDEX</filename>?</para> - </question> - - <answer> - <para>No. The ports manager will regenerate the - <filename>INDEX</filename> and commit it every few - days.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Are there any other files I'm not allowed to - touch?</para> - </question> - - <answer> - <para>Any file directly under <filename>ports/</filename>, or - any file under a subdirectory that starts with an - uppercase letter (<filename>Mk/</filename>, - <filename>Tools/</filename>, etc.). In particular, the - ports manager is very protective of - <filename>ports/Mk/bsd.port*.mk</filename> so don't - commit changes to those files unless you want to face his - wra(i)th.</para> - </answer> - </qandaentry> - </qandadiv> - </qandaset> - </sect1> - - <sect1> - <title>Miscellaneous Questions</title> - - <qandaset> - <qandaentry> - <question> - <para>Why are trivial or cosmetic changes to files on a vendor - branch a bad idea?</para> - </question> - - <answer> - <para>The RCS file format is quite braindead and certain - operations to achieve things for CVS are hideously - expensive for the repository. Making changes to files on - a vendor branch, thereby pulling the file off that branch, - is one example of this.</para> - - <para>Suppose you have a file which was first imported on a - vendor branch, and was then re-imported three times (still - on the vendor branch) as the vendor makes updates to the - file.</para> - - <segmentedlist> - <seglistitem> - <seg>1.1.1.1</seg> - <seg>vendor import</seg> - </seglistitem> - - <seglistitem> - <seg>1.1.1.2</seg> - <seg>vendor import, +1000, -500 lines</seg> - </seglistitem> - - <seglistitem> - <seg>1.1.1.3</seg> - <seg>vendor import, +2000, -500 lines</seg> - </seglistitem> - - <seglistitem> - <seg>1.1.1.4</seg> - <seg>vendor import, +1000, -1000 lines</seg> - </seglistitem> - </segmentedlist> - - <para>Now suppose that one of the FreeBSD committers makes a - one line change to this file, causing it to go to version - 1.2. This causes it to leave the branch, resulting in - 4,001 lines being added to the file's history, and 2,001 - lines being deleted.</para> - - <para>This is because the 1.2 delta is stored relative to - 1.1.1.1, <emphasis>not</emphasis> 1.1.1.4, and so the - entire vendor history is duplicated in the 1.2 delta. - Now, repeat this for 2000 files in a large directory, it - adds up a lot.</para> - - <para><emphasis>This</emphasis> is why we have such - <quote>hands off</quote> policies for - <filename>src/contrib</filename> and other things that - track the vendor releases. This is why <quote>typo - fixes</quote> in man pages and spelling - <quote>corrections</quote> are so strongly discouraged for - vendor code.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>How do I add a new file to a CVS branch?</para> - </question> - - <answer> - <para>To add a file onto a branch, simply checkout or update - to the branch you want to add to and then add the file using - <command>cvs add</command> as you normally would. For - example, if you wanted to MFC the file - <filename>src/sys/alpha/include/smp.h</filename> from HEAD - to RELENG_4 and it does not exist in RELENG_4 yet, you would - use the following steps:</para> - - <example> - <title>MFC'ing a New File</title> - - <screen>&prompt.user; <userinput>cd sys/alpha/include</userinput> -&prompt.user; <userinput>cvs update -rRELENG_4</userinput> -cvs update: Updating . -U clockvar.h -U console.h -... -&prompt.user; <userinput>cvs update -kk -Ap smp.h > smp.h</userinput> -=================================================================== -Checking out smp.h -RCS: /usr/cvs/src/sys/alpha/include/smp.h,v -VERS: 1.1 -*************** -&prompt.user; <userinput>cvs add smp.h</userinput> -cvs add: scheduling file `smp.h' for addition on branch `RELENG_4' -cvs add: use 'cvs commit' to add this file permanently -&prompt.user; <userinput>cvs commit</userinput> - </screen> - </example> - </answer> - </qandaentry> - </qandaset> - </sect1> -</article> diff --git a/en_US.ISO8859-1/articles/contributing/article.sgml b/en_US.ISO8859-1/articles/contributing/article.sgml deleted file mode 100644 index a9326bee0e..0000000000 --- a/en_US.ISO8859-1/articles/contributing/article.sgml +++ /dev/null @@ -1,6011 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/contrib/chapter.sgml,v 1.229 2000/06/19 09:30:36 assar Exp $ ---> - -<chapter id="contrib"> - <title>Contributing to FreeBSD</title> - - <para><emphasis>Contributed by &a.jkh;.</emphasis></para> - - <para>So you want to contribute something to FreeBSD? That is great! We can - always use the help, and FreeBSD is one of those systems that - <emphasis>relies</emphasis> on the contributions of its user base in order - to survive. Your contributions are not only appreciated, they are vital - to FreeBSD's continued growth!</para> - - <para>Contrary to what some people might also have you believe, you do not - need to be a hot-shot programmer or a close personal friend of the FreeBSD - core team in order to have your contributions accepted. The FreeBSD - Project's development is done by a large and growing number of - international contributors whose ages and areas of technical expertise - vary greatly, and there is always more work to be done than there are - people available to do it.</para> - - <para>Since the FreeBSD project is responsible for an entire operating - system environment (and its installation) rather than just a kernel or a - few scattered utilities, our <filename>TODO</filename> list also spans a - very wide range of tasks, from documentation, beta testing and - presentation to highly specialized types of kernel development. No matter - what your skill level, there is almost certainly something you can do to - help the project!</para> - - <para>Commercial entities engaged in FreeBSD-related enterprises are also - encouraged to contact us. Need a special extension to make your product - work? You will find us receptive to your requests, given that they are not - too outlandish. Working on a value-added product? Please let us know! We - may be able to work cooperatively on some aspect of it. The free software - world is challenging a lot of existing assumptions about how software is - developed, sold, and maintained throughout its life cycle, and we urge you - to at least give it a second look.</para> - - <sect1 id="contrib-what"> - <title>What is Needed</title> - - <para>The following list of tasks and sub-projects represents something of - an amalgam of the various core team <filename>TODO</filename> lists and - user requests we have collected over the last couple of months. Where - possible, tasks have been ranked by degree of urgency. If you are - interested in working on one of the tasks you see here, send mail to the - coordinator listed by clicking on their names. If no coordinator has - been appointed, maybe you would like to volunteer?</para> - - <sect2> - <title>High priority tasks</title> - - <para>The following tasks are considered to be urgent, usually because - they represent something that is badly broken or sorely needed:</para> - - <orderedlist> - <listitem> - <para>3-stage boot issues. Overall coordination: &a.hackers;</para> - - <itemizedlist> - <listitem> - <para>Do WinNT compatible drive tagging so that the 3rd stage - can provide an accurate mapping of BIOS geometries for - disks.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Filesystem problems. Overall coordination: &a.fs;</para> - - <itemizedlist> - <listitem> - <para>Clean up and document the nullfs filesystem code. - Coordinator: &a.eivind;</para> - </listitem> - - <listitem> - <para>Fix the union file system. Coordinator: &a.dg;</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Implement Int13 vm86 disk driver. Coordinator: - &a.hackers;</para> - </listitem> - - <listitem> - <para>New bus architecture. Coordinator: &a.newbus;</para> - - <itemizedlist> - <listitem> - <para>Port existing ISA drivers to new architecture.</para> - </listitem> - - <listitem> - <para>Move all interrupt-management code to appropriate parts of - the bus drivers.</para> - </listitem> - - <listitem> - <para>Port PCI subsystem to new architecture. Coordinator: - &a.dfr;</para> - </listitem> - - <listitem> - <para>Figure out the right way to handle removable devices and - then use that as a substrate on which PC-Card and CardBus - support can be implemented.</para> - </listitem> - - <listitem> - <para>Resolve the probe/attach priority issue once and for - all.</para> - </listitem> - - <listitem> - <para>Move any remaining buses over to the new - architecture.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Kernel issues. Overall coordination: &a.hackers;</para> - </listitem> - - <listitem> - <para>Add more pro-active security infrastructure. Overall - coordination: &a.security;</para> - - <itemizedlist> - <listitem> - <para>Build something like Tripwire(TM) into the kernel, with a - remote and local part. There are a number of cryptographic - issues to getting this right; contact the coordinator for - details. Coordinator: &a.eivind;</para> - </listitem> - - <listitem> - <para>Make the entire kernel use <literal>suser()</literal> - instead of comparing to 0. It is presently using about half - of each. Coordinator: &a.eivind;</para> - </listitem> - - <listitem> - <para>Split securelevels into different parts, to allow an - administrator to throw away those privileges he can throw - away. Setting the overall securelevel needs to have the same - effect as now, obviously. Coordinator: &a.eivind;</para> - </listitem> - - <listitem> - <para>Make it possible to upload a list of <quote>allowed - program</quote> to BPF, and then block BPF from accepting other - programs. This would allow BPF to be used e.g. for DHCP, - without allowing an attacker to start snooping the local - network.</para> - </listitem> - - <listitem> - <para>Update the security checker script. We should at least - grab all the checks from the other BSD derivatives, and add - checks that a system with securelevel increased also have - reasonable flags on the relevant parts. Coordinator: - &a.eivind;</para> - </listitem> - - <listitem> - <para>Add authorization infrastructure to the kernel, to allow - different authorization policies. Part of this could be done - by modifying <literal>suser()</literal>. Coordinator: - &a.eivind;</para> - </listitem> - - <listitem> - <para>Add code to the NFS layer so that you cannot - <literal>chdir("..")</literal> out of an NFS partition. E.g., - <filename>/usr</filename> is a UFS partition with - <filename>/usr/src</filename> NFS exported. Now it is - possible to use the NFS filehandle for - <filename>/usr/src</filename> to get access to - <filename>/usr</filename>.</para> - </listitem> - </itemizedlist> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Medium priority tasks</title> - - <para>The following tasks need to be done, but not with any particular - urgency:</para> - - <orderedlist> - <listitem> - <para>Full KLD based driver support/Configuration Manager.</para> - - <itemizedlist> - <listitem> - <para>Write a configuration manager (in the 3rd stage boot?) - that probes your hardware in a sane manner, keeps only the - KLDs required for your hardware, etc.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>PCMCIA/PCCARD. Coordinators: &a.msmith; and &a.imp;</para> - - <itemizedlist> - <listitem> - <para>Documentation!</para> - </listitem> - - <listitem> - <para>Reliable operation of the pcic driver (needs - testing).</para> - </listitem> - - <listitem> - <para>Recognizer and handler for <filename>sio.c</filename> - (mostly done).</para> - </listitem> - - <listitem> - <para>Recognizer and handler for <filename>ed.c</filename> - (mostly done).</para> - </listitem> - - <listitem> - <para>Recognizer and handler for <filename>ep.c</filename> - (mostly done).</para> - </listitem> - - <listitem> - <para>User-mode recognizer and handler (partially done).</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Advanced Power Management. Coordinators: &a.msmith; and - &a.phk;</para> - - <itemizedlist> - <listitem> - <para>APM sub-driver (mostly done).</para> - </listitem> - - <listitem> - <para>IDE/ATA disk sub-driver (partially done).</para> - </listitem> - - <listitem> - <para>syscons/pcvt sub-driver.</para> - </listitem> - - <listitem> - <para>Integration with the PCMCIA/PCCARD drivers - (suspend/resume).</para> - </listitem> - </itemizedlist> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Low priority tasks</title> - - <para>The following tasks are purely cosmetic or represent such an - investment of work that it is not likely that anyone will get them - done anytime soon:</para> - - <para>The first N items are from Terry Lambert - <email>terry@lambert.org</email></para> - - <orderedlist> - <listitem> - <para>NetWare Server (protected mode ODI driver) loader and - sub-services to allow the use of ODI card drivers supplied with - network cards. The same thing for NDIS drivers and NetWare SCSI - drivers.</para> - </listitem> - - <listitem> - <para>An "upgrade system" option that works on Linux boxes instead - of just previous rev FreeBSD boxes.</para> - </listitem> - - <listitem> - <para>Symmetric Multiprocessing with kernel preemption (requires - kernel preemption).</para> - </listitem> - - <listitem> - <para>A concerted effort at support for portable computers. This is - somewhat handled by changing PCMCIA bridging rules and power - management event handling. But there are things like detecting - internal v.s.. external display and picking a different screen - resolution based on that fact, not spinning down the disk if the - machine is in dock, and allowing dock-based cards to disappear - without affecting the machines ability to boot (same issue for - PCMCIA).</para> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Smaller tasks</title> - - <para>Most of the tasks listed in the previous sections require either a - considerable investment of time or an in-depth knowledge of the - FreeBSD kernel (or both). However, there are also many useful tasks - which are suitable for "weekend hackers", or people without - programming skills.</para> - - <orderedlist> - <listitem> - <para>If you run FreeBSD-current and have a good Internet - connection, there is a machine <hostid - role="fqdn">current.FreeBSD.org</hostid> which builds a full - release once a day — every now and again, try and install - the latest release from it and report any failures in the - process.</para> - </listitem> - - <listitem> - <para>Read the freebsd-bugs mailing list. There might be a - problem you can comment constructively on or with patches you - can test. Or you could even try to fix one of the problems - yourself.</para> - </listitem> - - <listitem> - <para>Read through the FAQ and Handbook periodically. If anything - is badly explained, out of date or even just completely wrong, let - us know. Even better, send us a fix (SGML is not difficult to - learn, but there is no objection to ASCII submissions).</para> - </listitem> - - <listitem> - <para>Help translate FreeBSD documentation into your native language - (if not already available) — just send an email to &a.doc; - asking if anyone is working on it. Note that you are not - committing yourself to translating every single FreeBSD document - by doing this — in fact, the documentation most in need of - translation is the installation instructions.</para> - </listitem> - - <listitem> - <para>Read the freebsd-questions mailing list and &ng.misc - occasionally (or even regularly). It can be very satisfying to - share your expertise and help people solve their problems; - sometimes you may even learn something new yourself! These forums - can also be a source of ideas for things to work on.</para> - </listitem> - - <listitem> - <para>If you know of any bug fixes which have been successfully - applied to -current but have not been merged into -stable after a - decent interval (normally a couple of weeks), send the committer a - polite reminder.</para> - </listitem> - - <listitem> - <para>Move contributed software to <filename>src/contrib</filename> - in the source tree.</para> - </listitem> - - <listitem> - <para>Make sure code in <filename>src/contrib</filename> is up to - date.</para> - </listitem> - - <listitem> - <para>Look for year 2000 bugs (and fix any you find!)</para> - </listitem> - - <listitem> - <para>Build the source tree (or just part of it) with extra warnings - enabled and clean up the warnings.</para> - </listitem> - - <listitem> - <para>Fix warnings for ports which do deprecated things like using - gets() or including malloc.h.</para> - </listitem> - - <listitem> - <para>If you have contributed any ports, send your patches back to - the original author (this will make your life easier when they - bring out the next version)</para> - </listitem> - - <listitem> - <para>Suggest further tasks for this list!</para> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Work through the PR database</title> - - <para>The <ulink - url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">FreeBSD PR - list</ulink> shows all the current active problem reports and - requests for enhancement that have been submitted by FreeBSD users. - Look through the open PRs, and see if anything there takes your - interest. Some of these might be very simple tasks, that just need an - extra pair of eyes to look over them and confirm that the fix in the - PR is a good one. Others might be much more complex.</para> - - <para>Start with the PRs that have not been assigned to anyone else, but - if one them is assigned to someone else, but it looks like something - you can handle, e-mail the person it is assigned to and ask if you can - work on it—they might already have a patch ready to be tested, - or further ideas that you can discuss with them.</para> - </sect2> - </sect1> - - <sect1 id="contrib-how"> - <title>How to Contribute</title> - - <para>Contributions to the system generally fall into one or more of the - following 6 categories:</para> - - <sect2 id="contrib-general"> - <title>Bug reports and general commentary</title> - - <para>An idea or suggestion of <emphasis>general</emphasis> technical - interest should be mailed to the &a.hackers;. Likewise, people with - an interest in such things (and a tolerance for a - <emphasis>high</emphasis> volume of mail!) may subscribe to the - hackers mailing list by sending mail to &a.majordomo;. See <link - linkend="eresources-mail">mailing lists</link> for more information - about this and other mailing lists.</para> - - <para>If you find a bug or are submitting a specific change, please - report it using the &man.send-pr.1; program or its <ulink - url="http://www.FreeBSD.org/send-pr.html">WEB-based - equivalent</ulink>. Try to fill-in each field of the bug report. - Unless they exceed 65KB, include any patches directly in the report. - When including patches, <emphasis>do not</emphasis> use cut-and-paste - because cut-and-paste turns tabs into spaces and makes them unusable. - Consider compressing patches and using &man.uuencode.1; if they exceed - 20KB. Upload very large submissions to <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming/">ftp.FreeBSD.org:/pub/FreeBSD/incoming/</ulink>.</para> - - <para>After filing a report, you should receive confirmation along with - a tracking number. Keep this tracking number so that you can update - us with details about the problem by sending mail to - <email>bug-followup@FreeBSD.org</email>. Use the number as the - message subject, e.g. <literal>"Re: kern/3377"</literal>. Additional - information for any bug report should be submitted this way.</para> - - <para>If you do not receive confirmation in a timely fashion (3 days to - a week, depending on your email connection) or are, for some reason, - unable to use the &man.send-pr.1; command, then you may ask - someone to file it for you by sending mail to the &a.bugs;.</para> - </sect2> - - <sect2> - <title>Changes to the documentation</title> - - <para>Changes to the documentation are overseen by the &a.doc;. Send - submissions and changes (even small ones are welcome!) using - <command>send-pr</command> as described in <link - linkend="contrib-general">Bug Reports and General - Commentary</link>.</para> - </sect2> - - <sect2> - <title>Changes to existing source code</title> - - <para>An addition or change to the existing source code is a somewhat - trickier affair and depends a lot on how far out of date you are with - the current state of the core FreeBSD development. There is a special - on-going release of FreeBSD known as <quote>FreeBSD-current</quote> - which is made available in a variety of ways for the convenience of - developers working actively on the system. See <link - linkend="current">Staying current with FreeBSD</link> for more - information about getting and using FreeBSD-current.</para> - - <para>Working from older sources unfortunately means that your changes - may sometimes be too obsolete or too divergent for easy re-integration - into FreeBSD. Chances of this can be minimized somewhat by - subscribing to the &a.announce; and the &a.current; lists, where - discussions on the current state of the system take place.</para> - - <para>Assuming that you can manage to secure fairly up-to-date sources - to base your changes on, the next step is to produce a set of diffs to - send to the FreeBSD maintainers. This is done with the &man.diff.1; - command, with the <quote>context diff</quote> form - being preferred. For example:</para> - - <para> - <screen>&prompt.user; <userinput>diff -c oldfile newfile</userinput></screen> - - or - - <screen>&prompt.user; <userinput>diff -c -r olddir newdir</userinput></screen> - - would generate such a set of context diffs for the given source file - or directory hierarchy. See the man page for &man.diff.1; for more - details.</para> - - <para>Once you have a set of diffs (which you may test with the - &man.patch.1; command), you should submit them for inclusion with - FreeBSD. Use the &man.send-pr.1; program as described in <link - linkend="contrib-general">Bug Reports and General Commentary</link>. - <emphasis>Do not</emphasis> just send the diffs to the &a.hackers; or - they will get lost! We greatly appreciate your submission (this is a - volunteer project!); because we are busy, we may not be able to - address it immediately, but it will remain in the pr database until we - do.</para> - - <para>If you feel it appropriate (e.g. you have added, deleted, or - renamed files), bundle your changes into a <command>tar</command> file - and run the &man.uuencode.1; program on it. Shar archives are also - welcome.</para> - - <para>If your change is of a potentially sensitive nature, e.g. you are - unsure of copyright issues governing its further distribution or you - are simply not ready to release it without a tighter review first, - then you should send it to &a.core; directly rather than submitting it - with &man.send-pr.1;. The core mailing list reaches a much smaller - group of people who do much of the day-to-day work on FreeBSD. Note - that this group is also <emphasis>very busy</emphasis> and so you - should only send mail to them where it is truly necessary.</para> - - <para>Please refer to <command>man 9 intro</command> and <command>man 9 - style</command> for some information on coding style. We would - appreciate it if you were at least aware of this information before - submitting code.</para> - </sect2> - - <sect2> - <title>New code or major value-added packages</title> - - <para>In the rare case of a significant contribution of a large body - work, or the addition of an important new feature to FreeBSD, it - becomes almost always necessary to either send changes as uuencoded - tar files or upload them to our ftp site <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming/">ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming/</ulink>.</para> - - <para>When working with large amounts of code, the touchy subject of - copyrights also invariably comes up. Acceptable copyrights for code - included in FreeBSD are:</para> - - <orderedlist> - <listitem> - <para>The BSD copyright. This copyright is most preferred due to - its <quote>no strings attached</quote> nature and general - attractiveness to commercial enterprises. Far from discouraging - such commercial use, the FreeBSD Project actively encourages such - participation by commercial interests who might eventually be - inclined to invest something of their own into FreeBSD.</para> - </listitem> - - <listitem> - <para>The GNU Public License, or <quote>GPL</quote>. This license is - not quite as popular with us due to the amount of extra effort - demanded of anyone using the code for commercial purposes, but - given the sheer quantity of GPL'd code we currently require - (compiler, assembler, text formatter, etc) it would be silly to - refuse additional contributions under this license. Code under - the GPL also goes into a different part of the tree, that being - <filename>/sys/gnu</filename> or - <filename>/usr/src/gnu</filename>, and is therefore easily - identifiable to anyone for whom the GPL presents a problem.</para> - </listitem> - </orderedlist> - - <para>Contributions coming under any other type of copyright must be - carefully reviewed before their inclusion into FreeBSD will be - considered. Contributions for which particularly restrictive - commercial copyrights apply are generally rejected, though the authors - are always encouraged to make such changes available through their own - channels.</para> - - <para>To place a <quote>BSD-style</quote> copyright on your work, include - the following text at the very beginning of every source code file you - wish to protect, replacing the text between the <literal>%%</literal> - with the appropriate information.</para> - - <programlisting> -Copyright (c) %%proper_years_here%% - %%your_name_here%%, %%your_state%% %%your_zip%%. - All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer as - the first lines of this file unmodified. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY %%your_name_here%% ``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 %%your_name_here%% 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 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - $Id$</programlisting> - - <para>For your convenience, a copy of this text can be found in - <filename>/usr/share/examples/etc/bsd-style-copyright</filename>.</para> - </sect2> - - <sect2> - <title>Money, Hardware or Internet access</title> - - <para>We are always very happy to accept donations to further the cause - of the FreeBSD Project and, in a volunteer effort like ours, a little - can go a long way! Donations of hardware are also very important to - expanding our list of supported peripherals since we generally lack - the funds to buy such items ourselves.</para> - - <sect3> - <title><anchor id="donations">Donating funds</title> - - <para>While the FreeBSD Project is not a 501(c)(3) (charitable) - corporation and hence cannot offer special tax incentives for any - donations made, any such donations will be gratefully accepted on - behalf of the project by FreeBSD, Inc.</para> - - <para>FreeBSD, Inc. was founded in early 1995 by &a.jkh; and &a.dg; - with the goal of furthering the aims of the FreeBSD Project and - giving it a minimal corporate presence. Any and all funds donated - (as well as any profits that may eventually be realized by FreeBSD, - Inc.) will be used exclusively to further the project's - goals.</para> - - <para>Please make any checks payable to FreeBSD, Inc., sent in care of - the following address:</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>(currently using the Walnut Creek CDROM address until a PO box - can be opened)</para> - - <para>Wire transfers may also be sent directly to:</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>Routing #: 121-000-358</otheraddr> - <otheraddr>Account #: 01411-07441 (FreeBSD, Inc.)</otheraddr> - </address> - - <para>Any correspondence related to donations should be sent to &a.jkh, - either via email or to the FreeBSD, Inc. postal address given above. - </para> - - <para>If you do not wish to be listed in our <link - linkend="donors">donors</link> section, please specify this when - making your donation. Thanks!</para> - </sect3> - - <sect3> - <title>Donating hardware</title> - - <para>Donations of hardware in any of the 3 following categories are - also gladly accepted by the FreeBSD Project:</para> - - <itemizedlist> - <listitem> - <para>General purpose hardware such as disk drives, memory or - complete systems should be sent to the FreeBSD, Inc. address - listed in the <emphasis>donating funds</emphasis> - section.</para> - </listitem> - - <listitem> - <para>Hardware for which ongoing compliance testing is desired. - We are currently trying to put together a testing lab of all - components that FreeBSD supports so that proper regression - testing can be done with each new release. We are still lacking - many important pieces (network cards, motherboards, etc) and if - you would like to make such a donation, please contact &a.dg; - for information on which items are still required.</para> - </listitem> - - <listitem> - <para>Hardware currently unsupported by FreeBSD for which you - would like to see such support added. Please contact the - &a.core; before sending such items as we will need to find a - developer willing to take on the task before we can accept - delivery of new hardware.</para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>Donating Internet access</title> - - <para>We can always use new mirror sites for FTP, WWW or - <command>cvsup</command>. If you would like to be such a mirror, - please contact the FreeBSD project administrators - <email>hubs@FreeBSD.org</email> for more information.</para> - </sect3> - </sect2> - </sect1> - - <sect1 id="donors"> - <title>Donors Gallery</title> - - <para>The FreeBSD Project is indebted to the following donors and would - like to publicly thank them here!</para> - - <itemizedlist> - <listitem> - <para><emphasis>Contributors to the central server - project:</emphasis></para> - - <para>The following individuals and businesses made it possible for - the FreeBSD Project to build a new central server machine to - eventually replace <hostid role="fqdn">freefall.FreeBSD.org</hostid> - by donating the following items:</para> - - <itemizedlist> - <listitem> - <para>&a.mbarkah and his employer, <ulink url="http://www.hemi.com/"> - Hemisphere Online</ulink>, donated a <emphasis>Pentium Pro - (P6) 200Mhz CPU</emphasis></para> - </listitem> - - <listitem> - <para><ulink url="http://www.asacomputers.com/">ASA - Computers</ulink> donated a <emphasis>Tyan 1662 - motherboard</emphasis>.</para> - </listitem> - - <listitem> - <para>Joe McGuckin <email>joe@via.net</email> of <ulink - url="http://www.via.net/">ViaNet Communications</ulink> donated - a <emphasis>Kingston ethernet controller.</emphasis></para> - </listitem> - - <listitem> - <para>Jack O'Neill <email>jack@diamond.xtalwind.net</email> - donated an <emphasis>NCR 53C875 SCSI controller - card</emphasis>.</para> - </listitem> - - <listitem> - <para>Ulf Zimmermann <email>ulf@Alameda.net</email> of <ulink - url="http://www.Alameda.net/">Alameda Networks</ulink> donated - <emphasis>128MB of memory</emphasis>, a <emphasis>4 Gb disk - drive and the case.</emphasis></para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para><emphasis>Direct funding:</emphasis></para> - - <para>The following individuals and businesses have generously - contributed direct funding to the project:</para> - - <itemizedlist> - <listitem> - <para>Annelise Anderson - <email>ANDRSN@HOOVER.STANFORD.EDU</email></para> - </listitem> - - <listitem> - <para>&a.dillon</para> - </listitem> - - <listitem> - <para><ulink url="http://www.bluemountain.com/">Blue Mountain - Arts</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.epilogue.com/">Epilogue Technology - Corporation</ulink></para> - </listitem> - - <listitem> - <para>&a.sef</para> - </listitem> - - <listitem> - <para><ulink url="http://www.gta.com/">Global Technology - Associates, Inc</ulink></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>&a.chuckr</para> - </listitem> - - <listitem> - <para>Kenneth P. Stox <email>ken@stox.sa.enteract.com</email> of - <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> of Japan - (a portion of the profits from sales of their various FreeBSD - CDROMs).</para> - </listitem> - - <listitem> - <para><ulink url="http://www.mmjp.or.jp/fuki/">Fuki Shuppan - Publishing Co.</ulink> donated a portion of their profits from - <emphasis>Hajimete no FreeBSD</emphasis> (FreeBSD, Getting - started) to the FreeBSD and XFree86 projects.</para> - </listitem> - - <listitem> - <para><ulink url="http://www.ascii.co.jp/">ASCII Corp.</ulink> - donated a portion of their profits from several FreeBSD-related - books to the FreeBSD project.</para> - </listitem> - - <listitem> - <para><ulink url="http://www.yokogawa.co.jp/">Yokogawa Electric - Corp</ulink> has generously donated significant funding to the - FreeBSD project.</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> - - <listitem> - <para><ulink url="http://www.siemens.de/">Siemens AG</ulink> - via <ulink url="mailto:andre.albsmeier@mchp.siemens.de">Andre - Albsmeier</ulink></para> - </listitem> - - <listitem> - <para><ulink url="mailto:ras@interaccess.com">Chris Silva</ulink> - </para> - </listitem> - - </itemizedlist> - </listitem> - - <listitem> - <para><emphasis>Hardware contributors:</emphasis></para> - - <para>The following individuals and businesses have generously - contributed hardware for testing and device driver - development/support:</para> - - <itemizedlist> - <listitem> - <para>Walnut Creek CDROM for providing the Pentium P5-90 and - 486/DX2-66 EISA/VL systems that are being used for our - development work, to say nothing of the network access and other - donations of hardware resources.</para> - </listitem> - - <listitem> - <para>TRW Financial Systems, Inc. provided 130 PCs, three 68 GB - fileservers, twelve Ethernets, two routers and an ATM switch for - debugging the diskless code.</para> - </listitem> - - <listitem> - <para>Dermot McDonnell donated the Toshiba XM3401B CDROM drive - currently used in freefall.</para> - </listitem> - - <listitem> - <para>&a.chuck; contributed his floppy tape streamer for - experimental work.</para> - </listitem> - - <listitem> - <para>Larry Altneu <email>larry@ALR.COM</email>, and &a.wilko;, - provided Wangtek and Archive QIC-02 tape drives in order to - improve the <devicename>wt</devicename> driver.</para> - </listitem> - - <listitem> - <para>Ernst Winter <email>ewinter@lobo.muc.de</email> contributed - a 2.88 MB floppy drive to the project. This will hopefully - increase the pressure for rewriting the floppy disk driver. - <!-- smiley -->;-)</para> - </listitem> - - <listitem> - <para><ulink url="http://www.tekram.com/">Tekram - Technologies</ulink> sent one each of their DC-390, DC-390U - and DC-390F FAST and ULTRA SCSI host adapter cards for - regression testing of the NCR and AMD drivers with their cards. - They are also to be applauded for making driver sources for free - operating systems available from their FTP server <ulink - url="ftp://ftp.tekram.com/scsi/FreeBSD/">ftp://ftp.tekram.com/scsi/FreeBSD/</ulink>.</para> - </listitem> - - <listitem> - <para>Larry M. Augustin contributed not only a - Symbios Sym8751S SCSI card, but also a set of data books, - including one about the forthcoming Sym53c895 chip with Ultra-2 - and LVD support, and the latest programming manual with - information on how to safely use the advanced features of the - latest Symbios SCSI chips. Thanks a lot!</para> - </listitem> - - <listitem> - <para>Christoph Kukulies <email>kuku@FreeBSD.org</email> donated - an FX120 12 speed Mitsumi CDROM drive for IDE CDROM driver - development.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para><emphasis>Special contributors:</emphasis></para> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.cdrom.com/">Walnut Creek CDROM</ulink> - has donated almost more than we can say (see the <link - linkend="history">history</link> document for more details). - In particular, we would like to thank them for the original - hardware used for <hostid - role="fqdn">freefall.FreeBSD.org</hostid>, our primary - development machine, and for <hostid - role="fqdn">thud.FreeBSD.org</hostid>, a testing and build - box. We are also indebted to them for funding various - contributors over the years and providing us with unrestricted - use of their T1 connection to the Internet.</para> - </listitem> - - <listitem> - <para>The <ulink url="http://www.interface-business.de/">interface - business GmbH, Dresden</ulink> has been patiently supporting - &a.joerg; who has often preferred FreeBSD work over paid work, and - used to fall back to their (quite expensive) EUnet Internet - connection whenever his private connection became too slow or - flaky to work with it...</para> - </listitem> - - <listitem> - <para><ulink url="http://www.bsdi.com/">Berkeley Software Design, - Inc.</ulink> has contributed their DOS emulator code to the - remaining BSD world, which is used in the - <emphasis>doscmd</emphasis> command.</para> - </listitem> - </itemizedlist> - </listitem> - </itemizedlist> - </sect1> - - <sect1 id="contrib-corealumni"> - <title>Core Team Alumni</title> - - <para>The following people were members of the FreeBSD core team during - the periods indicated. We thank them for their past efforts in the - service of the FreeBSD project.</para> - - <para><emphasis>In rough chronological order:</emphasis></para> - - <itemizedlist> - <listitem> - <para>&a.jdp (1997 - 2000)</para> - </listitem> - - <listitem> - <para>&a.guido (1995 - 1999)</para> - </listitem> - - <listitem> - <para>&a.dyson (1993 - 1998)</para> - </listitem> - - <listitem> - <para>&a.nate (1992 - 1996)</para> - </listitem> - - <listitem> - <para>&a.rgrimes (1992 - 1995)</para> - </listitem> - - <listitem> - <para>Andreas Schulz (1992 - 1995)</para> - </listitem> - - <listitem> - <para>&a.csgr (1993 - 1995)</para> - </listitem> - - <listitem> - <para>&a.paul (1992 - 1995)</para> - </listitem> - - <listitem> - <para>&a.smace (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-derived"> - <title>Derived Software Contributors</title> - - <para>This software was originally derived from William F. Jolitz's 386BSD - release 0.1, though almost none of the original 386BSD specific code - remains. This software has been essentially re-implemented from the - 4.4BSD-Lite release provided by the Computer Science Research Group - (CSRG) at the University of California, Berkeley and associated academic - contributors.</para> - - <para>There are also portions of NetBSD and OpenBSD that have been - integrated into FreeBSD as well, and we would therefore like to thank - all the contributors to NetBSD and OpenBSD for their work.</para> - </sect1> - - <sect1 id="contrib-additional"> - <title>Additional FreeBSD Contributors</title> - - <para>(in alphabetical order by first name):</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@mutex.org</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>Adam Strohl <email>troll@digitalspark.net</email></para> - </listitem> - - <listitem> - <para>Adoal Xu <email>adoal@iname.com</email></para> - </listitem> - - <listitem> - <para>Adrian Chadd <email>adrian@FreeBSD.org</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>Alec Wolman <email>wolman@cs.washington.edu</email></para> - </listitem> - - <listitem> - <para>Aled Morris <email>aledm@routers.co.uk</email></para> - </listitem> - - <listitem> - <para>Aleksandr A Babaylov <email>.@babolo.ru</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>Alex Perel <email>veers@disturbed.net</email></para> - </listitem> - - <listitem> - <para>Alex Varju <email>varju@webct.com</email></para> - </listitem> - - <listitem> - <para>Alexander B. Povolotsky <email>tarkhil@mgt.msk.ru</email></para> - </listitem> - - <listitem> - <para>Alexander Gelfenbain <email>mail@gelf.com</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 Bowhill <email>bowhill@bowhill.vservers.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>anders@fix.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 Boothman <email>andrew@cream.org</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 L. Neporada <email>andrew@chg.ru</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 Novikov <email>andrey@novikov.com</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>Anton N. Bruesov <email>antonz@library.ntu-kpi.kiev.ua</email></para> - </listitem> - - <listitem> - <para>Antti Kaipila <email>anttik@iki.fi</email></para> - </listitem> - - <listitem> - <para>arci <email>vega@sophia.inria.fr</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>Arindum Mukerji <email>rmukerji@execpc.com</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>Arun Sharma <email>adsharma@sharmas.dhs.org</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>Benno Rice <email>benno@netizen.com.au</email></para> - </listitem> - - <listitem> - <para>Berend de Boer <email>berend@pobox.com</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 Wilcox <email>bob@obiwan.uucp</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 Faulkner <email>faulkner@mpd.tandem.com</email></para> - </listitem> - - <listitem> - <para>Boyd R. Faulkner <email>faulkner@asgard.bga.com</email></para> - </listitem> - - <listitem> - <para>Brad Hendrickse <email>bradh@uunet.co.za</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 Fosdick <email>bfoz@glue.umd.edu</email></para> - </listitem> - - <listitem> - <para>Brandon Gillespie <email>brandon@roguetrader.com</email></para> - </listitem> - - <listitem> - <para>&a.wlloyd</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.runet.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 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>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@scientech.com</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>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 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@mips.inka.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>Cliff Rowley <email>dozprompt@onsea.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>Dai Ishijima <email>ishijima@tri.pref.osaka.jp</email></para> - </listitem> - - <listitem> - <para>Daisuke Watanabe <email>NU7D-WTNB@asahi-net.or.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 Papasian <email>bugg@bugg.strangled.net</email></para> - </listitem> - - <listitem> - <para>Dan Piponi <email>wmtop@tanelorn.demon.co.uk</email></para> - </listitem> - - <listitem> - <para>Dan Walters <email>hannibal@cyberstation.net</email></para> - </listitem> - - <listitem> - <para>Daniel Hagan - <email>dhagan@cs.vt.edu</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 Harris - <email>dannyboy@dannyboy.eyep.net</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>unknown</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>der Mouse <email>mouse@Collatz.McRCIM.McGill.EDU</email></para> - </listitem> - - <listitem> - <para>Derek Inksetter <email>derek@saidev.com</email></para> - </listitem> - - <listitem> - <para>DI. Christian Gusenbauer - <email>cg@scotty.edvz.uni-linz.ac.at</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>Dominik Brettnacher <email>domi@saargate.de</email></para> - </listitem> - - <listitem> - <para>Dominik Rother <email>dr@domix.de</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>Doug@gorean.org</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 Chuang <email>edwardc@firebird.org.tw</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>Edwin Mons <email>e@ik.nu</email></para> - </listitem> - - <listitem> - <para>Ege Rekk <email>aagero@aage.priv.no</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>Eoin Lawless <email>eoin@maths.tcd.ie</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 H. Bakke <email>erikhb@bgnett.no</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>Espen Skoglund <email>esk@ira.uka.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>Eugeny Kuzakov <email>CoreDumped@lab321.ru</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 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>Frank Volf <email>volf@oasis.IAEhv.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>G. Adam Stanislav<email>adam@whizkidtech.net</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>Gianlorenzo Masini <email>masini@uniroma3.it</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>Giles Lean <email>giles@nemeton.com.au</email></para> - </listitem> - - <listitem> - <para>Ginga Kawaguti - <email>ginga@amalthea.phys.s.u-tokyo.ac.jp</email></para> - </listitem> - - <listitem> - <para>Giorgos Keramidas <email>keramida@ceid.upatras.gr</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>Gordon Greeff <email>gvg@uunet.co.za</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 Robinson <email>greg@rosevale.com.au</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>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>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>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>HONDA Yasuhiro - <email>honda@kashio.info.mie-u.ac.jp</email></para> - </listitem> - - <listitem> - <para>Horance Chou - <email>horance@freedom.ie.cycu.edu.tw</email></para> - </listitem> - - <listitem> - <para>Horihiro Kumagai <email>kuma@jp.FreeBSD.org</email></para> - </listitem> - - <listitem> - <para>HOSOBUCHI Noriyuki <email>hoso@buchi.tama.or.jp</email></para> - </listitem> - - <listitem> - <para>HOTARU-YA <email>hotaru@tail.net</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>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>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>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>IWASHITA Yoji <email>shuna@pop16.odn.ne.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@photino.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 da Silva <email>jds@cs.umd.edu</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>Jamie Heckford <email>jamie@jamiesdomain.co.uk</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 Brown <email>jabrown@caida.org</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>Jeff Palmer <email>jeff@isni.net</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@noc.dfn.d</email></para> - </listitem> - - <listitem> - <para>Jeremy Allison <email>jallison@whistle.com</email></para> - </listitem> - - <listitem> - <para>Jeremy Chadwick <email>yoshi@parodius.com</email></para> - </listitem> - - <listitem> - <para>Jeremy Chatfield <email>jdc@xinside.com</email></para> - </listitem> - - <listitem> - <para>Jeremy Prior <email>unknown</email></para> - </listitem> - - <listitem> - <para>Jeremy Shaffner <email>jeremy@external.org</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 Bloom <email>bloom@acm.org</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 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>jsutton@bbcon.com.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 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 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>Jose Marques <email>jose@nobody.org</email></para> - </listitem> - - <listitem> - <para>Josef Grosch - <email>jgrosch@superior.mooseriver.com</email></para> - </listitem> - - <listitem> - <para>Joseph Stein <email>joes@wstein.com</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>&a.jhs</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>Justas <email>justas@mbank.lv</email></para> - </listitem> - - <listitem> - <para>K.Higashino <email>a00303@cc.hc.keio.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 Tsuguru <email>tkato@prontomail.ne.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>Kelly Yancey <email>kbyanc@posi.net</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 Lo<email>kevlo@hello.com.tw</email></para> - </listitem> - - <listitem> - <para>Kevin Meltzer <email>perlguy@perlguy.com</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>Kiril Mitev <email>kiril@ideaglobal.com</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>Kris Dow <email>kris@vilnya.demon.co.uk</email></para> - </listitem> - - <listitem> - <para>KUNISHIMA Takeo <email>kunishi@c.oka-pu.ac.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>Larry Altneu <email>larry@ALR.COM</email></para> - </listitem> - - <listitem> - <para>Lars Köller - <email>Lars.Koeller@Uni-Bielefeld.DE</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>Lowell Gilbert <email>lowell@world.std.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.ab.ca</email></para> - </listitem> - - <listitem> - <para>M.C. Wong <email>unknown</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>MANTANI Nobutaka <email>nobutaka@nobutaka.com</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>Marc van Woerkom <email>van.woerkom@netcologne.de</email></para> - </listitem> - - <listitem> - <para>Marcin Cieslak <email>saper@system.pl</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 Ovens - <email>mark@dogma.freebsd-uk.eu.org</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>Markus Holmberg <email>saska@acc.umu.se</email></para> - </listitem> - - <listitem> - <para>Martin Birgmeier</para> - </listitem> - - <listitem> - <para>Martin Blapp <email>blapp@attic.ch</email></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 Minkus <email>diskiller@cnbinc.com</email></para> - </listitem> - - <listitem> - <para>Martin Renters <email>martin@tdc.on.ca</email></para> - </listitem> - - <listitem> - <para>Martti Kuparinen - <email>martti.kuparinen@ericsson.com</email></para> - </listitem> - - <listitem> - <para>Mas.TAKEMURA <email>unknown</email></para> - </listitem> - - <listitem> - <para>Masachika ISHIZUKA - <email>ishizuka@isis.min.ntt.jp</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@ARGV.AC</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 Heckaman <email>matt@LUCIDA.QC.CA</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 Stein <email>matt@bdd.net</email></para> - </listitem> - - <listitem> - <para>Matthew West <email>mwest@uct.ac.za</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 Lucas <email>mwlucas@blackhelicopters.org</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 Sardo <email>jaeger16@yahoo.com</email></para> - </listitem> - - <listitem> - <para>Michael Searle <email>searle@longacre.demon.co.uk</email></para> - </listitem> - - <listitem> - <para>Michael Urban <email>murban@tznet.com</email></para> - </listitem> - - <listitem> - <para>Michael Vasilenko <email>acid@stu.cn.ua</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>MIHIRA Sanpei Yoshiro <email>sanpei@sanpei.org</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 Barcroft <email>mike@q9media.com</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 Harding <email>mvh@ix.netcom.com</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 Sherwood <email>mike@fate.com</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>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>Mitsuru Yoshida <email>mitsuru@riken.go.jp</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>MOROHOSHI Akihiko <email>moro@race.u-tokyo.ac.jp</email></para> - </listitem> - - <listitem> - <para>Mostyn Lewis <email>mostyn@mrl.com</email></para> - </listitem> - - <listitem> - <para>Motomichi Matsuzaki <email>mzaki@e-mail.ne.jp</email></para> - </listitem> - - <listitem> - <para>Motoyuki Kasahara <email>m-kasahr@sra.co.jp</email></para> - </listitem> - - <listitem> - <para>N.G.Smith <email>ngs@sesame.hensa.ac.uk</email></para> - </listitem> - - <listitem> - <para>Nadav Eiron <email>nadav@barcode.co.il</email></para> - </listitem> - - <listitem> - <para>NAGAO Tadaaki <email>nagao@cs.titech.ac.jp</email></para> - </listitem> - - <listitem> - <para>NAKAJI Hiroyuki - <email>nakaji@tutrp.tut.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>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 Ahlstrom <email>nrahlstr@winternet.com</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>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 Johnson <email>freebsd@spatula.net</email></para> - </listitem> - - <listitem> - <para>&a.nsayer;</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>NIIMI Satoshi <email>sa2c@and.or.jp</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>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>frf@xocolatl.com</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>No Name <email>ZW6T-KND@j.asahi-net.or.jp</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>NOKUBI Hirotaka <email>h-nokubi@yyy.or.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>Oh Junseon <email>hollywar@mail.holywar.net</email></para> - </listitem> - - <listitem> - <para>Olaf Wagner <email>wagner@luthien.in-berlin.de</email></para> - </listitem> - - <listitem> - <para>Oleg Semyonov <email>os@altavista.net</email></para> - </listitem> - - <listitem> - <para>Oleg Sharoiko <email>os@rsu.ru</email></para> - </listitem> - - <listitem> - <para>Oleg V. Volkov <email>rover@lglobus.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 Hausen <email>unknown</email></para> - </listitem> - - <listitem> - <para>Patrick Seal <email>patseal@hyperhost.net</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 M. Lambert <email>plambert@plambert.net</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 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>Priit Järv <email>priit@cc.ttu.ee</email></para> - </listitem> - - <listitem> - <para>R Joseph Wright <email>rjoseph@mammalia.org</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>Riccardo Veraldi <email>veraldi@cs.unibo.it</email></para> - </listitem> - - <listitem> - <para>Rich Wood <email>rich@FreeBSD.org.uk</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 Kiss <email>richard@homemail.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 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>Roman Shterenzon <email>roman@xpert.com</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>cejkar@dcse.fee.vutbr.cz</email></para> - </listitem> - - <listitem> - <para>Ruslan Belkin <email>rus@home2.UA.net</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>Sakai Hiroaki <email>sakai@miya.ee.kagu.sut.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>Samuel Tardieu <email>sam@inf.enst.fr</email></para> - </listitem> - - <listitem> - <para>Samuele Zannoli <email>zannoli@cs.unibo.it</email></para> - </listitem> - - <listitem> - <para>Sander Janssen <email>janssen@rendo.dekooi.nl</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>SANETO Takanori <email>sanewo@strg.sony.co.jp</email></para> - </listitem> - - <listitem> - <para>SASAKI Shunsuke <email>ele@pop17.odn.ne.jp</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>SAWADA Mizuki <email>miz@qb3.so-net.ne.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 A. Moberly <email>smoberly@xavier.dyndns.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 Mitchel <email>scott@uk.FreeBSD.org</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>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 Kosyakov <email>ks@itp.ac.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>Shigio Yamaguchi <email>shigio@tamacom.com</email></para> - </listitem> - - <listitem> - <para>Shinya Esu <email>esu@yk.rim.or.jp</email></para> - </listitem> - - <listitem> - <para>Shuichi Tanaka <email>stanaka@bb.mbn.or.jp</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 Coltrin <email>spcoltri@unm.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>Stijn Hoop <email>stijn@win.tue.nl</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>Sugimoto Sadahiro <email>ixtl@komaba.utmc.or.jp</email></para> - </listitem> - - <listitem> - <para>SUGIMURA Takashi <email>sugimura@jp.FreeBSD.org</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>SURANYI Peter - <email>suranyip@jks.is.tsukuba.ac.jp</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>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>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>mellon@isc.org</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 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 Quinot <email>thomas@cuivre.fr.eu.org</email></para> - </listitem> - - <listitem> - <para>Thomas A. Stephens <email>tas@stephens.org</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>Timothy Jensen <email>toast@blackened.com</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 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>Tony Maher <email>Tony.Maher@eBioinformatics.com</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>Trevor Johnson <email>trevor@jpj.net</email></para> - </listitem> - - <listitem> - <para>Udo Schweigert <email>ust@cert.siemens.de</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>URATA Shuichiro <email>s-urata@nmit.tmg.nec.co.jp</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>Valentin Nechayev <email>netch@lucky.net</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>Vince Valenti <email>vince@blue-box.net</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>Walt M. Shandruk <email>walt@erudition.net</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>Wiljo Heinen <email>wiljo@freeside.ki.open.de</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>Yasuhiro Fukama <email>yasuf@big.or.jp</email></para> - </listitem> - - <listitem> - <para>Yasuhito FUTATSUKI <email>futatuki@fureai.or.jp</email></para> - </listitem> - - <listitem> - <para>Yen-Ming Lee <email>leeym@bsd.ce.ntu.edu.tw</email></para> - </listitem> - - <listitem> - <para>Yen-Shuo Su <email>yssu@CCCA.NCTU.edu.tw</email></para> - </listitem> - - <listitem> - <para>Yin-Jieh Chen <email>yinjieh@Crazyman.Dorm13.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>Yoichi Asai <email>yatt@msc.biglobe.ne.jp</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>Yu-Shun Wang <email>yushunwa@isi.edu</email></para> - </listitem> - - <listitem> - <para>Yusuke Nawano <email>azuki@azkey.org</email></para> - </listitem> - - <listitem> - <para>Yuu Yashiki <email>s974123@cc.matsuyama-u.ac.jp</email></para> - </listitem> - - <listitem> - <para>Yuuichi Narahara <email>aconitum@po.teleway.ne.jp</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>Zach Zurflu <email>zach@pabst.bendnet.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> - </itemizedlist> - </sect1> - - <sect1 id="contrib-386bsd"> - <title>386BSD Patch Kit Patch Contributors</title> - - <para>(in alphabetical order by first name):</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>Rod Taylor <email>rod@idiotswitch.org</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>Yuuki SAWADA <email>mami@whale.cc.muroran-it.ac.jp</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-always-quote-attributes: t - sgml-parent-document: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/articles/dialup-firewall/Makefile b/en_US.ISO8859-1/articles/dialup-firewall/Makefile deleted file mode 100644 index 886e21cc9d..0000000000 --- a/en_US.ISO8859-1/articles/dialup-firewall/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# $FreeBSD$ - -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/en_US.ISO8859-1/articles/dialup-firewall/article.sgml b/en_US.ISO8859-1/articles/dialup-firewall/article.sgml deleted file mode 100644 index 748ae2d677..0000000000 --- a/en_US.ISO8859-1/articles/dialup-firewall/article.sgml +++ /dev/null @@ -1,269 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/articles/dialup-firewall/article.sgml,v 1.1 2000/06/07 23:22:17 nik Exp $ ---> - -<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> -%man; -]> - -<article> - <artheader> - <title>Dialup firewalling with FreeBSD</title> - - <authorgroup> - <author> - <firstname>Marc</firstname> - <surname>Silver</surname> - - <affiliation> - <address><email>marcs@draenor.org</email></address> - </affiliation> - </author> - </authorgroup> - - <pubdate>$Date: 2000-06-12 04:03:39 $</pubdate> - - <abstract> - <para>This article documents how to setup a firewall using a PPP - dialup with FreeBSD and IPFW, and specifically with firewalling over - a dialup with a dynamically assigned IP address. This document does - not cover setting up your PPP connection in the first place.</para> - </abstract> - </artheader> - - <sect1 id="preface"> - <title>Preface</title> - - <para>Dialup Firewalling with FreeBSD</para> - - <para>This document aims to cover the process that is required in - order to setup firewalling with FreeBSD when are dynamically - assigned an IP address by your ISP. While every effort has been - made to make this document as informative and correct as possible, - you are welcome to mail your comments/suggestions to the - <ulink URL="mailto:marcs@draenor.org">maintainer</ulink>.</para> - </sect1> - - <sect1 id="kernel"> - <title>Kernel Options</title> - - <para>The first thing you'll need to do is recompile your kernel in - FreeBSD. If you need more information on how to recompile the kernel, - then the best place to start is the <ulink - URL="http://www.freebsd.org/handbook/kernelconfig.html">kernel - configuration section in the Handbook</ulink>. You need to compile the - following options into the kernel: </para> - - <variablelist> - <varlistentry> - <term><literal>options IPFIREWALL</literal></term> - - <listitem> - <para>Enables the kernel's firewall code.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>options IPFIREWALL_VERBOSE</literal></term> - - <listitem> - <para>Sends logged packets to the system logger.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>options - IPFIREWALL_VERBOSE_LIMIT=<replaceable>100</replaceable></literal></term> - - <listitem> - <para>Limits the number of times a matching entry is logged. This - stops your log files filling up with lots of repetitive entries. - <replaceable>100</replaceable> is a reasonable number to use, but - you can adjust it based on your requirements.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>options IPDIVERT</literal></term> - - <listitem> - <para>Enables <emphasis>divert</emphasis> sockets, which will be - shown later.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Don't reboot once you have recompiled the kernel. Hopefully, we will - need to reboot just once in order to complete the installing of the - firewall.</para> - </sect1> - - <sect1 id="rcconf"> - <title>Changing <filename>/etc/rc.conf</filename> to load the - firewall</title> - - <para>We now need to make some changes to - <filename>/etc/rc.conf</filename> in order to tell it about the - firewall. Simply add the following lines:</para> - - <programlisting>firewall_enable="YES" -firewall_script="/etc/firewall/fwrules" -natd_enable="YES" -natd_interface="tun0" -natd_flags="-dynamic"</programlisting> - - <para>For more information on what the above do take a look at - <filename>/etc/defaults/rc.conf</filename> and read - &man.rc.conf.5;</para> - </sect1> - - <sect1> - <title>Disable PPP's network address translation</title> - - <para>You may already be using PPP's built in network address - translation (NAT). If that is the case you will have to disable it, - as these examples use &man.natd.8; to do the same.</para> - - <para>If you already have a block of entries to - automatically start PPP it probably looks like this:</para> - - <programlisting>ppp_enable="YES" -ppp_mode="auto" -ppp_nat="YES" -ppp_profile="<replaceable>profile</replaceable>"</programlisting> - - <para>If so, remove the <literal>ppp_nat="YES"</literal> line. You will - also need to remove any <literal>nat enable yes</literal> or - <literal>alias enable yes</literal> in - <filename>/etc/ppp/ppp/conf</filename>.</para> - </sect1> - - <sect1 id="rules"> - <title>The ruleset for the firewall</title> - - <para>We're nearly done now. All that remains now is to define the - firewall rules and then we can reboot and the firewall should be up and - running. I realise that everyone will want something slightly different - when it comes to their rulebase. What I've tried to do is write a - rulebase that suits most dialup users. You can obviously modify it to - your needs by simply using the following rules as the foundation for - your own rulebase. First, let's start with the basics of closed - firewalling. What you want to do is deny everything by default and then - only open up for the things you really need. Rules should be in the - order of allow first and then deny. The premis is that you add the - rules for your allows, and then everything else is denied. :)</para> - - <para>Now, let's make the dir /etc/firewall. Change into the directory and - edit the file fwrules as we specified in rc.conf. Please note that you - can change this filename to be anything you wish. This guide just gives - an example of a filename. </para> - - <para>Now, let's look at a sample firewall file, and we'll detail - everything in it. </para> - - <programlisting># Firewall rules -# Written by Marc Silver (marcs@draenor.org) -# http://draenor.org/ipfw -# Freely distributable - - -# Define the firewall command (as in /etc/rc.firewall) for easy -# reference. Helps to make it easier to read. -fwcmd="/sbin/ipfw" - -# Force a flushing of the current rules before we reload. -$fwcmd -f flush - -# Divert all packets through the tunnel interface. -$fwcmd add divert natd all from any to any via tun0 - -# Allow all data from my network card and localhost. Make sure you -# change your network card (mine was fxp0) before you reboot. :) -$fwcmd add allow ip from any to any via lo0 -$fwcmd add allow ip from any to any via fxp0 - -# Allow all connections that I initiate. -$fwcmd add allow tcp from any to any out xmit tun0 setup - -# Once connections are made, allow them to stay open. -$fwcmd add allow tcp from any to any via tun0 established - -# Everyone on the internet is allowed to connect to the following -# services on the machine. This example shows that people may connect -# to ssh and apache. -$fwcmd add allow tcp from any to any 80 setup -$fwcmd add allow tcp from any to any 22 setup - -# This sends a RESET to all ident packets. -$fwcmd add reset log tcp from any to any 113 in recv tun0 - -# Allow outgoing DNS queries ONLY to the specified servers. -$fwcmd add allow udp from any to <replaceable>x.x.x.x</replaceable> 53 out xmit tun0 - -# Allow them back in with the answers... :) -$fwcmd add allow udp from <replaceable>x.x.x.x</replaceable> 53 to any in recv tun0 - -# Allow ICMP (for ping and traceroute to work). You may wish to -# disallow this, but I feel it suits my needs to keep them in. -$fwcmd add 65435 allow icmp from any to any - -# Deny all the rest. -$fwcmd add 65435 deny log ip from any to any</programlisting> - - <para>You now have a fully functional firewall that will allow on - connections to ports 80 and 22 and will log any other connection - attempts. Now, you should be able to safely reboot and your firewall - should come up fine. If you find this incorrect in anyway or experience - any problems, or have any suggestions to improve this page, please - email me.</para> - </sect1> - - <sect1> - <title>Questions</title> - - <qandaset> - <qandaentry> - <question> - <para>Why are you using natd and ipfw when you could be using - the built in ppp-filters?</para> - </question> - - <answer> - <para>I'll have to be honest and say there's no definitive reason - why I use ipfw and natd instead of the built in ppp filters. From - the discussions I've had with people the consensus seems to be - that while ipfw is certainly more powerful and more configurable - than the ppp filters, what it makes up for in functionality it - loses in being easy to customise. One of the reasons I use it is - because I prefer firewalling to be done at a kernel level rather - than by a userland program.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>If I'm using private addresses internally, such as in the - 192.168.0.0 range, Could I add a command like <literal>$fwcmd add - deny all from any to 192.168.0.0:255.255.0.0 via tun0</literal> - to the firewall rules to prevent outside attempts to connect to - internal machines?</para> - </question> - - <answer> - <para>The simple answer is no. The reason for this is that natd is - doing address translation for <emphasis>anything</emphasis> being - diverted through the tun0 device. As far as it's concerned - incoming packets will speak only to the dynamically assigned IP - address and NOT to the internal network. Note though that you can - add a rule like <literal>$fwcmd add deny all from - 192.168.0.4:255.255.0.0 to any via tun0</literal> which would - limit a host on your internal network from going out via the - firewall.</para> - </answer> - </qandaentry> - </qandaset> - </sect1> -</article> diff --git a/en_US.ISO8859-1/articles/diskless-x/Makefile b/en_US.ISO8859-1/articles/diskless-x/Makefile deleted file mode 100644 index 886e21cc9d..0000000000 --- a/en_US.ISO8859-1/articles/diskless-x/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# $FreeBSD$ - -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/en_US.ISO8859-1/articles/diskless-x/article.sgml b/en_US.ISO8859-1/articles/diskless-x/article.sgml deleted file mode 100644 index 1ca1a15061..0000000000 --- a/en_US.ISO8859-1/articles/diskless-x/article.sgml +++ /dev/null @@ -1,349 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/articles/diskless-x/article.sgml,v 1.2 1999/09/06 06:52:36 peter Exp $ ---> - -<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ - -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> -%man; -]> - -<article> - <artheader> - <title>Diskless X Server: a how to guide</title> - - <authorgroup> - <author> - <firstname> Jerry</firstname> - <surname>Kendall</surname> - <affiliation> - <address> - <email>jerry@kcis.com</email> - </address> - </affiliation> - </author></authorgroup> - - <pubdate>28-December-1996</pubdate> - - <copyright> - <year>1996</year> - <holder>Jerry Kendall</holder> - </copyright> - - <abstract> - <para>With the help of some friends on the FreeBSD-hackers list, I have - been able to create a diskless X terminal. The creation of the X - terminal required first creating a diskless system with minimal - utilities mounted via NFS. These same steps were used to create 2 - separate diskless systems. The first is <hostid - role="fqdn">altair.kcis.com</hostid>. A diskless X terminal that I - run on my old 386DX-40. It has a 340Meg hard disk but, I did not want - to change it. So, it boots from <hostid - role="fqdn">antares.kcis.com</hostid> across a Ethernet. The second - system is a 486DX2-66. I setup a diskless FreeBSD (complete) that - uses no local disk. The server in that case is a Sun 670MP running - SunOS 4.1.3. The same setup configuration was needed for both.</para> - - <para>I am sure that there is stuff that needs to be added - to this. Please send me any comments.</para> - </abstract> - </artheader> - - <sect1> - <title>Creating the boot floppy (On the diskless system)</title> - - <para>Since the network boot loaders will not work with some of the TSR's - and such that MS-DOS uses, it is best to create a dedicated boot floppy - or, if you can, create an MS-DOS menu that will (via the - <filename>config.sys</filename>/<filename>autoexec.bat</filename> files) - ask what configuration to load when the system starts. The later is the - method that I use and it works great. My MS-DOS (6.x) menu is - below.</para> - - <example> - <title><filename>config.sys</filename></title> - - <programlisting>[menu] -menuitem=normal, normal -menuitem=unix, unix -[normal] -.... -normal config.sys stuff -... -[unix]</programlisting> - </example> - - <example> - <title><filename>autoexec.bat</filename></title> - - <programlisting>@ECHO OFF -goto %config% - -:normal -... -normal autoexec.bat stuff -... -goto end - -:unix -cd \netboot -nb8390.com - -:end</programlisting> - </example> - </sect1> - - <sect1> - <title>Getting the network boot programs (On the server)</title> - - <para>Compile the 'net-boot' programs that are located in - <filename>/usr/src/sys/i386/boot/netboot</filename>. You should read - the comments at the top of the <filename>Makefile</filename>. Adjust as - required. Make a backup of the original in case it gets foobar'd. When - the build is done, there should be 2 MS-DOS executables, - <filename>nb8390.com</filename> and <filename>nb3c509.com</filename>. - One of these two programs will be what you need to run on the diskless - server. It will load the kernel from the boot server. At this point, - put both programs on the MS-DOS boot floppy created earlier.</para> - </sect1> - - <sect1> - <title>Determine which program to run (On the diskless system)</title> - - <para>If you know the chipset that your Ethernet adapter uses, this is - easy. If you have the NS8390 chipset, or a NS8390 based chipset, use - <filename>nb8390.com</filename>. If you have a 3Com 509 based chipset, - use the <filename>nb3C509.com</filename> boot program. If you are not - sure which you have, try using one, if it says <errorname>No adapter - found</errorname>, try the other. Beyond that, you are pretty much on - your own.</para> - </sect1> - - <sect1> - <title>Booting across the network</title> - - <para>Boot the diskless system with out any config.sys/autoexec.bat - files. try running the boot program for your Ethernet adapter.</para> - - <para>My Ethernet adapter is running in WD8013 16bit mode so I run - <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>At this point, my diskless system is trying to find a machine to act - as a boot server. Make note of the <literal>addr</literal> line above, - you will need this number later. Reset the diskless system and modify - your <filename>config.sys</filename> and - <filename>autoexec.bat</filename> files to do these steps automatically - for you. Perhaps in a menu. If you had to run - <command>nb3c509.com</command> instead of <command>nb8390.com</command> - the output is the same as above. If you got <errorname>No adapter - found</errorname> at the <literal>Searching for adapter...</literal> - message, verify that you did indeed set the compile time defines in the - <filename>Makefile</filename> correctly.</para> - </sect1> - - <sect1> - <title>Allowing systems to boot across the network (On the server)</title> - - <para>Make sure the <filename>/etc/inetd.conf</filename> file has entries - for tftp and bootps. Mine are listed below:</para> - - <programlisting>tftp dgram udp wait nobody /usr/libexec/tftpd tftpd /tftpboot -# -# Additions by who ever you are -bootps dgram udp wait root /usr/libexec/bootpd bootpd /etc/bootptab</programlisting> - - <para>If you have to change the <filename>/etc/inetd.conf</filename> file, - send a <literal>HUP</literal> signal to inetd. To do this, get the - process ID of inetd with <command>ps -ax | grep inetd | grep -v - grep</command>. Once you have it, send it a HUP signal. Do this by - <command>kill -HUP <pid></command>. This will force inetd to - re-read its config file.</para> - - <para>Did you remember to note the <literal>addr</literal> line from the - output of the boot loader on the diskless system? Guess what, here is - where you need it.</para> - - <para>Add an entry to <literal>/etc/bootptab</literal> (maybe creating the - file). It should be laid out identical to this:</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>The lines are as follows:</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <tbody> - <row> - <entry><literal>altair</literal></entry> - <entry>the diskless systems name without the domain name.</entry> - </row> - - <row> - <entry><literal>ht=ether</literal></entry> - <entry>the hardware type of 'ethernet'.</entry> - </row> - - <row> - <entry><literal>ha=004001432666</literal></entry> - <entry>the hardware address (the number noted above).</entry> - </row> - - <row> - <entry><literal>sm=255.255.255.0</literal></entry> - <entry>the subnet mask.</entry> - </row> - - <row> - <entry><literal>hn</literal></entry> - <entry>tells server to send client's hostname to the - client.</entry> - </row> - - <row> - <entry><literal>ds=199.246.76.1</literal></entry> - <entry>tells the client who the domain server is.</entry> - </row> - - <row> - <entry><literal>ip=199.246.76.2</literal></entry> - <entry>tells the client what it's IP address is.</entry> - </row> - - <row> - <entry><literal>gw=199.246.76.1</literal></entry> - <entry>tells the client what the default gateway is.</entry> - </row> - - <row> - <entry><literal>vm=...</literal></entry> - <entry>just leave it there.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <note> - <para>Be sure to setup the IP addresses correctly, the addresses above - are my own.</para> - </note> - - <para>Create the directory '/tftpboot' on the server it will contain the - configuration files for the diskless systems that the server will serve. - These files will be named 'cfg.<ip>' where <ip> is the IP - address of the diskless system. The config file for 'altair' is - /tftpboot/cfg.199.246.76.2. The contents is:</para> - - <programlisting>rootfs 199.246.76.1:/DiskLess/rootfs/altair -hostname altair.kcis.com</programlisting> - - <para>The line <literal>hostname altair.kcis.com</literal> simply tells - the diskless system what its fully qualified domain name is.</para> - - <para>The line <literal>rootfs - 199.246.76.1:/DiskLess/rootfs/altair</literal> tells the diskless - system where its NFS mountable root filesystem is located.</para> - - <note> - <para>The NFS mounted root filesystem will be mounted <emphasis>read - only</emphasis>.</para> - </note> - - <para>The hierarchy for the diskless system can be re-mounted allowing - read-write operations if required.</para> - - <para>I use my spare 386DX-40 as a dedicated X terminal.</para> - - <para>The hierarchy for 'altair' is:</para> - - <literallayout>/ -/bin -/etc -/tmp -/sbin -/dev -/dev/fd -/usr -/var -/var/run</literallayout> - - <para>The actual list of files is:</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>Don't forget to run <command>MAKEDEV all</command> in the - <filename>dev</filename> directory.</para> - - <para>My <filename>/etc/rc</filename> for <hostid>altair</hostid> - is:</para> - -<programlisting>#!/bin/sh -# -PATH=/bin:/ -export PATH -# -# configure the localhost -/sbin/ifconfig lo0 127.0.0.1 -# -# configure the ethernet card -/sbin/ifconfig ed0 199.246.76.2 netmask 0xffffff00 -# -# mount the root filesystem via NFS -/sbin/mount antares:/DiskLess/rootfs/altair / -# -# mount the /usr filesystem via NFS -/sbin/mount antares:/DiskLess/usr /usr -# -/usr/X11R6/bin/XF86_SVGA -query antares -xf86config /etc/XF86Config.altair > /dev/null 2>&1 -# -# Reboot after X exits -/sbin/reboot -# -# We blew up.... -exit 1</programlisting> - - <para>Any comments and all questions welcome.</para> - </sect1> -</article> - -<!-- - Local Variables: - mode: sgml - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - End: ---> diff --git a/en_US.ISO8859-1/articles/fonts/Makefile b/en_US.ISO8859-1/articles/fonts/Makefile deleted file mode 100644 index 886e21cc9d..0000000000 --- a/en_US.ISO8859-1/articles/fonts/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# $FreeBSD$ - -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/en_US.ISO8859-1/articles/fonts/article.sgml b/en_US.ISO8859-1/articles/fonts/article.sgml deleted file mode 100644 index dd7b2cd475..0000000000 --- a/en_US.ISO8859-1/articles/fonts/article.sgml +++ /dev/null @@ -1,1004 +0,0 @@ -<!-- $FreeBSD: doc/en_US.ISO_8859-1/articles/fonts/article.sgml,v 1.6 1999/10/10 18:08:15 jhb Exp $ --> -<!-- The FreeBSD Documentation Project --> -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> -%man; -]> - -<!-- Recently, I wanted to figure out how to use some additional fonts that - I had accumulated. I finally figured out *how to do it* from the various - man pages and documentation. Since it might be of use to other users, - and I didn't see any reference to this topic in the FAQ or handbook, I - thought I'd try my hand at a simple cookbook tutorial addressing the - use of fonts. I have included my unanswered questions at the end of - the document. - - Anyway, here's what I put together. This is my present understanding of - fonts and how to use them with FreeBSD. I am sure that there are errors or - misunderstandings, but it contains enough valid information to allow the - use of additional fonts with Ghostscript, X11 and Groff. This is my first - attempt to write anything along the lines of a tutorial/FAQ, so I am sure - it is pretty raw. There are probably better ways to do some of this stuff, - and I would welcome being corrected. - --> - -<article> - <artheader> - <title>Fonts and FreeBSD</title> - - <subtitle>A Tutorial</subtitle> - - <authorgroup> - <author> - <firstname>Dave</firstname> - - <surname>Bodenstab</surname> - - <affiliation> - <address> - <email>imdave@synet.net</email> - </address> - </affiliation> - </author> - </authorgroup> - - <pubdate>Wed Aug 7, 1996</pubdate> - - <abstract> - <para>This document contains a description of the various font - files that may be used with FreeBSD and the syscons driver, - X11, Ghostscript and Groff. Cookbook examples are provided - for switching the syscons display to 80x60 mode, and for using - type 1 fonts with the above application programs.</para> - </abstract> - </artheader> - - <sect1> - <title>Introduction</title> - - <para>There are many sources of fonts available, and one might ask - how they might be used with FreeBSD. The answer can be found by - carefully searching the documentation for the component that one - would like to use. This is very time consuming, so this - tutorial is an attempt to provide a shortcut for others who - might be interested.</para> - </sect1> - - <sect1> - <title>Basic terminology</title> - - <para>There are many different font formats and associated font - file suffixes. A few that will be addressed here are:</para> - - <variablelist> - <varlistentry> - <term><filename>.pfa</>, <filename>.pfb</></term> - - <listitem> - <para>Postscript type 1 fonts. The - <filename>.pfa</filename> is the - <emphasis>A</emphasis>scii form and - <filename>.pfb</filename> the <emphasis>B</emphasis>inary - form.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><filename>.afm</></term> - - <listitem> - <para>The font metrics associated with a type 1 font.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><filename>.pfm</></term> - - <listitem> - <para>The printer font metrics associated with a type 1 - font.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><filename>.ttf</></term> - - <listitem> - <para>A TrueType font</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><filename>.fot</></term> - - <listitem> - <para>An indirect reference to a TrueType font (not an - actual font)</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><filename>.fon</>, <filename>.fnt</></term> - - <listitem> - <para>Bitmapped screen fonts</para> - </listitem> - </varlistentry> - </variablelist> - - <para>The <filename>.fot</filename> file is used by Windows as - sort of a symbolic link to the actual TrueType font - (<filename>.ttf</filename>) file. The <filename>.fon</filename> - font files are also used by Windows. I know of no way to use - this font format with FreeBSD.</para> - </sect1> - - <sect1> - <title>What font formats can I use?</title> - - <para>Which font file format is useful depends on the application - being used. FreeBSD by itself uses no fonts. Application - programs and/or drivers may make use of the font files. Here is - a small cross reference of application/driver to the font type - suffixes:</para> - - <variablelist> - <varlistentry> - <term>Driver</term> - - <listitem> - <variablelist> - <varlistentry> - <term>syscons</term> - - <listitem> - <para><filename>.fnt</></para> - </listitem> - </varlistentry> - </variablelist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Application</term> - - <listitem> - <variablelist> - <varlistentry> - <term>Ghostscript</term> - - <listitem> - <para><filename>.pfa</filename>, - <filename>.pfb</filename>, - <filename>.ttf</filename></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>X11</term> - - <listitem> - <para><filename>.pfa</filename>, - <filename>.pfb</filename></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Groff</term> - - <listitem> - <para><filename>.pfa</filename>, - <filename>.afm</filename></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Povray</term> - - <listitem> - <para><filename>.ttf</filename></para> - </listitem> - </varlistentry> - </variablelist> - </listitem> - </varlistentry> - </variablelist> - - <para>The <filename>.fnt</filename> suffix is used quite - frequently. I suspect that whenever someone wanted to create a - specialized font file for their application, more often than not - they chose this suffix. Therefore, it is likely that files with - this suffix are not all the same format; specifically, the - <filename>.fnt</filename> files used by syscons under FreeBSD - may not be the same format as a <filename>.fnt</filename> file - one encounters in the MSDOS/Windows environment. I have not - made any attempt at using other <filename>.fnt</filename> files - other than those provided with FreeBSD.</para> - </sect1> - - <sect1> - <title>Setting a virtual console to 80x60 line mode</title> - - <para>First, a 8x8 font must be loaded. - <filename>/etc/sysconfig</filename> should contain the - lines:</para> - - <informalexample> - <programlisting># Choose font 8x8 from /usr/share/syscons/fonts/* (or NO for default) -font8x8=/usr/share/syscons/fonts/cp437-8x8.fnt - </programlisting> - </informalexample> - - <para>The command to actually switch the mode is - &man.vidcontrol.1:</para> - - <informalexample> - <screen>bash$ <userinput>vidcontrol VGA_80x60</userinput> - </screen> - </informalexample> - - <para>Various screen orientated programs, such as &man.vi.1, must - be able to determine the current screen dimensions. These can - be set with &man.stty.1;:</para> - - <informalexample> - <screen>bash$ <userinput>stty crt rows 60 columns 80</userinput> - </screen> - </informalexample> - - <para>To make this more seamless, one can embed these commands in - the startup scripts so it takes place when the system boots. - One way to do this is:</para> - - <orderedlist> - <listitem> - <para>Modify <filename>/etc/sysconfig</filename> as - above</para> - </listitem> - - <listitem> - <para>Add to <filename>/etc/rc.local</filename>:</para> - - <informalexample> - <programlisting>for tty in /dev/ttyv? -do - vidcontrol VGA_80x60 <$tty >/dev/null 2>&1 -done - </programlisting> - </informalexample> - </listitem> - - <listitem> - <para>Add to <filename>/etc/profile</filename>:</para> - - <informalexample> - <programlisting>TTYNAME=`basename \`tty\`` -if expr "$TTYNAME" : 'ttyv' >/dev/null -then - stty crt rows 60 columns 80 -fi - </programlisting> - </informalexample> - </listitem> - </orderedlist> - - <para>References: &man.stty.1;, &man.vidcontrol.1;.</para> - </sect1> - - <sect1> - <title>Using type 1 fonts with X11</title> - - <para>X11 can use either the <filename>.pfa</filename> or the - <filename>.pfb</filename> format fonts. The X11 fonts are - located in various subdirectories under - <filename>/usr/X11R6/lib/X11/fonts</filename>. Each font file - is cross referenced to its X11 name by the contents of the - <filename>fonts.dir</filename> file in each directory.</para> - - <para>There is already a directory named <filename>Type1</>. The - most straight forward way to add a new font is to put it into - this directory. A better way is to keep all new fonts in a - separate directory and use a symbolic link to the additional - font. This allows one to more easily keep track of ones fonts - without confusing them with the fonts that were originally - provided. For example:</para> - - <informalexample> - <screen><lineannotation>Create a directory to contain the font files</> -bash$ <userinput>mkdir -p /usr/local/share/fonts/type1</> -bash$ <userinput>cd /usr/local/share/fonts/type1</> - -<lineannotation>Place the .pfa, .pfb and .afm files here</> -<lineannotation>One might want to keep readme files, and other documentation</> -<lineannotation>for the fonts here also</> -bash$ <userinput>cp /cdrom/fonts/atm/showboat/showboat.pfb .</> -bash$ <userinput>cp /cdrom/fonts/atm/showboat/showboat.afm .</> - -<lineannotation>Maintain an index to cross reference the fonts</> -bash$ <userinput>echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat >>INDEX</> - </screen> - </informalexample> - - <para>Now, to use a new font with X11, one must make the font file - available and update the font name files. The X11 font names - look like:</para> - - <informalexample> - <screen>-bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1 - | | | | | | | | | | | | \ \ - | | | | | \ \ \ \ \ \ \ +----+- character set - | | | | \ \ \ \ \ \ \ +- average width - | | | | \ \ \ \ \ \ +- spacing - | | | \ \ \ \ \ \ +- vertical res. - | | | \ \ \ \ \ +- horizontal res. - | | | \ \ \ \ +- points - | | | \ \ \ +- pixels - | | | \ \ \ - foundry family weight slant width additional style - </screen> - </informalexample> - - <para>A new name needs to be created for each new font. If you - have some information from the documentation that accompanied - the font, then it could serve as the basis for creating the - name. If there is no information, then you can get some idea by - using &man.strings.1; on the font file. For example:</para> - - <informalexample> - <screen>bash$ <userinput>strings showboat.pfb | more</> -%!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-- - </screen> - </informalexample> - - <para>Using this information, a possible name might be:</para> - - <informalexample> - <screen>-type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1 - </screen> - </informalexample> - - <para>The components of our name are:</para> - - <variablelist> - <varlistentry> - <term>Foundry</term> - - <listitem> - <para>Lets just name all the new fonts - <literal>type1</>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Family</term> - - <listitem> - <para>The name of the font.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Weight</term> - - <listitem> - <para>Normal, bold, medium, semibold, etc. From the - <citerefentry><refentrytitle>strings</><manvolnum>1</></> - output above, it appears that this font has a weight of - <emphasis>medium</emphasis>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Slant</term> - - <listitem> - <para><emphasis remap=bf>r</emphasis>oman, <emphasis - remap=bf>i</emphasis>talic, <emphasis - remap=bf>o</emphasis>blique, etc. Since the - <emphasis>ItalicAngle</emphasis> is zero, - <emphasis>roman</emphasis> will be used.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Width</term> - - <listitem> - <para>Normal, wide, condensed, extended, etc. Until it can - be examined, the assumption will be - <emphasis>normal</emphasis>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Additional style</term> - - <listitem> - <para>Usually omitted, but this will indicate that the font - contains decorative capital letters.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Spacing</term> - - <listitem> - <para>proportional or monospaced. - <emphasis>Proportional</emphasis> is used since - <emphasis>isFixedPitch</emphasis> is false.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>All of these names are arbitrary, but one should strive to - be compatible with the existing conventions. A font is - referenced by name with possible wild cards by an X11 program, - so the name chosen should make some sense. One might begin by - simply using - - <informalexample> - <screen>…-normal-r-normal-…-p-… - </screen> - </informalexample> - - as the name, and then use - <citerefentry><refentrytitle>xfontsel</><manvolnum>1</></> to - examine it and adjust the name based on the appearance of the - font.</para> - - <para>So, to complete our example:</para> - - <informalexample> - <screen><lineannotation>Make the font accessible to X11</> -bash$ <userinput>cd /usr/X11R6/lib/X11/fonts/Type1</> -bash$ <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</> - -<lineannotation>Edit fonts.dir and fonts.scale, adding the line describing the font -and incrementing the number of fonts which is found on the first line.</> -bash$ <userinput>ex fonts.dir -:1p -25 -:1c -26 -. -:$a -showboat.pfb -type1-showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1 -. -:wq</> - -<lineannotation><filename>fonts.scale</> seems to be identical to <filename>fonts.dir</>…</> -bash$ <userinput>cp fonts.dir fonts.scale</> - -<lineannotation>Tell X11 that things have changed</> -bash$ <userinput>xset fp rehash</> - -<lineannotation>Examine the new font</> -bash$ <userinput>xfontsel -pattern -type1-*</> - </screen> - </informalexample> - - <para>References: &man.xfontsel.1;, &man.xset.1;, <citetitle>The X - Windows System in a Nutshell</>, <ulink - URL="http://www.ora.com/">O'Reilly & - Associates</ulink>.</para> - </sect1> - - <sect1> - <title>Using type 1 fonts with Ghostscript</title> - - <para>Ghostscript references a font via its <filename>Fontmap</> - file. This must be modified in a similar way to the X11 - <filename>fonts.dir</filename> file. Ghostscript can use either - the <filename>.pfa</filename> or the <filename>.pfb</filename> - format fonts. Using the font from the previous example, here is - how to use it with Ghostscript:</para> - - <informalexample> - <screen><lineannotation>Put the font in Ghostscript's font directory</> -bash$ <userinput>cd /usr/local/share/ghostscript/fonts</> -bash$ <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</> - -<lineannotation>Edit Fontmap so Ghostscript knows about the font</> -bash$ <userinput>cd /usr/local/share/ghostscript/4.01</> -bash$ <userinput>ex Fontmap -:$a -/Showboat (showboat.pfb) ; % From CICA /fonts/atm/showboat -. -:wq</> - -<lineannotation>Use Ghostscript to examine the font</> -bash$ <userinput>gs prfont.ps</> -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. -GS><userinput>Showboat DoFont</> -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<< -GS><userinput>quit</> - </screen> - </informalexample> - - <para>References: <filename>fonts.txt</filename> in the - Ghostscript 4.01 distribution</para> - </sect1> - - <sect1> - <title>Using type 1 fonts with Groff</title> - - <para>Now that the new font can be used by both X11 and - Ghostscript, how can one use the new font with groff? First of - all, since we are dealing with type 1 postscript fonts, the - groff device that is applicable is the <emphasis>ps</emphasis> - device. A font file must be created for each font that groff - can use. A groff font name is just a file in - <filename>/usr/share/groff_font/devps</filename>. With our - example, the font file could be - <filename>/usr/share/groff_font/devps/SHOWBOAT</filename>. The - file must be created using tools provided by groff.</para> - - <para>The first tool is <command>afmtodit</>. This is not - normally installed, so it must be retrieved from the source - distribution. I found I had to change the first line of the - file, so I did:</para> - - <informalexample> - <screen>bash$ <userinput>cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp</> -bash$ <userinput>ex /tmp/afmtodit.pl -:1c -#!/usr/bin/perl -P- -. -:wq</> - </screen> - </informalexample> - - <para>This tool will create the groff font file from the metrics - file (<filename>.afm</filename> suffix.) Continuing with our - example:</para> - - <informalexample> - <screen><lineannotation>Many <filename>.afm</> files are in Mac format&hellip ^M delimited lines -We need to convert them to unix style ^J delimited lines</> -bash$ <userinput>cd /tmp</> -bash$ <userinput>cat /usr/local/share/fonts/type1/showboat.afm | - tr '\015' '\012' >showboat.afm</> - -<lineannotation>Now create the groff font file</> -bash$ <userinput>cd /usr/share/groff_font/devps</> -bash$ <userinput>/tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT</> - </screen> - </informalexample> - - <para>The font can now be referenced with the name - SHOWBOAT.</para> - - <para>If ghostscript is used to drive the printers on the system, - then nothing more needs to be done. However, if true postscript - printers are used, then the font must be down loaded to the - printer in order for the font to be used (unless the printer - happens to have the showboat font built in or on an accessible - font disk.) The final step is to create a down loadable font. - The <command>pfbtops</> tool is used to create the - <filename>.pfa</filename> format of the font, and the - <filename>download</> file is modified to reference the new - font. The <filename>download</> file must reference the - internal name of the font. This can easily be determined from - the groff font file as illustrated:</para> - - <informalexample> - <screen><lineannotation>Create the <filename>.pfa</> font file</> -bash$ <userinput>pfbtops /usr/local/share/fonts/type1/showboat.pfb >showboat.pfa</> - </screen> - </informalexample> - - <para>Of course, if the <filename>.pfa</filename> file is already - available, just use a symbolic link to reference it.</para> - - <informalexample> - <screen><lineannotation>Get the internal font name</> -bash$ <userinput>fgrep internalname SHOWBOAT</> -internalname Showboat - -<lineannotation>Tell groff that the font must be down loaded</> -bash$ <userinput>ex download -:$a -Showboat showboat.pfa -. -:wq</> - </screen> - </informalexample> - - <para>To test the font:</para> - - <informalexample> - <screen>bash$ <userinput>cd /tmp</> -bash$ <userinput>cat >example.t <<EOF -.sp 5 -.ps 16 -This is an example of the Showboat font: -.br -.ps 48 -.vs (\n(.s+2)p -.sp -.ft SHOWBOAT -ABCDEFGHI -.br -JKLMNOPQR -.br -STUVWXYZ -.sp -.ps 16 -.vs (\n(.s+2)p -.fp 5 SHOWBOAT -.ft R -To use it for the first letter of a paragraph, it will look like: -.sp 50p -\s(48\f5H\s0\fRere is the first sentence of a paragraph that uses the -showboat font as its first letter. -Additional vertical space must be used to allow room for the larger -letter. -EOF</> -bash$ <userinput>groff -Tps example.t >example.ps</> - -<lineannotation>To use ghostscript/ghostview</> -bash$ <userinput>ghostview example.ps</> - -<lineannotation>To print it</> -bash$ <userinput>lpr -Ppostscript example.ps</> - </screen> - </informalexample> - - <para>References: - <filename>/usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man</filename>, - &man.groff.font.5;, &man.groff.char.7;, &man.pfbtops.1;.</para> - </sect1> - - <sect1> - <title>Converting TrueType fonts to a groff/postscript format for - groff</title> - - <para>This potentially requires a bit of work, simply because it - depends on some utilities that are not installed as part of the - base system. They are:</para> - - <variablelist> - <varlistentry> - <term><command>ttf2pf</command></term> - - <listitem> - <para>TrueType to postscript convertsion utilities. This - allows conversion of a TrueType font to an ascii font - metric (<filename>.afm</filename>) file.</para> - - <para>Currently available at <ulink - url="http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf/">http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf</ulink>. - Note: These files are postscript programs and must be - downloaded to disk by holding down the - <keycap>Shift</keycap> key when clicking on the link. - Otherwise, your browser may try to launch - <application>ghostview</application> to view them.</para> - - <para>The files of interest are:</para> - - <itemizedlist> - <listitem> - <para><filename>GS_TTF.PS</filename></para - </listitem> - - <listitem> - <para><filename>PF2AFM.PS</filename></para> - </listitem> - - <listitem> - <para><filename>ttf2pf.ps</filename></para> - </listitem> - </itemizedlist> - - <para>The funny upper/lower case is due to their being - intended also for DOS shells. - <filename>ttf2pf.ps</filename> makes use of the others as - upper case, so any renaming must be consistent with this. - (Actually, <filename>GS_TTF.PS</filename> and - <filename>PFS2AFM.PS</filename> are supposedly part of the - ghostscript distribution, but it's just as easy to use - these as an isolated utility. FreeBSD doesn't seem to - include the latter.) You also may want to have these - installed to - <filename>/usr/local/share/groff_font/devps</filename>(?).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>afmtodit</command></term> - - <listitem> - <para>Creates font files for use with groff from ascii font - metrics file. This usually resides in the directory, - <filename>/usr/src/contrib/groff/afmtodit</filename>, and - requires some work to get going.</para> - - <note> - <para> If you're paranoid about working in the - <filename>/usr/src</filename> tree, simply copy the - contents of the above directory to a work - location.</para> - </note> - - <para>In the work area, you'll need to make the utility. - Just type:</para> - - <screen><prompt>#</prompt> <userinput>make -f Makefile.sub afmtodit</userinput> - </screen> - - <para>You may also need to copy - <filename>/usr/contrib/groff/devps/generate/textmap</filename> - to - <filename>/usr/share/groff_font/devps/generate</filename> - if it doesn't already exist.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Once all these utilities are in place, you're ready to - commence:</para> - - <orderedlist> - <listitem> - <para>Create the <filename>.afm</filename> file by - typing:</para> - - <screen><prompt>%</prompt> <userinput>gs <optional>-dNODISPLAY</optional> <optional>-q</optional> -- ttf2pf.ps <replaceable>TTF_name</replaceable> <optional><replaceable>PS_font_name</replaceable> <optional><replaceable>AFM_name</replaceable></optional></optional></userinput> - </screen> - - <para>Where, <replaceable>TTF_name</replaceable> is your - TrueType font file, <replaceable>PS_font_name</replaceable> - is the file name for the <filename>.pfa</filename> file, - <replaceable>AFM_name</replaceable> is the name you wish for - the <filename>.afm</filename> file. If you do not specify - output file names for the <filename>.pfa</filename> or - <filename>.afm</filename> files, then default names will be - generated from the TrueType font file name.</para> - - <para>This also produces a <filename>.pfa</filename> file, the - ascii postscript font metrics file - (<filename>.pfb</filename> is for the binrary form). This - won't be needed, but could (I think) be useful for a - fontserver.</para> - - <para>For example, to convert the 30f9 Barcode font using the - default file names, use the following command:</para> - - <screen><prompt>%</prompt> <userinput>gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf</userinput> -Aladdin Ghostscript 5.10 (1997-11-23) -Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA. All rights reserved. -This software comes with NO WARRANTY: see the file PUBLIC for details. -Converting 3of9.ttf to 3of9.pfa and 3of9.afm. - </screen> - - <para>If you want the converted fonts to be stored in - <filename>A.pfa</filename> and <filename>B.afm</filename>, - then use this command:</para> - - <screen><prompt>%</prompt> <userinput>gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf A B</userinput> -Aladdin Ghostscript 5.10 (1997-11-23) -Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA. All rights reserved. -This software comes with NO WARRANTY: see the file PUBLIC for details. -Converting 3of9.ttf to A.pfa and B.afm. - </screen> - </listitem> - - <listitem> - <para>Create the groff postscript file:</para> - - <para>Change directories to - <filename>/usr/share/groff_font/devps</filename> so as to - make the following command easier to execute. You'll - probably need root priviledges for this. (Or, if you're - paranoid about working there, make sure you reference the - files <filename>DESC</filename>, - <filename>text.enc</filename> and - <filename>generate/textmap</filename> as being in this - directory.)</para> - - <screen><prompt>%</prompt> <userinput>afmtodit -d DESC -e text.enc file.afm \ - generate/textmap <replaceable>PS_font_name</replaceable></userinput> - </screen> - - <para>Where, <filename>file.afm</filename> is the - <replaceable>AFM_name</replaceable> created by - <command>ttf2pf.ps</command> above, and - <replaceable>PS_font_name</replaceable> is the font name - used from that command, as well as the name that - &man.groff.1; will use for references to this font. For - example, assuming you used the first - <command>tiff2pf.ps</command> command above, then the 3of9 - Barcode font can be created using the command:</para> - - <screen><prompt>%</prompt> <userinput>afmtodit -d DESC -e text.enc 3of9.afm \ - generate/textmap 3of9</userinput> - </screen> - - <para>Ensure that the resulting - <replaceable>PS_font_name</replaceable> file (e.g., - <filename>3of9</filename> in the example above) is located - in the directory - <filename>/usr/share/groff_font/devps</filename> by copying - or moving it there.</para> - - <para>Note that if <filename>ttf2pf.ps</filename> assigns a - font name using the one it finds in the TrueType font file - and you want to use a different name, you must edit the - <filename>.afm</filename> file prior to running - <command>afmtodit</command>. This name must also match the - one used in the Fontmap file if you wish to pipe - &man.groff.1; into &man.gs.1;.</para> - </listitem> - </orderedlist> - </sect1> - - <sect1> - <title>Can TrueType fonts be used with other programs?</title> - - <para>The TrueType font format is used by Windows, Windows 95, and - Mac's. It is quite popular and there are a great number of - fonts available in this format.</para> - - <para>Unfortunately, there are few applications that I am aware of - that can use this format: Ghostscript and Povray come to mind. - Ghostscript's support, according to the documentation, is - rudimentary and the results are likely to be inferior to type 1 - fonts. Povray version 3 also has the ability to use TrueType - fonts, but I rather doubt many people will be creating documents - as a series of raytraced pages :-).</para> - - <para>This rather dismal situation may soon change. The <ulink - url="http://www.freetype.org/">FreeType Project</ulink> is - currently developing a useful set of FreeType tools:</para> - - <itemizedlist> - <listitem> - <para>The <command>xfsft</command> font server for X11 can - serve TrueType fonts in addition to regular fonts. Though - currently in beta, it is said to be quite useable. See - <ulink - url="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/">Juliusz - Chroboczek's page</ulink> for further information. - Porting instructions for FreeBSD can be found at <ulink - url="http://math.missouri.edu/~stephen/software/">Stephen - Montgomery's software page</ulink>.</para> - </listitem> - - <listitem> - <para><command>xfstt</command> is another font server for X11, - available under <ulink url=" - ftp://sunsite.unc.edu/pub/Linux/X11/fonts"> - ftp://sunsite.unc.edu/pub/Linux/X11/fonts</ulink>.</para> - </listitem> - - <listitem> - <para>A program called <command>ttf2bdf</command> can produce - BDF files suitable for use in an X environment from TrueType - files. Linux binaries are said to be available from <ulink - url="ftp://crl.nmsu.edu/CLR/multiling/General">ftp://crl.nmsu.edu/CLR/multiling/General/</ulink>.</para> - </listitem> - - <listitem> - <para>For people requiring the use of Asian TrueType fonts, - the <command>XTT</command> font server may be worth a look. - Information about <command>XTT</command> can be found at - URL: <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>and others …</para> - </listitem> - </itemizedlist> - - <para>The <ulink - url="http://www.freetype.org/projects.htm">FreeType Projects - page </ulink> is a good starting point for information on - these and other free TrueType projects.</para> - </sect1> - - <sect1> - <title>Where can additional fonts be obtained?</title> - - <para>Many fonts are available on the Internet. They are either - entirely free, or are share-ware. In addition, there are many - inexpensive CDROMs available that contain many fonts. Some - Internet locations (as of August 1996) are:</para> - - <itemizedlist> - <listitem> - <para><ulink - url="ftp://ftp.winsite.com">ftp://ftp.winsite.com</ulink> - (Formerly 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>Additional questions</title> - - <itemizedlist> - <listitem> - <para>What use are the <filename>.pfm</filename> files?</para> - </listitem> - - <listitem> - <para>Can one generate the <filename>.afm</filename> file from - a <filename>.pfa</filename> or - <filename>.pfb</filename>?</para> - </listitem> - - <listitem> - <para>How to generate the groff character mapping files for - postscript fonts with non-standard character names?</para> - </listitem> - - <listitem> - <para>Can xditview and devX?? devices be setup to access all - the new fonts?</para> - </listitem> - - <listitem> - <para>It would be good to have examples of using TrueType - fonts with povray and ghostscript.</para> - </listitem> - </itemizedlist> - </sect1> -</article> diff --git a/en_US.ISO8859-1/articles/formatting-media/Makefile b/en_US.ISO8859-1/articles/formatting-media/Makefile deleted file mode 100644 index 886e21cc9d..0000000000 --- a/en_US.ISO8859-1/articles/formatting-media/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# $FreeBSD$ - -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/en_US.ISO8859-1/articles/formatting-media/article.sgml b/en_US.ISO8859-1/articles/formatting-media/article.sgml deleted file mode 100644 index 0adc30c341..0000000000 --- a/en_US.ISO8859-1/articles/formatting-media/article.sgml +++ /dev/null @@ -1,603 +0,0 @@ -<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> -%man; -]> -<!-- $FreeBSD: doc/en_US.ISO_8859-1/articles/formatting-media/article.sgml,v 1.12 1999/10/10 19:21:10 jhb Exp $ --> -<article> - <artheader> - <title>Formatting Media For Use With FreeBSD 2.2-RELEASE</title> - - <subtitle>A Tutorial</subtitle> - - <authorgroup> - <author> - <firstname>Doug</firstname> - - <surname>White</surname> - - <affiliation> - <address> - <email>dwhite@resnet.uoregon.edu</email> - </address> - </affiliation> - </author> - </authorgroup> - - <pubdate>March 1997</pubdate> - - <abstract> - <para>This document describes how to slice, partition, and - format hard disk drives and similar media for use with - FreeBSD. The examples given have been tested under FreeBSD - 2.2-GAMMA and may work for other releases.</para> - </abstract> - </artheader> - - <sect1> - <title>Introduction & Definitions</title> - - <sect2> - <title>Overview</title> - - <para>Successfully adding disks to an existing system is the - mark of an experienced system administrator. Slicing, - partitioning, and adding disks requires a careful dance of - proper command and name syntax. One slipped finger and an - entire disk could disappear in seconds. This document is - written in an attempt to simplify this process and avoid - accidents. Thankfully, enhancements to existing tools - (notably sysinstall) have greatly improved this process in - recent releases of FreeBSD.</para> - - <para>There are two possible modes of disk formatting:</para> - - <itemizedlist> - <listitem> - <para><firstterm>compatibility mode</firstterm>: Arranging a - disk so that it has a slice table for use with other - operating systems.</para> - </listitem> - - <listitem> - <para><firstterm>dangerously dedicated mode</firstterm>: - Formatting a disk with no slice table. This makes the - process of adding disks easier, however non-FreeBSD - operating systems may not accept the disk.</para> - </listitem> - </itemizedlist> - - <para>For most cases, dedicated mode is the easiest to set up - and use in existing systems, as a new disk is usually - dedicated entirely to FreeBSD. However, compatibility mode - insures optimum interoperability with future installations at - a cost of increased complexity.</para> - - <para>In addition to selecting the mode, two methods of slicing - the disk are available. One is using the system installation - tool <command>/stand/sysinstall</command>. 2.1.7-RELEASE and - later versions of <command>sysinstall</command> contain code - to ease setup of disks during normal system operation, mainly - allowing access to the Label and Partition editors and a Write - feature which will update just the selected disk and slice - without affecting other disks. The other method is running - the tools manually from a root command line. For dangerously - dedicated mode, only three or four commands are involved while - <command>sysinstall</command> requires some - manipulation.</para> - </sect2> - - <sect2> - <title>Definitions</title> - - <para>UNIX disk management over the centuries has invented many - new definitions for old words. The following glossary covers - the definitions used in this document and (hopefully) for - FreeBSD in general.</para> - -<!-- I'm tempted to use GLOSSARY here but will resort to a list for -now. --> - - <itemizedlist> - <listitem> - <para>compatibility mode: Arranging a disk so that it has a - slice table for use with other operating systems. Oppose - dangerously dedicated mode.</para> - </listitem> - - <listitem> - <para>dangerously dedicated mode: Formatting a disk with no - slice table. This makes the process of adding disks - easier, however non-FreeBSD operating systems may not - accept the disk. Oppose compatibility mode.</para> - </listitem> - - <listitem> - <para>disk: A circular disc, covered with magnetic or - similarly manipulable material, spun by a motor under a - head. Data is stored on the disk by changing the pattern - of magnetism on the disc, which can be later read. Hard - disks, CD-ROMs, Magneto-optical,and Zip/Jaz removables are - examples of disks.</para> - </listitem> - - <listitem> - <para>slice: A division of a disk. Up to four slices are - permitted on one disk in the PC standard. Slices are - composed of contiguous sectors. Slices are recorded in a - <quote>slice table</quote> used by the system BIOS to - locate bootable partitions. The slice table is usually - called the Partition Table in DOS parlance. Maintained by - the fdisk utility.</para> - </listitem> - - <listitem> - <para>partition: A division of a slice. Usually used in - reference to divisions of the FreeBSD slice of a disk. - Each filesystem and swap area on a disk resides in a - partition. Maintained using the disklabel utility.</para> - </listitem> - - <listitem> - <para>sector: Smallest subdivision of a disk. One sector - usually represents 512 bytes of data.</para> - </listitem> - </itemizedlist> - </sect2> - - <sect2> - <title>Warnings & Pitfalls</title> - - <para>Building disks is not something to take lightly. It is - quite possible to destroy the contents of other disks in your - system if the proper precautions are not taken.</para> - - <para><emphasis>Check your work carefully.</> It is very simple - to destroy the incorrect disk when working with these - commands. When in doubt consult the kernel boot output for - the proper device.</para> - - <para>Needless to say, we are not responsible for any damage to - any data or hardware that you may experience. You work at - your own risk!</para> - </sect2> - - <sect2> - <title>Zip, Jaz, and Other Removables</title> - - <para>Removable disks can be formatted in the same way as normal - hard disks. It is essential to have the disk drive connected - to the system and a disk placed in the drive during startup, - so the kernel can determine the drive's geometry. Check the - <command>dmesg</command> output and make sure your device and - the disk's size is listed. If the kernel reports - - <informalexample> - <screen>Can't get the size - </screen> - </informalexample> - - then the disk was not in the drive. In this case, you will - need to restart the machine before attempting to format - disks.</para> - </sect2> - </sect1> - - <sect1> - <title>Formatting Disks in Dedicated Mode</title> - - <sect2> - <title>Introduction</title> - - <para>This section details how to make disks that are totally - dedicated to FreeBSD. Remember, dedicated mode disks cannot - be booted by the PC architecture.</para> - </sect2> - - <sect2> - <title>Making Dedicated Mode Disks using Sysinstall</title> - - <para><command>/stand/sysinstall</command>, the system - installation utility, has been expanded in recent versions to - make the process of dividing disks properly a less tiring - affair. The fdisk and disklabel editors built into sysinstall - are GUI tools that remove much of the confusion from slicing - disks. For FreeBSD versions 2.1.7 and later, this is perhaps - the simplest way to slice disks.</para> - - <procedure> - <step> - <para>Start sysinstall as root by typing - - <informalexample> - <screen>&prompt.root; <userinput>/stand/sysinstall</userinput> - </screen> - </informalexample> - - from the command prompt.</para> - </step> - - <step> - <para>Select <command>Index</command>.</para> - </step> - - <step> - <para>Select <command>Partition</command>.</para> - </step> - - <step> - <para>Select the disk to edit with arrow keys and - <keycap>SPACE</keycap>.</para> - </step> - - <step> - <para>If you are using this entire disk for FreeBSD, select - <command>A</command>.</para> - </step> - - <step> - <para>When asked: - - <informalexample> - <screen>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)? - </screen> - </informalexample> - - answer <command>No</command>.</para> - </step> - - <step> - <para>When asked if you still want to do this, answer - <command>Yes</command>.</para> - </step> - - <step> - <para>Select <command>Write</command>.</para> - </step> - - <step> - <para>When warned about Writing on installed systems, answer - <command>Yes</command>.</para> - </step> - - <step> - <para><command>Quit</command>the FDISK Editor and - <keycap>ESCAPE</keycap> back to the Index menu.</para> - </step> - - <step> - <para>Select <command>Label</command> from the Index - menu.</para> - </step> - - <step> - <para>Label as desired. For a single partition, enter - <command>C</command> to Create a partition, accept the - default size, partition type Filesystem, and a mountpoint - (which isn't used).</para> - </step> - - <step> - <para>Enter <command>W</command> when done and confirm to - continue. The filesystem will be newfs'd for you, unless - you select otherwise (for news partitions you'll want to - do this!). You'll get the error: - - <informalexample> - <screen>Error mounting /mnt/dev/wd2s1e on /mnt/blah : No such file or directory - </screen> - </informalexample> - - Ignore.</para> - </step> - - <step> - <para>Exit out by repeatedly pressing - <keycap>ESCAPE</keycap>.</para> - </step> - </procedure> - </sect2> - - <sect2> - <title>Making Dedicated Mode Disks Using the Command Line</title> - - <para>Execute the following commands, replacing wd2 with the - disk name.</para> - - <informalexample> - <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rwd2 count=2</userinput> -&prompt.root; <userinput>disklabel /dev/rwd2 | disklabel -B -R -r wd2 /dev/stdin</userinput> -<lineannotation>We only want one partition, so using slice 'c' should be fine:</lineannotation> -&prompt.root; <userinput>newfs /dev/rwd2c</userinput> - </screen> - </informalexample> - - <para>If you need to edit the disklabel to create multiple - partitions (such as swap), use the following: </para> - - <informalexample> - <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rwd2 count=2</userinput> -&prompt.root; <userinput>disklabel /dev/r$d > /tmp/label</userinput> -<lineannotation>Edit disklabel to add partitions:</lineannotation> -&prompt.root; <userinput>vi /tmp/label</userinput> -&prompt.root; <userinput>disklabel -B -R -r wd2 /tmp/label</userinput> -<lineannotation>newfs partitions appropriately</lineannotation> - </screen> - </informalexample> - - <para>Your disk is now ready for use.</para> - </sect2> - </sect1> - - <sect1> - <title>Making Compatibility Mode Disks</title> - - <sect2> - <title>Introduction</title> - - <para>The command line is the easiest way to make dedicated - disks, and the worst way to make compatibility disks. The - command-line fdisk utility requires higher math skills and an - in-depth understanding of the slice table, which is more than - most people want to deal with. Use sysinstall for - compatibility disks, as described below.</para> - </sect2> - - <sect2> - <title>Making Compatibility Mode Disks Using Sysinstall</title> - - <procedure> - <step> - <para>Start sysinstall as root by typing - - <informalexample> - <screen>&prompt.root; <userinput>/stand/sysinstall</> - </screen> - </informalexample> - - from the command prompt.</para> - </step> - - <step> - <para>Select <command>Index</command>.</para> - </step> - - <step> - <para>Select <command>Partition</command>.</para> - </step> - - <step> - <para>Select the disk to edit with arrow keys and - <keycap>SPACE</keycap>.</para> - </step> - - <step> - <para>If you are using this entire disk for FreeBSD, select - <command>A</command>.</para> - </step> - - <step> - <para>When asked: - - <informalexample> - <screen>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)? - </screen> - </informalexample> - - answer <command>yes</command>.</para> - </step> - - <step> - <para>Select <command>Write</command>.</para> - </step> - - <step> - <para>When asked to install the boot manager, select None - with <keycap>SPACE</keycap> then hit - <keycap>ENTER</keycap> for OK.</para> - </step> - - <step> - <para><command>Quit</command> the FDISK Editor.</para> - </step> - - <step> - <para>You'll be asked about the boot manager, select - <command>None</command> again. </para> - </step> - - <step> - <para>Select <command>Label</command> from the Index - menu.</para> - </step> - - <step> - <para>Label as desired. For a single partition, accept the - default size, type filesystem, and a mountpoint (which - isn't used).</para> - </step> - - <step> - <para>The filesystem will be newfs'd for you, unless you - select otherwise (for news partitions you'll want to do - this!). You'll get the error: - - <informalexample> - <screen>Error mounting /mnt/dev/wd2s1e on /mnt/blah : No such file or directory - </screen> - </informalexample> - - Ignore.</para> - </step> - - <step> - <para>Exit out by repeatedly pressing - <keycap>ESCAPE</keycap>.</para> - </step> - </procedure> - - <para>Your new disk is now ready for use.</para> - </sect2> - </sect1> - - <sect1> - <title>Other Disk Operations</title> - - <sect2> - <title>Adding Swap Space</title> - - <para>As a system grows, it's need for swap space can also grow. - Although adding swap space to existing disks is very - difficult, a new disk can be partitioned with additional swap - space.</para> - - <para>To add swap space when adding a disk to a system:</para> - - <procedure> - <step> - <para>When partitioning the disk, edit the disklabel and - allocate the amount of swap space to add in partition `b' - and the remainder in another partition, such as `a' or - `e'. The size is given in 512 byte blocks.</para> - </step> - - <step> - <para>When newfsing the drive, do NOT newfs the `c' - partition. Instead, newfs the partition where the - non-swap space lies.</para> - </step> - - <step> - <para>Add an entry to <filename>/etc/fstab</filename> as - follows:</para> - - <informalexample> - <programlisting>/dev/wd0b none swap sw 0 0 - </programlisting> - </informalexample> - - <para>Change /dev/wd0b to the device of the newly added - space.</para> - </step> - - <step> - <para>To make the new space immediately available, use the - <command>swapon</command> command. - - <informalexample> - <screen>&prompt.root; <userinput>swapon /dev/sd0b</userinput> -swapon: added /dev/sd0b as swap space - </screen> - </informalexample> - </para> - </step> - </procedure> - </sect2> - - <sect2> - <title>Copying the Contents of Disks</title> -<!-- Should have specific tag --> - - <para>Submitted By: Renaud Waldura - (<email>renaud@softway.com</email>) </para> - - <para>To move file from your original base disk to the fresh new - one, do: - - <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> - </para> - </sect2> - - <sect2> - <title>Creating Striped Disks using CCD</title> - - <para>Commands Submitted By: Stan Brown - (<email>stanb@awod.com</email>) </para> - - <para>The Concatenated Disk Driver, or CCD, allows you to treat - several identical disks as a single disk. Striping can result - in increased disk performance by distributing reads and writes - across the disks. See the &man.ccd.4; and &man.ccdconfig.8; - man pages or the <ulink - URL="http://stampede.cs.berkeley.edu/ccd/">CCD - Homepage</ulink> for further details.</para> - - <para>To create a new CCD, execute the following commands. This - describes how to add three disks together; simply add or - remove devices as necessary. Remember that the disks to be - striped must be <emphasis>identical.</></para> - - <para>Before executing these commands, make sure you add the line - - <userinput>pseudo-device ccd 4</userinput> - - to your kernel.</para> - - <informalexample> - <screen>&prompt.root; <userinput>cd /dev ; sh MAKDEV ccd0</userinput> - -&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> - -&prompt.root; <userinput>disklabel -e sd0c</userinput> -<lineannotation>change type to 4.2BSD</lineannotation> -&prompt.root; <userinput>disklabel -e sd1c</userinput> -<lineannotation>change type to 4.2BSD</lineannotation> -&prompt.root; <userinput>disklabel -e sd2c</userinput> -<lineannotation>change type to 4.2BSD</lineannotation> - -&prompt.root; <userinput>ccdconfig ccd0 32 0 /dev/sd0c /dev/sd1c /dev/sd2c</userinput> - -&prompt.root; <userinput>newfs /dev/rccd0c</userinput> - </screen> - </informalexample> - - <para>Now you can mount and use your CCD by referencing device - /dev/ccd0c.</para> - </sect2> - </sect1> - - <sect1> - <title>Credits</title> - - <para>The author would like to thank the following individuals for - their contributions to this project:</para> - - <itemizedlist> - <listitem> - <para>Darryl Okahata - (<email>darrylo@hpnmhjw.sr.hp.com</email>) for his simple - dedicated mode setup documentation which I have used - repeatedly on freebsd-questions.</para> - </listitem> - - <listitem> - <para>Jordan Hubbard (<email>jkh@FreeBSD.org</email>) for - making sysinstall useful for this type of task.</para> - </listitem> - - <listitem> - <para>John Fieber (<email>jfieber@indiana.edu</email>) for - making information and examples of the DocBook DTD on which - this document is based.</para> - </listitem> - - <listitem> - <para>Greg Lehey (<email>grog@FreeBSD.org</email>) for - checking my work and pointing out inaccuracies, as well as - miscellaneous support.</para> - </listitem> - </itemizedlist> - </sect1> -</article> diff --git a/en_US.ISO8859-1/articles/mh/Makefile b/en_US.ISO8859-1/articles/mh/Makefile deleted file mode 100644 index 886e21cc9d..0000000000 --- a/en_US.ISO8859-1/articles/mh/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# $FreeBSD$ - -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/en_US.ISO8859-1/articles/mh/article.sgml b/en_US.ISO8859-1/articles/mh/article.sgml deleted file mode 100644 index 9dfa488f0e..0000000000 --- a/en_US.ISO8859-1/articles/mh/article.sgml +++ /dev/null @@ -1,782 +0,0 @@ -<!-- $FreeBSD: doc/en_US.ISO_8859-1/articles/mh/article.sgml,v 1.6 1999/10/10 19:29:59 jhb Exp $ --> -<!-- FreeBSD Documentation Project --> - -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN"> -<article> - <artheader> - <title>An MH Primer</title> - - <authorgroup> - <author> - <firstname>Matt</firstname> - - <surname>Midboe</surname> - - <affiliation> - <address> - <email>matt@garply.com</email> - </address> - </affiliation> - </author> - </authorgroup> - - <pubdate>v1.0, 16 January 1996</pubdate> - - <abstract> - <para>This document contains an introduction to using MH on - FreeBSD</para> - </abstract> - </artheader> - - <sect1 id="mhintro"> - <title>Introduction</title> - - <para>MH started back in 1977 at the RAND Corporation, where the - initial philosophies behind MH were developed. MH isn't so much - a monolithic email program but a philosophy about how best to - develop tools for reading email. The MH developers have done a - great job adhering to the <acronym>KISS</> principle: Keep It - Simple Stupid. Rather than have one large program for reading, - sending and handling email they have written specialized - programs for each part of your email life. One might liken MH to - the specialization that one finds in insects and nature. Each - tool in MH does one thing, and does it very well.</para> - - <para>Beyond just the various tools that one uses to handle their - email MH has done an excellent job keeping the configuration of - each of these tools consistent and uniform. In fact, if you are - not quite sure how something is supposed to work or what the - arguments for some command are supposed to be then you can - generally guess and be right. Each MH command is consistent - about how it handles reading the configuration files and how it - takes arguments on the command line. One useful thing to - remember is that you can always add a <option>-help</option> to - the command to have it display the options for that - command.</para> - - <para>The first thing that you need to do is to make sure that you - have installed the MH package on your FreeBSD machine. If you - installed from CDROM you should be able to execute the following - to load mh: - - <informalexample> - <screen>&prompt.root; <userinput>pkg_add /cdrom/packages/mh-6.8.3.tgz</> - </screen> - </informalexample> - - You will notice that it created a <filename>/usr/local/lib/mh</> - directory for you as well as adding several binaries to the - <filename>/usr/local/bin</> directory. If you would prefer to - compile it yourself then you can anonymous ftp it from <ulink - URL="ftp://ftp.ics.uci.edu/">ftp.ics.uci.edu</ulink> or <ulink - URL="ftp://louie.udel.edu/">louie.udel.edu</ulink>.</para> - - <para>This primer is not a full comprehensive explanation of how - MH works. This is just intended to get you started on the road - to happier, faster mail reading. You should read the man pages - for the various commands. Also you might want to read the <ulink - URL="news:comp.mail.mh">comp.mail.mh</ulink> newsgroup. Also - you can read the <ulink - URL="http://www.cis.ohio-state.edu/hypertext/faq/usenet/mh-faq/part1/faq.html">FAQ - for MH</ulink>. The best resource for MH is the O'Reilly and - Associates book written by Jerry Peek.</para> - </sect1> - - <sect1> - <title>Reading Mail</title> - - <para>This section covers how to use <command>inc</>, - <command>show</>, <command>scan</>, <command>next</>, - <command>prev</>, <command>rmm</>, <command>rmf</>, and - <command>msgchk</>. One of the best things about MH is the - consistent interface between programs. A few things to keep in - mind when using these commands is how to specify message lists. - In the case of <command>inc</> this doesn't really make any - sense but with commands like <command>show</> it is useful to - know. </para> - - <para>A message list can consist of something like <parameter>23 - 20 16</> which will act on messages 23, 20 and 16. This is - fairly simple but you can do more useful things like - <parameter>23-30</> which will act on all the messages between - 23 and 30. You can also specify something like - <parameter>cur:10</> which will act on the current message and - the next 9 messages. The <parameter>cur</>, <parameter>last</>, - and <parameter>first</> messages are special messages that refer - to the current, last or first message in the folder.</para> - - <sect2 id="inc"> - <title><command>inc</>, <command>msgchk</>—read in your - new email or check it</title> - - <para>If you just type in <userinput>inc</> and hit - <keycap>return</> you will be well on your way to getting - started with MH. The first time you run <command>inc</> it - will setup your account to use all the MH defaults and ask you - about creating a Mail directory. If you have mail waiting to - be downloaded you will see something that looks like:</para> - - <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> - - <para>This is the same thing you will see from a - <command>scan</> (see <xref linkend="scan">). If you just run - <command>inc</> with no arguments it will look on your - computer for email that is supposed to be coming to - you.</para> - - <para>A lot of people like to use POP for grabbing their email. - MH can do POP to grab your email. You will need to give - <command>inc</> a few command line arguments.</para> - - <informalexample> - <screen>&prompt.user; <userinput>inc -host mail.pop.org -user <replaceable>username</> -norpop</> - </screen> - </informalexample> - - <para>That tells <command>inc</> to go to - <parameter>mail.pop.org</> to download your email, and that - your username on their system is <replaceable>username</>. The - <option>-norpop</option> option tells <command>inc</> to use - plain POP3 for downloading your email. MH has support for a - few different dialects of POP. More than likely you will never - ever need to use them though. While you can do more complex - things with inc such as audit files and scan format files this - will get you going.</para> - - <para>The <command>msgchk</> command is used to get information - on whether or not you have new email. <command>msgchk</> takes - the same <option>-host</option> and <option>-user</option> - options that <command>inc</> takes.</para> - </sect2> - - <sect2 id="show"> - <title><command>show</>, <command>next</> and - <command>prev</>—displaying and moving through - email</title> - - <para><command>show</> is to show a letter in your current - folder. Like <command>inc</>, <command>show</> is a fairly - straightforward command. If you just type <userinput>show</> - and hit <keycap>return</> then it displays the current - message. You can also give specific message numbers to - show:</para> - - <informalexample> - <screen>&prompt.user; <userinput>show 32 45 56</> - </screen> - </informalexample> - - <para>This would display message numbers 32, 45 and 56 right - after each other. Unless you change the default behavior - <command>show</> basically just does a <command>more</> on the - email message.</para> - - <para><command>next</> is used to move onto the next message and - <command>prev</> will go to the previous message. Both - commands have an implied <command>show</> command so that when - you go to the next message it automatically displays - it.</para> - </sect2> - - <sect2 id="scan"> - <title><command>scan</>—shows you a scan of your - messages</title> - - <para><command>scan</> will display a brief listing of the - messages in your current folder. This is an example of what - the <command>scan</> command will give you.</para> - - <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> - - <para>Like just about everything in MH this display is very - configurable. This is the typical default display. It gives - you the message number, the date on the email, the sender, the - subject line, and a sentence fragment from the very beginning - of the email if it can fit it. The <literal>+</> means that - message is the current message, so if you do a - <command>show</> it will display that message.</para> - - <para>One useful option for scan is the - <option>-reverse</option> option. This will list your messages - with the highest message number first and lowest message - number last. Another useful option with <command>scan</> is to - have it read from a file. If you want to scan your incoming - mailbox on FreeBSD without having to <command>inc</> it you - can do <command>scan -file - /var/mail/<replaceable>username</></command>. This can be used - with any file that is in the <database>mbox</> format.</para> - </sect2> - - <sect2 id="rmm"> - <title><command>rmm</> and <command>rmf</>—remove the - current message or folder</title> - - <para><command>rmm</> is used to remove a mail message. The - default is typically to not actually remove the message but to - rename the file to one that is ignored by the MH commands. You - will need to through periodically and physically delete the - <quote>removed</> messages.</para> - - <para>The <command>rmf</> command is used to remove folders. - This doesn't just rename the files but actually removes the - from the hard drive so you should be careful when you use this - command.</para> - </sect2> - - <sect2 id="samplereading"> - <title>A typical session of reading with MH</title> - - <para>The first thing that you will want to do is - <command>inc</> your new mail. So at a shell prompt just type - in <command>inc</> and hit <keycap>return</>.</para> - - <informalexample> - <screen>&prompt.user; <userinput>inc</> -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 -&prompt.user; - </screen> - </informalexample> - - <para>This shows you the new email that has been added to your - mailbox. So the next thing to do is <command>show</> the email - and move around.</para> - - <informalexample> - <screen>&prompt.user; <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 - -&prompt.user; <userinput>rmm</> -&prompt.user; <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>The <command>rmm</> removed the current message and the - <command>next</> command moved me on to the next message. Now - if I wanted to look at ten most recent messages so I could - read one of them here is what I would do:</para> - - <informalexample> - <screen>&prompt.user; <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 -&prompt.user; - </screen> - </informalexample> - - <para>Then if I wanted to read message number 27 I would do a - <userinput>show 27</> and it would be displayed. As you can - probably tell from this sample session MH is pretty easy to - use and looking through emails and displaying them is fairly - intuitive and easy.</para> - </sect2> - </sect1> - - <sect1> - <title>Folders and Mail Searching</title> - - <para>Anybody who gets lots of email definitely wants to be able - to prioritize, stamp, brief, de-brief, and number their emails - in a variety of different ways. MH can do this better than just - about anything. One thing that we haven't really talked about is - the concept of folders. You have undoubtedly come across the - folders concept using other email programs. MH has folders too. - MH can even do sub-folders of a folder. One thing you should - keep in mind with MH is that when you ran <command>inc</> for - the first time and it asked you if it could create a - <filename>Mail</> directory it began storing everything in that - directory. If you look at that directory you will find a - directory named <filename>inbox</>. The <filename>inbox</> - directory houses all of your incoming mail that hasn't been - thrown anywhere else.</para> - - <para>Whenever you create a new folder a new directory is going to - be created underneath your MH <filename>Mail</> directory, and - messages in that folder are going to be stored in that - directory. When new email comes in that new email is thrown - into your <filename>inbox</> directory with a file name that is - equivalent to the message number. So even if you didn't have - any of the MH tools to read your email you could still use - standard UNIX commands to munge around in those directories and - just more your files. It's this simplicity that really gives you - a lot of power with what you can do with your email.</para> - - <para>Just as you can use message lists like <parameter>23 16 - 42</> with most MH commands there is a folder option you can - specify with just about every MH command. If you do a - <command>scan +freebsd</> it will scan your <filename>freebsd</> - folder, and your current folder will be changed to - <filename>freebsd</>. If you do a <command>show +freebsd 23 16 - 42</>, <command>show</> is going to switch to your - <filename>freebsd</> folder and display messages 23, 16 and 42. - So remember that <option>+<replaceable>folder</></> syntax. You - will need to make sure you use it to make commands process - different folders. Remember you default folder for mail is - <filename>inbox</> so doing a <command>folder +inbox</> should - always get you back to your mail. Of course, in MH's infinite - flexibility this can be changed but most places have probably - left it as <command>inbox</>.</para> - - <sect2> - <title><command>pick</>—search email that matches certain - criteria</title> - - <para><command>pick</> is one of the more complex commands in - the MH system. So you might want to read the - <citerefentry><refentrytitle>pick</><manvolnum>1</></> man - page for a more thorough understanding. At its simplest level - you can do something like</para> - - <informalexample> - <screen>&prompt.user; <userinput>pick -search pci</> -15 -42 -55 -56 -57 - </screen> - </informalexample> - - <para>This will tell <command>pick</> to look through every - single line in every message in your current folder and tell - you which message numbers it found the word <literal>pci</> - in. You can then <command>show</> those messages and read them - if you wish or <command>rmm</> them. You would have to specify - something like <command>show 15 42 55-57</> to display them - though. A slightly more useful thing to do is this:</para> - - <informalexample> - <screen>&prompt.user; <userinput>pick -search pci -seq pick</> -5 hits -&prompt.user; <userinput>show pick</> - </screen> - </informalexample> - - <para>This will show you the same messages you just didn't have - to work as hard to do it. The <option>-seq</option> option is - really an abbreviation of <option>-sequence</option> and - <command>pick</> is just a sequence which contains the message - numbers that matched. You can use sequences with just about - any MH command. So you could have done an <command>rmm pick</> - and all those messages would be removed instead. You sequence - can be named anything. If you run pick again it will overwrite - the old sequence if you use the same name.</para> - - <para>Doing a <command>pick -search</command> can be a bit more - time consuming than just searching for message from someone, - or to someone. So <command>pick</> allows you to use the - following predefined search criteria:</para> - - <variablelist> - <varlistentry> - <term><option>-to</option></term> - - <listitem> - <para>search based upon who the message is to</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-cc</option></term> - - <listitem> - <para>search based on who is in the cc list</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-from</option></term> - - <listitem> - <para>search for who sent the message</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-subject</option></term> - - <listitem> - <para>search for emails with this subject</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-date</option></term> - - <listitem> - <para>find emails with a matching dat</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>--<replaceable>component</replaceable></option></term> - - <listitem> - <para>search for any other component in the header. (i.e. - <option>--reply-to</> to find all emails with a certain - reply-to in the header)</para> - </listitem> - </varlistentry> - </variablelist> - - <para>This allows you to do things like - - <informalexample> - <screen>&prompt.user; <userinput>pick -to freebsd-hackers@FreeBSD.org -seq hackers</> - </screen> - </informalexample> - - to get a list of all the email send to the FreeBSD hackers - mailing list. <command>pick</> also allows you to group these - criteria in different ways using the following options:</para> - - <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> - - <para>These commands allow you to do things like</para> - - <informalexample> - <screen>&prompt.user; <userinput>pick -to freebsd-hackers -and -cc freebsd-hackers</> - </screen> - </informalexample> - - <para>That will grab all the email in your inbox that was sent - to freebsd-hackers or cc'd to that list. The brace options - allow you to group search criteria together. This is sometimes - very necessary as in the following example</para> - - <informalexample> - <screen>&prompt.user; <userinput>pick -lbrace -to freebsd-hackers -and - -not -cc freebsd-questions -rbrace -and -subject pci</> - </screen> - </informalexample> - - <para>Basically this says <quote>pick (to freebsd-hackers and - not cc'd on freebsd-questions) and the subject is - pci</quote>. It should look through your folder and find - all messages sent to the freebsd-hackers list that aren't cc'd - to the freebsd-questions list that contain something on pci in - the subject line. Ordinarily you might have to worry about - something called operator precedence. Remember in math how you - evaluate from left to right and you do multiplication and - division first and addition and subtraction second? MH has the - same type of rules for <command>pick</>. It's fairly complex - so you might want to study the man page. This document is just - to help you get acquainted with MH.</para> - </sect2> - - <sect2> - <title><command>folder</>, <command>folders</>, - <command>refile</>—three useful programs for folder - maintenance</title> - - <para>There are three programs which are primarily just for - manipulating your folders. The <command>folder</> program is - used to switch between folders, pack them, and list them. At - its simplest level you can do a <command>folder - +<replaceable>newfolder</></> and you will be switched into - <replaceable>newfolder</>. From there on out all your MH - commands like <command>comp</>, <command>repl</>, - <command>scan</>, and <command>show</> will act on that - <command>newfolder</> folder.</para> - - <para>Sometimes when you are reading and deleting messages you - will develop <quote>holes</> in your folders. If you do a - <command>scan</> you might just see messages 34, 35, 36, 43, - 55, 56, 57, 80. If you do a <command>folder -pack</command> - this will renumber all your messages so that there are no - holes. It doesn't actually delete any messages though. So you - may need to periodically go through and physically delete - <command>rmm</>'d messages.</para> - - <para>If you need statistics on your folders you can do a - <command>folders</> or <command>folder -all</command> to list - all your folders, how many messages they have, what the - current message is in each one and so on. This line of stats - it displays for all your folders is the same one you get when - you change to a folder with <command>folder +foldername</>. A - <command>folders</> command looks like this:</para> - - <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>The <command>refile</> command is what you use to move - messages between folders. When you do something like - <command>refile 23 +netfuture</> message number 23 is moved - into the <filename>netfuture</> folder. You could also do - something like <command>refile 23 +netfuture/latest</> which - would put message number 23 in a subfolder called - <filename>latest</> under the <filename>netfuture</> folder. - If you want to keep a message in the current folder and link - it you can do a <command>refile -link 23 +netfuture</command> - which would keep 23 in your current <filename>inbox</> but - also list in your <filename>netfuture</> folder. You are - probably beginning to realize some of the really powerful - things you can do with MH.</para> - </sect2> - </sect1> - - <sect1> - <title>Sending Mail</title> - - <para>Email is a two way street for most people so you want to be - able to send something back. The way MH handles sending mail can - be a bit difficult to follow at first, but it allows for - incredible flexibility. The first thing MH does is to copy a - components file into your outgoing email. A components file is - basically a skeleton email letter with stuff like the To: and - Subject: headers already in it. You are then sent into your - editor where you fill in the header information and then type - the body of your message below the dashed lines in the message. - Then to the <command>whatnow</> program. When you are at the - <prompt>What now?</prompt> prompt you can tell it to - <command>send</>, <command>list</>, <command>edit</>, - <command>edit</>, <command>push</>, and <command>quit</>. Most - of these commands are self-explanatory. So the message sending - process involves copying a component file, editing your email, - and then telling the <command>whatnow</> program what to do with - your email.</para> - - <sect2> - <title><command>comp</>, <command>forw</>, - <command>reply</>—compose, forward or reply to a message - to someone</title> - - <para>The <command>comp</> program has a few useful command line - options. The most important one to know right now is the - <option>-editor</option> option. When MH is installed the - default editor is usually a program called - <command>prompter</> which comes with MH. It's not a very - exciting editor and basically just gets the job done. So when - you go to compose a message to someone you might want to use - <command>comp -editor /usr/bin/vi/</> or <command>comp -editor - /usr/local/bin/pico/</> instead. Once you have run - <emphasis>comp</emphasis> you are in your editor and you see - something that looks like this:</para> - - <informalexample> - <screen>To: -cc: -Subject: --------- - </screen> - </informalexample> - - <para>You need to put the person you are sending the mail to - after the <literal>To:</> line. It works the same way for the - other headers also, so you would need to put your subject - after the <literal>Subject:</> line. Then you would just put - the body of your message after the dashed lines. It may seem a - bit simplistic since a lot of email programs have special - requesters that ask you for this information but there really - isn't any point to that. Plus this really gives you excellent - flexibility.</para> - - <informalexample> - <screen>To:<userinput>freebsd-rave@FreeBSD.org</> -cc: -Subject:<userinput>And on the 8th day God created the FreeBSD core team</> --------- -<userinput>Wow this is an amazing operating system. Thanks!</> - </screen> - </informalexample> - - <para>You can now save this message and exit your editor. You - will see the <prompt>What now?</> prompt and you can type in - <userinput>send</> or <userinput>s</> and hit - <keycap>return</>. Then the FreeBSD core team will receive - their just rewards. As I mentioned earlier you can also use - other commands, for example <command>quit</> if you don't want - to send the message.</para> - - <para>The <command>forw</> command is stunningly similar. The - big difference being that the message you are forwarding is - automatically included in the outgoing message. When you run - <command>forw</> it will forward your current message. You can - always tell it to forward something else by doing something - like <command>forw 23</> and then message number 23 will be - put in your outgoing message instead of the current message. - Beyond those small differences <command>forw</> functions - exactly the same as <command>comp</>. You go through the exact - same message sending process.</para> - - <para>The <command>repl</> command will reply to whatever your - current message is, unless you give it a different message to - reply to. <command>repl</> will do its best to go ahead and - fill in some of the email headers already. So you will notice - that the <literal>To:</> header already has the address of the - recipient in there. Also the <literal>Subject:</> line will - already be filled in. You then go about the normal message - composition process and you are done. One useful command line - option to know here is the <option>-cc</option> option. You - can use <parameter>all</>, <parameter>to</>, <parameter>cc</>, - <parameter>me</> after the <option>-cc</option> option to have - <command>repl</> automatically add the various addresses to - the cc list in the message. You have probably noticed that the - original message isn't included. This is because most MH - setups are configured to do this from the start.</para> - </sect2> - - <sect2> - <title><filename>components</>, and - <filename>replcomps</>—components files for - <command>comp</> and <command>repl</></title> - - <para>The <filename>components</> file is usually in - <filename>/usr/local/lib/mh</filename>. You can copy that file - into your MH Mail directory and edit to contain what you want - it to contain. It is a fairly basic file. You have various - email headers at the top, a dashed line and then nothing. The - <command>comp</command> command just copies this - <filename>components</> file and then edits it. You can add - any kind of valid RFC822 header you want. For instance you - could have something like this in your <filename>components</> - file:</para> - - <informalexample> - <screen>To: -Fcc: out -Subject: -X-Mailer: MH 6.8.3 -X-Home-Page: http://www.FreeBSD.org/ -------- - </screen> - </informalexample> - - <para>MH would then copy this components file and throw you into - your editor. The <filename>components</> file is fairly - simple. If you wanted to have a signature on those messages - you would just put your signature in that - <filename>components</> file.</para> - - <para>The <filename>replcomps</> file is a bit more complex. The - default <filename>replcomps</> looks like this:</para> - - <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>It's in the same basic format as the - <filename>components</> file but it contains quite a few extra - formatting codes. The <literal>%(lit)</> command makes room - for the address. The <literal>%(formataddr</> is a function - that returns a proper email address. The next part is - <literal>%<</literal> which means if and the - <literal>{reply-to}</> means the reply-to field in the - original message. So that might be translated this way:</para> - - <informalexample> - <screen>%<<emphasis remap=bf>if</emphasis> {reply-to} <emphasis remap=bf>the original message has a reply-to</emphasis> -then give that to formataddr, %? <emphasis remap=bf>else</emphasis> {from} <emphasis remap=bf>take the -from address</emphasis>, %? <emphasis remap=bf>else</emphasis> {sender} <emphasis remap=bf>take the sender address</emphasis>, %? -<emphasis remap=bf>else</emphasis> {return-path} <emphasis remap=bf>take the return-path from the original -message</emphasis>, %> <emphasis remap=bf>endif</emphasis>. - </screen> - </informalexample> - - <para>As you can tell MH formatting can get rather involved. You - can probably decipher what most of the other functions and - variables mean. All of the information on writing these format - strings is in the MH-Format man page. The really nice thing is - that once you have built your customized - <filename>replcomps</> file you won't need to touch it again. - No other email program really gives you the power and - flexibility that MH gives you.</para> - </sect2> - </sect1> -</article> diff --git a/en_US.ISO8859-1/articles/multi-os/Makefile b/en_US.ISO8859-1/articles/multi-os/Makefile deleted file mode 100644 index 886e21cc9d..0000000000 --- a/en_US.ISO8859-1/articles/multi-os/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# $FreeBSD$ - -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/en_US.ISO8859-1/articles/multi-os/article.sgml b/en_US.ISO8859-1/articles/multi-os/article.sgml deleted file mode 100644 index 4dd680f3a5..0000000000 --- a/en_US.ISO8859-1/articles/multi-os/article.sgml +++ /dev/null @@ -1,743 +0,0 @@ -<!-- $FreeBSD: doc/en_US.ISO_8859-1/articles/multi-os/article.sgml,v 1.11 1999/10/13 10:51:58 jhb Exp $ --> -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN"> -<article> - <artheader> - <title>Installing and Using FreeBSD With Other Operating Systems</title> - - <authorgroup> - <author> - <firstname>Jay</firstname> - - <surname>Richmond</surname> - - <affiliation> - <address> - <email>jayrich@sysc.com</email> - </address> - </affiliation> - </author> - </authorgroup> - - <pubdate>6 August 1996</pubdate> - - <abstract> - <para>This document discusses how to make FreeBSD coexist nicely - with other popular operating systems such as Linux, MS-DOS, - OS/2, and Windows 95. Special thanks to: Annelise Anderson - <email>andrsn@stanford.edu</email>, Randall Hopper - <email>rhh@ct.picker.com</email>, and Jordan K. Hubbard - <email>jkh@time.cdrom.com</email></para> - </abstract> - </artheader> - - <sect1> - <title>Overview</title> - - <para>Most people can't fit these operating systems together - comfortably without having a larger hard disk, so special - information on large EIDE drives is included. Because there are - so many combinations of possible operating systems and hard disk - configurations, the <xref linkend="ch5"> section may be of the - most use to you. It contains descriptions of specific working - computer setups that use multiple operating systems.</para> - - <para>This document assumes that you have already made room on - your hard disk for an additional operating system. Any time you - repartition your hard drive, you run the risk of destroying the - data on the original partitions. However, if your hard drive is - completely occupied by DOS, you might find the FIPS utility - (included on the FreeBSD CD-ROM in the - <filename>\TOOLS</filename> directory or via <ulink - URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/tools">ftp</ulink>) - useful. It lets you repartition your hard disk without - destroying the data already on it. There is also a commercial - program available called Partition Magic, which lets you size - and delete partitions without consequence.</para> - </sect1> - - <sect1 id="ch2"> - <title>Overview of Boot Managers</title> - - <para>These are just brief descriptions of some of the different - boot managers you may encounter. Depending on your computer - setup, you may find it useful to use more than one of them on - the same system.</para> - - <variablelist> - <varlistentry> - <term>Boot Easy</term> - - <listitem> - <para>This is the default boot manager used with FreeBSD. - It has the ability to boot most anything, including BSD, - OS/2 (HPFS), Windows 95 (FAT and FAT32), and Linux. - Partitions are selected with the function keys.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>OS/2 Boot Manager</term> - - <listitem> - <para>This will boot FAT, HPFS, FFS (FreeBSD), and EXT2 - (Linux). It will also boot FAT32 partitions. Partitions - are selected using arrow keys. The OS/2 Boot Manager is - the only one to use its own separate partition, unlike the - others which use the master boot record (MBR). Therefore, - it must be installed below the 1024th cylinder to avoid - booting problems. It can boot Linux using LILO when it is - part of the boot sector, not the MBR. Go to <ulink - URL="http://www.linuxresources.com/LDP/HOWTO/HOWTO-INDEX.html">Linux - HOWTOs</ulink> on the World Wide Web for more - information on booting Linux with OS/2's boot - manager.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>OS-BS</term> - - <listitem> - <para>This is an alternative to Boot Easy. It gives you more - control over the booting process, with the ability to set - the default partition to boot and the booting timeout. - The beta version of this programs allows you to boot by - selecting the OS with your arrow keys. It is included on - the FreeBSD CD in the <filename>\TOOLS</filename> - directory, and via <ulink - URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/tools">ftp</ulink>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>LILO, or LInux LOader</term> - - <listitem> - <para>This is a limited boot manager. It will boot FreeBSD, - though some customization work is required in the LILO - configuration file.</para> - </listitem> - </varlistentry> - </variablelist> - - <note id="fat32"> - <title>About FAT32</title> - - <para>FAT32 is the replacement to the FAT filesystem included in - Microsoft's OEM SR2 Beta release, which is expected to be - utilitized on computers pre-loaded with Windows 95 towards the - end of 1996. It converts the normal FAT file system and - allows you to use smaller cluster sizes for larger hard - drives. FAT32 also modifies the traditional FAT boot sector - and allocation table, making it incompatible with some boot - managers.</para> - </note> - </sect1> - - <sect1 id="ch3"> - <title>A Typical Installation</title> - - <para>Let's say I have two large EIDE hard drives, and I want to - install FreeBSD, Linux, and Windows 95 on them.</para> - - <para>Here's how I might do it using these hard disks:</para> - - <itemizedlist> - <listitem> - <para><filename>/dev/wd0</> (first physical hard disk)</para> - </listitem> - - <listitem> - <para><filename>/dev/wd1</> (second hard disk)</para> - </listitem> - </itemizedlist> - - <para>Both disks have 1416 cylinders.</para> - - <procedure> - <step> - <para>I boot from a MS-DOS or Windows 95 boot disk that - contains the <filename>FDISK.EXE</> utility and make a small - 50 meg primary partition (35-40 for Windows 95, plus a - little breathing room) on the first disk. Also create a - larger partition on the second hard disk for my Windows - applications and data.</para> - </step> - - <step> - <para>I reboot and install Windows 95 (easier said than done) - on the <filename>C:</> partition.</para> - </step> - - <step> - <para>The next thing I do is install Linux. I'm not sure - about all the distributions of Linux, but slackware includes - LILO (see <xref linkend="ch2">). When I am partitioning out - my hard disk with Linux <command>fdisk</command>, I would - put all of Linux on the first drive (maybe 300 megs for a - nice root partition and some swap space).</para> - </step> - - <step> - <para>After I install Linux, and are prompted about installing - LILO, make SURE that I install it on the boot sector of my - root Linux partition, not in the MBR (master boot - record).</para> - </step> - - <step> - <para>The remaining hard disk space can go to FreeBSD. I also - make sure that my FreeBSD root slice does not go beyond the - 1024th cylinder. (The 1024th cylinder is 528 megs into the - disk with our hypothetical 720MB disks). I will use the - rest of the hard drive (about 270 megs) for the - <filename>/usr</> and <filename>/</> slices if I wish. The - rest of the second hard disk (size depends on the amount of - my Windows application/data partition that I created in step - 1 can go to the <filename>/usr/src</> slice and swap - space.</para> - </step> - - <step> - <para>When viewed with the Windows 95 <command>fdisk</> - utility, my hard drives should now look something like this: - - <screen> ---------------------------------------------------------------------- - - 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 - ---------------------------------------------------------------------- - </screen> - ** May say FAT16 or FAT32 if you are using the OEM SR2 - update. See <xref linkend="ch2">).</para> - </step> - - <step> - <para>Install FreeBSD. I make sure to boot with my first hard - disk set at <quote>NORMAL</> in the BIOS. If it is not, - I'll have the enter my true disk geometry at boot time (to - get this, boot Windows 95 and consult Microsoft Diagnostics - (<filename>MSD.EXE</>), or check your BIOS) with the - parameter <literal>hd0=1416,16,63</> where - <replaceable>1416</> is the number of cylinders on my hard - disk, <replaceable>16</> is the number of heads per track, - and <replaceable>63</> is the number of sectors per track on - the drive.</para> - </step> - - <step> - <para>When partitioning out the hard disk, I make sure to - install Boot Easy on the first disk. I don't worry about - the second disk, nothing is booting off of it.</para> - </step> - - <step> - <para>When I reboot, Boot Easy should recognize my three - bootable partitions as DOS (Windows 95), Linux, and BSD - (FreeBSD).</para> - </step> - </procedure> - </sect1> - - <sect1 id="ch4"> - <title>Special Considerations</title> - - <para>Most operating systems are very picky about where and how - they are placed on the hard disk. Windows 95 and DOS need to be - on the first primary partitiin on the first hard disk. OS/2 is - the exception. It can be installed on the first or second disk - in a primary or extended partition. If you are not sure, keep - the beginning of the bootable partitions below the 1024th - cylinder.</para> - - <para>If you install Windows 95 on an existing BSD system, it will - <quote>destroy</> the MBR, and you will have to reinstall your - previous boot manager. Boot Easy can be reinstalled by using - the BOOTINST.EXE utility included in the \TOOLS directory on the - CD-ROM, and via <ulink - URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/tools">ftp</ulink>. - You can also re-start the installation process and go to the - partition editor. From there, mark the FreeBSD partition as - bootable, select Boot Manager, and then type W to (W)rite out - the information to the MBR. You can now reboot, and Boot Easy - should then recognize Windows 95 as DOS.</para> - - <para>Please keep in mind that OS/2 can read FAT and HPFS - partitions, but not FFS (FreeBSD) or EXT2 (Linux) partitions. - Likewise, Windows 95 can only read and write to FAT and FAT32 - (see <xref linkend="ch2">) partitions. FreeBSD can read most - file systems, but currently cannot read HPFS partitions. Linux - can read HPFS partitions, but can't write to them. Recent - versions of the Linux kernel (2.x) can read and write to Windows - 95 VFAT partitions (VFAT is what gives Windows 95 long file - names - it's pretty much the same as FAT). Linux can read and - write to most file systems. Got that? I hope so.</para> - </sect1> - - <sect1 id="ch5"> - <title>Examples</title> - - <para><emphasis>(section needs work, please send your example to - <email>jayrich@sysc.com</email>)</emphasis>.</para> - - <para>FreeBSD+Win95: If you installed FreeBSD after Windows 95, - you should see <literal>DOS</> on the Boot Easy menu. This is - Windows 95. If you installed Windows 95 after FreeBSD, read - <xref linkend="ch4"> above. As long as your hard disk does not - have 1024 cylinders you should not have a problem booting. If - one of your partitions goes beyond the 1024th cylinder however, - and you get messages like <errorname>invalid system disk</> - under DOS (Windows 95) and FreeBSD will not boot, try looking - for a setting in your BIOS called <quote>> 1024 cylinder - support</> or <quote>NORMAL/LBA</> mode. DOS may need LBA - (Logical Block Addressing) in order to boot correctly. If the - idea of switching BIOS settings every time you boot up doesn't - appeal to you, you can boot FreeBSD through DOS via the - <filename>FBSDBOOT.EXE</> utility on the CD (It should find your - FreeBSD partition and boot it.)</para> - - <para>FreeBSD+OS/2+Win95: Nothing new here. OS/2's boot manger - can boot all of these operating systems, so that shouldn't be a - problem.</para> - - <para>FreeBSD+Linux: You can also use Boot Easy to boot both - operating systems.</para> - - <para>FreeBSD+Linux+Win95: (see <xref linkend="ch3">)</para> - </sect1> - - <sect1 id="sources"> - <title>Other Sources of Help</title> - - <para>There are many <ulink - URL="http://www.linuxresources.com/LDP/HOWTO/HOWTO-INDEX.html">Linux - HOW-TOs</ulink> that deal with multiple operating systems on - the same hard disk.</para> - - <para>The <ulink - URL="http://www.linuxresources.com/LDP/HOWTO/mini/Linux+DOS+Win95+OS2.html">Linux+DOS+Win95+OS2 - mini-HOWTO</ulink> offers help on configuring the OS/2 boot - manager, and the <ulink - URL="http://www.linuxresources.com/LDP/HOWTO/mini/Linux+FreeBSD.html">Linux+FreeBSD - mini-HOWTO</ulink> might be interesting as well. The <ulink - URL="http://www.in.net/~jkatz/win95/Linux-HOWTO.html">Linux-HOWTO</ulink> - is also helpful.</para> - - <para>The <ulink - URL="http://www.dorsai.org/~dcl/publications/NTLDR_Hacking">NT - Loader Hacking Guide</ulink> provides good information on - multibooting Windows NT, '95, and DOS with other operating - systems.</para> - - <para>And Hale Landis's "How It Works" document pack contains some - good info on all sorts of disk geometry and booting related - topics. You can find it at - <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> - - <para>Finally, don't overlook FreeBSD's kernel documentation on - the booting procedure, available in the kernel source - distribution (it unpacks to <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>Technical Details</title> - - <para><emphasis>(Contributed by Randall Hopper, - <email>rhh@ct.picker.com</email>)</emphasis></para> - - <para>This section attempts to give you enough basic information - about your hard disks and the disk booting process so that you - can troubleshoot most problems you might encounter when getting - set up to boot several operating systems. It starts in pretty - basic terms, so you may want to skim down in this section until - it begins to look unfamiliar and then start reading.</para> - - <sect2> - <title>Disk Primer</title> - - <para>Three fundamental terms are used to describe the location - of data on your hard disk: Cylinders, Heads, and Sectors. - It's not particularly important to know what these terms - relate to except to know that, together, they identify where - data is physically on your disk.</para> - - <para>Your disk has a particular number of cylinders, number of - heads, and number of sectors per cylinder-head (a - cylinder-head also known nown as a track). Collectively this - information defines the "physical disk geometry" for your hard - disk. There are typically 512 bytes per sector, and 63 - sectors per track, with the number of cylinders and heads - varying widely from disk to disk. Thus you can figure the - number of bytes of data that'll fit on your own disk by - calculating:</para> - - <informalexample> - <para>(# of cylinders) × (# heads) × (63 - sectors/track) × (512 bytes/sect)</> - </informalexample> - - <para>For example, on my 1.6 Gig Western Digital AC31600 EIDE hard - disk,that's:</para> - - <informalexample> - <para>(3148 cyl) × (16 heads) × (63 - sectors/track) × (512 bytes/sect)</para> - </informalexample> - - <para>which is 1,624,670,208 bytes, or around 1.6 Gig.</para> - - <para>You can find out the physical disk geometry (number of - cylinders, heads, and sectors/track counts) for your hard - disks using ATAID or other programs off the net. Your hard - disk probably came with this information as well. Be careful - though: if you're using BIOS LBA (see <xref - linkend="limits">), you can't use just any program to get - the physical geometry. This is because many programs (e.g. - <filename>MSD.EXE</> or FreeBSD fdisk) don't identify the - physical disk geometry; they instead report the - <firstterm>translated geometry</> (virtual numbers from using - LBA). Stay tuned for what that means.</para> - - <para>One other useful thing about these terms. Given 3 - numbers—a cylinder number, a head number, and a - sector-within-track number—you identify a specific - absolute sector (a 512 byte block of data) on your disk. - Cylinders and Heads are numbered up from 0, and Sectors are - numbered up from 1.</para> - - <para>For those that are interested in more technical details, - information on disk geometry, boot sectors, BIOSes, etc. can - be found all over the net. Query Lycos, Yahoo, etc. for - <literal>boot sector</> or <literal>master boot record</>. - Among the useful info you'll find are Hale Landis's - <citetitle>How It Works</> document pack. See the <xref - linkend="sources"> section for a few pointers to this - pack.</para> - - <para>Ok, enough terminology. We're talking about booting - here.</para> - </sect2> - - <sect2 id="booting"> - <title>The Booting Process</title> - - <para>On the first sector of your disk (Cyl 0, Head 0, Sector 1) - lives the Master Boot Record (MBR). It contains a map of your - disk. It identifies up to 4 <firstterm>partitions</>, each of - which is a contiguous chunk of that disk. FreeBSD calls - partitions <firstterm>slices</> to avoid confusion with it's - own partitions, but we won't do that here. Each partition can - contain its own operating system.</para> - - <para>Each partition entry in the MBR has a <firstterm>Partition - ID</>, a <firstterm>Start Cylinder/Head/Sector</>, and an - <firstterm>End Cylinder/Head/Sector</>. The Partition ID - tells what type of partition it is (what OS) and the Start/End - tells where it is. <xref linkend="tbl-pid"> lists a - smattering of some common Partition IDs.</para> - - <table id="tbl-pid"> - <title>Partition IDs</> - - <tgroup cols="2"> - <thead> - <row> - <entry>ID (hex)</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry>01</entry> - <entry>Primary DOS12 (12-bit FAT)</entry> - </row> - - <row> - <entry>04</entry> - <entry>Primary DOS16 (16-bit FAT)</entry> - </row> - - <row> - <entry>05</entry> - <entry>Extended DOS</entry> - </row> - - <row> - <entry>06</entry> - <entry>Primary big DOS (> 32MB)</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> - </table> - - <para>Note that not all partitions are bootable (e.g. Extended - DOS). Some are—some aren't. What makes a partition - bootable is the configuration of the <firstterm>Partition Boot - Sector</> that exists at the beginning of each - partition.</para> - - <para>When you configure your favorite boot manager, it looks up - the entries in the MBR partition tables of all your hard disks - and lets you name the entries in that list. Then when you - boot, the boot manager is invoked by special code in the - Master Boot Sector of the first probed hard disk on your - system. It looks at the MBR partition table entry - corresponding to the partition choice you made, uses the Start - Cylinder/Head/Sector information for that partition, loads up - the Partition Boot Sector for that partition, and gives it - control. That Boot Sector for the partition itself contains - enough information to start loading the operating system on - that partition.</para> - - <para>One thing we just brushed past that's important to know. - All of your hard disks have MBRs. However, the one that's - important is the one on the disk that's first probed by the - BIOS. If you have only IDE hard disks, its the first IDE disk - (e.g. primary disk on first controller). Similarly for SCSI - only systems. If you have both IDE and SCSI hard disks - though, the IDE disk is typically probed first by the BIOS, so - the first IDE disk is the first probed disk. The boot manager - you will install will be hooked into the MBR on this first - probed hard disk that we've just described.</para> - </sect2> - - <sect2 id="limits"> - <title>Booting Limitations and Warnings</title> - - <para>Now the interesting stuff that you need to watch out - for.</para> - - <sect3> - <title>The dreaded 1024 cylinder limit and how BIOS LBA helps</title> - - <para>The first part of the booting process is all done - through the BIOS, (if that's a new term to you, the BIOS is - a software chip on your system motherboard which provides - startup code for your computer). As such, this first part - of the process is subject to the limitations of the BIOS - interface.</para> - - <para>The BIOS interface used to read the hard disk during - this period (INT 13H, Subfunction 2) allocates 10 bits to - the Cylinder Number, 8 bits to the Head Number, and 6 bits - to the Sector Number. This restricts users of this - interface (i.e. boot managers hooked into your disk's MBR as - well as OS loaders hooked into the Boot Sectors) to the - following limits:</para> - - <itemizedlist> - <listitem> - <para>1024 cylinders, max</para> - </listitem> - - <listitem> - <para>256 heads, max</para> - </listitem> - - <listitem> - <para>64 sectors/track, max (actually 63, <literal>0</> - isn't available)</para> - </listitem> - </itemizedlist> - - <para>Now big hard disks have lots of cylinders but not a lot - of heads, so invariably with big hard disks the number of - cylinders is greater than 1024. Given this and the BIOS - interface as is, you can't boot off just anywhere on your - hard disk. The boot code (the boot manager and the OS - loader hooked into all bootable partitions' Boot Sectors) - has to reside below cylinder 1024. In fact, if your hard - disk is typical and has 16 heads, this equates to:</para> - - <informalexample> - <para>1024 cyl/disk × 16 heads/disk × 63 - sect/(cyl-head) × 512 bytes/sector</para> - </informalexample> - - <para>which is around the often-mentioned 528MB limit.</para> - - <para>This is where BIOS LBA (Logical Block Addressing) comes - in. BIOS LBA gives the user of the BIOS API calls access to - physical cylinders above 1024 though the BIOS interfaces by - redefining a cylinder. That is, it remaps your cylinders - and heads, making it appear through the BIOS as though the - disk has fewer cylinders and more heads than it actually - does. In other words, it takes advantage of the fact that - hard disks have relatively few heads and lots of cylinders - by shifting the balance between number of cylinders and - number of heads so that both numbers lie below the - above-mentioned limits (1024 cylinders, 256 heads).</para> - - <para>With BIOS LBA, the hard disk size limitation is - virtually removed (well, pushed up to 8 Gigabytes anyway). - If you have an LBA BIOS, you can put FreeBSD or any OS - anywhere you want and not hit the 1024 cylinder - limit.</para> - - <para>To use my 1.6 Gig Western Digital as an example again, - it's physical geometry is:</para> - - <informalexample> - <para>(3148 cyl, 16 heads, 63 sectors/track, 512 - bytes/sector)</para> - </informalexample> - - <para>However, my BIOS LBA remaps this to:</para> - - <informalexample> - <para>(787 cyl, 64 heads, 63 sectors/track, 512 - bytes/sector)</para> - </informalexample> - - <para>giving the same effective size disk, but with cylinder - and head counts within the BIOS API's range (Incidentally, I - have both Linux and FreeBSD existing on one of my hard disks - above the 1024th physical cylinder, and both operating - systems boot fine, thanks to BIOS LBA).</para> - </sect3> - - <sect3> - <title>Boot Managers and Disk Allocation</title> - - <para>Another gotcha to watch out when installing boot - managers is allocating space for your boot manager. It's - best to be aware of this issue up front to save yourself - from having to reinstall one or more of your OSs.</para> - - <para>If you followed the discussion in <xref - linkend="booting"> about the Master Boot Sector (where the - MBR is), Partition Boot Sectors, and the booting process, - you may have been wondering just exactly where on your hard - disk that nifty boot manager is going to live. Well, some - boot managers are small enough to fit entirely within the - Master Boot Sector (Cylinder 0, Head 0, Sector 0) along with - the partition table. Others need a bit more room and - actually extend a few sectors past the Master Boot Sector in - the Cylinder 0 Head 0 track, since that's typically - free…typically.</para> - - <para>That's the catch. Some operating systems (FreeBSD - included) let you start their partitions right after the - Master Boot Sector at Cylinder 0, Head 0, Sector 2 if you - want. In fact, if you give FreeBSD's sysinstall a disk with - an empty chunk up front or the whole disk empty, that's - where it'll start the FreeBSD partition by default (at least - it did when I fell into this trap). Then when you go to - install your boot manager, if it's one that occupies a few - extra sectors after the MBR, it'll overwrite the front of - the first partition's data. In the case of FreeBSD, this - overwrites the disk label, and renders your FreeBSD - partition unbootable.</para> - - <para>The easy way to avoid this problem (and leave yourself - the flexibility to try different boot managers later) is - just to always leave the first full track on your disk - unallocated when you partition your disk. That is, leave - the space from Cylinder 0, Head 0, Sector 2 through Cylinder - 0, Head 0, Sector 63 unallocated, and start your first - partition at Cylinder 0, Head 1, Sector 1. For what it's - worth, when you create a DOS partition at the front of your - disk, DOS leaves this space open by default (this is why - some boot managers assume it's free). So creating a DOS - partition up at the front of your disk avoids this problem - altogether. I like to do this myself, creating 1 Meg DOS - partition up front, because it also avoids my primary DOS - drive letters shifting later when I repartition.</para> - - <para>For reference, the following boot managers use the - Master Boot Sector to store their code and data:</para> - - <itemizedlist> - <listitem> - <para>OS-BS 1.35</para> - </listitem> - - <listitem> - <para>Boot Easy</para> - </listitem> - - <listitem> - <para>LILO</para> - </listitem> - </itemizedlist> - - <para>These boot managers use a few additional sectors after - the Master Boot Sector:</para> - - <itemizedlist> - <listitem> - <para>OS-BS 2.0 Beta 8 (sectors 2-5)</para> - </listitem> - - <listitem> - <para>OS/2's boot manager</para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>What if your machine won't boot?</title> - - <para>At some point when installing boot managers, you might - leave the MBR in a state such that your machine won't boot. - This is unlikely, but possible when re-FDISKing underneath - an already-installed boot manager.</para> - - <para>If you have a bootable DOS partition on your disk, you - can boot off a DOS floppy, and run:</para> - - <informalexample> - <screen>A:\> <userinput>FDISK /MBR</> - </screen> - </informalexample> - - <para>to put the original, simple DOS boot code back into the - system. You can then boot DOS (and DOS only) off the hard - drive. Alternatively, just re-run your boot manager - installation program off a bootable floppy.</para> - </sect3> - </sect2> - </sect1> -</article> diff --git a/en_US.ISO8859-1/articles/new-users/Makefile b/en_US.ISO8859-1/articles/new-users/Makefile deleted file mode 100644 index 886e21cc9d..0000000000 --- a/en_US.ISO8859-1/articles/new-users/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# $FreeBSD$ - -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/en_US.ISO8859-1/articles/new-users/article.sgml b/en_US.ISO8859-1/articles/new-users/article.sgml deleted file mode 100644 index bc5ca5f841..0000000000 --- a/en_US.ISO8859-1/articles/new-users/article.sgml +++ /dev/null @@ -1,1054 +0,0 @@ -<!-- $FreeBSD: doc/en_US.ISO_8859-1/articles/new-users/article.sgml,v 1.11 1999/10/12 12:38:12 jhb Exp $ --> -<!-- The FreeBSD Documentation Project --> - -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN"> -<article> - <artheader> - <title>For People New to Both FreeBSD and Unix</title> - - <authorgroup> - <author> - <firstname>Annelise</firstname> - - <surname>Anderson</surname> - - <affiliation> - <address><email>andrsn@andrsn.stanford.edu</email></address> - </affiliation> - </author> - </authorgroup> - - <pubdate>August 15, 1997</pubdate> - - <abstract> - <para>Congratulations on installing FreeBSD! This introduction - is for people new to both FreeBSD <emphasis>and</emphasis> - Un*x—so it starts with basics. It assumes you're using - version 2.0.5 or later of FreeBSD as distributed by Walnut - Creek or FreeBSD.org, your system (for now) has a single user - (you)—and you're probably pretty good with DOS/Windows - or OS/2.</para> - </abstract> - </artheader> - - <sect1> - <title>Logging in and Getting Out</title> - - <para>Log in (when you see <systemitem - class=prompt>login:</systemitem>) as a user you created during - installation or as <firstterm>root</firstterm>. (Your FreeBSD - installation will already have an account for root; root can go - anywhere and do anything, including deleting essential files, so - be careful!) The symbols &prompt.user; and &prompt.root; in the following stand for the - prompt (yours may be different), with &prompt.user; indicating an ordinary - user and &prompt.root; indicating root.</para> - - <para>To log out (and get a new <systemitem - class=prompt>login:</systemitem> prompt) type</para> - - <informalexample> - <screen>&prompt.root; <userinput>exit</userinput> - </screen> - </informalexample> - - <para>as often as necessary. Yes, press <keysym>enter</keysym> - after commands, and remember that Unix is - case-sensitive—<command>exit</command>, not - <command>EXIT</command>.</para> - - <para>To shut down the machine type:</para> - - <informalexample> - <screen>&prompt.root; <userinput>/sbin/shutdown -h now</userinput> - </screen> - </informalexample> - - <para>Or to reboot type</para> - - <informalexample> - <screen>&prompt.root; <userinput>/sbin/shutdown -r now</userinput> - </screen> - </informalexample> - - <para>or</para> - - <informalexample> - <screen>&prompt.root; <userinput>/sbin/reboot</userinput> - </screen> - </informalexample> - - <para>You can also reboot with - <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Delete</keycap></keycombo>. - Give it a little time to do its work. This is equivalent to - <command>/sbin/reboot</command> in recent releases of FreeBSD, - and is much, much better than hitting the reset button. You - don't want to have to reinstall this thing, do you?</para> - </sect1> - - <sect1> - <title>Adding A User with Root Privileges</title> - - <para>If you didn't create any users when you installed the system - and are thus logged in as root, you should probably create a - user now with</para> - - <informalexample> - <screen>&prompt.root; <userinput>adduser</userinput> - </screen> - </informalexample> - - <para>The first time you use adduser, it might ask for some - defaults to save. You might want to make the default shell csh - instead of sh, if it suggests sh as the default. Otherwise just - press enter to accept each default. These defaults are saved in - <filename>/etc/adduser.conf</filename>, an editable file.</para> - - <para>Suppose you create a user <emphasis>jack</emphasis> with - full name <emphasis>Jack Benimble</emphasis>. Give jack a - password if security (even kids around who might pound on the - keyboard) is an issue. When it asks you if you want to invite - jack into other groups, type <userinput>wheel</userinput></para> - - <informalexample> - <screen>Login group is ``jack''. Invite jack into other groups: <userinput>wheel</userinput> - </screen> - </informalexample> - - <para>This will make it possible to log in as - <emphasis>jack</emphasis> and use the <command>su</command> - command to become root. Then you won't get scolded any more for - logging in as root.</para> - - <para>You can quit <command>adduser</command> any time by typing - <keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>, - and at the end you'll have a chance to approve your new user or - simply type <keycap>n</keycap> for no. You might want to create - a second new user (jill?) so that when you edit jack's login - files, you'll have a hot spare in case something goes - wrong.</para> - - <para>Once you've done this, use <command>exit</command> to get - back to a login prompt and log in as <emphasis>jack</emphasis>. - In general, it's a good idea to do as much work as possible as - an ordinary user who doesn't have the power—and - risk—of root.</para> - - <para>If you already created a user and you want the user to be - able to <command>su</command> to root, you can log in as root - and edit the file <filename>/etc/group</filename>, adding jack - to the first line (the group wheel). But first you need to - practice <command>vi</command>, the text editor--or use the - simpler text editor, <command>ee</command>, installed on recent - version of FreeBSD.</para> - - <para>To delete a user, use the <command>rmuser</command> - command.</para> - </sect1> - - <sect1> - <title>Looking Around</title> - - <para>Logged in as an ordinary user, look around and try out some - commands that will access the sources of help and information - within FreeBSD.</para> - - <para>Here are some commands and what they do:</para> - - <variablelist> - <varlistentry> - <term><command>id</command></term> - - <listitem> - <para>Tells you who you are!</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>pwd</command></term> - - <listitem> - <para>Shows you where you are—the current working - directory.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>ls</command></term> - - <listitem> - <para>Lists the files in the current directory.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>ls <option>-F</option></command></term> - - <listitem> - <para>Lists the files in the current directory with a - <literal>*</literal> after executables, a - <literal>/</literal> after directories, and an - <literal>@</literal> after symbolic links.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>ls <option>-l</option></command></term> - - <listitem> - <para>Lists the files in long format—size, date, - permissions.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>ls <option>-a</option></command></term> - - <listitem> - <para>Lists hidden <quote>dot</quote> files with the others. - If you're root, the<quote>dot</quote> files show up - without the <option>-a</option> switch.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>cd</command></term> - - <listitem> - <para>Changes directories. <command>cd - <parameter>..</parameter></command> backs up one level; - note the space after <command>cd</command>. <command>cd - <parameter>/usr/local</parameter></command> goes there. - <command>cd <parameter>~</parameter></command> goes to - the home directory of the person logged in—e.g., - <filename>/usr/home/jack</filename>. Try <command>cd - <parameter>/cdrom</parameter></command>, and then - <command>ls</command>, to find out if your CDROM is - mounted and working.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>view - <replaceable>filename</replaceable></command></term> - - <listitem> - <para>Lets you look at a file (named - <replaceable>filename</replaceable> without changing it. - Try <command>view - <parameter>/etc/fstab</parameter></command>. - <command>:q</command> to quit.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>cat - <replaceable>filename</replaceable></command></term> - - <listitem> - <para>Displays <replaceable>filename</replaceable> on - screen. If it's too long and you can see only the end of - it, press <keycap>ScrollLock</keycap> and use the - <keycap>up-arrow</keycap> to move backward; you can use - <keycap>ScrollLock</keycap> with man pages too. Press - <keycap>ScrollLock</keycap> again to quit scrolling. You - might want to try <command>cat</command> on some of the - dot files in your home directory—<command>cat - <parameter>.cshrc</parameter></command>, <command>cat - <parameter>.login</parameter></command>, <command>cat - <parameter>.profile</parameter></command>.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>You'll notice aliases in <filename>.cshrc</filename> for - some of the <command>ls</command> commands (they're very - convenient). You can create other aliases by editing - <filename>.cshrc</filename>. You can make these aliases - available to all users on the system by putting them in the - system-wide csh configuration file, - <filename>/etc/csh.cshrc</filename>.</para> - </sect1> - - <sect1> - <title>Getting Help and Information</title> - - <para>Here are some useful sources of help. - <replaceable>Text</replaceable> stands for something of your - choice that you type in—usually a command or - filename.</para> - - <variablelist> - <varlistentry> - <term><command>apropos - <replaceable>text</replaceable></command></term> - - <listitem> - <para>Everything containing string - <replaceable>text</replaceable> in the <database>whatis - database</database>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>man - <replaceable>text</replaceable></command></term> - - <listitem> - <para>The man page for <replaceable>text</replaceable>. The - major source of documentation for Un*x systems. - <command>man <parameter>ls</parameter></command> will tell - you all the ways to use the <command>ls</command> command. - Press <keycap>Enter</keycap> to move through text, - <keycombo><keycap>Ctrl</keycap><keycap>b</keycap></keycombo> - to go back a page, - <keycombo><keycap>Ctrl</keycap><keycap>f</keycap></keycombo> - to go forward, <keycap>q</keycap> or - <keycombo><keycap>Ctrl</keycap><keycap>c</keycap></keycombo> - to quit.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>which - <replaceable>text</replaceable></command></term> - - <listitem> - <para>Tells you where in the user's path the command - <replaceable>text</replaceable> is found.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>locate - <replaceable>text</replaceable></command></term> - - <listitem> - <para>All the paths where the string - <replaceable>text</replaceable> is found.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>whatis - <replaceable>text</replaceable></command></term> - - <listitem> - <para>Tells you what the command - <replaceable>text</replaceable> does and its man page. - Typing <command>whatis *</command> will tell you about all - the binaries in the current directory.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>whereis - <replaceable>text</replaceable></command></term> - - <listitem> - <para>Finds the file <replaceable>text</replaceable>, giving - its full path.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>You might want to try using <command>whatis</command> on - some common useful commands like <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>, and - <command>script</command>. <command>more</command> lets you - read a page at a time as it does in DOS, e.g., <command>ls -l | - more</command> or <command>more - <replaceable>filename</replaceable></command>. The - <literal>*</literal> works as a wildcard—e.g., <command>ls - w*</command> will show you files beginning with - <literal>w</literal>.</para> - - <para>Are some of these not working very well? Both - <command>locate</command> and <command>whatis</command> depend - on a database that's rebuilt weekly. If your machine isn't - going to be left on over the weekend (and running FreeBSD), you - might want to run the commands for daily, weekly, and monthly - maintenance now and then. Run them as root and give each one - time to finish before you start the next one, for now.</para> - - <informalexample> - <screen>&prompt.root; <userinput>/etc/daily</userinput> -<lineannotation>output omitted</lineannotation> -&prompt.root; <userinput>/etc/weekly</userinput> -<lineannotation>output omitted</lineannotation> -&prompt.root; <userinput>/etc/monthly</userinput> -<lineannotation>output omitted</lineannotation> - </screen> - </informalexample> - - <para>If you get tired waiting, press - <keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo> to - get another <firstterm>virtual console</firstterm>, and log in - again. After all, it's a multi-user, multi-tasking system. - Nevertheless these commands will probably flash messages on your - screen while they're running; you can type - <command>clear</command> at the prompt to clear the screen. - Once they've run, you might want to look at - <filename>/var/mail/root</filename> and - <filename>/var/log/messages</filename>.</para> - - <para>Basically running such commands is part of system - administration—and as a single user of a Unix system, - you're your own system administrator. Virtually everything you - need to be root to do is system administration. Such - responsibilities aren't covered very well even in those big fat - books on Unix, which seem to devote a lot of space to pulling - down menus in windows managers. You might want to get one of - the two leading books on systems administration, either Evi - Nemeth et.al.'s <citetitle>UNIX System Administration - Handbook</citetitle> (Prentice-Hall, 1995, ISBN - 0-13-15051-7)—the second edition with the red cover; or - Æleen Frisch's <citetitle>Essential System - Administration</citetitle> (O'Reilly & Associates, 1993, - ISBN 0-937175-80-3). I used Nemeth.</para> - </sect1> - - <sect1> - <title>Editing Text</title> - - <para>To configure your system, you need to edit text files. Most - of them will be in the <filename>/etc</filename> directory; and - you'll need to <command>su</command> to root to be able to - change them. You can use the easy <command>ee</command>, but in - the long run the text editor <command>vi</command> is worth - learning. There's an excellent tutorial on vi in - <filename>/usr/src/contrib/nvi/docs/tutorial</filename> if you - have that installed; otherwise you can get it by ftp to - <hostid>ftp.cdrom.com</hostid> in the directory - FreeBSD/FreeBSD-current/src/contrib/nvi/docs/tutorial.</para> - - <para>Before you edit a file, you should probably back it up. - Suppose you want to edit <filename>/etc/rc.conf</filename>. You - could just use <command>cd /etc</command> to get to the - <filename>/etc</filename> directory and do:</para> - - <informalexample> - <screen>&prompt.root; <userinput>cp rc.conf rc.conf.orig</userinput> - </screen> - </informalexample> - - <para>This would copy <filename>rc.conf</filename> to - <filename>rc.conf.orig</filename>, and you could later copy - <filename>rc.conf.orig</filename> to - <filename>rc.conf</filename> to recover the original. But even - better would be moving (renaming) and then copying back:</para> - - <informalexample> - <screen>&prompt.root; <userinput>mv rc.conf rc.conf.orig</userinput> -&prompt.root; <userinput>cp rc.conf.orig rc.conf</userinput> - </screen> - </informalexample> - - <para>because the <command>mv</command> command preserves the - original date and owner of the file. You can now edit - <filename>rc.conf</filename>. If you want the original back, - you'd then <userinput>mv rc.conf rc.conf.myedit</userinput> - (assuming you want to preserve your edited version) and - then</para> - - <informalexample> - <screen>&prompt.root; <userinput>mv rc.conf.orig rc.conf</userinput></screen> - </informalexample> - - <para>to put things back the way they were.</para> - - <para>To edit a file, type</para> - - <informalexample> - <screen>&prompt.root; <userinput>vi <replaceable>filename</replaceable></userinput> - </screen> - </informalexample> - - <para>Move through the text with the arrow keys. - <keycap>Esc</keycap> (the escape key) puts <command>vi</command> - in command mode. Here are some commands:</para> - - <variablelist> - <varlistentry> - <term><command>x</command></term> - - <listitem> - <para>delete letter the cursor is on</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>dd</command></term> - - <listitem> - <para>delete the entire line (even if it wraps on the - screen)</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>i</command></term> - - <listitem> - <para>insert text at the cursor</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>a</command></term> - - <listitem> - <para>insert text after the cursor</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Once you type <command>i</command> or <command>a</command>, - you can enter text. <command>Esc</command> puts you back in - command mode where you can type</para> - - <variablelist> - <varlistentry> - <term><command>:w</command></term> - - <listitem> - <para>to write your changes to disk and continue - editing</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>:wq</command></term> - - <listitem> - <para>to write and quit</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>:q!</command></term> - - <listitem> - <para>to quit without saving changes</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>/<replaceable>text</replaceable></command></term> - - <listitem> - <para>to move the cursor to <replaceable>text</replaceable>; - <command>/<keycap>Enter</keycap></command> (the enter key) - to find the next instance of - <replaceable>text</replaceable>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>G</command></term> - - <listitem> - <para>to go to the end of the file</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command><replaceable>n</replaceable>G</command></term> - - <listitem> - <para>to go to line <replaceable>n</replaceable> in the - file, where <replaceable>n</replaceable> is a - number</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><keycombo><keycap>Ctrl</><keycap>L</></keycombo></term> - - <listitem> - <para>to redraw the screen</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><keycombo><keycap>Ctrl</><keycap>b</></> and - <keycombo><keycap>Ctrl</><keycap>f</></></term> - - <listitem> - <para>go back and forward a screen, as they do with - <command>more</> and <command>view</>.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Practice with <command>vi</> in your home directory by - creating a new file with <command>vi <replaceable>filename</></> - and adding and deleting text, saving the file, and calling it up - again. <command>vi</> delivers some surprises because it's - really quite complex, and sometimes you'll inadvertently issue a - command that will do something you don't expect. (Some people - actually like <command>vi</>—it's more powerful than DOS - EDIT—find out about the <command>:r</> command.) Use - <keycap>Esc</> one or more times to be sure you're in command - mode and proceed from there when it gives you trouble, save - often with <command>:w</>, and use <command>:q!</> to get out - and start over (from your last <command>:w</>) when you need - to.</para> - - <para>Now you can <command>cd</> to <filename>/etc</filename>, - <command>su</> to root, use <command>vi</> to edit the file - <filename>/etc/group</filename>, and add a user to wheel so the - user has root privileges. Just add a comma and the user's login - name to the end of the first line in the file, press - <keycap>Esc</>, and use <command>:wq</> to write the file to - disk and quit. Instantly effective. (You didn't put a space - after the comma, did you?)</para> - </sect1> - - <sect1> - <title>Printing Files from DOS</title> - - <para>At this point you probably don't have the printer working, - so here's a way to create a file from a man page, move it to a - floppy, and then print it from DOS. Suppose you want to read - carefully about changing permissions on files (pretty - important). You can use the command man chmod to read about it. - The command</para> - - <informalexample> - <screen>&prompt.user; <userinput>man chmod | col -b > chmod.txt</> - </screen> - </informalexample> - - <para>will remove formatting codes and send the man page to the - <filename>chmod.txt</filename> file instead of showing it on - your screen. Now put a dos-formatted diskette in your floppy - drive a, <command>su</> to root, and type</para> - - <informalexample> - <screen>&prompt.root; <userinput>/sbin/mount -t msdos /dev/fd0 /mnt</> - </screen> - </informalexample> - - <para>to mount the floppy drive on - <filename>/mnt</filename>.</para> - - <para>Now (you no longer need to be root, and you can type - <command>exit</> to get back to being user jack) you can go to - the directory where you created chmod.txt and copy the file to - the floppy with:</para> - - <informalexample> - <screen>&prompt.user; <userinput>cp chmod.txt /mnt</> - </screen> - </informalexample> - - <para>and use <command>ls /mnt</command> to get a directory - listing of <filename>/mnt</filename>, which should show the file - <filename>chmod.txt</filename>.</para> - - <para>You might especially want to make a file from - <filename>/sbin/dmesg</filename> by typing</para> - - <informalexample> - <screen>&prompt.user; <userinput>/sbin/dmesg > dmesg.txt</> - </screen> - </informalexample> - - <para>and copying <filename>dmesg.txt</filename> to the floppy. - <command>/sbin/dmesg</command> is the boot log record, and it's - useful to understand it because it shows what FreeBSD found when - it booted up. If you ask questions on - <email>freebsd-questions@FreeBSD.org</> or on a USENET - group—like <quote>FreeBSD isn't finding my tape drive, - what do I do?</quote>—people will want to know what - <command>dmesg</> has to say.</para> - - <para>You can now dismount the floppy drive (as root) to get the - disk out with</para> - - <informalexample> - <screen>&prompt.root; <userinput>/sbin/umount /mnt</> - </screen> - </informalexample> - - <para>and reboot to go to DOS. Copy these files to a DOS - directory, call them up with DOS EDIT, Windows Notepad or - Wordpad, or a word processor, make a minor change so the file - has to be saved, and print as you normally would from DOS or - Windows. Hope it works! man pages come out best if printed - with the dos <command>print</> command. (Copying files from - FreeBSD to a mounted dos partition is in some cases still a - little risky.)</para> - - <para>Getting the printer printing from FreeBSD involves creating - an appropriate entry in <filename>/etc/printcap</filename> and - creating a matching spool directory in - <filename>/var/spool/output</filename>. If your printer is on - <hardware>lpt0</> (what dos calls <hardware>LPT1</>), you may - only need to go to <filename>/var/spool/output</filename> and - (as root) create the directory <filename>lpd</> by typing: - <command> mkdir lpd</command>, if it doesn't already exist. - Then the printer should respond if it's turned on when the - system is booted, and lp or lpr should send a file to the - printer. Whether or not the file actually prints depends on - configuring it, which is covered in the <ulink - URL="../../handbook/handbook.html">FreeBSD handbook.</></para> - </sect1> - - <sect1> - <title>Other Useful Commands</title> - - <variablelist> - <varlistentry> - <term><command>df</></term> - - <listitem> - <para>shows file space and mounted systems.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>ps aux</></term> - - <listitem> - <para>shows processes running. <command>ps ax</> is a - narrower form.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>rm <replaceable>filename</></></term> - - <listitem> - <para>remove <replaceable>filename</>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>rm -R <replaceable>dir</></></term> - - <listitem> - <para>removes a directory <replaceable>dir</> and all - subdirectories—careful!</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>ls -R</command></term> - - <listitem> - <para>lists files in the current directory and all - subdirectories; I used a variant, <command>ls -AFR > - where.txt</command>, to get a list of all the files in - <filename>/</filename> and (separately) - <filename>/usr</filename> before I found better ways to - find files.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>passwd</></term> - - <listitem> - <para>to change user's password (or root's password)</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>man hier</></term> - - <listitem> - <para>man page on the Unix file system</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Use <command>find</> to locate filename in - <filename>/usr</filename> or any of its subdirectories - with</para> - - <informalexample> - <screen>&prompt.user; <userinput>find /usr -name "<replaceable>filename</>"</> - </screen> - </informalexample> - - <para>You can use <literal>*</literal> as a wildcard in - <parameter>"<replaceable>filename</>"</> (which should be in - quotes). If you tell find to search in <filename>/</filename> - instead of <filename>/usr</filename> it will look for the - file(s) on all mounted file systems, including the CDROM and the - dos partition.</para> - - <para>An excellent book that explains Unix commands and utilities - is Abrahams & Larson, <citetitle>Unix for the - Impatient</citetitle> (2nd ed., Addison-Wesley, 1996). - There's also a lot of Unix information on the Internet. Try the - <ulink URL="http://www.eecs.nwu.edu/unix.html">Unix Reference - Desk</ulink>.</para> - </sect1> - - <sect1> - <title>Next Steps</title> - - <para>You should now have the tools you need to get around and - edit files, so you can get everything up and running. There is - a great deal of information in the FreeBSD handbook (which is - probably on your hard drive) and <ulink - URL="http://www.FreeBSD.org/">FreeBSD's web site</ulink>. A - wide variety of packages and ports are on the <ulink - URL="http://www.cdrom.com/">Walnut Creek</ulink> CDROM as well - as the web site. The handbook tells you more about how to use - them (get the package if it exists, with <command>pkg_add - /cdrom/packages/All/<replaceable>packagename</></>, where - <replaceable>packagename</replaceable> is the filename of the - package). The cdrom has lists of the packages and ports with - brief descriptions in <filename>cdrom/packages/index</filename>, - <filename>cdrom/packages/index.txt</filename>, and - <filename>cdrom/ports/index</filename>, with fuller descriptions - in <filename>/cdrom/ports/*/*/pkg/DESCR</filename>, where the - <literal>*</literal>s represent subdirectories of kinds of - programs and program names respectively.</para> - - <para>If you find the handbook too sophisticated (what with - <command>lndir</> and all) on installing ports from the cdrom, - here's what usually works:</para> - - <para>Find the port you want, say <command>kermit</>. There will - be a directory for it on the cdrom. Copy the subdirectory to - <filename>/usr/local</filename> (a good place for software you - add that should be available to all users) with:</para> - - <informalexample> - <screen>&prompt.root; <userinput>cp -R /cdrom/ports/comm/kermit /usr/local</> - </screen> - </informalexample> - - <para>This should result in a - <filename>/usr/local/kermit</filename> subdirectory that has all - the files that the <command>kermit</command> subdirectory on the - CDROM has.</para> - - <para>Next, create the directory - <filename>/usr/ports/distfiles</filename> if it doesn't already - exist using <command>mkdir</>. Now check check - <filename>/cdrom/ports/distfiles</filename> for a file with a - name that indicates it's the port you want. Copy that file to - <filename>/usr/ports/distfiles</filename>; in recent versions - you can skip this step, as FreeBSD will do it for you. In the - case of <command>kermit</>, there is no distfile.</para> - - <para>Then <command>cd</> to the subdirectory of - <filename>/usr/local/kermit</filename> that has the file - <filename>Makefile</>. Type</para> - - <informalexample> - <screen>&prompt.root; <userinput>make all install</> - </screen> - </informalexample> - - <para>During this process the port will ftp to get any compressed - files it needs that it didn't find on the cdrom or in - <filename>/usr/ports/distfiles</filename>. If you don't have - your network running yet and there was no file for the port in - <filename>/cdrom/ports/distfiles</filename>, you will have to - get the distfile using another machine and copy it to - <filename>/usr/ports/distfiles</filename> from a floppy or your - dos partition. Read <filename>Makefile</> (with <command>cat</> - or <command>more</> or <command>view</>) to find out where to go - (the master distribution site) to get the file and what its name - is. Its name will be truncated when downloaded to DOS, and - after you get it into <filename>/usr/ports/distfiles</filename> - you'll have to rename it (with the <command>mv</> command) to - its original name so it can be found. (Use binary file - transfers!) Then go back to - <filename>/usr/local/kermit</filename>, find the directory with - <filename>Makefile</>, and type <command>make all - install</>.</para> - - <para>The other thing that happens when installing ports or - packages is that some other program is needed. If the - installation stops with a message <errorname>can't find - unzip</errorname> or whatever, you might need to install the - package or port for unzip before you continue.</para> - - <para>Once it's installed type <command>rehash</> to make FreeBSD - reread the files in the path so it knows what's there. (If you - get a lot of <errorname>path not found</> messages when you use - <command>whereis</> or which, you might want to make additions - to the list of directories in the path statement in - <filename>.cshrc</filename> in your home directory. The path - statement in Unix does the same kind of work it does in DOS, - except the current directory is not (by default) in the path for - security reasons; if the command you want is in the directory - you're in, you need to type <filename>./</filename> before the - command to make it work; no space after the slash.)</para> - - <para>You might want to get the most recent version of Netscape - from their <ulink URL="ftp://ftp.netscape.com">ftp site</ulink>. - (Netscape requires the X Window System.) There's now a FreeBSD - version, so look around carefully. Just use <command>gunzip - <replaceable>filename</></> and <command>tar xvf - <replaceable>filename</></> on it, move the binary to - <filename>/usr/local/bin</filename> or some other place binaries - are kept, <command>rehash</>, and then put the following lines - in <filename>.cshrc</filename> in each user's home directory or - (easier) in <filename>/etc/csh.cshrc</filename>, the - system-wide csh start-up file:</para> - - <informalexample> - <programlisting>setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB -setenv XNLSPATH /usr/X11R6/lib/X11/nls - </> - </informalexample> - - <para>This assumes that the file <filename>XKeysymDB</> and the - directory <filename>nls</> are in - <filename>/usr/X11R6/lib/X11</filename>; if they're not, find - them and put them there.</para> - - <para>If you originally got Netscape as a port using the CDROM (or - ftp), don't replace <filename>/usr/local/bin/netscape</filename> - with the new netscape binary; this is just a shell script that - sets up the environmental variables for you. Instead rename the - new binary to <filename>netscape.bin</filename> and replace the - old binary, which is - <filename>/usr/local/lib/netscape/netscape.bin</filename>.</para> - </sect1> - - <sect1> - <title>Your Working Environment</title> - - <para>Your shell is the most important part of your working - environment. In DOS, the usual shell is command.com. The shell - is what interprets the commands you type on the command line, - and thus communicates with the rest of the operating system. - You can also write shell scripts, which are like DOS batch - files: a series of commands to be run without your - intervention.</para> - - <para>Two shells come installed with FreeBSD: csh and sh. csh is - good for command-line work, but scripts should be written with - sh (or bash). You can find out what shell you have by typing - <command>echo $SHELL</command>.</para> - - <para>The csh shell is okay, but tcsh does everything csh does and - more. It It allows you to recall commands with the arrow keys - and edit them. It has tab-key completion of filenames (csh uses - the escape key), and it lets you switch to the directory you - were last in with <command>cd -</command>. It's also much - easier to alter your prompt with tcsh. It makes life a lot - easier.</para> - - <para>Here are the three steps for installing a new shell:</para> - - <procedure> - <step> - <para>Install the shell as a port or a package, just as you - would any other port or package. Use - <command>rehash</command> and <command>which tcsh</command> - (assuming you're installing tcsh) to make sure it got - installed.</para> - </step> - - <step> - <para>As root, edit <filename>/etc/shells</filename>, adding a - line in the file for the new shell, in this case - /usr/local/bin/tcsh, and save the file. (Some ports may do - this for you.)</para> - </step> - - <step> - <para>Use the <command>chsh</command> command to change your - shell to tcsh permanently, or type <command>tcsh</command> - at the prompt to change your shell without logging in - again.</para> - </step> - </procedure> - - <note> - <para>It can be dangerous to change root's shell to something - other than sh or csh on early versions of FreeBSD and many - other versions of Unix; you may not have a working shell when - the system puts you into single user mode. The solution is to - use <command>su -m</command> to become root, which will give - you the tcsh as root, because the shell is part of the - environment. You can make this permanent by adding it to your - <filename>.tcshrc</filename> file as an alias with - <programlisting>alias su su -m.</></para> - </note> - - <para>When tcsh starts up, it will read the - <filename>/etc/csh.cshrc</filename> and - <filename>/etc/csh.login</filename> files, as does csh. It will - also read the <filename>.login</filename> file in your home - directory and the <filename>.cshrc</filename> file as well, - unless you provide a <filename>.tcshrc</filename> file. This - you can do by simply copying <filename>.cshrc</filename> to - <filename>.tcshrc</filename>.</para> - - <para>Now that you've installed tcsh, you can adjust your prompt. - You can find the details in the manual page for tcsh, but here - is a line to put in your <filename>.tcshrc</filename> that will - tell you how many commands you have typed, what time it is, and - what directory you are in. It also produces a - <literal>></literal> if you're an ordinary user and a - <literal>#</literal> if you're root, but tsch will do that in - any case:</para> - - <para>set prompt = "%h %t %~ %# "</para> - - <para>This should go in the same place as the existing set prompt - line if there is one, or under "if($?prompt) then" if not. - Comment out the old line; you can always switch back to it if - you prefer it. Don't forget the spaces and quotes. You can get - the <filename>.tcshrc</filename> reread by typing - <command>source .tcshrc</command>.</para> - - <para>You can get a listing of other environmental variables that - have been set by typing <command>env</command> at the prompt. - The result will show you your default editor, pager, and - terminal type, among possibly many others. A useful command if - you log in from a remote location and can't run a program - because the terminal isn't capable is <command>setenv TERM - vt100</command>.</para> - </sect1> - - <sect1> - <title>Other</title> - - <para>As root, you can dismount the CDROM with - <command>/sbin/umount /cdrom</>, take it out of the drive, - insert another one, and mount it with - <command>/sbin/mount_cd9660 /dev/cd0a /cdrom</> assuming - <hardware>cd0a</> is the device name for your CDROM drive. The - most recent versions of FreeBSD let you mount the cdrom with - just <command>/sbin/mount /cdrom</command>.</para> - - <para>Using the live file system—the second of FreeBSD's - CDROM disks—is useful if you've got limited space. What - is on the live file system varies from release to release. You - might try playing games from the cdrom. This involves using - <command>lndir</>, which gets installed with the X Window - System, to tell the program(s) where to find the necessary - files, because they're in the <filename>/cdrom</filename> file - system instead of in <filename>/usr</filename> and its - subdirectories, which is where they're expected to be. Read - <command>man lndir</>.</para> - </sect1> - - <sect1> - <title>Comments Welcome</title> - - <para>If you use this guide I'd be interested in knowing where it - was unclear and what was left out that you think should be - included, and if it was helpful. My thanks to Eugene W. Stark, - professor of computer science at SUNY-Stony Brook, and John - Fieber for helpful comments.</para> - - <para>Annelise Anderson, - <email>andrsn@andrsn.stanford.edu</></para> - </sect1> -</article> diff --git a/en_US.ISO8859-1/articles/programming-tools/Makefile b/en_US.ISO8859-1/articles/programming-tools/Makefile deleted file mode 100644 index 886e21cc9d..0000000000 --- a/en_US.ISO8859-1/articles/programming-tools/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# $FreeBSD$ - -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/en_US.ISO8859-1/articles/programming-tools/article.sgml b/en_US.ISO8859-1/articles/programming-tools/article.sgml deleted file mode 100644 index 63883a1268..0000000000 --- a/en_US.ISO8859-1/articles/programming-tools/article.sgml +++ /dev/null @@ -1,2264 +0,0 @@ -<!-- $FreeBSD: doc/en_US.ISO_8859-1/articles/programming-tools/article.sgml,v 1.10 1999/10/13 01:45:20 jhb Exp $ --> -<!-- The FreeBSD Documentation Project --> - -<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN"> -<article> - <artheader> - <title>A User's Guide to FreeBSD Programming Tools</title> - - <authorgroup> - <author> - <firstname>James</firstname> - - <surname>Raynard</surname> - - <affiliation> - <address> - <email>jraynard@FreeBSD.org</email> - </address> - </affiliation> - </author> - </authorgroup> - - <pubdate>August 17, 1997</pubdate> - - <copyright> - <year>1997</year> - <holder>James Raynard</holder> - </copyright> - - <abstract> - <para>This document is an introduction to using some of the - programming tools supplied with FreeBSD, although much of it - will be applicable to many other versions of Unix. It does - <emphasis>not</emphasis> attempt to describe coding in any - detail. Most of the document assumes little or no previous - programming knowledge, although it is hoped that most - programmers will find something of value in it</para> - </abstract> - </artheader> - - <sect1> - <title>Introduction<anchor id=foo></title> - - <para>FreeBSD offers an excellent development environment. - Compilers for C, C++, and Fortran and an assembler come with the - basic system, not to mention a Perl interpreter and classic Unix - tools such as <command>sed</> and <command>awk</>. If that is - not enough, there are many more compilers and interpreters in - the Ports collection. FreeBSD is very compatible with standards - such as <acronym>POSIX</> and <acronym>ANSI</> C, as well with - its own BSD heritage, so it is possible to write applications - that will compile and run with little or no modification on a - wide range of platforms.</para> - - <para>However, all this power can be rather overwhelming at first - if you've never written programs on a Unix platform before. - This document aims to help you get up and running, without - getting too deeply into more advanced topics. The intention is - that this document should give you enough of the basics to be - able to make some sense of the documentation.</para> - - <para>Most of the document requires little or no knowledge of - programming, although it does assume a basic competence with - using Unix and a willingness to learn!</para> - </sect1> - - <sect1> - <title>Introduction to Programming</title> - - <para>A program is a set of instructions that tell the computer to - do various things; sometimes the instruction it has to perform - depends on what happened when it performed a previous - instruction. This section gives an overview of the two main - ways in which you can give these instructions, or - <quote>commands</quote> as they are usually called. One way - uses an <firstterm>interpreter</>, the other a - <firstterm>compiler</>. As human languages are too difficult for - a computer to understand in an unambiguous way, commands are - usually written in one or other languages specially designed for - the purpose.</para> - - <sect2> - <title>Interpreters</title> - - <para>With an interpreter, the language comes as an environment, - where you type in commands at a prompt and the environment - executes them for you. For more complicated programs, you can - type the commands into a file and get the interpreter to load - the file and execute the commands in it. If anything goes - wrong, many interpreters will drop you into a debugger to help - you track down the problem.</para> - - <para>The advantage of this is that you can see the results of - your commands immediately, and mistakes can be corrected - readily. The biggest disadvantage comes when you want to - share your programs with someone. They must have the same - interpreter, or you must have some way of giving it to them, - and they need to understand how to use it. Also users may not - appreciate being thrown into a debugger if they press the - wrong key! From a performance point of view, interpreters can - use up a lot of memory, and generally do not generate code as - efficiently as compilers.</para> - - <para>In my opinion, interpreted languages are the best way to - start if you have not done any programming before. This kind - of environment is typically found with languages like Lisp, - Smalltalk, Perl and Basic. It could also be argued that the - Unix shell (<command>sh</>, <command>csh</>) is itself an - interpreter, and many people do in fact write shell - <quote>scripts</quote> to help with various - <quote>housekeeping</> tasks on their machine. Indeed, part - of the original Unix philosophy was to provide lots of small - utility programs that could be linked together in shell - scripts to perform useful tasks.</para> - </sect2> - - <sect2> - <title>Interpreters available with FreeBSD</title> - - <para>Here is a list of interpreters that are available as - <ulink - URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/">FreeBSD - packages</ulink>, with a brief discussion of some of the - more popular interpreted languages.</para> - - <para>To get one of these packages, all you need to do is to - click on the hotlink for the package, then run</para> - - <screen>&prompt.root; <userinput>pkg_add <replaceable>package name</></userinput> - </screen> - - <para>as root. Obviously, you will need to have a fully - functional FreeBSD 2.1.0 or later system for the package to - work!</para> - - <variablelist> - <varlistentry> - <term><acronym>BASIC</></term> - - <listitem> - <para>Short for Beginner's All-purpose Symbolic - Instruction Code. Developed in the 1950s for teaching - University students to program and provided with every - self-respecting personal computer in the 1980s, - <acronym>BASIC</> has been the first programming - language for many programmers. It's also the foundation - for <trademark>Visual Basic</>.</para> - - <para>The <ulink - URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/bwbasic-2.10.tgz">Bywater - Basic Interpreter</ulink> and the <ulink - URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/pbasic-2.0.tgz">Phil - Cockroft's Basic Interpreter</ulink> (formerly Rabbit - Basic) are available as FreeBSD <ulink - URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/">FreeBSD - packages</ulink></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Lisp</term> - - <listitem> - <para>A language that was developed in the late 1950s as - an alternative to the <quote>number-crunching</quote> - languages that were popular at the time. Instead of - being based on numbers, Lisp is based on lists; in fact - the name is short for <quote>List Processing</quote>. - Very popular in AI (Artificial Intelligence) - circles.</para> - - <para>Lisp is an extremely powerful and sophisticated - language, but can be rather large and unwieldy.</para> - - <para>FreeBSD has <ulink - URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/gcl-2.0.tgz">GNU - Common Lisp</ulink> available as a package.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Perl</term> - - <listitem> - <para>Very popular with system administrators for writing - scripts; also often used on World Wide Web servers for - writing <acronym>CGI</> scripts.</para> - - <para>The latest version (version 5) comes with FreeBSD.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Scheme</term> - - <listitem> - <para>A dialect of Lisp that is rather more compact and - cleaner than Common Lisp. Popular in Universities as it - is simple enough to teach to undergraduates as a first - language, while it has a high enough level of - abstraction to be used in research work.</para> - - <para>FreeBSD has packages of the <ulink - URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/elk-3.0.tgz">Elk - Scheme Interpreter</ulink>, the <ulink - URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/mit-scheme-7.3.tgz">MIT - Scheme Interpreter</ulink> and the <ulink - URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/scm-4e1.tgz">SCM - Scheme Interpreter</ulink>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Icon</term> - - <listitem> - <para><ulink - URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/icon-9.0.tgz">The - Icon Programming Language</ulink>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Logo</term> - - <listitem> - <para><ulink - URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/ucblogo-3.3.tgz">Brian - Harvey's LOGO Interpreter</ulink>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Python</term> - - <listitem> - <para><ulink - URL="ftp://ftp.FreeBSD.org:pub/FreeBSD/packages/lang/python-1.2">The - Python Object-Oriented Programming - Language</ulink></para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - - <sect2> - <title>Compilers</title> - - <para>Compilers are rather different. First of all, you write - your code in a file (or files) using an editor. You then run - the compiler and see if it accepts your program. If it did - not compile, grit your teeth and go back to the editor; if it - did compile and gave you a program, you can run it either at a - shell command prompt or in a debugger to see if it works - properly. - - <footnote> - <para>If you run it in the shell, you may get a core - dump.</para> - </footnote></para> - - <para>Obviously, this is not quite as direct as using an - interpreter. However it allows you to do a lot of things - which are very difficult or even impossible with an - interpreter, such as writing code which interacts closely with - the operating system—or even writing your own operating - system! It's also useful if you need to write very efficient - code, as the compiler can take its time and optimise the code, - which would not be acceptable in an interpreter. And - distributing a program written for a compiler is usually more - straightforward than one written for an interpreter—you - can just give them a copy of the executable, assuming they - have the same operating system as you.</para> - - <para>Compiled languages include Pascal, C and C++. C and C++ - are rather unforgiving languages, and best suited to more - experienced programmers; Pascal, on the other hand, was - designed as an educational language, and is quite a good - language to start with. Unfortunately, FreeBSD doesn't have - any Pascal support, except for a Pascal-to-C converter in the - ports.</para> - - <para>As the edit-compile-run-debug cycle is rather tedious when - using separate programs, many commercial compiler makers have - produced Integrated Development Environments - (<acronym>IDE</acronym>s for short). FreeBSD does not have an - <acronym>IDE</> as such; however it is possible to use Emacs - for this purpose. This is discussed in <xref - linkend="emacs">.</para> - </sect2> - </sect1> - - <sect1> - <title>Compiling with <command>cc</command></title> - - <para>This section deals only with the GNU compiler for C and C++, - since that comes with the base FreeBSD system. It can be - invoked by either <command>cc</> or <command>gcc</>. The - details of producing a program with an interpreter vary - considerably between interpreters, and are usually well covered - in the documentation and on-line help for the - interpreter.</para> - - <para>Once you've written your masterpiece, the next step is to - convert it into something that will (hopefully!) run on FreeBSD. - This usually involves several steps, each of which is done by a - separate program.</para> - - <procedure> - <step> - <para>Pre-process your source code to remove comments and do - other tricks like expanding macros in C.</para> - </step> - - <step> - <para>Check the syntax of your code to see if you have obeyed - the rules of the language. If you have not, it will - complain!</para> - </step> - - <step> - <para>Convert the source code into assembly - language—this is very close to machine code, but still - understandable by humans. Allegedly. - - <footnote> - <para>To be strictly accurate, <command>cc</> converts the - source code into its own, machine-independent - <firstterm>p-code</> instead of assembly language at - this stage.</para> - </footnote></para> - </step> - - <step> - <para>Convert the assembly language into machine - code—yep, we are talking bits and bytes, ones and - zeros here.</para> - </step> - - <step> - <para>Check that you have used things like functions and - global variables in a consistent way. For example, if you - have called a non-existent function, it will - complain.</para> - </step> - - <step> - <para>If you are trying to produce an executable from several - source code files, work out how to fit them all - together.</para> - </step> - - <step> - <para>Work out how to produce something that the system's - run-time loader will be able to load into memory and - run.</para> - </step> - - <step> - <para>Finally, write the executable on the file system.</para> - </step> - </procedure> - - <para>The word <firstterm>compiling</> is often used to refer to - just steps 1 to 4—the others are referred to as - <firstterm>linking</>. Sometimes step 1 is referred to as - <firstterm>pre-processing</> and steps 3-4 as - <firstterm>assembling</>.</para> - - <para>Fortunately, almost all this detail is hidden from you, as - <command>cc</> is a front end that manages calling all these - programs with the right arguments for you; simply typing</para> - - <screen>&prompt.user; <userinput>cc foobar.c</> - </screen> - - <para>will cause <filename>foobar.c</> to be compiled by all the - steps above. If you have more than one file to compile, just do - something like</para> - - <screen>&prompt.user; <userinput>cc foo.c bar.c</> - </screen> - - <para>Note that the syntax checking is just that—checking - the syntax. It will not check for any logical mistakes you may - have made, like putting the program into an infinite loop, or - using a bubble sort when you meant to use a binary - sort. - - <footnote> - <para>In case you didn't know, a binary sort is an efficient - way of sorting things into order and a bubble sort - isn't.</para> - </footnote></para> - - <para>There are lots and lots of options for <command>cc</>, which - are all in the man page. Here are a few of the most important - ones, with examples of how to use them.</para> - - <variablelist> - <varlistentry> - <term><option>-o <replaceable>filename</replaceable></></term> - - <listitem> - <para>The output name of the file. If you do not use this - option, <command>cc</> will produce an executable called - <filename>a.out</>. - - <footnote> - <para>The reasons for this are buried in the mists of - history.</para> - </footnote></para> - - <informalexample> - <screen>&prompt.user; <userinput>cc foobar.c</> <lineannotation>executable is <filename>a.out</></> -&prompt.user; <userinput>cc -o foobar foobar.c</> <lineannotation>executable is <filename>foobar</></> - </screen> - </informalexample> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-c</option></term> - - <listitem> - <para>Just compile the file, do not link it. Useful for toy - programs where you just want to check the syntax, or if - you are using a <filename>Makefile</filename>.</para> - - <informalexample> - <screen>&prompt.user; <userinput>cc -c foobar.c</userinput> - </screen> - </informalexample> - - <para>This will produce an <firstterm>object file</> (not an - executable) called <filename>foobar.o</filename>. This - can be linked together with other object files into an - executable.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-g</option></term> - - <listitem> - <para>Create a debug version of the executable. This makes - the compiler put information into the executable about - which line of which source file corresponds to which - function call. A debugger can use this information to show - the source code as you step through the program, which is - <emphasis>very</emphasis> useful; the disadvantage is that - all this extra information makes the program much bigger. - Normally, you compile with <option>-g</option> while you - are developing a program and then compile a <quote>release - version</quote> without <option>-g</option> when you're - satisfied it works properly.</para> - - <informalexample> - <screen>&prompt.user; <userinput>cc -g foobar.c</userinput> - </screen> - </informalexample> - - <para>This will produce a debug version of the - program. - - <footnote> - <para>Note, we didn't use the <option>-o</option> flag - to specify the executable name, so we will get an - executable called <filename>a.out</filename>. - Producing a debug version called - <filename>foobar</filename> is left as an exercise for - the reader!</para> - </footnote></para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-O</option></term> - - <listitem> - <para>Create an optimised version of the executable. The - compiler performs various clever tricks to try and produce - an executable that runs faster than normal. You can add a - number after the <option>-O</option> to specify a higher - level of optimisation, but this often exposes bugs in the - compiler's optimiser. For instance, the version of - <command>cc</command> that comes with the 2.1.0 release of - FreeBSD is known to produce bad code with the - <option>-O2</option> option in some circumstances.</para> - - <para>Optimisation is usually only turned on when compiling - a release version.</para> - - <informalexample> - <screen>&prompt.user; <userinput>cc -O -o foobar foobar.c</userinput> - </screen> - </informalexample> - - <para>This will produce an optimised version of - <filename>foobar</filename>.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>The following three flags will force <command>cc</command> - to check that your code complies to the relevant international - standard, often referred to as the <acronym>ANSI</acronym> - standard, though strictly speaking it is an - <acronym>ISO</acronym> standard.</para> - - <variablelist> - <varlistentry> - <term><option>-Wall</option></term> - - <listitem> - <para>Enable all the warnings which the authors of - <command>cc</command> believe are worthwhile. Despite the - name, it will not enable all the warnings - <command>cc</command> is capable of.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-ansi</option></term> - - <listitem> - <para>Turn off most, but not all, of the - non-<acronym>ANSI</> C features provided by - <command>cc</command>. Despite the name, it does not - guarantee strictly that your code will comply to the - standard.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-pedantic</option></term> - - <listitem> - <para>Turn off <emphasis>all</emphasis> - <command>cc</command>'s non-<acronym>ANSI</> C - features.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Without these flags, <command>cc</command> will allow you to - use some of its non-standard extensions to the standard. Some - of these are very useful, but will not work with other - compilers—in fact, one of the main aims of the standard is - to allow people to write code that will work with any compiler - on any system. This is known as <firstterm>portable - code</firstterm>.</para> - - <para>Generally, you should try to make your code as portable as - possible, as otherwise you may have to completely re-write the - program later to get it to work somewhere else—and who - knows what you may be using in a few years time?</para> - - <informalexample> - <screen>&prompt.user; <userinput>cc -Wall -ansi -pedantic -o foobar foobar.c</userinput> - </screen> - </informalexample> - - <para>This will produce an executable <filename>foobar</filename> - after checking <filename>foobar.c</filename> for standard - compliance.</para> - - <variablelist> - <varlistentry> - <term><option>-l<replaceable>library</replaceable></option></term> - - <listitem> - <para>Specify a function library to be used during when - linking.</para> - - <para>The most common example of this is when compiling a - program that uses some of the mathematical functions in C. - Unlike most other platforms, these are in a separate - library from the standard C one and you have to tell the - compiler to add it.</para> - - <para>The rule is that if the library is called - <filename>lib<replaceable>something</replaceable>.a</filename>, - you give <command>cc</command> the argument - <option>-l<replaceable>something</replaceable></option>. - For example, the math library is - <filename>libm.a</filename>, so you give - <command>cc</command> the argument <option>-lm</option>. - A common <quote>gotcha</quote> with the math library is - that it has to be the last library on the command - line.</para> - - <informalexample> - <screen>&prompt.user; <userinput>cc -o foobar foobar.c -lm</userinput> - </screen> - </informalexample> - - <para>This will link the math library functions into - <filename>foobar</filename>.</para> - - <para>If you are compiling C++ code, you need to add - <option>-lg++</option>, or <option>-lstdc++</option> if - you are using FreeBSD 2.2 or later, to the command line - argument to link the C++ library functions. - Alternatively, you can run <command>c++</command> instead - of <command>cc</command>, which does this for you. - <command>c++</command> can also be invoked as - <command>g++</command> on FreeBSD.</para> - - <informalexample> - <screen>&prompt.user; <userinput>cc -o foobar foobar.cc -lg++</userinput> <lineannotation>For FreeBSD 2.1.6 and earlier</> -&prompt.user; <userinput>cc -o foobar foobar.cc -lstdc++</userinput> <lineannotation>For FreeBSD 2.2 and later</> -&prompt.user; <userinput>c++ -o foobar foobar.cc</userinput> - </screen> - </informalexample> - - <para>Each of these will both produce an executable - <filename>foobar</filename> from the C++ source file - <filename>foobar.cc</filename>. Note that, on Unix - systems, C++ source files traditionally end in - <filename>.C</filename>, <filename>.cxx</filename> or - <filename>.cc</filename>, rather than the - <trademark>MS-DOS</trademark> style - <filename>.cpp</filename> (which was already used for - something else). <command>gcc</command> used to rely on - this to work out what kind of compiler to use on the - source file; however, this restriction no longer applies, - so you may now call your C++ files - <filename>.cpp</filename> with impunity!</para> - </listitem> - </varlistentry> - </variablelist> - - <sect2> - <title>Common <command>cc</command> Queries and Problems</title> - - <qandaset> - <qandaentry> - <question> - <para>I am trying to write a program which uses the - <function>sin()</function> function and I get an error - like this. What does it mean?</para> - - <informalexample> - <screen>/var/tmp/cc0143941.o: Undefined symbol `_sin' referenced from text segment - </screen> - </informalexample> - </question> - - <answer> - <para>When using mathematical functions like - <function>sin()</function>, you have to tell - <command>cc</command> to link in the math library, like - so:</para> - - <informalexample> - <screen>&prompt.user; <userinput>cc -o foobar foobar.c -lm</userinput> - </screen> - </informalexample> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>All right, I wrote this simple program to practice - using <option>-lm</option>. All it does is raise 2.1 to - the power of 6.</para> - - <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> - - <para>and I compiled it as:</para> - - <informalexample> - <screen>&prompt.user; <userinput>cc temp.c -lm</userinput> - </screen> - </informalexample> - - <para>like you said I should, but I get this when I run - it:</para> - - <informalexample> - <screen>&prompt.user; <userinput>./a.out</userinput> -2.1 ^ 6 = 1023.000000 - </screen> - </informalexample> - - <para>This is <emphasis>not</emphasis> the right answer! - What is going on?</para> - </question> - - <answer> - <para>When the compiler sees you call a function, it - checks if it has already seen a prototype for it. If it - has not, it assumes the function returns an - <type>int</type>, which is definitely not what you want - here.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>So how do I fix this?</para> - </question> - - <answer> - <para>The prototypes for the mathematical functions are in - <filename>math.h</filename>. If you include this file, - the compiler will be able to find the prototype and it - will stop doing strange things to your - calculation!</para> - - <informalexample> - <programlisting>#include <math.h> -#include <stdio.h> - -int main() { -... - </programlisting> - </informalexample> - - <para>After recompiling it as you did before, run - it:</para> - - <informalexample> - <screen>&prompt.user; <userinput>./a.out</userinput> -2.1 ^ 6 = 85.766121 - </screen> - </informalexample> - - <para>If you are using any of the mathematical functions, - <emphasis>always</emphasis> include - <filename>math.h</filename> and remember to link in the - math library.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I compiled a file called - <filename>foobar.c</filename> and I cannot find an - executable called <filename>foobar</filename>. Where's - it gone?</para> - </question> - - <answer> - <para>Remember, <command>cc</command> will call the - executable <filename>a.out</filename> unless you tell it - differently. Use the - <option>-o <replaceable>filename</replaceable></option> - option:</para> - - <informalexample> - <screen>&prompt.user; <userinput>cc -o foobar foobar.c</userinput> - </screen> - </informalexample> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>OK, I have an executable called - <filename>foobar</filename>, I can see it when I run - <command>ls</command>, but when I type in - <command>foobar</command> at the command prompt it tells - me there is no such file. Why can it not find - it?</para> - </question> - - <answer> - <para>Unlike <trademark>MS-DOS</trademark>, Unix does not - look in the current directory when it is trying to find - out which executable you want it to run, unless you tell - it to. Either type <command>./foobar</command>, which - means <quote>run the file called - <filename>foobar</filename> in the current - directory</quote>, or change your <systemitem - class=environvar>PATH</systemitem> environment - variable so that it looks something like</para> - - <informalexample> - <screen>bin:/usr/bin:/usr/local/bin:. - </screen> - </informalexample> - - <para>The dot at the end means <quote>look in the current - directory if it is not in any of the - others</quote>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I called my executable <filename>test</filename>, - but nothing happens when I run it. What is going - on?</para> - </question> - - <answer> - <para>Most Unix systems have a program called - <command>test</command> in <filename>/usr/bin</filename> - and the shell is picking that one up before it gets to - checking the current directory. Either type:</para> - - <informalexample> - <screen>&prompt.user; <userinput>./test</userinput> - </screen> - </informalexample> - - <para>or choose a better name for your program!</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I compiled my program and it seemed to run all right - at first, then there was an error and it said something - about <errorname>core dumped</errorname>. What does that - mean?</para> - </question> - - <answer> - <para>The name <firstterm>core dump</firstterm> dates back - to the very early days of Unix, when the machines used - core memory for storing data. Basically, if the program - failed under certain conditions, the system would write - the contents of core memory to disk in a file called - <filename>core</filename>, which the programmer could - then pore over to find out what went wrong.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Fascinating stuff, but what I am supposed to do - now?</para> - </question> - - <answer> - <para>Use <command>gdb</command> to analyse the core (see - <xref linkend="debugging">).</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>When my program dumped core, it said something about - a <errorname>segmentation fault</errorname>. What's - that?</para> - </question> - - <answer> - <para>This basically means that your program tried to - perform some sort of illegal operation on memory; Unix - is designed to protect the operating system and other - programs from rogue programs.</para> - - <para>Common causes for this are:</para> - - <itemizedlist> - <listitem> - <para>Trying to write to a <symbol>NULL</symbol> - pointer, eg</para> - - <programlisting>char *foo = NULL; -strcpy(foo, "bang!"); - </programlisting> - </listitem> - - <listitem> - <para>Using a pointer that hasn't been initialised, - eg</para> - - <programlisting>char *foo; -strcpy(foo, "bang!"); - </programlisting> - - <para>The pointer will have some random value that, - with luck, will point into an area of memory that - isn't available to your program and the kernel will - kill your program before it can do any damage. If - you're unlucky, it'll point somewhere inside your - own program and corrupt one of your data structures, - causing the program to fail mysteriously.</para> - </listitem> - - <listitem> - <para>Trying to access past the end of an array, - eg</para> - - <programlisting>int bar[20]; -bar[27] = 6; - </programlisting> - </listitem> - - <listitem> - <para>Trying to store something in read-only memory, - eg</para> - - <programlisting>char *foo = "My string"; -strcpy(foo, "bang!"); - </programlisting> - - <para>Unix compilers often put string literals like - <literal>"My string"</literal> into read-only areas - of memory.</para> - </listitem> - - <listitem> - <para>Doing naughty things with - <function>malloc()</function> and - <function>free()</function>, eg</para> - - <programlisting>char bar[80]; -free(bar); - </programlisting> - - <para>or</para> - - <programlisting>char *foo = malloc(27); -free(foo); -free(foo); - </programlisting> - </listitem> - </itemizedlist> - - <para>Making one of these mistakes will not always lead to - an error, but they are always bad practice. Some - systems and compilers are more tolerant than others, - which is why programs that ran well on one system can - crash when you try them on an another.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Sometimes when I get a core dump it says - <errorname>bus error</errorname>. It says in my Unix - book that this means a hardware problem, but the - computer still seems to be working. Is this - true?</para> - </question> - - <answer> - <para>No, fortunately not (unless of course you really do - have a hardware problem…). This is usually - another way of saying that you accessed memory in a way - you shouldn't have.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>This dumping core business sounds as though it could - be quite useful, if I can make it happen when I want to. - Can I do this, or do I have to wait until there's an - error?</para> - </question> - - <answer> - <para>Yes, just go to another console or xterm, do</para> - - <screen>&prompt.user; <userinput>ps</userinput> - </screen> - - <para>to find out the process ID of your program, and - do</para> - - <screen>&prompt.user; <userinput>kill -ABRT <replaceable>pid</replaceable></userinput> - </screen> - - <para>where - <parameter><replaceable>pid</replaceable></parameter> is - the process ID you looked up.</para> - - <para>This is useful if your program has got stuck in an - infinite loop, for instance. If your program happens to - trap <symbol>SIGABRT</symbol>, there are several other - signals which have a similar effect.</para> - </answer> - </qandaentry> - </qandaset> - </sect2> - </sect1> - - <sect1> - <title>Make</title> - - <sect2> - <title>What is <command>make</command>?</title> - - <para>When you're working on a simple program with only one or - two source files, typing in</para> - - <screen>&prompt.user; <userinput>cc file1.c file2.c</userinput> - </screen> - - <para>is not too bad, but it quickly becomes very tedious when - there are several files—and it can take a while to - compile, too.</para> - - <para>One way to get around this is to use object files and only - recompile the source file if the source code has changed. So - we could have something like:</para> - - <screen>&prompt.user; <userinput>cc file1.o file2.o</userinput> … <userinput>file37.c</userinput> &hellip - </screen> - - <para>if we'd changed <filename>file37.c</filename>, but not any - of the others, since the last time we compiled. This may - speed up the compilation quite a bit, but doesn't solve the - typing problem.</para> - - <para>Or we could write a shell script to solve the typing - problem, but it would have to re-compile everything, making it - very inefficient on a large project.</para> - - <para>What happens if we have hundreds of source files lying - about? What if we're working in a team with other people who - forget to tell us when they've changed one of their source - files that we use?</para> - - <para>Perhaps we could put the two solutions together and write - something like a shell script that would contain some kind of - magic rule saying when a source file needs compiling. Now all - we need now is a program that can understand these rules, as - it's a bit too complicated for the shell.</para> - - <para>This program is called <command>make</command>. It reads - in a file, called a <firstterm>makefile</firstterm>, that - tells it how different files depend on each other, and works - out which files need to be re-compiled and which ones don't. - For example, a rule could say something like <quote>if - <filename>fromboz.o</filename> is older than - <filename>fromboz.c</filename>, that means someone must have - changed <filename>fromboz.c</filename>, so it needs to be - re-compiled.</quote> The makefile also has rules telling - make <emphasis>how</emphasis> to re-compile the source file, - making it a much more powerful tool.</para> - - <para>Makefiles are typically kept in the same directory as the - source they apply to, and can be called - <filename>makefile</filename>, <filename>Makefile</filename> - or <filename>MAKEFILE</filename>. Most programmers use the - name <filename>Makefile</filename>, as this puts it near the - top of a directory listing, where it can easily be - seen. - - <footnote> - <para>They don't use the <filename>MAKEFILE</filename> form - as block capitals are often used for documentation files - like <filename>README</filename>.</para> - </footnote></para> - </sect2> - - <sect2> - <title>Example of using <command>make</command></title> - - <para>Here's a very simple make file:</para> - - <programlisting>foo: foo.c - cc -o foo foo.c - </programlisting> - - <para>It consists of two lines, a dependency line and a creation - line.</para> - - <para>The dependency line here consists of the name of the - program (known as the <firstterm>target</firstterm>), followed - by a colon, then whitespace, then the name of the source file. - When <command>make</command> reads this line, it looks to see - if <filename>foo</filename> exists; if it exists, it compares - the time <filename>foo</filename> was last modified to the - time <filename>foo.c</filename> was last modified. If - <filename>foo</filename> does not exist, or is older than - <filename>foo.c</filename>, it then looks at the creation line - to find out what to do. In other words, this is the rule for - working out when <filename>foo.c</filename> needs to be - re-compiled.</para> - - <para>The creation line starts with a <token>tab</token> (press - the <keycap>tab</keycap> key) and then the command you would - type to create <filename>foo</filename> if you were doing it - at a command prompt. If <filename>foo</filename> is out of - date, or does not exist, <command>make</command> then executes - this command to create it. In other words, this is the rule - which tells make how to re-compile - <filename>foo.c</filename>.</para> - - <para>So, when you type <userinput>make</userinput>, it will - make sure that <filename>foo</filename> is up to date with - respect to your latest changes to <filename>foo.c</filename>. - This principle can be extended to - <filename>Makefile</filename>s with hundreds of - targets—in fact, on FreeBSD, it is possible to compile - the entire operating system just by typing <userinput>make - world</userinput> in the appropriate directory!</para> - - <para>Another useful property of makefiles is that the targets - don't have to be programs. For instance, we could have a make - file that looks like this:</para> - - <programlisting>foo: foo.c - cc -o foo foo.c - -install: - cp foo /home/me - </programlisting> - - <para>We can tell make which target we want to make by - typing:</para> - - <screen>&prompt.user; <userinput>make <replaceable>target</replaceable></userinput> - </screen> - - <para><command>make</command> will then only look at that target - and ignore any others. For example, if we type - <userinput>make foo</userinput> with the makefile above, make - will ignore the <action>install</action> target.</para> - - <para>If we just type <userinput>make</userinput> on its own, - make will always look at the first target and then stop - without looking at any others. So if we typed - <userinput>make</userinput> here, it will just go to the - <action>foo</action> target, re-compile - <filename>foo</filename> if necessary, and then stop without - going on to the <action>install</action> target.</para> - - <para>Notice that the <action>install</action> target doesn't - actually depend on anything! This means that the command on - the following line is always executed when we try to make that - target by typing <userinput>make install</userinput>. In this - case, it will copy <filename>foo</filename> into the user's - home directory. This is often used by application makefiles, - so that the application can be installed in the correct - directory when it has been correctly compiled.</para> - - <para>This is a slightly confusing subject to try and explain. - If you don't quite understand how <command>make</command> - works, the best thing to do is to write a simple program like - <quote>hello world</quote> and a make file like the one above - and experiment. Then progress to using more than one source - file, or having the source file include a header file. The - <command>touch</command> command is very useful here—it - changes the date on a file without you having to edit - it.</para> - </sect2> - - <sect2> - <title>FreeBSD Makefiles</title> - - <para>Makefiles can be rather complicated to write. Fortunately, - BSD-based systems like FreeBSD come with some very powerful - ones as part of the system. One very good example of this is - the FreeBSD ports system. Here's the essential part of a - typical ports <filename>Makefile</filename>:</para> - - <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>Now, if we go to the directory for this port and type - <userinput>make</userinput>, the following happens:</para> - - <procedure> - <step> - <para>A check is made to see if the source code for this - port is already on the system.</para> - </step> - - <step> - <para>If it isn't, an FTP connection to the URL in - <symbol>MASTER_SITES</symbol> is set up to download the - source.</para> - </step> - - <step> - <para>The checksum for the source is calculated and compared - it with one for a known, good, copy of the source. This - is to make sure that the source was not corrupted while in - transit.</para> - </step> - - <step> - <para>Any changes required to make the source work on - FreeBSD are applied—this is known as - <firstterm>patching</firstterm>.</para> - </step> - - <step> - <para>Any special configuration needed for the source is - done. (Many Unix program distributions try to work out - which version of Unix they are being compiled on and which - optional Unix features are present—this is where - they are given the information in the FreeBSD ports - scenario).</para> - </step> - - <step> - <para>The source code for the program is compiled. In - effect, we change to the directory where the source was - unpacked and do <command>make</command>—the - program's own make file has the necessary information to - build the program.</para> - </step> - - <step> - <para>We now have a compiled version of the program. If we - wish, we can test it now; when we feel confident about the - program, we can type <userinput>make install</userinput>. - This will cause the program and any supporting files it - needs to be copied into the correct location; an entry is - also made into a <database>package database</database>, so - that the port can easily be uninstalled later if we change - our mind about it.</para> - </step> - </procedure> - - <para>Now I think you'll agree that's rather impressive for a - four line script!</para> - - <para>The secret lies in the last line, which tells - <command>make</command> to look in the system makefile called - <filename>bsd.port.mk</filename>. It's easy to overlook this - line, but this is where all the clever stuff comes - from—someone has written a makefile that tells - <command>make</command> to do all the things above (plus a - couple of other things I didn't mention, including handling - any errors that may occur) and anyone can get access to that - just by putting a single line in their own make file!</para> - - <para>If you want to have a look at these system makefiles, - they're in <filename>/usr/share/mk</filename>, but it's - probably best to wait until you've had a bit of practice with - makefiles, as they are very complicated (and if you do look at - them, make sure you have a flask of strong coffee - handy!)</para> - </sect2> - - <sect2> - <title>More advanced uses of <command>make</command></title> - - <para><command>Make</command> is a very powerful tool, and can - do much more than the simple example above shows. - Unfortunately, there are several different versions of - <command>make</command>, and they all differ considerably. - The best way to learn what they can do is probably to read the - documentation—hopefully this introduction will have - given you a base from which you can do this.</para> - - <para>The version of make that comes with FreeBSD is the - <application>Berkeley make</application>; there is a tutorial - for it in <filename>/usr/share/doc/psd/12.make</filename>. To - view it, do</para> - - <screen>&prompt.user; <userinput>zmore paper.ascii.gz</userinput> - </screen> - - <para>in that directory.</para> - - <para>Many applications in the ports use <application>GNU - make</application>, which has a very good set of - <quote>info</quote> pages. If you have installed any of these - ports, <application>GNU make</application> will automatically - have been installed as <command>gmake</command>. It's also - available as a port and package in its own right.</para> - - <para>To view the info pages for <application>GNU - make</application>, you will have to edit the - <filename>dir</filename> file in the - <filename>/usr/local/info</filename> directory to add an entry - for it. This involves adding a line like</para> - - <programlisting> * Make: (make). The GNU Make utility. - </programlisting> - - <para>to the file. Once you have done this, you can type - <userinput>info</userinput> and then select - <guimenuitem>make</guimenuitem> from the menu (or in - <application>Emacs</application>, do <userinput>C-h - i</userinput>).</para> - </sect2> - </sect1> - - <sect1 id="debugging"> - <title>Debugging</title> - - <sect2> - <title>The Debugger</title> - - <para>The debugger that comes with FreeBSD is called - <command>gdb</command> (<application>GNU - debugger</application>). You start it up by typing</para> - - <screen>&prompt.user; <userinput>gdb <replaceable>progname</replaceable></userinput> - </screen> - - <para>although most people prefer to run it inside - <application>Emacs</application>. You can do this by:</para> - - <screen><userinput>M-x gdb RET <replaceable>progname</replaceable> RET</userinput> - </screen> - - <para>Using a debugger allows you to run the program under more - controlled circumstances. Typically, you can step through the - program a line at a time, inspect the value of variables, - change them, tell the debugger to run up to a certain point - and then stop, and so on. You can even attach to a program - that's already running, or load a core file to investigate why - the program crashed. It's even possible to debug the kernel, - though that's a little trickier than the user applications - we'll be discussing in this section.</para> - - <para><command>gdb</command> has quite good on-line help, as - well as a set of info pages, so this section will concentrate - on a few of the basic commands.</para> - - <para>Finally, if you find its text-based command-prompt style - off-putting, there's a graphical front-end for it <ulink - URL="../../ports/devel.html">xxgdb</ulink> in the ports - collection.</para> - - <para>This section is intended to be an introduction to using - <command>gdb</command> and does not cover specialised topics - such as debugging the kernel.</para> - </sect2> - - <sect2> - <title>Running a program in the debugger</title> - - <para>You'll need to have compiled the program with the - <option>-g</option> option to get the most out of using - <command>gdb</command>. It will work without, but you'll only - see the name of the function you're in, instead of the source - code. If you see a line like:</para> - - <screen>… (no debugging symbols found) … - </screen> - - <para>when <command>gdb</command> starts up, you'll know that - the program wasn't compiled with the <option>-g</option> - option.</para> - - <para>At the <command>gdb</command> prompt, type - <userinput>break main</userinput>. This will tell the - debugger to skip over the preliminary set-up code in the - program and start at the beginning of your code. Now type - <userinput>run</userinput> to start the program—it will - start at the beginning of the set-up code and then get stopped - by the debugger when it calls <function>main()</function>. - (If you've ever wondered where <function>main()</function> - gets called from, now you know!).</para> - - <para>You can now step through the program, a line at a time, by - pressing <command>n</command>. If you get to a function call, - you can step into it by pressing <command>s</command>. Once - you're in a function call, you can return from stepping into a - function call by pressing <command>f</command>. You can also - use <command>up</command> and <command>down</command> to take - a quick look at the caller.</para> - - <para>Here's a simple example of how to spot a mistake in a - program with <command>gdb</command>. This is our program - (with a deliberate mistake):</para> - - <programlisting>#include <stdio.h> - -int bazz(int anint); - -main() { - int i; - - printf("This is my program\n"); - bazz(i); - return 0; -} - -int bazz(int anint) { - printf("You gave me %d\n", anint); - return anint; -} - </programlisting> - - <para>This program sets <symbol>i</symbol> to be - <literal>5</literal> and passes it to a function - <function>bazz()</function> which prints out the number we - gave it.</para> - - <para>When we compile and run the program we get</para> - - <screen>&prompt.user; <userinput>cc -g -o temp temp.c</userinput> -&prompt.user; <userinput>./temp</userinput> -This is my program -anint = 4231 - </screen> - - <para>That wasn't what we expected! Time to see what's going - on!</para> - - <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</> <lineannotation>Skip the set-up code</> -Breakpoint 1 at 0x160f: file temp.c, line 9. <lineannotation><command>gdb</command> puts breakpoint at <function>main()</></> -(gdb) <userinput>run</> <lineannotation>Run as far as <function>main()</></> -Starting program: /home/james/tmp/temp <lineannotation>Program starts running</> - -Breakpoint 1, main () at temp.c:9 <lineannotation><command>gdb</command> stops at <function>main()</></> -(gdb) <userinput>n</> <lineannotation>Go to next line</> -This is my program <lineannotation>Program prints out</> -(gdb) <userinput>s</> <lineannotation>step into <function>bazz()</></> -bazz (anint=4231) at temp.c:17 <lineannotation><command>gdb</command> displays stack frame</> -(gdb) - </screen> - - <para>Hang on a minute! How did <symbol>anint</symbol> get to be - <literal>4231</literal>? Didn't we set it to be - <literal>5</literal> in <function>main()</function>? Let's - move up to <function>main()</function> and have a look.</para> - - <screen>(gdb) <userinput>up</> <lineannotation>Move up call stack</> -#1 0x1625 in main () at temp.c:11 <lineannotation><command>gdb</command> displays stack frame</> -(gdb) <userinput>p i</> <lineannotation>Show us the value of <symbol>i</></> -$1 = 4231 <lineannotation><command>gdb</command> displays <literal>4231</></> - </screen> - - <para>Oh dear! Looking at the code, we forgot to initialise - <symbol>i</symbol>. We meant to put</para> - - <programlisting><lineannotation>…</> -main() { - int i; - - i = 5; - printf("This is my program\n"); -<lineannotation>&hellip</> - </programlisting> - - <para>but we left the <literal>i=5;</literal> line out. As we - didn't initialise <symbol>i</symbol>, it had whatever number - happened to be in that area of memory when the program ran, - which in this case happened to be - <literal>4231</literal>.</para> - - <note> - <para><command>gdb</command> displays the stack frame every - time we go into or out of a function, even if we're using - <command>up</command> and <command>down</command> to move - around the call stack. This shows the name of the function - and the values of its arguments, which helps us keep track - of where we are and what's going on. (The stack is a - storage area where the program stores information about the - arguments passed to functions and where to go when it - returns from a function call).</para> - </note> - </sect2> - - <sect2> - <title>Examining a core file</title> - - <para>A core file is basically a file which contains the - complete state of the process when it crashed. In <quote>the - good old days</quote>, programmers had to print out hex - listings of core files and sweat over machine code manuals, - but now life is a bit easier. Incidentally, under FreeBSD and - other 4.4BSD systems, a core file is called - <filename><replaceable>progname</>.core</> instead of just - <filename>core</filename>, to make it clearer which program a - core file belongs to.</para> - - <para>To examine a core file, start up <command>gdb</command> in - the usual way. Instead of typing <command>break</command> or - <command>run</command>, type</para> - - <screen>(gdb) <userinput>core <replaceable>progname</replaceable>.core</userinput> - </screen> - - <para>If you're not in the same directory as the core file, - you'll have to do <userinput>dir - /path/to/core/file</userinput> first.</para> - - <para>You should see something like this:</para> - - <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 (anint=0x5) at temp.c:17 -(gdb) - </screen> - - <para>In this case, the program was called - <filename>a.out</filename>, so the core file is called - <filename>a.out.core</filename>. We can see that the program - crashed due to trying to access an area in memory that was not - available to it in a function called - <function>bazz</function>.</para> - - <para>Sometimes it's useful to be able to see how a function was - called, as the problem could have occurred a long way up the - call stack in a complex program. The <command>bt</command> - command causes <command>gdb</command> to print out a - back-trace of the call stack:</para> - - <screen>(gdb) <userinput>bt</userinput> -#0 0x164a in bazz (anint=0x5) at temp.c:17 -#1 0xefbfd888 in end () -#2 0x162c in main () at temp.c:11 -(gdb) - </screen> - - <para>The <function>end()</function> function is called when a - program crashes; in this case, the <function>bazz()</function> - function was called from <function>main()</function>.</para> - </sect2> - - <sect2> - <title>Attaching to a running program</title> - - <para>One of the neatest features about <command>gdb</command> - is that it can attach to a program that's already running. Of - course, that assumes you have sufficient permissions to do so. - A common problem is when you are stepping through a program - that forks, and you want to trace the child, but the debugger - will only let you trace the parent.</para> - - <para>What you do is start up another <command>gdb</command>, - use <command>ps</command> to find the process ID for the - child, and do</para> - - <screen>(gdb) <userinput>attach <replaceable>pid</replaceable></userinput> - </screen> - - <para>in <command>gdb</command>, and then debug as usual.</para> - - <para><quote>That's all very well,</quote> you're probably - thinking, <quote>but by the time I've done that, the child - process will be over the hill and far away</quote>. Fear - not, gentle reader, here's how to do it (courtesy of the - <command>gdb</command> info pages):</para> - - <screen><lineannotation>&hellip</lineannotation> -if ((pid = fork()) < 0) /* _Always_ check this */ - error(); -else if (pid == 0) { /* child */ - int PauseMode = 1; - - while (PauseMode) - sleep(10); /* Wait until someone attaches to us */ - <lineannotation>&hellip</lineannotation> -} else { /* parent */ - <lineannotation>&hellip</lineannotation> - </screen> - - <para>Now all you have to do is attach to the child, set - <symbol>PauseMode</symbol> to <literal>0</literal>, and wait - for the <function>sleep()</function> call to return!</para> - </sect2> - </sect1> - - <sect1 id="emacs"> - <title>Using Emacs as a Development Environment</title> - - <sect2> - <title>Emacs</title> - - <para>Unfortunately, Unix systems don't come with the kind of - everything-you-ever-wanted-and-lots-more-you-didn't-in-one-gigantic-package - integrated development environments that other systems - have. - - <footnote> - <para>At least, not unless you pay out very large sums of - money.</para> - </footnote> - - However, it is possible to set up your own environment. It - may not be as pretty, and it may not be quite as integrated, - but you can set it up the way you want it. And it's free. - And you have the source to it.</para> - - <para>The key to it all is Emacs. Now there are some people who - loathe it, but many who love it. If you're one of the former, - I'm afraid this section will hold little of interest to you. - Also, you'll need a fair amount of memory to run it—I'd - recommend 8MB in text mode and 16MB in X as the bare minimum - to get reasonable performance.</para> - - <para>Emacs is basically a highly customisable - editor—indeed, it has been customised to the point where - it's more like an operating system than an editor! Many - developers and sysadmins do in fact spend practically all - their time working inside Emacs, leaving it only to log - out.</para> - - <para>It's impossible even to summarise everything Emacs can do - here, but here are some of the features of interest to - developers:</para> - - <itemizedlist> - <listitem> - <para>Very powerful editor, allowing search-and-replace on - both strings and regular expressions (patterns), jumping - to start/end of block expression, etc, etc.</para> - </listitem> - - <listitem> - <para>Pull-down menus and online help.</para> - </listitem> - - <listitem> - <para>Language-dependent syntax highlighting and - indentation.</para> - </listitem> - - <listitem> - <para>Completely customisable.</para> - </listitem> - - <listitem> - <para>You can compile and debug programs within - Emacs.</para> - </listitem> - - <listitem> - <para>On a compilation error, you can jump to the offending - line of source code.</para> - </listitem> - - <listitem> - <para>Friendly-ish front-end to the <command>info</command> - program used for reading GNU hypertext documentation, - including the documentation on Emacs itself.</para> - </listitem> - - <listitem> - <para>Friendly front-end to <command>gdb</command>, allowing - you to look at the source code as you step through your - program.</para> - </listitem> - - <listitem> - <para>You can read Usenet news and mail while your program - is compiling.</para> - </listitem> - </itemizedlist> - - <para>And doubtless many more that I've overlooked.</para> - - <para>Emacs can be installed on FreeBSD using <ulink - URL="../../ports/editors.html">the Emacs - port</ulink>.</para> - - <para>Once it's installed, start it up and do <userinput>C-h - t</userinput> to read an Emacs tutorial—that means - hold down the <keycap>control</keycap> key, press - <keycap>h</keycap>, let go of the <keycap>control</keycap> - key, and then press <keycap>t</keycap>. (Alternatively, you - can you use the mouse to select <guimenuitem>Emacs - Tutorial</guimenuitem> from the <guimenu>Help</guimenu> - menu).</para> - - <para>Although Emacs does have menus, it's well worth learning - the key bindings, as it's much quicker when you're editing - something to press a couple of keys than to try and find the - mouse and then click on the right place. And, when you're - talking to seasoned Emacs users, you'll find they often - casually throw around expressions like <quote><literal>M-x - replace-s RET foo RET bar RET</literal></quote> so it's - useful to know what they mean. And in any case, Emacs has far - too many useful functions for them to all fit on the menu - bars.</para> - - <para>Fortunately, it's quite easy to pick up the key-bindings, - as they're displayed next to the menu item. My advice is to - use the menu item for, say, opening a file until you - understand how it works and feel confident with it, then try - doing C-x C-f. When you're happy with that, move on to - another menu command.</para> - - <para>If you can't remember what a particular combination of - keys does, select <guimenuitem>Describe Key</guimenuitem> from - the <guimenu>Help</guimenu> menu and type it in—Emacs - will tell you what it does. You can also use the - <guimenuitem>Command Apropos</guimenuitem> menu item to find - out all the commands which contain a particular word in them, - with the key binding next to it.</para> - - <para>By the way, the expression above means hold down the - <keysym>Meta</keysym> key, press <keysym>x</keysym>, release - the <keysym>Meta</keysym> key, type - <userinput>replace-s</userinput> (short for - <literal>replace-string</literal>—another feature of - Emacs is that you can abbreviate commands), press the - <keysym>return</keysym> key, type <userinput>foo</userinput> - (the string you want replaced), press the - <keysym>return</keysym> key, type bar (the string you want to - replace <literal>foo</literal> with) and press - <keysym>return</keysym> again. Emacs will then do the - search-and-replace operation you've just requested.</para> - - <para>If you're wondering what on earth the - <keysym>Meta</keysym> key is, it's a special key that many - Unix workstations have. Unfortunately, PC's don't have one, - so it's usually the <keycap>alt</keycap> key (or if you're - unlucky, the <keysym>escape</keysym> key).</para> - - <para>Oh, and to get out of Emacs, do <command>C-x C-c</command> - (that means hold down the <keysym>control</keysym> key, press - <keysym>x</keysym>, press <keysym>c</keysym> and release the - <keysym>control</keysym> key). If you have any unsaved files - open, Emacs will ask you if you want to save them. (Ignore - the bit in the documentation where it says - <command>C-z</command> is the usual way to leave - Emacs—that leaves Emacs hanging around in the - background, and is only really useful if you're on a system - which doesn't have virtual terminals).</para> - </sect2> - - <sect2> - <title>Configuring Emacs</title> - - <para>Emacs does many wonderful things; some of them are built - in, some of them need to be configured.</para> - - <para>Instead of using a proprietary macro language for - configuration, Emacs uses a version of Lisp specially adapted - for editors, known as Emacs Lisp. This can be quite useful if - you want to go on and learn something like Common Lisp, as - it's considerably smaller than Common Lisp (although still - quite big!).</para> - - <para>The best way to learn Emacs Lisp is to download the <ulink - URL="ftp://prep.ai.mit.edu:pub/gnu/elisp-manual-19-2.4.tar.gz">Emacs - Tutorial</ulink></para> - - <para>However, there's no need to actually know any Lisp to get - started with configuring Emacs, as I've included a sample - <filename>.emacs</filename> file, which should be enough to - get you started. Just copy it into your home directory and - restart Emacs if it's already running; it will read the - commands from the file and (hopefully) give you a useful basic - setup.</para> - </sect2> - - <sect2> - <title>A sample <filename>.emacs</filename> file</title> - - <para>Unfortunately, there's far too much here to explain it in - detail; however there are one or two points worth - mentioning.</para> - - <itemizedlist> - <listitem> - <para>Everything beginning with a <literal>;</> is a comment - and is ignored by Emacs.</para> - </listitem> - - <listitem> - <para>In the first line, the - <literal>-*- Emacs-Lisp -*-</literal> is so that - we can edit the <filename>.emacs</filename> file itself - within Emacs and get all the fancy features for editing - Emacs Lisp. Emacs usually tries to guess this based on - the filename, and may not get it right for - <filename>.emacs</filename>.</para> - </listitem> - - <listitem> - <para>The <keysym>tab</keysym> key is bound to an - indentation function in some modes, so when you press the - tab key, it will indent the current line of code. If you - want to put a <token>tab</token> character in whatever - you're writing, hold the <keysym>control</keysym> key down - while you're pressing the <keysym>tab</keysym> key.</para> - </listitem> - - <listitem> - <para>This file supports syntax highlighting for C, C++, - Perl, Lisp and Scheme, by guessing the language from the - filename.</para> - </listitem> - - <listitem> - <para>Emacs already has a pre-defined function called - <function>next-error</function>. In a compilation output - window, this allows you to move from one compilation error - to the next by doing <command>M-n</command>; we define a - complementary function, - <function>previous-error</function>, that allows you to go - to a previous error by doing <command>M-p</command>. The - nicest feature of all is that <command>C-c C-c</command> - will open up the source file in which the error occurred - and jump to the appropriate line.</para> - </listitem> - - <listitem> - <para>We enable Emacs's ability to act as a server, so that - if you're doing something outside Emacs and you want to - edit a file, you can just type in</para> - - <screen>&prompt.user; <userinput>emacsclient <replaceable>filename</replaceable></userinput> - </screen> - - <para>and then you can edit the file in your - Emacs! - - <footnote> - <para>Many Emacs users set their <systemitem - class=environvar>EDITOR</systemitem> environment to - <literal>emacsclient</literal> so this happens every - time they need to edit a file.</para> - </footnote></para> - </listitem> - </itemizedlist> - - <example> - <title>A sample <filename>.emacs</filename> file</title> - - <programlisting>;; -*-Emacs-Lisp-*- - -;; This file is designed to be re-evaled; use the variable first-time -;; to avoid any problems with this. -(defvar first-time t - "Flag signifying this is the first time that .emacs has been evaled") - -;; Meta -(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) - -;; Function keys -(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) - -;; Keypad bindings -(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->") - -;; Mouse -(global-set-key [mouse-3] 'imenu) - -;; Misc -(global-set-key [C-tab] "\C-q\t") ; Control tab quotes a tab. -(setq backup-by-copying-when-mismatch t) - -;; Treat 'y' or <CR> as yes, 'n' as 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) - -;; Load packages -(require 'desktop) -(require 'tar-mode) - -;; Pretty diff mode -(autoload 'ediff-buffers "ediff" "Intelligent Emacs interface to diff" t) -(autoload 'ediff-files "ediff" "Intelligent Emacs interface to diff" t) -(autoload 'ediff-files-remote "ediff" - "Intelligent Emacs interface to diff") - -(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))) - -;; Auto font lock mode -(defvar font-lock-auto-mode-list - (list 'c-mode 'c++-mode 'c++-c-mode 'emacs-lisp-mode 'lisp-mode 'perl-mode 'scheme-mode) - "List of modes to always start in font-lock-mode") - -(defvar font-lock-mode-keyword-alist - '((c++-c-mode . c-font-lock-keywords) - (perl-mode . perl-font-lock-keywords)) - "Associations between modes and keywords") - -(defun font-lock-auto-mode-select () - "Automatically select font-lock-mode if the current major mode is -in 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) - -;; New dabbrev stuff -;(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))) - -;; C++ and C mode... -(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) -;; BSD-ish indentation style - (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)) - -;; Perl mode -(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)) - -;; Scheme mode... -(defun my-scheme-mode-hook () - (define-key scheme-mode-map "\C-m" 'reindent-then-newline-and-indent)) - -;; Emacs-Lisp mode... -(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)) - -;; Add all of the hooks... -(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) - -;; Complement to next-error -(defun previous-error (n) - "Visit previous compilation error message and corresponding source code." - (interactive "p") - (next-error (- n))) - -;; Misc... -(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) - -;; Elisp archive searching -(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) - -;; Font lock mode -(defun my-make-face (face colour &optional bold) - "Create a face from a colour and optionally make it bold" - (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 or PC using direct screen writes -(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) ; For slow serial connections - ) - -;; TTY type terminal -(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))))) - -;; Under UNIX -(if (not (equal system-type 'ms-dos)) - (progn - (if first-time - (server-start)))) - -;; Add any face changes here -(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") - ))) - -;; Restore the "desktop" - do this as late as possible -(if first-time - (progn - (desktop-load-default) - (desktop-read))) - -;; Indicate that this file has been read at least once -(setq first-time nil) - -;; No need to debug anything now -(setq debug-on-error nil) - -;; All done -(message "All done, %s%s" (user-login-name) ".") - </programlisting> - </example> - </sect2> - - <sect2> - <title>Extending the Range of Languages Emacs Understands</title> - - <para>Now, this is all very well if you only want to program in - the languages already catered for in the - <filename>.emacs</filename> file (C, C++, Perl, Lisp and - Scheme), but what happens if a new language called - <quote>whizbang</quote> comes out, full of exciting - features?</para> - - <para>The first thing to do is find out if whizbang comes with - any files that tell Emacs about the language. These usually - end in <filename>.el</filename>, short for <quote>Emacs - Lisp</quote>. For example, if whizbang is a FreeBSD port, we - can locate these files by doing</para> - - <screen>&prompt.user; <userinput>find /usr/ports/lang/whizbang -name "*.el" -print</userinput> - </screen> - - <para>and install them by copying them into the Emacs site Lisp - directory. On FreeBSD 2.1.0-RELEASE, this is - <filename>/usr/local/share/emacs/site-lisp</filename>.</para> - - <para>So for example, if the output from the find command - was</para> - - <screen>/usr/ports/lang/whizbang/work/misc/whizbang.el - </screen> - - <para>we would do</para> - - <screen>&prompt.root; <userinput>cp /usr/ports/lang/whizbang/work/misc/whizbang.el /usr/local/share/emacs/site-lisp</userinput> - </screen> - - <para>Next, we need to decide what extension whizbang source - files have. Let's say for the sake of argument that they all - end in <filename>.wiz</filename>. We need to add an entry to - our <filename>.emacs</filename> file to make sure Emacs will - be able to use the information in - <filename>whizbang.el</filename>.</para> - - <para>Find the <symbol>auto-mode-alist entry</symbol> in - <filename>.emacs</filename> and add a line for whizbang, such - as:</para> - - <programlisting><lineannotation>…</> -("\\.lsp$" . lisp-mode) -("\\.wiz$" . whizbang-mode) -("\\.scm$" . scheme-mode) -<lineannotation>…</> - </programlisting> - - <para>This means that Emacs will automatically go into - <function>whizbang-mode</function> when you edit a file ending - in <filename>.wiz</filename>.</para> - - <para>Just below this, you'll find the - <symbol>font-lock-auto-mode-list</symbol> entry. Add - <function>whizbang-mode</function> to it like so:</para> - - <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) - "List of modes to always start in font-lock-mode") - </programlisting> - - <para>This means that Emacs will always enable - <function>font-lock-mode</function> (ie syntax highlighting) - when editing a <filename>.wiz</filename> file.</para> - - <para>And that's all that's needed. If there's anything else - you want done automatically when you open up a - <filename>.wiz</filename> file, you can add a - <function>whizbang-mode hook</function> (see - <function>my-scheme-mode-hook</function> for a simple example - that adds <function>auto-indent</function>).</para> - </sect2> - </sect1> - - <sect1> - <title>Further Reading</title> - - <itemizedlist> - <listitem> - <para>Brian Harvey and 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 and 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 and Rob Pike - <emphasis>The Unix Programming Environment</emphasis> - Prentice-Hall 1984<!-- <br> --> - ISBN 0-13-937681-X</para> - </listitem> - - <listitem> - <para>Brian W. Kernighan and 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/en_US.ISO8859-1/articles/zip-drive/Makefile b/en_US.ISO8859-1/articles/zip-drive/Makefile deleted file mode 100644 index 60f4a450ea..0000000000 --- a/en_US.ISO8859-1/articles/zip-drive/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# $FreeBSD: doc/en_US.ISO_8859-1/articles/programming-tools/Makefile,v 1.8 1999/09/06 06:52:38 peter Exp $ - -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/en_US.ISO8859-1/articles/zip-drive/article.sgml b/en_US.ISO8859-1/articles/zip-drive/article.sgml deleted file mode 100644 index 3a2fe2db78..0000000000 --- a/en_US.ISO8859-1/articles/zip-drive/article.sgml +++ /dev/null @@ -1,267 +0,0 @@ -<!-- $FreeBSD --> - -<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> -%man; -]> - -<article> - <artheader> - <title>ZIP Drives</title> - - <authorgroup> - <author> - <firstname>Jason</firstname> - <surname>Bacon</surname> - - <affiliation> - <address><email>acadix@execpc.com</email></address> - </affiliation> - </author> - </authorgroup> - </artheader> - - <sect1> - <title>ZIP Drive Basics</title> - - <para>ZIP disks are high capacity, removable, magnetic disks, which can be - read or written by ZIP drives from iomega corporation. ZIP disks are - similar to floppy disks, except that they are much faster, and have a - much greater capacity. While floppy disks typically hold 1.44 - megabytes, ZIP disks are available in two sizes, namely 100 megabytes - and 250 megabytes. ZIP drives should not be confused with the - super-floppy, a 120 megabyte floppy drive which also handles traditional - 1.44 megabyte floppies.</para> - - <para>IOMEGA also sells a higher capacity, higher performance drive - called the JAZZ drive. JAZZ drives come in 1 gigabyte and - 2 gigabyte sizes.</para> - - <para>ZIP drives are available as internal or external units, using one - of three interfaces:</para> - - <orderedlist> - <listitem> - <para>The SCSI (Small Computer Standard Interface) interface is the - fastest, most sophisticated, most expandable, and most expensive - interface. The SCSI interface is used by all types of computers - from PC's to RISC workstations to minicomputers, to connect all - types of peripherals such as disk drives, tape drives, scanners, and - so on. SCSI ZIP drives may be internal or external, assuming your - host adapter has an external connector.</para> - - <note> - <para>If you are using an external SCSI device, it is important - never to connect or disconnect it from the SCSI bus while the - computer is running. Doing so may cause file-system damage on the - disks that remain connected.</para> - </note> - - <para>If you want maximum performance and easy setup, the SCSI - interface is the best choice. This will probably require adding a - SCSI host adapter, since most PC's (except for high-performance - servers) don't have built-in SCSI support. Each SCSI host adapter - can support either 7 or 15 SCSI devices, depending on the - model.</para> - - <para>Each SCSI device has it's own controller, and these - controllers are fairly intelligent and well standardized, (the - second `S' in SCSI is for Standard) so from the operating system's - point of view, all SCSI disk drives look about the same, as do all - SCSI tape drives, etc. To support SCSI devices, the operating - system need only have a driver for the particular host adapter, and - a generic driver for each type of device, i.e. a SCSI disk driver, - SCSI tape driver, and so on. There are some SCSI devices that can - be better utilized with specialized drivers (e.g. DAT tape drives), - but they tend to work OK with the generic driver, too. It's just - that the generic drivers may not support some of the special - features.</para> - - <para>Using a SCSI zip drive is simply a matter of determining which - device file in the <filename>/dev</filename> directory represents - the ZIP drive. This can be determined by looking at the boot - messages while FreeBSD is booting (or in - <filename>/var/log/messages</filename> after booting), where you'll - see a line something like this:</para> - - <programlisting>da1: <IOMEGA ZIP 100 D.13> Removable Direct Access SCSI-2 Device</programlisting> - - <para>This means that the ZIP drive is represented by the file - <filename>/dev/da1</filename>.</para> - </listitem> - - <listitem> - <para>The IDE (Integrated Drive Electronics) interface is a low-cost - disk drive interface used by many desktop PC's. Most IDE devices - are strictly internal.</para> - - <para>Performance of IDE ZIP drives is comparable to SCSI ZIP drives. - (The IDE interface is not as fast as SCSI, but ZIP drives - performance is limited mainly by the mechanics of the drive, not by - the bus interface.)</para> - - <para>The drawback of the IDE interface is the limitations it imposes. - Most IDE adapters can only support 2 devices, and IDE interfaces are - not typically designed for the long term. For example, the original - IDE interface would not support hard disks with more than 1024 - cylinders, which forced a lot of people to upgrade their hardware - prematurely. If you have plans to expand your PC by adding another - disk, a tape drive, or scanner, you may want to invest in a SCSI - host adapter and a SCSI ZIP drive to avoid problems in the - future.</para> - - <para>IDE devices in FreeBSD are prefixed with a <literal>w</literal>. - For example, an IDE hard disk might be - <filename>/dev/wd0</filename>, an IDE (ATAPI) cdrom might be - <filename>/dev/wcd1</filename>, and so on.</para> - </listitem> - - <listitem> - <para>The parallel port interface is popular for portable external - devices such as external ZIP drives and scanners, because virtually - every computer has a standard parallel port (usually used for - printers). This makes things easy for people to transfer data - between multiple computers by toting around their ZIP drive.</para> - - <para>Performance will generally be slower than a SCSI or IDE ZIP - drive, since it is limited by the speed of the parallel port. - Parallel port speed varies considerably between various computers, - and can often be configured in the system BIOS. Some machines - will also require BIOS configuration to operate the parallel - port in bidirectional mode. (Parallel ports were originally - designed only for output to printers)</para> - </listitem> - </orderedlist> - </sect1> - - <sect1> - <title>Parallel ZIP: The <devicename>vpo</devicename> Driver</title> - - <para>To use a parallel-port ZIP drive under FreeBSD, the - <devicename>vpo</devicename> driver must be configured into the kernel. - Parallel port ZIP drives also have a built-in SCSI controller. The vpo - driver allows the FreeBSD kernel to communicate with the ZIP drive's - SCSI controller through the parallel port.</para> - - <para>Since the vpo driver is not a standard part of the kernel (as of - FreeBSD 3.2), you will need to rebuild the kernel to enable this device. - The process of building a kernel is outlined in detail in another - section. The following steps outline the process in brief for the - purpose of enabling the vpo driver:</para> - - <orderedlist> - <listitem> - <para>Run <command>/stand/sysinstall</command>, and install the kernel - source code on your system.</para> - - <screen>&prompt.root; <userinput>cd /sys/i386/conf</userinput> -&prompt.root; <userinput>cp GENERIC MYKERNEL</userinput></screen> - - <para>Edit <filename>MYKERNEL</filename>, change the - <literal>ident</literal> line to <literal>MYKERNEL</literal>, and - uncomment the line describing the vpo driver.</para> - - <para>If you have a second parallel port, you may need to copy the - section for <literal>ppc0</literal> to create a - <literal>ppc1</literal> device. The second parallel port usually - uses IRQ 5 and address 378. Only the IRQ is required in the config - file.</para> - - <para>If you're root hard disk is a SCSI disk, you might run into a - problem with probing order, which will cause the system to attempt - to use the ZIP drive as the root device. This will cause a boot - failure, unless you happen to have a FreeBSD root file-system on - your ZIP disk! In this case, you will need to <quote>wire - down</quote> the root disk, i.e. force the kernel to bind a - specific device to <filename>/dev/da0</filename>, the root SCSI - disk. It will then assign the ZIP disk to the next available SCSI - disk, e.g. <literal>/dev/da1</literal>. To wire down your SCSI hard - drive as <literal>da0</literal>, change the line - - <programlisting>device da0</programlisting> - - to - - <programlisting>disk da0 at scbus0 target 0 unit 0</programlisting></para> - - <para>You may need to change the target above to match the SCSI ID of - your disk drive. You should also wire down the scbus0 entry to your - controller. For example, if you have an Adaptec 15xx controller, - you would change - - <programlisting>controller scbus0</programlisting> - - to - - <programlisting>controller scbus0 at aha0</programlisting></para> - - <para>Lastly, as long as you're editing the kernel config, you - can take the opportunity to remove all the unnecessary drivers. This - should be done with a great deal of caution, and only if you feel - confident about making kernel modifications. Removing unnecessary - drivers will reduce the kernel size, leaving more memory available - for your applications. To determine which drivers are not needed, - go to the end of the file <filename>/var/log/messages</filename>, and look for lines - reading "not found". Then, comment out these devices in your config - file. You can also change other options to reduce the size and - increase the speed of your kernel. Read the section on rebuilding - your kernel for more complete information.</para> - </listitem> - - <listitem> - <para>Now it's time to compile the kernel:</para> - - <screen>&prompt.root; <userinput>/usr/sbin/config MYKERNEL</userinput> -&prompt.root; <userinput>cd ../../compile/MYKERNEL</userinput> -&prompt.root; <userinput>make clean depend && make all install</userinput></screen> - </listitem> - </orderedlist> - - <para>After the kernel is rebuilt, you'll need to reboot. Make sure the - ZIP drive is connected to the parallel port before the boot begins. You - should see the ZIP drive show up in the boot messages as device vpo0 or - vpo1, depending on which parallel port the drive is attached to. It - should also show which device file the ZIP drive has been bound to. This - will be <filename>/dev/da0</filename> if you have no other SCSI disks in - the system, or <filename>/dev/da1</filename> if you have a SCSI hard - disk wired down as the root device.</para> - </sect1> - - <sect1> - <title>Mounting ZIP disks</title> - - <para>To access the ZIP disk, you simply mount it like any other disk - device. The file-system is represented as slice 4 on the device, so for - SCSI or parallel ZIP disks, you would use:</para> - - <screen>&prompt.root; <userinput>mount_msdos /dev/da1s4 /mnt</userinput></screen> - - <para>For IDE ZIP drives, use:</para> - - <screen>&prompt.root; <userinput>mount_msdos /dev/wd1s4 /mnt</userinput></screen> - - <para>It will also be helpful to update <filename>/etc/fstab</filename> to - make mounting easier. Add a line like the following, edited to suit your - system: - - <programlisting>/dev/da1s4 /zip msdos rw,noauto 0 0</programlisting> - - and create the directory <filename>/zip</filename>.</para> - - <para>Then, you can mount simply by typing - - <screen>&prompt.root; <userinput>mount /zip</userinput></screen> - - and unmount by typing - - <screen>&prompt.root; <userinput>umount /zip</userinput></screen></para> - - <para>For more information on the format of - <filename>/etc/fstab</filename>, see &man.fstab.5;.</para> - - <para>You can also create a FreeBSD file-system on the ZIP disk - using &man.newfs.8;. However, the disk will only be usable on a FreeBSD - system, or perhaps a few other Unix clones that recognize FreeBSD - file-systems. (Definitely not DOS or Windows.)</para> - </sect1> -</article> diff --git a/en_US.ISO8859-1/books/Makefile b/en_US.ISO8859-1/books/Makefile deleted file mode 100644 index 55d37bcff9..0000000000 --- a/en_US.ISO8859-1/books/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -# $FreeBSD: doc/en_US.ISO_8859-1/books/Makefile,v 1.6 1999/09/17 23:45:03 nik Exp $ - -SUBDIR = faq -SUBDIR+= fdp-primer -SUBDIR+= handbook -SUBDIR+= porters-handbook -SUBDIR+= ppp-primer - -ROOT_SYMLINKS= faq handbook - -DOC_PREFIX?= ${.CURDIR}/../.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/en_US.ISO8859-1/books/Makefile.inc b/en_US.ISO8859-1/books/Makefile.inc deleted file mode 100644 index b9219d69af..0000000000 --- a/en_US.ISO8859-1/books/Makefile.inc +++ /dev/null @@ -1,5 +0,0 @@ -# -# $FreeBSD$ -# - -DESTDIR?= ${DOCDIR}/en_US.ISO_8859-1/books/${.CURDIR:T} diff --git a/en_US.ISO8859-1/books/developers-handbook/kerneldebug/chapter.sgml b/en_US.ISO8859-1/books/developers-handbook/kerneldebug/chapter.sgml deleted file mode 100644 index 12ce626731..0000000000 --- a/en_US.ISO8859-1/books/developers-handbook/kerneldebug/chapter.sgml +++ /dev/null @@ -1,597 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/kerneldebug/chapter.sgml,v 1.23 2000/06/08 01:56:10 jim Exp $ ---> - -<chapter id="kerneldebug"> - <title>Kernel Debugging</title> - - <para><emphasis>Contributed by &a.paul; and &a.joerg;</emphasis></para> - - <sect1> - <title>Debugging a Kernel Crash Dump with <command>kgdb</command></title> - - <para>Here are some instructions for getting kernel debugging working on a - crash dump. They assume that you have enough swap space for a crash - dump. If you have multiple swap partitions and the first one is too - small to hold the dump, you can configure your kernel to use an - alternate dump device (in the <literal>config kernel</literal> line), or - you can specify an alternate using the - &man.dumpon.8; command. The best way to use &man.dumpon.8; is to set - the <literal>dumpdev</literal> variable in - <filename>/etc/rc.conf</filename>. Typically you want to specify one of - the swap devices specified in <filename>/etc/fstab</filename>. Dumps to - non-swap devices, tapes for example, are currently not supported. Config - your kernel using <command>config -g</command>. See <link - linkend="kernelconfig">Kernel Configuration</link> for details on - configuring the FreeBSD kernel.</para> - - <para>Use the &man.dumpon.8; command to tell the kernel where to dump to - (note that this will have to be done after configuring the partition in - question as swap space via &man.swapon.8;). This is normally arranged - via <filename>/etc/rc.conf</filename> and <filename>/etc/rc</filename>. - Alternatively, you can hard-code the dump device via the - <literal>dump</literal> clause in the <literal>config</literal> line of - your kernel config file. This is deprecated and should be used only if - you want a crash dump from a kernel that crashes during booting.</para> - - <note> - <para>In the following, the term <command>kgdb</command> refers to - <command>gdb</command> run in <quote>kernel debug mode</quote>. This - can be accomplished by either starting the <command>gdb</command> with - the option <option>-k</option>, or by linking and starting it under - the name <command>kgdb</command>. This is not being done by default, - however, and the idea is basically deprecated since the GNU folks do - not like their tools to behave differently when called by another - name. This feature may well be discontinued in further - releases.</para> - </note> - - <para>When the kernel has been built make a copy of it, say - <filename>kernel.debug</filename>, and then run <command>strip - -g</command> on the original. Install the original as normal. You - may also install the unstripped kernel, but symbol table lookup time for - some programs will drastically increase, and since the whole kernel is - loaded entirely at boot time and cannot be swapped out later, several - megabytes of physical memory will be wasted.</para> - - <para>If you are testing a new kernel, for example by typing the new - kernel's name at the boot prompt, but need to boot a different one in - order to get your system up and running again, boot it only into single - user state using the <option>-s</option> flag at the boot prompt, and - then perform the following steps:</para> - - <screen>&prompt.root; <userinput>fsck -p</userinput> -&prompt.root; <userinput>mount -a -t ufs</userinput> # so your file system for /var/crash is writable -&prompt.root; <userinput>savecore -N /kernel.panicked /var/crash</userinput> -&prompt.root; <userinput>exit</userinput> # ...to multi-user</screen> - - <para>This instructs &man.savecore.8; to use another kernel for symbol - name extraction. It would otherwise default to the currently running - kernel and most likely not do anything at all since the crash dump and - the kernel symbols differ.</para> - - <para>Now, after a crash dump, go to - <filename>/sys/compile/WHATEVER</filename> and run - <command>kgdb</command>. From <command>kgdb</command> do: - - <screen><userinput>symbol-file kernel.debug</userinput> -<userinput>exec-file /var/crash/kernel.0</userinput> -<userinput>core-file /var/crash/vmcore.0</userinput></screen> - - and voila, you can debug the crash dump using the kernel sources just - like you can for any other program.</para> - - <para>Here is a script log of a <command>kgdb</command> session - illustrating the procedure. Long lines have been folded to improve - readability, and the lines are numbered for reference. Despite this, it - is a real-world error trace taken during the development of the pcvt - console driver.</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>Comments to the above script:</para> - - <variablelist> - <varlistentry> - <term>line 6:</term> - - <listitem> - <para>This is a dump taken from within DDB (see below), hence the - panic comment <quote>because you said to!</quote>, and a rather - long stack trace; the initial reason for going into DDB has been a - page fault trap though.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>line 20:</term> - - <listitem> - <para>This is the location of function <function>trap()</function> - in the stack trace.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>line 36:</term> - - <listitem> - <para>Force usage of a new stack frame; this is no longer necessary - now. The stack frames are supposed to point to the right - locations now, even in case of a trap. (I do not have a new core - dump handy <g>, my kernel has not panicked for a rather long - time.) From looking at the code in source line 403, there is a - high probability that either the pointer access for - <quote>tp</quote> was messed up, or the array access was out of - bounds.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>line 52:</term> - - <listitem> - <para>The pointer looks suspicious, but happens to be a valid - address.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>line 56:</term> - - <listitem> - <para>However, it obviously points to garbage, so we have found our - error! (For those unfamiliar with that particular piece of code: - <literal>tp->t_line</literal> refers to the line discipline of - the console device here, which must be a rather small integer - number.)</para> - </listitem> - </varlistentry> - </variablelist> - </sect1> - - <sect1> - <title>Debugging a Crash Dump with DDD</title> - - <para>Examining a kernel crash dump with a graphical debugger like - <command>ddd</command> is also possible. Add the <option>-k</option> - option to the <command>ddd</command> command line you would use - normally. For example;</para> - - <screen>&prompt.root; <userinput>ddd -k /var/crash/kernel.0 /var/crash/vmcore.0</userinput></screen> - - <para>You should then be able to go about looking at the crash dump using - <command>ddd</command>'s graphical interface.</para> - </sect1> - - <sect1> - <title>Post-Mortem Analysis of a Dump</title> - - <para>What do you do if a kernel dumped core but you did not expect it, - and it is therefore not compiled using <command>config -g</command>? Not - everything is lost here. Do not panic!</para> - - <para>Of course, you still need to enable crash dumps. See above on the - options you have to specify in order to do this.</para> - - <para>Go to your kernel config directory - (<filename>/usr/src/sys/<replaceable>arch</replaceable>/conf</filename>) - and edit your configuration file. Uncomment (or add, if it does not - exist) the following line</para> - - <programlisting> -makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols</programlisting> - - <para>Rebuild the kernel. Due to the time stamp change on the Makefile, - there will be some other object files rebuild, for example - <filename>trap.o</filename>. With a bit of luck, the added - <option>-g</option> option will not change anything for the generated - code, so you will finally get a new kernel with similar code to the - faulting one but some debugging symbols. You should at least verify the - old and new sizes with the &man.size.1; command. If there is a - mismatch, you probably need to give up here.</para> - - <para>Go and examine the dump as described above. The debugging symbols - might be incomplete for some places, as can be seen in the stack trace - in the example above where some functions are displayed without line - numbers and argument lists. If you need more debugging symbols, remove - the appropriate object files and repeat the <command>kgdb</command> - session until you know enough.</para> - - <para>All this is not guaranteed to work, but it will do it fine in most - cases.</para> - </sect1> - - <sect1> - <title>On-Line Kernel Debugging Using DDB</title> - - <para>While <command>kgdb</command> as an off-line debugger provides a very - high level of user interface, there are some things it cannot do. The - most important ones being breakpointing and single-stepping kernel - code.</para> - - <para>If you need to do low-level debugging on your kernel, there is an - on-line debugger available called DDB. It allows to setting - breakpoints, single-stepping kernel functions, examining and changing - kernel variables, etc. However, it cannot access kernel source files, - and only has access to the global and static symbols, not to the full - debug information like <command>kgdb</command>.</para> - - <para>To configure your kernel to include DDB, add the option line - - <programlisting> -options DDB</programlisting> - - to your config file, and rebuild. (See <link - linkend="kernelconfig">Kernel Configuration</link> for details on - configuring the FreeBSD kernel.</para> - - <note> - <para>Note that if you have an older version of the boot blocks, your - debugger symbols might not be loaded at all. Update the boot blocks; - the recent ones load the DDB symbols automagically.)</para> - </note> - - <para>Once your DDB kernel is running, there are several ways to enter - DDB. The first, and earliest way is to type the boot flag - <option>-d</option> right at the boot prompt. The kernel will start up - in debug mode and enter DDB prior to any device probing. Hence you can - even debug the device probe/attach functions.</para> - - <para>The second scenario is a hot-key on the keyboard, usually - Ctrl-Alt-ESC. For syscons, this can be remapped; some of the - distributed maps do this, so watch out. There is an option available - for serial consoles that allows the use of a serial line BREAK on the - console line to enter DDB (<literal>options BREAK_TO_DEBUGGER</literal> - in the kernel config file). It is not the default since there are a lot - of crappy serial adapters around that gratuitously generate a BREAK - condition, for example when pulling the cable.</para> - - <para>The third way is that any panic condition will branch to DDB if the - kernel is configured to use it. For this reason, it is not wise to - configure a kernel with DDB for a machine running unattended.</para> - - <para>The DDB commands roughly resemble some <command>gdb</command> - commands. The first thing you probably need to do is to set a - breakpoint:</para> - - <screen><userinput>b function-name</userinput> -<userinput>b address</userinput></screen> - - <para>Numbers are taken hexadecimal by default, but to make them distinct - from symbol names; hexadecimal numbers starting with the letters - <literal>a-f</literal> need to be preceded with <literal>0x</literal> - (this is optional for other numbers). Simple expressions are allowed, - for example: <literal>function-name + 0x103</literal>.</para> - - <para>To continue the operation of an interrupted kernel, simply - type:</para> - - <screen><userinput>c</userinput></screen> - - <para>To get a stack trace, use:</para> - - <screen><userinput>trace</userinput></screen> - - <note> - <para>Note that when entering DDB via a hot-key, the kernel is currently - servicing an interrupt, so the stack trace might be not of much use - for you.</para> - </note> - - <para>If you want to remove a breakpoint, use</para> - - - <screen><userinput>del</userinput> -<userinput>del address-expression</userinput></screen> - - <para>The first form will be accepted immediately after a breakpoint hit, - and deletes the current breakpoint. The second form can remove any - breakpoint, but you need to specify the exact address; this can be - obtained from:</para> - - <screen><userinput>show b</userinput></screen> - - <para>To single-step the kernel, try:</para> - - <screen><userinput>s</userinput></screen> - - <para>This will step into functions, but you can make DDB trace them until - the matching return statement is reached by:</para> - - <screen><userinput>n</userinput></screen> - - <note> - <para>This is different from <command>gdb</command>'s - <command>next</command> statement; it is like <command>gdb</command>'s - <command>finish</command>.</para> - </note> - - <para>To examine data from memory, use (for example): - - <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> - - for word/halfword/byte access, and hexadecimal/decimal/character/ string - display. The number after the comma is the object count. To display - the next 0x10 items, simply use:</para> - - <screen><userinput>x ,10</userinput></screen> - - <para>Similarly, use - - <screen><userinput>x/ia foofunc,10</userinput></screen> - - to disassemble the first 0x10 instructions of - <function>foofunc</function>, and display them along with their offset - from the beginning of <function>foofunc</function>.</para> - - <para>To modify memory, use the write command:</para> - - <screen><userinput>w/b termbuf 0xa 0xb 0</userinput> -<userinput>w/w 0xf0010030 0 0</userinput></screen> - - <para>The command modifier - (<literal>b</literal>/<literal>h</literal>/<literal>w</literal>) - specifies the size of the data to be written, the first following - expression is the address to write to and the remainder is interpreted - as data to write to successive memory locations.</para> - - <para>If you need to know the current registers, use:</para> - - <screen><userinput>show reg</userinput></screen> - - <para>Alternatively, you can display a single register value by e.g. - - <screen><userinput>p $eax</userinput></screen> - - and modify it by:</para> - - <screen><userinput>set $eax new-value</userinput></screen> - - <para>Should you need to call some kernel functions from DDB, simply - say:</para> - - <screen><userinput>call func(arg1, arg2, ...)</userinput></screen> - - <para>The return value will be printed.</para> - - <para>For a &man.ps.1; style summary of all running processes, use:</para> - - <screen><userinput>ps</userinput></screen> - - <para>Now you have now examined why your kernel failed, and you wish to - reboot. Remember that, depending on the severity of previous - malfunctioning, not all parts of the kernel might still be working as - expected. Perform one of the following actions to shut down and reboot - your system:</para> - - <screen><userinput>panic</userinput></screen> - - <para>This will cause your kernel to dump core and reboot, so you can - later analyze the core on a higher level with kgdb. This command - usually must be followed by another <command>continue</command> - statement.</para> - - <screen><userinput>call boot(0)</userinput></screen> - - <para>Which might be a good way to cleanly shut down the running system, - <function>sync()</function> all disks, and finally reboot. As long as - the disk and file system interfaces of the kernel are not damaged, this - might be a good way for an almost clean shutdown.</para> - - <screen><userinput>call cpu_reset()</userinput></screen> - - <para>is the final way out of disaster and almost the same as hitting the - Big Red Button.</para> - - <para>If you need a short command summary, simply type:</para> - - <screen><userinput>help</userinput></screen> - - <para>However, it is highly recommended to have a printed copy of the - &man.ddb.4; manual page ready for a debugging - session. Remember that it is hard to read the on-line manual while - single-stepping the kernel.</para> - </sect1> - - <sect1> - <title>On-Line Kernel Debugging Using Remote GDB</title> - - <para>This feature has been supported since FreeBSD 2.2, and it is - actually a very neat one.</para> - - <para>GDB has already supported <emphasis>remote debugging</emphasis> for - a long time. This is done using a very simple protocol along a serial - line. Unlike the other methods described above, you will need two - machines for doing this. One is the host providing the debugging - environment, including all the sources, and a copy of the kernel binary - with all the symbols in it, and the other one is the target machine that - simply runs a similar copy of the very same kernel (but stripped of the - debugging information).</para> - - <para>You should configure the kernel in question with <command>config - -g</command>, include <option>DDB</option> into the configuration, and - compile it as usual. This gives a large blurb of a binary, due to the - debugging information. Copy this kernel to the target machine, strip - the debugging symbols off with <command>strip -x</command>, and boot it - using the <option>-d</option> boot option. Connect the serial line - of the target machine that has "flags 080" set on its sio device - to any serial line of the debugging host. - Now, on the debugging machine, go to the compile directory of the target - kernel, and start gdb:</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>Initialize the remote debugging session (assuming the first serial - port is being used) by:</para> - - <screen><prompt>(kgdb)</prompt> <userinput>target remote /dev/cuaa0</userinput></screen> - - <para>Now, on the target host (the one that entered DDB right before even - starting the device probe), type:</para> - - <screen>Debugger("Boot flags requested debugger") -Stopped at Debugger+0x35: movb $0, edata+0x51bc -<prompt>db></prompt> <userinput>gdb</userinput></screen> - - <para>DDB will respond with:</para> - - <screen>Next trap will enter GDB remote protocol mode</screen> - - <para>Every time you type <command>gdb</command>, the mode will be toggled - between remote GDB and local DDB. In order to force a next trap - immediately, simply type <command>s</command> (step). Your hosting GDB - will now gain control over the target kernel:</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>You can use this session almost as any other GDB session, including - full access to the source, running it in gud-mode inside an Emacs window - (which gives you an automatic source code display in another Emacs - window) etc.</para> - - <para>Remote GDB can also be used to debug LKMs. First build the LKM with - debugging symbols:</para> - - <screen>&prompt.root; <userinput>cd /usr/src/lkm/linux</userinput> -&prompt.root; <userinput>make clean; make COPTS=-g</userinput></screen> - - <para>Then install this version of the module on the target machine, load - it and use <command>modstat</command> to find out where it was - loaded:</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>Take the load address of the module and add 0x20 (probably to - account for the a.out header). This is the address that the module code - was relocated to. Use the <command>add-symbol-file</command> command in - GDB to tell the debugger about the 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>You now have access to all the symbols in the LKM.</para> - </sect1> - - <sect1> - <title>Debugging a Console Driver</title> - - <para>Since you need a console driver to run DDB on, things are more - complicated if the console driver itself is failing. You might remember - the use of a serial console (either with modified boot blocks, or by - specifying <option>-h</option> at the <prompt>Boot:</prompt> prompt), - and hook up a standard terminal onto your first serial port. DDB works - on any configured console driver, of course also on a serial - console.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/developers-handbook/policies/chapter.sgml b/en_US.ISO8859-1/books/developers-handbook/policies/chapter.sgml deleted file mode 100644 index af164d4a20..0000000000 --- a/en_US.ISO8859-1/books/developers-handbook/policies/chapter.sgml +++ /dev/null @@ -1,398 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/policies/chapter.sgml,v 1.16 2000/06/08 01:56:12 jim Exp $ ---> - -<chapter id="policies"> - <title>Source Tree Guidelines and Policies</title> - - <para><emphasis>Contributed by &a.phk;.</emphasis></para> - - <para>This chapter documents various guidelines and policies in force for - the FreeBSD source tree.</para> - - <sect1 id="policies-maintainer"> - <title><makevar>MAINTAINER</makevar> on Makefiles</title> - - <para>June 1996.</para> - - <para>If a particular portion of the FreeBSD distribution is being - maintained by a person or group of persons, they can communicate this - fact to the world by adding a - - <programlisting> -MAINTAINER= email-addresses</programlisting> - - line to the <filename>Makefile</filename>s covering this portion of the - source tree.</para> - - <para>The semantics of this are as follows:</para> - - <para>The maintainer owns and is responsible for that code. This means - that he is responsible for fixing bugs and answer problem reports - pertaining to that piece of the code, and in the case of contributed - software, for tracking new versions, as appropriate.</para> - - <para>Changes to directories which have a maintainer defined shall be sent - to the maintainer for review before being committed. Only if the - maintainer does not respond for an unacceptable period of time, to - several emails, will it be acceptable to commit changes without review - by the maintainer. However, it is suggested that you try and have the - changes reviewed by someone else if at all possible.</para> - - <para>It is of course not acceptable to add a person or group as - maintainer unless they agree to assume this duty. On the other hand it - doesn't have to be a committer and it can easily be a group of - people.</para> - </sect1> - - <sect1 id="policies-contributed"> - <title>Contributed Software</title> - - <para><emphasis>Contributed by &a.phk; and &a.obrien;. </emphasis></para> - - <para>June 1996.</para> - - <para>Some parts of the FreeBSD distribution consist of software that is - actively being maintained outside the FreeBSD project. For historical - reasons, we call this <emphasis>contributed</emphasis> software. Some - examples are perl, gcc and patch.</para> - - <para>Over the last couple of years, various methods have been used in - dealing with this type of software and all have some number of - advantages and drawbacks. No clear winner has emerged.</para> - - <para>Since this is the case, after some debate one of these methods has - been selected as the <quote>official</quote> method and will be required - for future imports of software of this kind. Furthermore, it is - strongly suggested that existing contributed software converge on this - model over time, as it has significant advantages over the old method, - including the ability to easily obtain diffs relative to the - <quote>official</quote> versions of the source by everyone (even without - cvs access). This will make it significantly easier to return changes - to the primary developers of the contributed software.</para> - - <para>Ultimately, however, it comes down to the people actually doing the - work. If using this model is particularly unsuited to the package being - dealt with, exceptions to these rules may be granted only with the - approval of the core team and with the general consensus of the other - developers. The ability to maintain the package in the future will be a - key issue in the decisions.</para> - - <note> - <para>Because of some unfortunate design limitations with the RCS file - format and CVS's use of vendor branches, minor, trivial and/or - cosmetic changes are <emphasis>strongly discouraged</emphasis> on - files that are still tracking the vendor branch. <quote>Spelling - fixes</quote> are explicitly included here under the - <quote>cosmetic</quote> category and are to be avoided for files with - revision 1.1.x.x. The repository bloat impact from a single character - change can be rather dramatic.</para> - </note> - - <para>The <application>TCL</application> embedded programming - language will be used as example of how this model works:</para> - - <para><filename>src/contrib/tcl</filename> contains the source as - distributed by the maintainers of this package. Parts that are entirely - not applicable for FreeBSD can be removed. In the case of Tcl, the - <filename>mac</filename>, <filename>win</filename> and - <filename>compat</filename> subdirectories were eliminated before the - import</para> - - <para><filename>src/lib/libtcl</filename> contains only a "bmake style" - <filename>Makefile</filename> that uses the standard - <filename>bsd.lib.mk</filename> makefile rules to produce the library - and install the documentation.</para> - - <para><filename>src/usr.bin/tclsh</filename> contains only a bmake style - <filename>Makefile</filename> which will produce and install the - <command>tclsh</command> program and its associated man-pages using the - standard <filename>bsd.prog.mk</filename> rules.</para> - - <para><filename>src/tools/tools/tcl_bmake</filename> contains a couple of - shell-scripts that can be of help when the tcl software needs updating. - These are not part of the built or installed software.</para> - - <para>The important thing here is that the - <filename>src/contrib/tcl</filename> directory is created according to - the rules: It is supposed to contain the sources as distributed (on a - proper CVS vendor-branch and without RCS keyword expansion) with as few - FreeBSD-specific changes as possible. The 'easy-import' tool on - freefall will assist in doing the import, but if there are any doubts on - how to go about it, it is imperative that you ask first and not blunder - ahead and hope it <quote>works out</quote>. CVS is not forgiving of - import accidents and a fair amount of effort is required to back out - major mistakes.</para> - - <para>Because of the previously mentioned design limitations with CVS's - vendor branches, it is required that <quote>official</quote> patches from - the vendor be applied to the original distributed sources and the result - re-imported onto the vendor branch again. Official patches should never - be patched into the FreeBSD checked out version and "committed", as this - destroys the vendor branch coherency and makes importing future versions - rather difficult as there will be conflicts.</para> - - <para>Since many packages contain files that are meant for compatibility - with other architectures and environments that FreeBSD, it is - permissible to remove parts of the distribution tree that are of no - interest to FreeBSD in order to save space. Files containing copyright - notices and release-note kind of information applicable to the remaining - files shall <emphasis>not</emphasis> be removed.</para> - - <para>If it seems easier, the <command>bmake</command> - <filename>Makefile</filename>s can be produced from the dist tree - automatically by some utility, something which would hopefully make it - even easier to upgrade to a new version. If this is done, be sure to - check in such utilities (as necessary) in the - <filename>src/tools</filename> directory along with the port itself so - that it is available to future maintainers.</para> - - <para>In the <filename>src/contrib/tcl</filename> level directory, a file - called <filename>FREEBSD-upgrade</filename> should be added and it - should states things like:</para> - - <itemizedlist> - <listitem> - <para>Which files have been left out</para> - </listitem> - - <listitem> - <para>Where the original distribution was obtained from and/or the - official master site.</para> - </listitem> - - <listitem> - <para>Where to send patches back to the original authors</para> - </listitem> - - <listitem> - <para>Perhaps an overview of the FreeBSD-specific changes that have - been made.</para> - </listitem> - </itemizedlist> - - <para>However, please do not import <filename>FREEBSD-upgrade</filename> - with the contributed source. Rather you should <command>cvs add - FREEBSD-upgrade ; cvs ci</command> after the initial import. Example - wording from <filename>src/contrib/cpio</filename> is below:</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-encumbered"> - <title>Encumbered files</title> - - <para>It might occasionally be necessary to include an encumbered file in - the FreeBSD source tree. For example, if a device requires a small - piece of binary code to be loaded to it before the device will operate, - and we do not have the source to that code, then the binary file is said - to be encumbered. The following policies apply to including encumbered - files in the FreeBSD source tree.</para> - - <orderedlist> - <listitem> - <para>Any file which is interpreted or executed by the system CPU(s) - and not in source format is encumbered.</para> - </listitem> - - <listitem> - <para>Any file with a license more restrictive than BSD or GNU is - encumbered.</para> - </listitem> - - <listitem> - <para>A file which contains downloadable binary data for use by the - hardware is not encumbered, unless (1) or (2) apply to it. It must - be stored in an architecture neutral ASCII format (file2c or - uuencoding is recommended).</para> - </listitem> - - <listitem> - <para>Any encumbered file requires specific approval from the <link - linkend="staff-core">Core team</link> before it is added to the - CVS repository.</para> - </listitem> - - <listitem> - <para>Encumbered files go in <filename>src/contrib</filename> or - <filename>src/sys/contrib</filename>.</para> - </listitem> - - <listitem> - <para>The entire module should be kept together. There is no point in - splitting it, unless there is code-sharing with non-encumbered - code.</para> - </listitem> - - <listitem> - <para>Object files are named - <filename><replaceable>arch</replaceable>/<replaceable>filename</replaceable>.o.uu></filename>.</para> - </listitem> - - <listitem> - <para>Kernel files;</para> - - <orderedlist> - <listitem> - <para>Should always be referenced in - <filename>conf/files.*</filename> (for build simplicity).</para> - </listitem> - - <listitem> - <para>Should always be in <filename>LINT</filename>, but the <link - linkend="staff-core">Core team</link> decides per case if it - should be commented out or not. The <link - linkend="staff-core">Core team</link> can, of course, change - their minds later on.</para> - </listitem> - - <listitem> - <para>The <link linkend="staff-who">Release Engineer</link> - decides whether or not it goes in to the release.</para> - </listitem> - </orderedlist> - </listitem> - - <listitem> - <para>User-land files;</para> - - <orderedlist> - <listitem> - <para>The <link linkend="staff-core">Core team</link> decides if - the code should be part of <command>make world</command>.</para> - </listitem> - - <listitem> - <para>The <link linkend="staff-who">Release Engineer</link> - decides if it goes in to the release.</para> - </listitem> - </orderedlist> - </listitem> - </orderedlist> - </sect1> - - <sect1 id="policies-shlib"> - <title>Shared Libraries</title> - - <para><emphasis>Contributed by &a.asami;, &a.peter;, and &a.obrien; 9 - December 1996.</emphasis></para> - - <para>If you are adding shared library support to a port or other piece of - software that doesn't have one, the version numbers should follow these - rules. Generally, the resulting numbers will have nothing to do with - the release version of the software.</para> - - <para>The three principles of shared library building are:</para> - - <itemizedlist> - <listitem> - <para>Start from <literal>1.0</literal></para> - </listitem> - - <listitem> - <para>If there is a change that is backwards compatible, bump minor - number (note that ELF systems ignore the minor number)</para> - </listitem> - - <listitem> - <para>If there is an incompatible change, bump major number</para> - </listitem> - </itemizedlist> - - <para>For instance, added functions and bugfixes result in the minor - version number being bumped, while deleted functions, changed function - call syntax etc. will force the major version number to change.</para> - - <para>Stick to version numbers of the form major.minor - (<replaceable>x</replaceable>.<replaceable>y</replaceable>). Our a.out - dynamic linker does not handle version numbers of the form - <replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable> - well. Any version number after the <replaceable>y</replaceable> - (ie. the third digit) is totally ignored when comparing shared lib - version numbers to decide which library to link with. Given two shared - libraries that differ only in the <quote>micro</quote> revision, - <command>ld.so</command> will link with the higher one. Ie: if you link - with <filename>libfoo.so.3.3.3</filename>, the linker only records - <literal>3.3</literal> in the headers, and will link with anything - starting with - <replaceable>libfoo.so.3</replaceable>.<replaceable>(anything >= - 3)</replaceable>.<replaceable>(highest - available)</replaceable>.</para> - - <note> - <para><command>ld.so</command> will always use the highest - <quote>minor</quote> revision. Ie: it will use - <filename>libc.so.2.2</filename> in preference to - <filename>libc.so.2.0</filename>, even if the program was initially - linked with <filename>libc.so.2.0</filename>.</para> - </note> - - <para>In addition, our ELF dynamic linker does not handle minor version - numbers at all. However, one should still specify a major and minor - version number as our <filename>Makefile</filename>s "do the right thing" - based on the type of system.</para> - - <para>For non-port libraries, it is also our policy to change the shared - library version number only once between releases. In addition, it is - our policy to change the major shared library version number only once - between major OS releases. Ie: X.0 to (X+1).0. When you make a - change to a system library that requires the version number to be - bumped, check the <filename>Makefile</filename>'s commit logs. It is the - responsibility of the committer to ensure that the first such change - since the release will result in the shared library version number in - the <filename>Makefile</filename> to be updated, and any subsequent - changes will not.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/faq/Makefile b/en_US.ISO8859-1/books/faq/Makefile deleted file mode 100644 index b6e3f64d37..0000000000 --- a/en_US.ISO8859-1/books/faq/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -# -# $FreeBSD$ -# -# Build the FreeBSD FAQ -# - -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 - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/en_US.ISO8859-1/books/faq/book.sgml b/en_US.ISO8859-1/books/faq/book.sgml deleted file mode 100644 index 5de64c9907..0000000000 --- a/en_US.ISO8859-1/books/faq/book.sgml +++ /dev/null @@ -1,9539 +0,0 @@ -<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> -%man; -]> - -<book> - <bookinfo> - <title>Frequently Asked Questions for FreeBSD 2.X, 3.X and 4.X</title> - - <authorgroup> - <author> - <surname>The FreeBSD Documentation Project</surname> - </author> - </authorgroup> - - <pubdate>$FreeBSD: doc/en_US.ISO_8859-1/books/faq/book.sgml,v 1.60 2000/06/12 14:38:15 alex Exp $</pubdate> - - <abstract> - <para>This is the FAQ for FreeBSD versions 2.X, 3.X, and 4.X. All entries - are assumed to be relevant to FreeBSD 2.0.5 and later, unless - otherwise noted. Any entries with a <XXX> are under - construction. If you are interested in helping with this project, - send email to the FreeBSD documentation project mailing list - <ulink URL="mailto:freebsd-doc@FreeBSD.org"><freebsd-doc@FreeBSD.org></ulink>. - The latest version of this document is always available from the - <ulink URL="http://www.FreeBSD.org/">FreeBSD World Wide Web - server</ulink>. It may also be downloaded as one large <ulink - URL="book.html">HTML</ulink> file with HTTP or as plain text, - postscript, or PDF from the <ulink - URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc">FreeBSD FTP - server</ulink>. You may also want to <ulink - URL="http://www.FreeBSD.org/search/search.html">Search the - FAQ</ulink>.</para> - </abstract> - </bookinfo> - - <preface id="preface"> - <title>Preface</title> - - <para>Welcome to the FreeBSD 2.X-4.X FAQ!</para> - - <para>As is usual with Usenet FAQs, this document aims to cover the - most frequently asked questions concerning the FreeBSD operating - system (and of course answer them!). Although originally intended - to reduce bandwidth and avoid the same old questions being asked - over and over again, FAQs have become recognized as valuable - information resources.</para> - - <para>Every effort has been made to make this FAQ as informative as - possible; if you have any suggestions as to how it may be improved, - please feel free to mail them to the <ulink - URL="mailto:FAQ@FreeBSD.org">FAQ maintainer</ulink>.</para> - - <qandaset> - <qandaentry> - <question> - <para>What is FreeBSD?</para> - </question> - - <answer> - <para>Briefly, FreeBSD is a UN*X-like operating system based - on U.C. Berkeley's 4.4BSD-lite release for the i386 platform. - It is also based indirectly on William Jolitz's port of U.C. - Berkeley's Net/2 to the i386, known as 386BSD, though very - little of the 386BSD code remains. A fuller description of - what FreeBSD is and how it can work for you may be found on - the <ulink URL="http://www.FreeBSD.org/">FreeBSD home - page</ulink>.</para> - - <para>FreeBSD is used by companies, Internet Service Providers, - researchers, computer professionals, students and home users - all over the world in their work, education and recreation. - See some of them in the <ulink - URL="../gallery/gallery.html">FreeBSD Gallery</ulink>.</para> - - <para>For more detailed information on FreeBSD, please see the - <ulink URL="../handbook/index.html">FreeBSD - Handbook</ulink>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>What are the goals of FreeBSD?</para> - </question> - - <answer> - <para>The goals of the FreeBSD Project are to provide software - that may be used for any purpose and without strings attached. - Many of us have a significant investment in the code (and - project) and would certainly not mind a little financial - compensation now and then, but we're definitely not prepared - to insist on it. We believe that our first and foremost - "mission" is to provide code to any and all comers, and for - whatever purpose, so that the code gets the widest possible - use and provides the widest possible benefit. This is, we - believe, one of the most fundamental goals of Free Software - and one that we enthusiastically support.</para> - - <para>That code in our source tree which falls under the GNU - General Public License (GPL) or GNU Library General Public - License (LGPL) comes with slightly more strings attached, - though at least on the side of enforced access rather than the - usual opposite. Due to the additional complexities that can - evolve in the commercial use of GPL software, we do, however, - endeavor to replace such software with submissions under the - more relaxed BSD copyright whenever possible.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Why is it called FreeBSD?</para> - </question> - - <answer> - <itemizedlist> - <listitem> - <para>It may be used free of charge, even by commercial - users.</para> - </listitem> - - <listitem> - <para>Full source for the operating system is freely - available, and the minimum possible restrictions have - been placed upon its use, distribution and incorporation - into other work (commercial or non-commercial).</para> - </listitem> - - <listitem> - <para>Anyone who has an improvement and/or bug fix is free - to submit their code and have it added to the source tree - (subject to one or two obvious provisos).</para> - </listitem> - </itemizedlist> - - <para>For those of our readers whose first language is not - English, it may be worth pointing out that the word ``free'' - is being used in two ways here, one meaning ``at no cost'', - the other meaning ``you can do whatever you like''. Apart - from one or two things you - <emphasis>cannot</emphasis> do with the FreeBSD code, - for example pretending you wrote it, you really can do - whatever you like with it.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>What is the latest version of FreeBSD?</para> - </question> - - <answer> - <para>Version <ulink - URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/4.0-RELEASE/">4.0</ulink> - is the latest <emphasis>stable</emphasis> version; it was - released in March, 2000. This is also the latest - <emphasis>release</emphasis> version.</para> - - <para>Briefly explained, <emphasis>-STABLE</emphasis> is aimed - at the ISP or other corporate user who wants stability and a - low change count over the wizzy new features of the latest - <emphasis>-CURRENT</emphasis> snapshot. Releases can come - from either branch, but you should only use - <emphasis>-CURRENT</emphasis> if you're sure that you're - prepared for its increased volatility (relative to - <emphasis>-STABLE</emphasis>, that is).</para> - - <para>Releases are only made <link linkend="release-freq">every - few months</link>. While many people stay more up-to-date with - the FreeBSD sources (see the questions on <link - linkend="current">FreeBSD-CURRENT</link> and <link - linkend="stable">FreeBSD-STABLE</link>) than that, doing so - is more of a commitment, as the sources are a moving - target.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="current"> - <para>What is FreeBSD-CURRENT?</para> - </question> - - <answer> - <para><ulink - URL="../handbook/cutting-edge.html#CURRENT">FreeBSD-CURRENT</ulink> - is the development version of the operating system, which will - in due course become 5.0-RELEASE. As such, it is really only - of interest to developers working on the system and die-hard - hobbyists. See the <ulink - URL="../handbook/cutting-edge.html#CURRENT">relevant - section</ulink> in the <ulink - URL="../handbook/index.html">handbook</ulink> for details on - running -CURRENT.</para> - - <para>If you are not familiar with the operating system or are - not capable of identifying the difference between a real - problem and a temporary problem, you should not use - FreeBSD-CURRENT. This branch sometimes evolves quite quickly - and can be un-buildable for a number of days at a time. - 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>Every day, <ulink - URL="../releases/snapshots.html">snapshot</ulink> releases are - made based on the current state of the -CURRENT and - -STABLE branches. Nowadays, - distributions of the occasional snapshot are now being made - available. The goals behind each snapshot release are:</para> - - <itemizedlist> - <listitem> - <para>To test the latest version of the installation - software.</para> - </listitem> - - <listitem> - <para>To give people who would like to run -CURRENT or - -STABLE but who - don't have the time and/or bandwidth to follow it on a - day-to-day basis an easy way of bootstrapping it onto - their systems.</para> - </listitem> - - <listitem> - <para>To preserve a fixed reference point for the code in - question, just in case we break something really badly - later. (Although CVS normally prevents anything horrible - like this happening :)</para> - </listitem> - - <listitem> - <para>To ensure that any new features in need of testing - have the greatest possible number of potential - testers.</para> - </listitem> - </itemizedlist> - - <para>No claims are made that any -CURRENT snapshot can be considered - “production quality” for any purpose. - If you want to run a stable and - fully tested system, you will have to stick to full - releases, or use the -STABLE snaphosts.</para> - - <para>Snapshot releases are directly available from <ulink - URL="ftp://current.FreeBSD.org/pub/FreeBSD/"> - ftp://current.FreeBSD.org/pub/FreeBSD/</ulink> - for 5.0-CURRENT and - <ulink url="ftp://releng4.FreeBSD.org/pub/FreeBSD"> - releng4.FreeBSD.org</ulink> for 4-STABLE snapshots. - 3-STABLE snapshots are not being produced at the time of - this writing (May 2000).</para> - - <para>Snapshots are generated, on the average, once a day for - all actively developed branches.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="stable"> - <para>What is the FreeBSD-STABLE concept?</para> - </question> - - <answer> - <para>Back when FreeBSD 2.0.5 was released, we decided to - branch FreeBSD development into two parts. One branch was - named <ulink URL="../handbook/stable.html">-STABLE</ulink>, - with the intention that only well-tested bug fixes and small - incremental enhancements would be made to it (for Internet - Service Providers and other commercial enterprises for whom - sudden shifts or experimental features are quite - undesirable). The other branch was <ulink - URL="../handbook/cutting-edge.html#CURRENT">-CURRENT</ulink>, - which essentially has been one unbroken line leading towards - 5.0-RELEASE (and beyond) since 2.0 was released. If a little - ASCII art would help, this is how it looks:</para> - - <literallayout> 2.0 - | - | - | [2.1-STABLE] - *BRANCH* 2.0.5 -> 2.1 -> 2.1.5 -> 2.1.6 -> 2.1.7.1 [2.1-STABLE ends] - | (Mar 1997) - | - | - | [2.2-STABLE] - *BRANCH* 2.2.1 -> 2.2.2-RELEASE -> 2.2.5 -> 2.2.6 -> 2.2.7 -> 2.2.8 [end] - | (Mar 1997) (Oct 97) (Apr 98) (Jul 98) (Dec 98) - | - | - 3.0-SNAPs (started Q1 1997) - | - | - 3.0-RELEASE (Oct 1998) - | - | [3.0-STABLE] - *BRANCH* 3.1-RELESE (Feb 1999) -> 3.2 -> 3.3 -> 3.4 -> ... future 3.x releases ... - | (May 1999) (Sep 1999) (Dec 1999) - | - | [4.0-STABLE] - *BRANCH* 4.0 (Mar 2000) -> ... future 4.x releases ... - | - | - \|/ - + - [5.0-CURRENT continues]</literallayout> - - <para>The -CURRENT branch is slowly progressing towards 5.0 and - beyond, the previous 2.2-STABLE branch having been retired - with the release of 2.2.8. 3.4-STABLE has now replaced it, - with 3.4-RELEASE being released in mid-December 1999. - 4.0-RELEASE was released in March 2000. Although 4-STABLE - is the actively developed -STABLE branch, bugfixes are - still being committed to 3-STABLE. It is expected that the - 3.X branch will be officially obsoleted some time in - summer 2000. - 5.0-CURRENT is now the "current - branch", with the no release date planed.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="release-freq"> - <para>When are FreeBSD releases made?</para> - </question> - - <answer> - <para>As a general principle, the FreeBSD core team only release - a new version of FreeBSD when they believe that there are - sufficient new features and/or bug fixes to justify one, and - are satisfied that the changes made have settled down - sufficiently to avoid compromising the stability of the - release. Many users regard this caution as one of the best - things about FreeBSD, although it can be a little frustrating - when waiting for all the latest goodies to become - available...</para> - - <para>Releases are made about every 4 months on average.</para> - - <para>For people needing (or wanting) a little more excitement, - binary snapshots are made every day... see above.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Is FreeBSD only available for PCs ?</para> - </question> - - <answer> - <para>Since 3.x, FreeBSD has run on the <ulink - URL="../alpha/alpha.html">DEC Alpha</ulink> as well as the - x86 architecture. Some interest has also been expressed in a - SPARC port, but details on this project are not yet - clear.</para> - - <para>If your machine has a different architecture and you need - something right now, we suggest you look at <ulink - URL="http://www.netbsd.org/">NetBSD</ulink> or <ulink - URL="http://www.openbsd.org/">OpenBSD</ulink>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para> Who is responsible for FreeBSD?</para> - </question> - - <answer> - <para>The key decisions concerning the FreeBSD project, such as - the overall direction of the project and who is allowed to add - code to the source tree, are made by a <ulink - URL="../handbook/staff.html#STAFF-CORE">core team</ulink> of - some 15 people. There is a much larger team of about 200 <ulink - URL="../handbook/staff-committers.html">committers</ulink> who - are authorized to make changes directly to the FreeBSD source - tree.</para> - - <para>However, most non-trivial changes are discussed in advance - in the <link linkend="mailing">mailing lists</link>, and there - are no restrictions on who may take part in the - discussion.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="where-get"> - <para>Where can I get FreeBSD?</para> - </question> - - <answer> - <para>Every significant release of FreeBSD is available via - anonymous ftp from the <ulink - URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/">FreeBSD FTP site</ulink>:</para> - - <itemizedlist> - <listitem> - <para>For the current 3.X-STABLE release, 3.4-RELEASE, see - the <ulink - URL="ftp://current.FreeBSD.org/pub/FreeBSD/releases/i386/3.4-RELEASE/">3.4-RELEASE</ulink> - directory.</para> - </listitem> - <listitem> - <para>The current 4.X-STABLE release, 4.0-RELEASE can be - found in the <ulink - url="ftp://current.FreeBSD.org/pub/FreeBSD/releases/i386/4.0-RELEASE"> the 4.0-RELEASE</ulink> directory.</para> - </listitem> - - <listitem> - <para><ulink - url="ftp://releng4.FreeBSD.org/pub/FreeBSD/">4.X - snapshots</ulink> are usually made once a day.</para> - </listitem> - - <listitem> - <para><ulink - URL="ftp://current.FreeBSD.org/pub/FreeBSD/">5.0 Snapshot</ulink> - releases are made once a day for the <link - linkend="current">-CURRENT</link> branch, these being of - service purely to bleeding-edge testers and - developers.</para> - </listitem> - </itemizedlist> - - <para>FreeBSD is also available via CDROM, from the following - place(s):</para> - - <address>Walnut Creek CDROM -<street>4041 Pike Lane, Suite F</street> -<city>Concord</city>, <state>CA</state> -<postcode>94520</postcode> -<country>USA</country> - -<phone>Orders: +1 800 786-9907</phone> -<phone>Questions: +1 925 674-0783</phone> -<fax>FAX: +1 925 674-0821</fax> -<otheraddr>email: <ulink URL="mailto:orders@cdrom.com">WC Orders address</ulink></otheraddr> -<otheraddr>WWW: <ulink URL="http://www.cdrom.com/">WC Home page</ulink></otheraddr></address> - - <para>In Australia, you may find it at:</para> - - <address>Advanced Multimedia Distributors -<street>Factory 1/1 Ovata Drive</street> -<city>Tullamarine, Melbourne</city> -<state>Victoria</state> -<country>Australia</country> -<phone>Voice: +61 3 9338 6777</phone> - -<otheraddr>CDROM Support BBS</otheraddr> -<street>17 Irvine St</street> -<city>Peppermint Grove</city>, <state>WA</state> -<postcode>6011</postcode> -<phone>Voice: +61 9 385-3793</phone> -<fax>Fax: +61 9 385-2360</fax></address> - - <para>And in the UK:</para> - - <address>The Public Domain & Shareware Library -<street>Winscombe House, Beacon Rd</street> -<city>Crowborough</city> -<state>Sussex. TN6 1UL</state> -<phone>Voice: +44 1892 663-298</phone> -<fax>Fax: +44 1892 667-473</fax></address> - </answer> - </qandaentry> - - <qandaentry> - <question id="mailing"> - <para>Where do I find info on the FreeBSD mailing lists?</para> - </question> - - <answer> - <para>You can find full information in the <ulink - URL="../handbook/eresources.html#ERESOURCES-MAIL">Handbook - entry on mailing-lists.</ulink></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Where do I find the FreeBSD Y2K info?</para> - </question> - - <answer> - <para>You can find full information in the <ulink - URL="http://www.FreeBSD.org/y2kbug.html">FreeBSD Y2K - page.</ulink></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>What FreeBSD news groups are available?</para> - </question> - - <answer> - <para>You can find full information in the <ulink - URL="../handbook/eresources-news.html">Handbook entry on - newsgroups.</ulink></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Are there FreeBSD IRC (Internet Relay Chat) - channels?</para> - </question> - - <answer> - <para>Yes, most major IRC networks host a FreeBSD chat - channel:</para> - - <itemizedlist> - <listitem> - <para>Channel <emphasis remap=tt>#FreeBSD</emphasis> on - EFNet is a FreeBSD forum, but don't go there for tech - support or to try and get folks there to help you avoid - the pain of reading man pages or doing your own research. - It is a chat channel, first and foremost, and topics there - are just as likely to involve sex, sports or nuclear - weapons as they are FreeBSD. You Have Been Warned! - Available at server <hostid>irc.chat.org</hostid>.</para> - </listitem> - - <listitem> - <para>Channel <emphasis remap=tt>#FreeBSD</emphasis> on - DALNET is available at <hostid>irc.dal.net</hostid> in the - US and <hostid>irc.eu.dal.net</hostid> in Europe.</para> - </listitem> - - <listitem> - <para>Channel <emphasis remap=tt>#FreeBSD</emphasis> on - UNDERNET is available at <hostid>us.undernet.org</hostid> - in the US and <hostid>eu.undernet.org</hostid> in Europe. - Since it is a help channel, be prepared to read the - documents you are referred to.</para> - </listitem> - </itemizedlist> - - <para>Each of these channels are distinct and are not connected - to each other. Their chat styles also differ, so you may need - to try each to find one suited to your chat style. As with - *all* types of IRC traffic, if you're easily offended or can't - deal with lots of young people (and more than a few older - ones) doing the verbal equivalent of jello wrestling, don't - even bother with it.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Books on FreeBSD</para> - </question> - - <answer> - <para>There is a FreeBSD Documentation Project which you may - contact (or even better, join) at the <emphasis - remap=tt>freebsd-doc</emphasis> mailing list: <ulink - URL="mailto:freebsd-doc@FreeBSD.org"><freebsd-doc@FreeBSD.org></ulink>. - This list is for discussion of the FreeBSD documentation. For - actual questions about FreeBSD, there is the <emphasis - remap=tt>freebsd-questions</emphasis> mailing list: <ulink - URL="mailto:freebsd-questions@FreeBSD.org"><freebsd-questions@FreeBSD.org></ulink>.</para> - - <para>A FreeBSD ``handbook'' is available, and can be found as: - <ulink URL="../handbook/index.html">the FreeBSD - Handbook</ulink>. Note that this is a work in progress; - some parts may be incomplete or out-of-date.</para> - - <para>The definitive printed guide on FreeBSD is ``The Complete - FreeBSD'', written by Greg Lehey and published by Walnut Creek - CDROM Books. Now in its second edition, the book contains - 1,750 pages of install & system administration guidance, - program setup help, and manual pages. The book (and current - FreeBSD release) can be ordered from <ulink - URL="http://www.cdrom.com">Walnut Creek</ulink>, <ulink - URL="http://www.cheapbytes.com">CheapBytes</ulink>, or at your - favorite bookstore. The ISBN is 1-57176-227-2.</para> - - <para>Since FreeBSD is based upon Berkeley - 4.4BSD-Lite2, most of the 4.4BSD manuals are applicable to - FreeBSD. O'Reilly and Associates publishes the following - manuals:</para> - - <itemizedlist> - <listitem> - <para>4.4BSD System Manager's Manual <!-- <br> --> - By Computer Systems Research Group, UC Berkeley <!-- <br> --> - 1st Edition June 1994, 804 pages <!-- <br> --> - <ulink - URL="http://www.amazon.com/exec/obidos/ASIN/1-56592-080-5">ISBN</ulink>: - 1-56592-080-5 <!-- <br> --></para> - </listitem> - - <listitem> - <para>4.4BSD User's Reference Manual <!-- <br> --> - By Computer Systems Research Group, UC Berkeley <!-- <br> --> - 1st Edition June 1994, 905 pages <!-- <br> --> - <ulink - URL="http://www.amazon.com/exec/obidos/ASIN/1-56592-075-9">ISBN</ulink>: - 1-56592-075-9 <!-- <br> --></para> - </listitem> - - <listitem> - <para>4.4BSD User's Supplementary Documents <!-- <br> --> - By Computer Systems Research Group, UC Berkeley <!-- <br> --> - 1st Edition July 1994, 712 pages <!-- <br> --> - <ulink - URL="http://www.amazon.com/exec/obidos/ASIN/1-56592-076-7">ISBN</ulink>: - 1-56592-076-7 <!-- <br> --></para> - </listitem> - - <listitem> - <para>4.4BSD Programmer's Reference Manual <!-- <br> --> - By Computer Systems Research Group, UC Berkeley <!-- <br> --> - 1st Edition June 1994, 886 pages <!-- <br> --> - <ulink - URL="http://www.amazon.com/exec/obidos/ASIN/1-56592-078-3">ISBN</ulink>: - 1-56592-078-3 <!-- <br> --></para> - </listitem> - - <listitem> - <para>4.4BSD Programmer's Supplementary Documents <!-- <br> --> - By Computer Systems Research Group, UC Berkeley <!-- <br> --> - 1st Edition July 1994, 596 pages <!-- <br> --> - <ulink - URL="http://www.amazon.com/exec/obidos/ASIN/1-56592-079-1">ISBN</ulink>: - 1-56592-079-1 <!-- <br> --></para> - </listitem> - </itemizedlist> - - <para>A description of these can be found via WWW as: - - <ulink - URL="http://gnn.com/gnn/bus/ora/category/bsd.html">4.4BSD - books description</ulink>. Due to poor sales, however, these - manuals may be hard to get a hold of.</para> - - <para>For a more in-depth look at the 4.4BSD kernel - organization, you can't go wrong with:</para> - - <para>McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, - and John Quarterman.<!-- <br> --></para> - - <para><emphasis>The Design and Implementation of the 4.4BSD - Operating System</emphasis>. Reading, Mass. : - Addison-Wesley, 1996.<!-- <br> --> - <ulink - URL="http://www.amazon.com/exec/obidos/ASIN/0-201-54979-4">ISBN</ulink> - 0-201-54979-4<!-- <br> --></para> - - <para>A good book on system administration is:</para> - - <para>Evi Nemeth, Garth Snyder, Scott Seebass & Trent R. - Hein,<!-- <br> --> - ``Unix System Administration Handbook'', Prentice-Hall, - 1995<!-- <br> --> - <ulink - URL="http://www.amazon.com/exec/obidos/ASIN/0-13-151051-7">ISBN</ulink>: - 0-13-151051-7<!-- <br> --></para> - - <para><acronym>NOTE</acronym> make sure you get the second - edition, with a red cover, instead of the first - edition.</para> - - <para>This book covers the basics, as well as TCP/IP, DNS, NFS, - SLIP/PPP, sendmail, INN/NNTP, printing, etc.. It's expensive - (approx. US$45-$55), but worth it. It also includes - a CDROM with the sources for various tools; most of these, - however, are also on the FreeBSD 2.2.6R CDROM (and the FreeBSD - CDROM often has newer versions).</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>How do I access your Problem Report database?</para> - </question> - - <answer> - <para>The Problem Report database of all user change requests - may be queried (or submitted to) by using our web-based PR - <ulink - URL="http://www.FreeBSD.org/send-pr.html">submission</ulink> - and <ulink - URL="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">query</ulink> - interfaces. The <command>send-pr(1)</command> command can - also be used to submit problem reports and change requests via - electronic mail.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Is the documentation available in other formats, such as plain - text (ASCII), or Postscript?</para> - </question> - - <answer> - <para>Yes. The documentation is available in a number of different - formats and compression schemes on the FreeBSD FTP site, in the - <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">/pub/FreeBSD/doc/</ulink> directory.</para> - - <para>The documentation is categorised in a number of different - ways. These include:</para> - - <itemizedlist> - <listitem> - <para>The document's name, such as <literal>faq</literal>, or - <literal>handbook</literal>.</para> - </listitem> - - <listitem> - <para>The document's language and encoding. These are based on - the locale names you will find under - <filename>/usr/share/locale</filename> on your FreeBSD - system. The current languages and encodings that we have for - documentation are as follows:</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Name</entry> - - <entry>Meaning</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literal>en_US.ISO_8859-1</literal></entry> - - <entry>US English</entry> - </row> - - <row> - <entry><literal>es_ES.ISO_8859-1</literal></entry> - - <entry>Spanish</entry> - </row> - - <row> - <entry><literal>fr_FR.ISO_8859-1</literal></entry> - - <entry>French</entry> - </row> - - <row> - <entry><literal>ja_JP.eucJP</literal></entry> - - <entry>Japanese (EUC encoding)</entry> - </row> - - <row> - <entry><literal>ru_RU.KOI8-R</literal></entry> - - <entry>Russian</entry> - </row> - - <row> - <entry><literal>zh_TW.Big5</literal></entry> - - <entry>Chinese (Big5 encoding)</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <note> - <para>Some documents may not be available in all - languages.</para> - </note> - </listitem> - - <listitem> - <para>The document's format. We produce the documentation in a - number of different output formats to try and make it as - flexible as possible. The current formats are;</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Format</entry> - - <entry>Meaning</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literal>html-split</literal></entry> - - <entry>A collection of small, linked, HTML - files.</entry> - </row> - - <row> - <entry><literal>html</literal></entry> - - <entry>One large HTML file containing the entire - document</entry> - </row> - - <row> - <entry><literal>pdb</literal></entry> - - <entry>Palm Pilot database format, for use with the - <ulink url="http://www.iSilo.com/">iSilo</ulink> - reader.</entry> - </row> - - <row> - <entry><literal>pdf</literal></entry> - - <entry>Adobe's Portable Document Format</entry> - </row> - - <row> - <entry><literal>ps</literal></entry> - - <entry>Postscript</entry> - </row> - - <row> - <entry><literal>rtf</literal></entry> - - <entry>Microsoft's Rich Text Format<footnote> - <para>Page numbers are not automatically updated - when loading this format in to Word. Press - <keycap>CTRL</keycap>+<keycap>A</keycap>, - <keycap>CTRL</keycap>+<keycap>END</keycap>, - <keycap>F9</keycap> after loading the document, to - update the page numbers.</para> - </footnote> - </entry> - </row> - - <row> - <entry><literal>txt</literal></entry> - - <entry>Plain text</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </listitem> - - <listitem> - <para>The compression and packaging scheme. There are three of - these currently in use.</para> - - <orderedlist> - <listitem> - <para>Where the format is <literal>html-split</literal>, the - files are bundled up using &man.tar.1;. The resulting - <filename>.tar</filename> file is then compressed using - the compression schemes detailed in the next point.</para> - </listitem> - - <listitem> - <para>All the other formats generate one file, called - <filename>book.<replaceable>format</replaceable></filename> - (i.e., <filename>book.pdb</filename>, - <filename>book.html</filename>, and so on).</para> - - <para>These files are then compressed using three - compression schemes.</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Scheme</entry> - - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literal>zip</literal></entry> - - <entry>The Zip format. If you want to uncompress - this on FreeBSD you will need to install the - <filename>archivers/unzip</filename> port - first.</entry> - </row> - - <row> - <entry><literal>gz</literal></entry> - - <entry>The GNU Zip format. Use &man.gunzip.1; to - uncompress these files, which is part of - FreeBSD.</entry> - </row> - - <row> - <entry><literal>bz2</literal></entry> - - <entry>The BZip2 format. Less widespread than the - others, but generally gives smaller files. - Install the <filename>archivers/bzip2</filename> - port to uncompress these files.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>So the Postscript version of the Handbook, compressed - using BZip2 will be stored in a file called - <filename>book.sgml.bz2</filename> in the - <filename>handbook/</filename> directory.</para> - </listitem> - - <listitem> - <para>The formatted documentation is also available as a - FreeBSD package, of which more later.</para> - </listitem> - </orderedlist> - </listitem> - </itemizedlist> - - <para>After choosing the format and compression mechanism that you - want to download, you must then decide whether or not you want to - download the document as a FreeBSD - <emphasis>package</emphasis>.</para> - - <para>The advantage of downloading and installing the package is - that the documentation can then be managed using the normal - FreeBSD package management comments, such as &man.pkg.add.1; and - &man.pkg.delete.1;.</para> - - <para>If you decide to download and install the package then you - must know the filename to download. The documentation-as-packages - files are stored in a directory called - <filename>packages</filename>. Each package file looks like - <filename><replaceable>document-name</replaceable>.<replaceable>lang</replaceable>.<replaceable>encoding</replaceable>.<replaceable>format</replaceable>.tgz</filename>.</para> - - <para>For example, the FAQ, in English, formatted as PDF, is in the - package called - <filename>faq.en_US.ISO_8859-1.pdf.tgz</filename>.</para> - - <para>Knowing this, you can use the following command to install the - English PDF FAQ package.</para> - - <screen>&prompt.root; <userinput>pkg_add ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO_8859-1.pdf.tgz</userinput></screen> - - <para>Having done that, you can use &man.pkg.info.1; to determine - where the file has been installed.</para> - - <screen>&prompt.root; <userinput>pkg_info -f faq.en_US.ISO_8859-1.pdf</userinput> -Information for faq.en_US.ISO_8859-1.pdf: - -Packing list: - Package name: faq.en_US.ISO_8859-1.pdf - CWD to /usr/share/doc/en_US.ISO_8859-1/books/faq -File: book.pdf - CWD to . -File: +COMMENT (ignored) -File: +DESC (ignored)</screen> - - <para>As you can see, <filename>book.pdf</filename> will have been - installed in to - <filename>/usr/share/doc/en_US.ISO_8859-1/books/faq</filename>.</para> - - <para>If you do not want to use the packages then you will have to - download the compressed files yourself, uncompress them, and then - copy the appropriate documents in to place.</para> - - <para>For example, the split HTML version of the FAQ, compressed - using &man.gzip.1;, can be found in the - <filename>en_US.ISO_8859-1/books/faq/book.html-split.tar.gz</filename> - file. To download and uncompress that file you would have to do - this.</para> - - <screen>&prompt.root; <userinput>fetch ftp://ftp.freebsd.org/pub/FreeBSD/doc/en_US.ISO_8859-1/books/faq/book.html-split.tar.gz</userinput> -&prompt.root; <userinput>gzip -d book.html-split.tar.gz</userinput> -&prompt.root; <userinput>tar xvf book.html-split.tar</userinput></screen> - - <para>You will be left with a collection of - <filename>.html</filename> files. The main one is called - <filename>index.html</filename>, which will contain the table of - contents, introductory material, and links to the other parts of - the document. You can then copy or move these to their final - location as necessary.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I'd like to become a FreeBSD Web mirror!</para> - </question> - - <answer> - <para>Certainly! There are multiple ways to mirror the Web - pages.</para> - - - - <itemizedlist> - <listitem> - <para>Using <application>CVSup</application>: - You can retrieve the formatted files - using <application>CVSup</application>, and connecting to - a <application>CVSup</application> server.</para> - - <para>To retrieve the webpages, please look at the example - supfile, which can be found in - <filename>/usr/share/examples/cvsup/www-supfile</filename>.</para> - - </listitem> - - <listitem> - <para>Using ftp mirror: You can download the FTP server's - copy of the web site sources using your favorite ftp mirror - tool. Keep in mind that you have to build these sources before - publishing them. Simply start at - ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www.</para> - </listitem> - </itemizedlist> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I'd like to translate the documentation into - Friesian.</para> - </question> - - <answer> - <para>Well, we can't pay, but we might arrange a free CD or - T-shirt and a Contributor's Handbook entry if you submit a - translation of the documentation. Before you begin translating - please contact the - <emphasis>freebsd-doc</emphasis> mailing list at - <email>freebsd-doc@FreeBSD.org</email>; you may find - somebody to help with the translation effort. You may also - find out there is already - a team translating the docs into your chosen language, - who surely wouldn't turn down your help. </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Other sources of information.</para> - </question> - - <answer> - <para>The following newsgroups contain pertinent discussion for - FreeBSD users:</para> - - - - <itemizedlist> - <listitem> - <para><ulink - URL="news:comp.unix.bsd.freebsd.announce">comp.unix.bsd.freebsd.announce</ulink> - (moderated)</para> - </listitem> - - <listitem> - <para><ulink - URL="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</ulink></para> - </listitem> - - <listitem> - <para><ulink - URL="news:comp.unix.bsd.misc">comp.unix.bsd.misc</ulink></para> - </listitem> - </itemizedlist> - - <para>Web resources:</para> - - - - <itemizedlist> - <listitem> - <para>The <ulink - URL="http://www.FreeBSD.org/">FreeBSD Home Page</ulink>.</para> - </listitem> - - <listitem> - <para><anchor id="pao">If you have a laptop, be sure and see - <ulink URL="http://www.jp.FreeBSD.org/PAO/">Tatsumi - Hosokawa's Mobile Computing page</ulink> in Japan.</para> - </listitem> - - <listitem> - <para><anchor id="smp">For information on SMP (Symmetric - MultiProcessing), please see the <ulink - URL="http://people.FreeBSD.org/~fsmp/SMP/SMP.html">SMP support page</ulink>.</para> - </listitem> - - <listitem> - <para><anchor id="multimedia">For information on FreeBSD - multimedia applications, please see the <ulink - URL="http://people.FreeBSD.org/~faulkner/multimedia/mm.html">multimedia</ulink> - page. If you're interested specifically in the <ulink - URL="http://people.FreeBSD.org/~ahasty/Bt848.html">Bt848</ulink> - video capture chip, then follow that link.</para> - </listitem> - </itemizedlist> - - <para>The FreeBSD handbook also has a fairly complete <ulink - URL="../handbook/bibliography.html">bibliography</ulink> - section which is worth reading if you're looking for actual - books to buy.</para> - </answer> - </qandaentry> - </qandaset> - </preface> - -<chapter -id="install"> -<title>Installation</title> - - -<qandaset><qandaentry><question> -<para>Which file do I download to get FreeBSD?</para></question><answer> - -<para>Prior to release 3.1, you only needed one floppy image to install -FreeBSD, namely <filename>floppies/boot.flp</filename>. However, -since release 3.1 the Project has added base support for a wide -variety of hardware which needed more space, and thus for 3.x and 4.x -we now use two floppy images, namely -<filename>floppies/kernel.flp</filename> and -<filename>floppies/mfsroot.flp</filename>. These images need to be -copied onto floppies by tools like <command>fdimage</command> or -&man.dd.1;.</para> - -<para>If you need to download the distributions yourself (for a DOS -filesystem install, for instance), below are some recommendations -for distributions to grab:</para> - - -<itemizedlist> - -<listitem> -<para> bin/<!-- <br> --></para> -</listitem> - -<listitem> -<para> manpages/<!-- <br> --></para> -</listitem> - -<listitem> -<para> compat*/<!-- <br> --></para> -</listitem> - -<listitem> -<para> doc/ <!-- <br> --></para> -</listitem> - -<listitem> -<para> src/ssys.* <!-- <br> --></para> -</listitem> - -</itemizedlist> - - -<para>Full instructions on this procedure and a little bit more about -installation issues in general can be found in the <ulink URL="../handbook/install.html">Handbook entry on installing FreeBSD.</ulink></para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Help! The boot floppy image will not fit on a single floppy! - </para></question><answer> - -<para>A 3.5 inch (1.44MB) floppy can accomodate 1474560 bytes of data. -The boot image is exactly 1474560 bytes in size.</para> - -<para>Common mistakes when preparing the boot floppy are:</para> -<itemizedlist> - -<listitem> -<para>Not downloading the floppy image in <emphasis>binary</emphasis> mode when -using <acronym>FTP</acronym>.</para> - - -<para>Some FTP clients default their transfer mode to <emphasis>ascii</emphasis> -and attempt to change any end-of-line characters received to match -the conventions used by the client's system. -This will almost invariably corrupt the boot image. Check the -size of the downloaded boot image: if it is not <emphasis>exactly</emphasis> -that on the server, then the download process is suspect.</para> - -<para>To workaround: type <emphasis>binary</emphasis> at the FTP command prompt -after getting connected to the server and before starting the -download of the image.</para> -</listitem> - -<listitem> -<para>Using the DOS <command>copy</command> command (or equivalent GUI tool) to -transfer the boot image to floppy. -</para> - -<para>Programs like <command>copy</command> will not work as the boot -image has been created to be booted into directly. The image has -the complete content of the floppy, track for track, and is not -meant to be placed on the floppy as a regular file. -You have to transfer it to the floppy ``raw'', using the -low-level tools (e.g. <command>fdimage</command> or <command>rawrite</command>) -described in the <ulink URL="../handbook/install.html">installation guide to FreeBSD</ulink>.</para> -</listitem> - -</itemizedlist> - - -</answer></qandaentry> - -<qandaentry><question> -<para>Where are the instructions for installing FreeBSD?</para></question><answer> - -<para>Installation instructions can be found in the -<ulink URL="../handbook/install.html">Handbook entry on installing FreeBSD.</ulink></para> - -</answer></qandaentry> - -<qandaentry><question> -<para>What do I need in order to run FreeBSD?</para></question><answer> - -<para>You'll need a 386 or better PC, with 5 MB or more of RAM and at -least 60 MB of hard disk space. It can run with a low end MDA -graphics card but to run X11R6, a VGA or better video card is needed.</para> - -<para>See also the section on <xref linkend="hardware" remap="Hardware compatibility"></para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I have only 4 MB of RAM. Can I install FreeBSD?</para></question><answer> - -<para>FreeBSD 2.1.7 was the last version of FreeBSD that could be installed -on a 4MB system. Newer versions of FreeBSD, like 2.2, need at least 5MB -to install on a new system.</para> - -<para>All versions of FreeBSD, including 3.0, will <emphasis>run</emphasis> in 4MB of RAM, they -just can't run the installation program in 4MB. You can add -extra memory for the install process, if you like, and then -after the system is up and running, go back to 4MB. Or you could -always just swap your disk into a system which has >4MB, install onto -it and then swap it back.</para> - -<para>There are also situations in which FreeBSD 2.1.7 will not install -in 4 MB. To be exact: it does not install with 640 kB base + 3 MB -extended memory. If your motherboard can remap some of the ``lost'' -memory out of the 640kB to 1MB region, then you may still be able -to get FreeBSD 2.1.7 up.</para> - -<para>Try to go into your BIOS setup and look for a ``remap'' option. -Enable it. You may also have to disable ROM shadowing.</para> - -<para>It may be easier to get 4 more MB just for the install. Build a -custom kernel with only the options you need and then get the 4 -MB out again.</para> - -<para>You may also install 2.0.5 and then upgrade your system to 2.1.7 -with the ``upgrade'' option of the 2.1.7 installation program.</para> - -<para>After the installation, if you build a custom kernel, it will run -in 4 MB. Someone has even succeeded in booting with 2 MB (the -system was almost unusable though :-))</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> How can I make my own custom install floppy? - </para></question><answer> - -<para>Currently there's no way to <emphasis>just</emphasis> make a custom install floppy. -You have to cut a whole new release, which will include your install -floppy. There's some code in <filename>/usr/src/release/floppies/Makefile</filename> -that's supposed to let you <emphasis>just</emphasis> make those floppies, but it's not -really gelled yet.</para> - -<para>To make a custom release, follow the instructions <link linkend="custrel">here</link>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Can I have more than one operating system on my PC?</para></question><answer> - -<para>Have a look at <ulink URL="../tutorials/multi-os/">The multi-OS page.</ulink></para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Can Windows 95 co-exist with FreeBSD?</para></question><answer> - -<para>Install Windows 95 first, after that FreeBSD. FreeBSD's boot -manager will then manage to boot Win95 and FreeBSD. If you -install Windows 95 second, it will boorishly overwrite your -boot manager without even asking. If that happens, see -the next section.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> Windows 95 killed my boot manager! How do I get it back? - </para></question><answer> - -<para>You can reinstall the boot manager FreeBSD comes with in one of -two ways:</para> - - -<itemizedlist> - -<listitem> -<para>Running DOS, go into the tools/ directory of your FreeBSD -distribution and look for <filename>bootinst.exe</filename>. You run it like so: - -</para> - -<screen><prompt>...\TOOLS></prompt> <userinput>bootinst.exe boot.bin</userinput></screen> - -<para></para> - -<para>and the boot manager will be reinstalled.</para> - -<para></para> -</listitem> - -<listitem> -<para>Boot the FreeBSD boot floppy again and go to the Custom -installation menu item. Choose Partition. Select the drive which -used to contain your boot manager (likely the first one) and when you -come to the partition editor for it, as the very first thing (e.g. -do not make any changes) select (W)rite. This will ask for -confirmation, say yes, and when you get the Boot Manager selection -prompt, be sure to select "Boot Manager." -This will re-write the boot manager to disk. Now quit out of the -installation menu and reboot off the hard disk as normal.</para> -</listitem> - -</itemizedlist> - - -</answer></qandaentry> - -<qandaentry><question> -<para>Can I install on a disk with bad blocks?</para></question><answer> - -<para>Prior to 3.0, FreeBSD included a utility known as -<command>bad144</command>, which automatically remapped bad -blocks. Because modern IDE drives perform this function themselves, -<command>bad144</command> has been removed from the FreeBSD source -tree. If you wish to install FreeBSD 3.0 or later, we strongly suggest -you purchase a newer disk drive. If you do not wish to do this, you -must run FreeBSD 2.x.</para> -<para>If you are seeing bad block errors with a modern IDE drive, -chances are the drive is going to die very soon (the drive's internal -remapping functions are no longer sufficient to fix the bad blocks, -which means the disk is heavily corrupted); we suggest you by a -new hard drive.</para> - -<para>If you have a SCSI drive with bad blocks, see <link linkend="awre">this answer</link>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Strange things happen when I boot the install floppy!</para></question><answer> - -<para>If you're seeing things like the machine grinding to a halt or -spontaneously rebooting when you try to boot the install floppy, -here are three questions to ask yourself:-</para> - - -<orderedlist> - -<listitem> -<para>Did you use a new, freshly-formatted, error-free floppy -(preferably a brand-new one straight out of the box, as -opposed to the magazine coverdisk that's been lying under -the bed for the last three years)? -</para> -</listitem> - -<listitem> -<para>Did you download the floppy image in binary (or image) mode? -(don't be embarrassed, even the best of us have accidentally -downloaded a binary file in ASCII mode at least once!) -</para> -</listitem> - -<listitem> -<para>If you're using -Windows95 or Win98 did you run <command>fdimage</command> or -<command>rawrite</command> in pure DOS mode? These OS's can -interfere with programs that write directly to hardware, which -the disk creation program does; even running it inside a DOS -shell in the GUI can cause this problem.</para> -</listitem> - -</orderedlist> - - -<para>There have also been reports of Netscape causing problems when -downloading the boot floppy, so it's probably best to use a different -FTP client if you can.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Help! I can't install from tape!</para></question><answer> - -<para>If you are installing 2.1.7R from tape, you must create the tape -using a tar blocksize of 10 (5120 bytes). The default tar -blocksize is 20 (10240 bytes), and tapes created using this -default size cannot be used to install 2.1.7R; with these tapes, -you will get an error that complains about the record size being -too big.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Connect two FreeBSD boxes over a parallel line (PLIP) - </para></question><answer> - -<para>Get a laplink cable. Make sure both computer have a kernel -with lpt driver support.</para> - - <screen>&prompt.root; <userinput>dmesg | grep lp</userinput> -lpt0 at 0x378-0x37f irq 7 on isa -lpt0: Interrupt-driven -lp0: TCP/IP capable interface</screen> - -<para>Plug in the laplink cable into the parallel interface.</para> - -<para>Configure the network interface parameters for lp0 on both -sites as root. For example, if you want connect the host max -with moritz</para> - -<para> -<literallayout> max <-----> moritz -IP Address 10.0.0.1 10.0.0.2 - </literallayout> -</para> - -<para>on max start</para> - <screen>&prompt.root; <userinput>ifconfig lp0 10.0.0.1 10.0.0.2</userinput></screen> - -<para>on moritz start</para> - - - <screen>&prompt.root; <userinput>ifconfig lp0 10.0.0.2 10.0.0.1</userinput></screen> - - -<para>Thats all! Please read also the manpages -&man.lp.4; -and -&man.lpt.4; -.</para> - -<para>You should also add the hosts to <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</programlisting> - - -<para>To check if it works do:</para> - -<para>on max:</para> - - - <screen>&prompt.root; <userinput>ifconfig lp</userinput>0 -lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500 - inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000 -&prompt.root; <userinput>netstat -r</userinput> -Routing tables - -Internet: -Destination Gateway Flags Refs Use Netif Expire -moritz max UH 4 127592 lp0 -&prompt.root; <userinput>ping -c 4 moritz</userinput> -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</screen> - - -</answer></qandaentry> - -<qandaentry><question> -<para> Can I install on my laptop over PLIP (Parallel Line IP)? - </para></question><answer> - -<para>Connect the two computers using a Laplink parallel cable to use -this feature:</para> - - <table> - <title>Wiring a parallel cable for networking</title> - - <tgroup cols="5"> - <thead> - <row> - <entry>A-name</entry> - - <entry>A-End</entry> - - <entry>B-End</entry> - - <entry>Descr.</entry> - - <entry>Post/Bit</entry> - </row> - </thead> - - <tbody> - <row> - <entry><literallayout>DATA0 --ERROR</literallayout></entry> - - <entry><literallayout>2 -15</literallayout></entry> - - <entry><literallayout>15 -2</literallayout></entry> - - <entry>Data</entry> - - <entry><literallayout>0/0x01 -1/0x08</literallayout></entry> - </row> - - <row> - <entry><literallayout>DATA1 -+SLCT</literallayout></entry> - - <entry><literallayout>3 -13</literallayout></entry> - - <entry><literallayout>13 -3</literallayout></entry> - - <entry>Data</entry> - - <entry><literallayout>0/0x02 -1/0x10</literallayout></entry> - </row> - - <row> - <entry><literallayout>DATA2 -+PE</literallayout></entry> - - <entry><literallayout>4 -12</literallayout></entry> - - <entry><literallayout>12 -4</literallayout></entry> - - <entry>Data</entry> - - <entry><literallayout>0/0x04 -1/0x20</literallayout></entry> - </row> - - <row> - <entry><literallayout>DATA3 --ACK</literallayout></entry> - - <entry><literallayout>5 -10</literallayout></entry> - - <entry><literallayout>10 -5</literallayout></entry> - - <entry>Strobe</entry> - - <entry><literallayout>0/0x08 -1/0x40</literallayout></entry> - </row> - - <row> - <entry><literallayout>DATA4 -BUSY</literallayout></entry> - - <entry><literallayout>6 -11</literallayout></entry> - - <entry><literallayout>11 -6</literallayout></entry> - - <entry>Data</entry> - - <entry><literallayout>0/0x10 -1/0x80</literallayout></entry> - </row> - - <row> - <entry>GND</entry> - - <entry>18-25</entry> - - <entry>18-25</entry> - - <entry>GND</entry> - - <entry>-</entry> - </row> - </tbody> - </tgroup> - </table> - -<para>See also <link linkend="pao">this note</link> on the Mobile Computing page.</para> - -</answer></qandaentry> - -<qandaentry><question -id="geometry"> -<para> Which geometry should I use for a disk drive? - </para></question><answer> - -<para>(By the "geometry" of a disk, we mean the number of cylinders, -heads and sectors/track on a disk - I'll refer to this as -C/H/S for convenience. This is how the PC's BIOS works out -which area on a disk to read/write from).</para> - -<para>This seems to cause a lot of confusion for some reason. First -of all, the <emphasis>physical</emphasis> geometry of a SCSI drive is totally -irrelevant, as FreeBSD works in term of disk blocks. In fact, there -is no such thing as "the" physical geometry, as the sector density -varies across the disk - what manufacturers claim is the "true" -physical geometry is usually the geometry that they've worked out -results in the least wasted space. For IDE disks, FreeBSD does -work in terms of C/H/S, but all modern drives will convert this -into block references internally as well.</para> - -<para>All that matters is the <emphasis>logical</emphasis> geometry - the answer that the -BIOS gets when it asks "what is your geometry?" and then uses to access -the disk. As FreeBSD uses the BIOS when booting, it's very important -to get this right. In particular, if you have more than one operating -system on a disk, they must all agree on the geometry, otherwise you -will have serious problems booting!</para> - -<para>For SCSI disks, the geometry to use depends on whether extended -translation support is turned on in your controller (this is -often referred to as "support for DOS disks >1GB" or something -similar). If it's turned off, then use N cylinders, 64 heads -and 32 sectors/track, where 'N' is the capacity of the disk in -MB. For example, a 2GB disk should pretend to have 2048 cylinders, -64 heads and 32 sectors/track.</para> - -<para>If it <emphasis>is</emphasis> turned on (it's often supplied this way to get around -certain limitations in MSDOS) and the disk capacity is more than 1GB, -use M cylinders, 63 sectors per track (*not* 64), and 255 heads, where -'M' is the disk capacity in MB divided by 7.844238 (!). So our -example 2GB drive would have 261 cylinders, 63 sectors per track and -255 heads.</para> - -<para>If you are not sure about this, or FreeBSD fails to detect the -geometry correctly during installation, the simplest way around -this is usually to create a small DOS partition on the disk. The -correct geometry should then be detected (and you can always remove -the DOS partition in the partition editor if you don't want to keep -it, or leave it around for programming network cards and the like).</para> - -<para>Alternatively, there is a freely available utility distributed with -FreeBSD called ``<filename>pfdisk.exe</filename>'' (located in the <filename>tools</filename> -subdirectory on the FreeBSD CDROM or on the various FreeBSD -ftp sites) which can be used to work out what geometry the other -operating systems on the disk are using. You can then enter this -geometry in the partition editor.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Any restrictions on how I divide the disk up?</para></question><answer> - -<para>Yes. You must make sure that your root partition is below 1024 -cylinders so the BIOS can boot the kernel from it. (Note that this -is a limitation in the PC's BIOS, not FreeBSD).</para> - -<para>For a SCSI drive, this will normally imply that the root partition -will be in the first 1024MB (or in the first 4096MB if extended -translation is turned on - see previous question). For IDE, the -corresponding figure is 504MB.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> What about disk managers? Or, I have a large drive! - </para></question><answer> - -<para>FreeBSD recognizes the Ontrack Disk Manager and makes allowances -for it. Other disk managers are not supported.</para> - -<para>If you just want to use the disk with FreeBSD you don't need a -disk manager. Just configure the disk for as much space as the -BIOS can deal with (usually 504 megabytes), and FreeBSD -should figure out how much space you really have. If you're using -an old disk with an MFM controller, you may need to explicitly -tell FreeBSD how many cylinders to use.</para> - -<para>If you want to use the disk with FreeBSD and another operating -system, you may be able to do without a disk manager: just make sure -the the FreeBSD boot partition and the slice for the other -operating system are in the first 1024 cylinders. If you're -reasonably careful, a 20 megabyte boot partition should be plenty.</para> - -</answer></qandaentry> - -<qandaentry><question -id="missing-os"> -<para> When I boot FreeBSD I get ``Missing Operating System'' - - </para></question><answer> - -<para>This is classically a case of FreeBSD and DOS or some other OS -conflicting over their ideas of disk <link linkend="geometry">geometry</link>. You will have to reinstall FreeBSD, but obeying the -instructions given above will almost always get you going.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I can't get past the boot manager's `F?' prompt.</para></question><answer> - -<para>This is another symptom of the problem described in the preceding -question. Your BIOS geometry and FreeBSD geometry settings do -not agree! If your controller or BIOS supports cylinder -translation (often marked as ``>1GB drive support''), try -toggling its setting and reinstalling FreeBSD.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Do I need to install the complete sources?</para></question><answer> - -<para>In general, no. However, we would strongly recommend that you -install, at a minimum, the ``<emphasis remap=tt>base</emphasis>'' source kit, which -includes several of the files mentioned here, and the -``<emphasis remap=tt>sys</emphasis>'' (kernel) source kit, which includes sources for the -kernel. There is nothing in the system which requires the -presence of the sources to operate, however, except for the -kernel-configuration program -&man.config.8;. With the exception -of the kernel sources, our build structure is set up so that you -can read-only mount the sources from elsewhere via NFS and still -be able to make new binaries. (Because of the kernel-source -restriction, we recommend that you not mount this on -<filename>/usr/src</filename> directly, but rather in some other location -with appropriate symbolic links to duplicate the top-level -structure of the source tree.)</para> - -<para>Having the sources on-line and knowing how to build a system with -them will make it much easier for you to upgrade to future -releases of FreeBSD.</para> - -<para>To actually select a subset of the sources, use the Custom -menu item when you are in the Distributions menu of the -system installation tool.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Do I need to build a kernel?</para></question><answer> - -<para>Building a new kernel was originally pretty much a required -step in a FreeBSD installation, but more recent releases have -benefited from the introduction of a much friendlier kernel -configuration tool. When at the FreeBSD boot prompt (boot:), -use the "-c" flag and you will be dropped into a visual -configuration screen which allows you to configure the kernel's -settings for most common ISA cards.</para> - -<para>It's still recommended that you eventually build a new -kernel containing just the drivers that you need, just to save a -bit of RAM, but it's no longer a strict requirement for most -systems.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I live outside the US. Can I use DES encryption?</para></question><answer> - -<para>If it is not absolutely imperative that you use DES style -encryption, you can use FreeBSD's default encryption for even -<emphasis>better</emphasis> security, and with no export restrictions. FreeBSD -2.0's password default scrambler is now <emphasis>MD5</emphasis>-based, and is -more CPU-intensive to crack with an automated password cracker -than DES, and allows longer passwords as well. The only reason -for not using the <emphasis>MD5</emphasis>-based crypt today would be to use the -the same password entries on FreeBSD and non-FreeBSD systems.</para> - -<para>Since the DES encryption algorithm cannot legally be exported -from the US, non-US users should not download this software (as -part of the <literal>secrdist</literal> from US FTP sites.</para> - -<para>There is however a replacement libcrypt available, based on -sources written in Australia by David Burren. This code is now -available on some non-US FreeBSD mirror sites. Sources for the -unencumbered libcrypt, and binaries of the programs which use it, -can be obtained from the following FTP sites:</para> - - -<segmentedlist> -<seglistitem><seg>South Africa</seg> -<seg> -<ulink url="ftp://ftp.internat.FreeBSD.org/pub/FreeBSD/">ftp://ftp.internat.FreeBSD.org/pub/FreeBSD/</ulink>, -<ulink url="ftp://storm.sea.uct.ac.za/pub/FreeBSD/">ftp://storm.sea.uct.ac.za/pub/FreeBSD/</ulink> - - - -</seg> -</seglistitem> - -<seglistitem><seg>Brazil</seg> - - -<seg><ulink url="ftp://ftp.iqm.unicamp.br/pub/FreeBSD/">ftp://ftp.iqm.unicamp.br/pub/FreeBSD/</ulink></seg> - - - - -</seglistitem> - -<seglistitem><seg>Finland</seg> - -<seg> -<ulink url="ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt/">ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt/</ulink> - -</seg> -</seglistitem> -</segmentedlist> - - -<para>The non-US <emphasis>securedist</emphasis> can be used as a direct replacement -for the encumbered US <emphasis>securedist</emphasis>. This <emphasis>securedist</emphasis> -package is installed the same way as the US package (see -installation notes for details). If you are going to install DES -encryption, you should do so as soon as possible, before -installing other software.</para> - -<para>Non-US users should please not download any encryption software -from the USA. This can get the maintainers of the sites from -which the software is downloaded into severe legal difficulties.</para> - -<para>A non-US distribution of Kerberos is also being developed, and -current versions can generally be obtained by anonymous FTP from -<hostid role="fqdn">braae.ru.ac.za</hostid>.</para> - -<para>There is also a <link linkend="mailing">mailing list</link> for the -discussion of non-US encryption software. For more information, send -an email message with a single line saying ``<literal>help</literal>'' in the body -of your message to <email>majordomo@braae.ru.ac.za</email>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>The boot floppy starts but hangs at the ``Probing Devices...'' - screen.</para></question><answer> - -<para>If you have a IDE Zip or Jaz drive installed, remove it and try again. -The boot floppy can get confused by the drives. -After the system is installed you can reconnect the drive. Hopefully -this will be fixed in a later release.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I get a ``panic: cant mount root'' error when rebooting the system after installation.</para></question><answer> - -<para>This error comes from confusion between the boot block's and the -kernel's understanding of the disk devices. The error usually -manifests on two-disk IDE systems, with the hard disks arranged as the -master or single device on separate IDE controllers, with FreeBSD -installed on the secondary IDE controller. The boot blocks think -the system is installed on wd1 (the second BIOS disk) while the kernel -assigns the first disk on the secondary controller device wd2. After -the device probing, the kernel tries to mount what the boot blocks -think is the boot disk, wd1, while it is really wd2, and fails.</para> - -<para>To fix the problem, do one of the following:</para> - -<para> -<orderedlist> - -<listitem> -<para>For FreeBSD 3.3 and later, reboot the system and hit -"Enter" at the "Booting kernel in 10 seconds; hit -[Enter] to interrupt" prompt. This will drop you into the boot -loader.</para> - <para>Then type <literal>set - root_disk_unit="<replaceable>disk_number</replaceable>"</literal>. <replaceable>disk_number</replaceable> -will be <literal>0</literal> if FreeBSD is installed on the master drive -on the first IDE controller, <literal>1</literal> if it is installed -on the slave on the first IDE controller, <literal>2</literal> if it -is installed on the master of the second IDE controller, and -<emphasis>3</emphasis> if it is installed on the slave of the second -IDE controller.</para> -<para>Then type "boot", and your system should boot -correctly.</para> -<para>To make this change permanent (ie so you don't have to do this -everytime you reboot or turn on your FreeBSD machine), put the line - <literal>root_disk_unit="<replaceable>disk_number</replaceable>"</literal> in -<filename>/boot/loader.conf.local</filename>.</para> -</listitem> - -<listitem> -<para>If using FreeBSD 3.2 or earlier, at the Boot: prompt, enter -<literal>1:wd(2,a)kernel</literal> and press Enter. If the system starts, then -run the command -<literal>echo "1:wd(2,a)kernel" > /boot.config</literal> - -to make it the default boot string.</para> -</listitem> - -<listitem> -<para>Move the FreeBSD disk onto the primary IDE controller, so the -hard disks are consecutive.</para> -</listitem> - -<listitem> -<para><ulink URL="../handbook/kernelconfig.html">Rebuild your kernel,</ulink> -modify the wd configuration lines to read:</para> - -<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> - - -<para>Install the new kernel. -If you moved your disks and wish to restore the previous -configuration, replace the disks in the desired configuration and reboot. -Your system should boot successfully. -</para> -</listitem> - -</orderedlist> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>What are the limits for memory?</para></question><answer> - -<para>For memory, the limit is 4 gigabytes. This configuration has -been tested, see <ulink -URL="ftp://ftp.cdrom.com/archive-info/configuration">wcarchive's -configuration</ulink> for more details. If you plan to install this -much memory into a machine, you need to be careful. You'll probably -want to use ECC memory and to reduce capacitive loading use 9 chip -memory modules vice 18 chip memory modules.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>What are the limits for ffs filesystems?</para></question><answer> - -<para>For ffs filesystems, the maximum theoretical limit is 8 terabytes -(2G blocks), or 16TB for the default block size of 8K. -In practice, there is a soft limit of 1 terabyte, but with modifications -filesystems with 4 terabytes are possible (and exist).</para> - -<para>The maximum size of a single ffs file is approximately 1G blocks -(4TB) if the block size is 4K.</para> - - <table> - <title>Maximum file sizes</title> - - <tgroup cols="5"> - <thead> - <row> - <entry>fs block size</entry> - - <entry>2.2.7-stable</entry> - - <entry>3.0-current</entry> - - <entry>works</entry> - - <entry>should work</entry> - </row> - </thead> - - <tbody> - <row> - <entry>4K</entry> - - <entry>4T-1</entry> - - <entry>4T-1</entry> - - <entry>4T-1</entry> - - <entry>4+t</entry> - </row> - - <row> - <entry>8K</entry> - - <entry>32+G</entry> - - <entry>8T-1</entry> - - <entry>32+G</entry> - - <entry>32T-1</entry> - </row> - - <row> - <entry>16K</entry> - - <entry>128+G</entry> - - <entry>16T-1</entry> - - <entry>128+G</entry> - - <entry>32T-1</entry> - </row> - - <row> - <entry>32K</entry> - - <entry>512+G</entry> - - <entry>32T-1</entry> - - <entry>512+G</entry> - - <entry>64T-1</entry> - </row> - - <row> - <entry>64K</entry> - - <entry>2048+G</entry> - - <entry>64T-1</entry> - - <entry>2048+G</entry> - - <entry>128T-1</entry> - </row> - </tbody> - </tgroup> - </table> -<para> -<literallayout> maxfilesize - ---------------------------------- - 2.2.7 3.0 -fs block size -STABLE -CURRENT works should-work -------------- ------- -------- ----- ----------- -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 - </literallayout> -</para> - -<para>When the fs block size is 4K, triple indirect blocks work and -everything should be limited by the maximum fs block number that can -be represented using triple indirect blocks (approx. 1K^3 + 1K^2 + -1K), but everything is limited by a (wrong) limit of 1G-1 on fs block -numbers. The limit on fs block numbers should be 2G-1. There are -some bugs for fs block numbers near 2G-1, but such block numbers are -unreachable when the fs block size is 4K.</para> - -<para>For block sizes of 8K and larger, everything should be limited -by the 2G-1 limit on fs block numbers, but is actually limited by the -1G-1 limit on fs block numbers, except under -STABLE triple indirect -blocks are unreachable, so the limit is the maxiumum fs block number -that can be represented using double indirect blocks -(approx. (blocksize/4)^2 + (blocksize/4)), and under -CURRENT -exceeding this limit may cause problems. Using the correct limit of -2G-1 blocks does cause problems.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How can I put 1TB files on my floppy?</para></question><answer> - -<para>I keep several virtual ones on floppies :-). The maxiumum -file size is not closely related to the maximum disk size. The -maximum disk size is 1TB. It is a feature that the file size can be -larger than the disk size.</para> - -<para>The following example creates a file of size 8T-1 using a -whole 32K of disk space (3 indirect blocks and 1 data block) on a -small root partition. The dd command requires a dd that works with -large files.</para> - -<para> -<literallayout>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/da0a 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/da0a 64479 27734 31587 47% / -ttyv0:bde@alphplex:/tmp/q> exit</literallayout> -</para> - -<para>Bruce Evans, September 1998</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I compiled a new kernel and now I get the error message "archsw.readin.failed" when booting.</para></question><answer> - -<para>You can boot by specifying the kernel directly at the second -stage, pressing any key when the | shows up before loader is -started. More specifically, you have upgraded the source for your -kernel, and installed a new kernel builtin from them <emphasis>without making -world</emphasis>. This is not supported. Make world.</para> - -</answer></qandaentry> - -<qandaentry> -<question><para>How do I upgrade from 3.X -> 4.X?</para></question> - -<answer><para>We <emphasis>strongly</emphasis> recommend that you use -binary snapshots to do this. 4.X-STABLE snapshots are available at -<ulink -url="ftp://releng4.FreeBSD.org">releng4.FreeBSD.org</ulink>.</para> -<para>If you wish to upgrade using source, please see the <ulink -url="http://www.FreeBSD.org/handbook/cutting-edge.html">FreeBSD -Handbook</ulink> for more information.</para> -<para><emphasis>Upgrading via source is never recommended for new -users, and upgading from 3.X -> 4.X is even less so; make sure you -have read the instructions carefully before attempting to upgrade via -source this!</emphasis></para> -</answer></qandaentry> -</qandaset> -</chapter> - -<chapter -id="hardware"> -<title>Hardware compatibility </title> - - -<qandaset><qandaentry><question> -<para>What kind of hard drives does FreeBSD support?</para></question><answer> - -<para>FreeBSD supports EIDE and SCSI drives (with a compatible -controller; see the next section), and all drives using the -original "Western Digital" interface (MFM, RLL, ESDI, and -of course IDE). A few ESDI controllers that use proprietary -interfaces may not work: stick to WD1002/3/6/7 interfaces -and clones.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Which SCSI controllers are supported?</para></question><answer> - -<para>See the complete list in the -<ulink URL="../handbook/install.html#INSTALL-HW">Handbook</ulink>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Which CD-ROM drives are supported by FreeBSD?</para></question><answer> - -<para>Any SCSI drive connected to a supported controller is supported.</para> - -<para>The following proprietary CD-ROM interfaces are also supported:</para> - -<para> -<itemizedlist> - -<listitem> -<para>Mitsumi LU002 (8bit), LU005 (16bit) and FX001D (16bit 2x Speed).</para> -</listitem> - -<listitem> -<para>Sony CDU 31/33A<!-- <br> --></para> -</listitem> - -<listitem> -<para>Sound Blaster Non-SCSI CD-ROM<!-- <br> --></para> -</listitem> - -<listitem> -<para>Matsushita/Panasonic CD-ROM<!-- <br> --></para> -</listitem> - -<listitem> -<para>ATAPI compatible IDE CD-ROMs<!-- <br> --></para> -</listitem> - -</itemizedlist> -</para> - -<para>All non-SCSI cards are known to be extremely slow compared to -SCSI drives, and some ATAPI CDROMs may not work.</para> - -<para>As of 2.2 the FreeBSD CDROM from Walnut Creek supports booting -directly from the CD.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Does FreeBSD support ZIP drives?</para></question><answer> - -<para>FreeBSD supports the SCSI ZIP drive out of the box, of course. The -ZIP drive can only be set to run at SCSI target IDs 5 or 6, but if -your SCSI host adapter's BIOS supports it you can even boot from -it. I don't know which host adapters let you boot from targets -other than 0 or 1... look at your docs (and let me know if it works -out for you).</para> - -<para>ATAPI (IDE) Zip drives are supported in FreeBSD 2.2.6 and -later releases.</para> - -<para>FreeBSD has contained support for Parallel Port Zip Drives since -version 3.0. If you are using a sufficiently up to date version, then -you should check that your kernel contains the <emphasis remap=tt>scbus0</emphasis>, <emphasis remap=tt>da0</emphasis>, <emphasis remap=tt>ppbus0</emphasis>, and <emphasis remap=tt>vp0</emphasis> drivers (the GENERIC kernel -contains everything except vp0). With all these drivers present, the -Parallel Port drive should be available as /dev/da0s4. Disks can -be mounted using <command>mount /dev/da0s4 /mnt</command> OR (for dos disks) <emphasis remap=tt>mount_msdos /dev/da0s4 /mnt</emphasis> as appropriate.</para> - -<para>Also check out <link linkend="jaz">this note on removable drives</link>, -and <link linkend="disklabel">this note on 'formatting'</link>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> Does FreeBSD support JAZ, EZ and other removable drives? - </para></question><answer> - -<para>Apart from the IDE version of the EZ drive, these are all SCSI -devices, so the should all look like SCSI disks to FreeBSD, and -the IDE EZ should look like an IDE drive.</para> - -<para><anchor id="jaz">I'm not sure how well FreeBSD supports changing -the media out while running. You will of course need to dismount the -drive before swapping media, and make sure that any external units are -powered on when you boot the system so FreeBSD can see them.</para> - -<para>See <link linkend="disklabel">this note on 'formatting'</link>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Which multi-port serial cards are supported by FreeBSD?</para></question><answer> - -<para>There is a list of these in the <ulink URL="../handbook/install-hw.html#INSTALL-MISC">Miscellaneous devices</ulink> -section of the handbook.</para> - -<para>Some unnamed clone cards have also been known to work, especially -those that claim to be AST compatible.</para> - -<para>Check the -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sio(4)">sio</ulink> man page to get more information on configuring such cards.</para> - -</answer></qandaentry> - -<qandaentry> - <question id="usbkbd"> - <para>I have a USB keyboard. Does FreeBSD support it?</para> - </question> - - <answer> - <para>USB device support was added to FreeBSD 3.1. However, it is - still in preliminary state and may not always work as of version - 3.2. If you want to experiment with the USB mouse support, follow - the procedure described below.</para> - - <orderedlist> - <listitem> - <para>Use FreeBSD 3.2 or later.</para> - </listitem> - - <listitem> - <para>Add the following lines to your kernel configuration file, - and rebuild the kernel.</para> - - <programlisting> -controller uhci0 -controller ohci0 -controller usb0 -controller ukbd0 -options KBD_INSTALL_CDEV</programlisting> - </listitem> - - <listitem> - <para>Go to the <filename>/dev</filename> directory and create - device nodes as follows:</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>./MAKEDEV kbd0 kbd1</userinput></screen> - </listitem> - - <listitem> - <para>Edit <filename>/etc/rc.conf</filename> and add the following - lines:</para> - - <programlisting> -usbd_enable="YES" -usbd_flags=""</programlisting> - </listitem> - </orderedlist> - - <para>After the system is rebooted, the AT keyboard becomes - <devicename>/dev/kbd0</devicename> and the USB keyboard becomes - <devicename>/dev/kbd1</devicename>, if both are connected to the - system. If there is the USB keyboard only, it will be - <devicename>/dev/ukbd0</devicename>.</para> - - <para>If you want to use the USB keyboard in the console, you have to - explicitly tell the console driver to use the existence of the USB - keyboard. This can be done by running the following command as a - part of system initialization.</para> - - <screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/null</userinput></screen> - - <para>Note that if the USB keyboard is the only keyboard, it is - accessed as <devicename>/dev/kbd0</devicename>, thus, the command - should look like:</para> - - <screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd0 < /dev/ttyv0 > /dev/null</userinput></screen> - - <para><filename>/etc/rc.i386</filename> is a good place to add the - above command.</para> - - <para>Once this is done, the USB keyboard should work in the X - environment as well without any special settings.</para> - - <para>Hot-plugging and unplugging of the USB keyboard may not work - quite right yet. It is a good idea to connect the keyboard before - you start the system and leave it connected until the system is - shutdown to avoid troubles.</para> - - <para>See the &man.ukbd.4; man page for more information.</para> - </answer> -</qandaentry> - -<qandaentry><question -id="busmouse"> -<para>I have an unusual bus mouse. How do I set it up?</para></question><answer> - -<para>FreeBSD supports the bus mouse and the InPort bus mouse from such -manufactures as Microsoft, Logitech and ATI. The bus device driver -is compiled in the GENERIC kernel by default in FreeBSD versions 2.X, but -not included in version 3.0 or later. If you are building -a custom kernel with the bus mouse driver, make sure to add the -following line to the kernel config file</para> - -<para>In FreeBSD 3.0 or before, add:</para> - -<para> -<literallayout> device mse0 at isa? port 0x23c tty irq5 vector mseintr - </literallayout> -</para> - -<para>In FreeBSD 3.X, the line should be:</para> - -<para> -<literallayout> device mse0 at isa? port 0x23c tty irq5 - </literallayout> -</para> - -<para>And in FreeBSD 4.X and later, the line should read:</para> - -<para> -<literallayout> device mse0 at isa? port 0x23c irq5 -</literallayout> -</para> - -<para>Bus mice usually comes with dedicated interface cards. -These cards may allow you to set the port address and the IRQ number other -than shown above. Refer to the manual of your mouse and the -&man.mse.4; man page for more information.</para> - -</answer></qandaentry> - -<qandaentry><question -id="ps2mouse"> -<para> How do I use my PS/2 (``mouse port'' or ``keyboard'') mouse?</para></question><answer> - -<para>If you're running a post-2.2.5 version of FreeBSD, the necessary -driver, <devicename>psm</devicename>, is included and enabled in the kernel. The kernel -should detect your PS/2 mouse at boot time.</para> - -<para>If you're running a previous but relatively recent version of -FreeBSD (2.1.x or better) then you can simply enable it in the -kernel configuration menu at installation time, otherwise later with -<option>-c</option> at the <command>boot:</command> prompt. It is disabled by default, so you will need -to enable it explicitly.</para> - -<para>If you're running an older version of FreeBSD then you'll have to -add the following lines to your kernel configuration file and compile -a new kernel.</para> - -<para>In FreeBSD 3.0 or earlier, the line should be:</para> - -<para> -<literallayout> device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr - </literallayout> -</para> - -<para>In FreeBSD 3.1 or later, the line should be:</para> - -<para> -<literallayout> device psm0 at isa? tty irq 12 - </literallayout> -</para> - -<para>In FreeBSD 4.0-CURRENT or later, the line should be:</para> - -<para> -<literallayout> device psm0 at atkbdc? irq 12 - </literallayout> -</para> - -<para>See the <ulink URL="../handbook/kernelconfig.html">Handbook entry on configuring the kernel</ulink> if you've no -experience with building kernels.</para> - -<para>Once you have a kernel detecting <devicename>psm0</devicename> correctly at boot time, -make sure that an entry for <devicename>psm0</devicename> exists in <filename>/dev</filename>. You can do this -by typing:</para> - -<para> -<literallayout> cd /dev; sh MAKEDEV psm0 - </literallayout> -</para> - -<para>when logged in as root.</para> - -</answer></qandaentry> - -<qandaentry><question -id="moused"> -<para>Is it possible to make use of a mouse in any way outside the X Window?</para></question><answer> - -<para>If you are using the default console driver, syscons, you can -use a mouse pointer in text consoles to cut & paste text. -Run the mouse daemon, moused, and turn on the mouse pointer -in the virtual console:</para> - -<para> -<literallayout> moused -p /dev/xxxx -t yyyy - vidcontrol -m on - </literallayout> -</para> - -<para>Where <emphasis remap=tt>xxxx</emphasis> is the mouse device name and <emphasis remap=tt>yyyy</emphasis> -is a protocol type for the mouse. See the -&man.moused.8; man page for supported protocol types. </para> - -<para>You may wish to run the mouse daemon automatically when the -system starts. In version 2.2.1, set the following variables in -<filename>/etc/sysconfig</filename>.</para> - -<para> -<literallayout> mousedtype="yyyy" - mousedport="xxxx" - mousedflags="" - </literallayout> -</para> - -<para>In versions 2.2.2 to 3.0, set the following variables in -<filename>/etc/rc.conf</filename>.</para> - -<para> -<literallayout> moused_type="yyyy" - moused_port="xxxx" - moused_flags="" - </literallayout> -</para> - -<para>In 3.1 and later, assuming you have a PS/2 mouse, all you need -to is add “moused_enable="YES" to -<filename>/etc/rc.conf</filename>.</para> - -<para>In addition, if you would like to be able to use the mouse -daemon on all virtual terminals instead of just console at boot-time, -add the following to <filename>/etc/rc.conf</filename>.</para> - -<para> -<literallayout> allscreens_flags="-m on" - </literallayout> -</para> - -<para>Staring from FreeBSD 2.2.6, the mouse daemon is capable of -determining the correct protocol type automatically unless the mouse -is a relatively old serial mouse model. Specify ``<emphasis remap=tt>auto</emphasis>'' as -the protocol to invoke automatic detection.</para> - -<para>When the mouse daemon is running, access to the mouse needs to be -coordinated between the mouse daemon and other programs such as the -X Window. Refer to <link linkend="x-and-moused">another section</link> -on this issue.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I cut and paste text with mouse in the text console?</para></question><answer> - -<para>Once you get the mouse daemon running (see <link linkend="moused">previous section</link>), hold down the button 1 (left button) -and move the mouse to select a region of -text. Then, press the button 2 (middle button) or the button 3 (right -button) to paste it at the text cursor.</para> - -<para>In versions 2.2.6 and later, pressing the button 2 will paste -the text. Pressing the button 3 will ``extend'' the selected region -of text. If your mouse does not have the middle button, you may wish -to emulate it or remap buttons using moused options. See the -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?moused(8)">moused(8)</ulink> -man page for details.</para> - -</answer></qandaentry> - -<qandaentry> - <question id="usbmouse"> - <para>I have a USB mouse. Does FreeBSD support the USB mouse?</para> - </question> - - <answer> - <para>USB device support was added to FreeBSD 3.1. However, it is - still in a preliminary state and may not always work as of version - 3.2. If you want to experiment with the USB mouse support, follow - the procedure described below.</para> - - <orderedlist> - <listitem> - <para>Use FreeBSD 3.2 or later.</para> - </listitem> - - <listitem> - <para>Add the following lines to your kernel configuration file, - and rebuild the kernel.</para> - - <programlisting> -controller uhci0 -controller ohci0 -controller usb0 -device ums0</programlisting> - </listitem> - - <listitem> - <para>Go to the <filename>/dev</filename> directory and create a - device node as follows:</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>./MAKEDEV ums0</userinput></screen> - </listitem> - - <listitem> - <para>Edit <filename>/etc/rc.conf</filename> and add the following - lines:</para> - - <programlisting> -moused_enable="YES" -moused_type="auto" -moused_port="/dev/ums0" -moused_flags="" -usbd_enable="YES" -usbd_flags=""</programlisting> - - <para>See the <link linkend="moused">previous section</link> for - more detailed discussion on moused.</para> - </listitem> - - <listitem> - <para>In order to use the USB mouse in the X session, edit - <filename>XF86Config</filename>. If you are using XFree86 3.3.2 - or later, be sure to have the following lines in the - <emphasis>Pointer</emphasis> section:</para> - - <programlisting> -Device "/dev/sysmouse" -Protocol "Auto"</programlisting> - - <para>If you are using earlier versions of XFree86, be sure to - have the following lines in the <emphasis>Pointer</emphasis> - section:</para> - - <programlisting> -Device "/dev/sysmouse" -Protocol "SysMouse"</programlisting> - </listitem> - </orderedlist> - - <para>Refer to <link linkend="x-and-moused">another section</link> on - the mouse support in the X environment.</para> - - <para>Hot-plugging and unplugging of the USB mouse may not work quite - right yet. It is a good idea connect the mouse before you start the - system and leave it connected until the system is shutdown to avoid - trouble.</para> - </answer> -</qandaentry> - -<qandaentry><question> -<para>My mouse has a fancy wheel and buttons. Can I use them in FreeBSD?</para></question><answer> - -<para>The answer is, unfortunately, “It depends”. These mice with -additional features require specialized driver in most cases. -Unless the mouse device driver or the user program has specific -support for the mouse, it will act just like a standard two, or -three button mouse.</para> - -<para>For the possible usage of wheels in the X Window environment, -refer to <link linkend="x-and-wheel">that section</link>.</para> - -</answer></qandaentry> - -<qandaentry> - <question id="psmerr"> - <para>My mouse does not seem working. The mouse cursor jumps around - on the screen. The mouse has a wheel and is connected to the PS/2 - mouse port.</para> - </question> - - <answer> - <para>The PS/2 mouse driver psm in FreeBSD versions 3.2 or earlier has - difficulty with some wheel mice, including Logitech model M-S48 and - its OEM siblings. Apply the following patch to - <filename>/sys/i386/isa/psm.c</filename> and rebuild the - kernel.</para> - - <programlisting> -Index: psm.c -=================================================================== -RCS file: /src/CVS/src/sys/i386/isa/Attic/psm.c,v -retrieving revision 1.60.2.1 -retrieving revision 1.60.2.2 -diff -u -r1.60.2.1 -r1.60.2.2 ---- psm.c 1999/06/03 12:41:13 1.60.2.1 -+++ psm.c 1999/07/12 13:40:52 1.60.2.2 -@@ -959,14 +959,28 @@ - sc->mode.packetsize = vendortype[i].packetsize; - - /* set mouse parameters */ -+#if 0 -+ /* -+ * A version of Logitech FirstMouse+ won't report wheel movement, -+ * if SET_DEFAULTS is sent... Don't use this command. -+ * This fix was found by Takashi Nishida. -+ */ - i = send_aux_command(sc->kbdc, PSMC_SET_DEFAULTS); - if (verbose >= 2) - printf("psm%d: SET_DEFAULTS return code:%04x\n", unit, i); -+#endif - if (sc->config & PSM_CONFIG_RESOLUTION) { - sc->mode.resolution - = set_mouse_resolution(sc->kbdc, -- (sc->config & PSM_CONFIG_RESOLUTION) - 1); -+ (sc->config & PSM_CONFIG_RESOLUTION) - 1); -+ } else if (sc->mode.resolution >= 0) { -+ sc->mode.resolution -+ = set_mouse_resolution(sc->kbdc, sc->dflt_mode.resolution); -+ } -+ if (sc->mode.rate > 0) { -+ sc->mode.rate = set_mouse_sampling_rate(sc->kbdc, sc->dflt_mode.rate); - } -+ set_mouse_scaling(sc->kbdc, 1); - - /* request a data packet and extract sync. bits */ - if (get_mouse_status(sc->kbdc, stat, 1, 3) < 3) {</programlisting> - - <para>Versions later than 3.2 should be all right.</para> - </answer> -</qandaentry> - -<qandaentry><question> -<para> How do I use the mouse/trackball/touchpad on my laptop? - </para></question><answer> - -<para>Please refer to <link linkend="ps2mouse">the answer to the previous question</link>. And check out <link linkend="pao">this note</link> on the Mobile -Computing page.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>What types of tape drives are supported?</para></question><answer> - -<para>FreeBSD supports SCSI, QIC-36 (with a QIC-02 interface) and -QIC-40/80 (Floppy based) tape drives. This includes 8-mm (aka Exabyte) -and DAT drives. The QIC-40/80 drives are known to be slow.</para> - -<para>Some of the early 8-mm drives are not quite compatible with SCSI-2, -and may not work well with FreeBSD.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Does FreeBSD support tape changers?</para></question><answer> - -<para>FreeBSD 2.2 supports SCSI changers using the <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ch(4)">ch(4)</ulink> device and -the <ulink -URL="http://www.FreeBSD.org/cgi/man.cgi?chio(1)">chio(1)</ulink> -command. The details of how you actually control the changer can be -found in the <ulink -URL="http://www.FreeBSD.org/cgi/man.cgi?chio(4)">chio(1)</ulink> -man page.</para> - -<para>If you're not using <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?amanda">AMANDA</ulink> or -some other product that already understands changers, remember that -they're only know how to move a tape from one point to another, so -you need to keep track of which slot a tape is in, and which slot the -tape currently in the drive needs to go back to.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Which sound cards are supported by FreeBSD?</para></question><answer> - -<para>FreeBSD supports the SoundBlaster, SoundBlaster Pro, SoundBlaster -16, Pro Audio Spectrum 16, AdLib and Gravis UltraSound sound cards. -There is also limited support for MPU-401 and compatible MIDI cards. -Cards conforming to the Microsoft Sound System specification are also -supported through the pcm driver.</para> - -<para><acronym>NOTE</acronym> This is only for sound! This driver does not support -CD-ROMs, SCSI or joysticks on these cards, except for the -SoundBlaster. The SoundBlaster SCSI interface and some non-SCSI -CDROMS are supported, but you can't boot off this device.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Workarounds for no sound from es1370 with pcm driver?</para></question><answer> - -<para>You can run the following command everytime the machine booted up:</para> - -<para>mixer pcm 100 vol 100 cd 100</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Which network cards does FreeBSD support?</para></question><answer> - -<para>See the <ulink URL="../handbook/install-hw.html#INSTALL-NICS">Ethernet cards</ulink> section of the handbook for a more -complete list. </para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I don't have a math co-processor - is that bad?</para></question><answer> - -<para><emphasis remap=tt>Note</emphasis> This will only affect 386/486SX/486SLC owners - other -machines will have one built into the CPU.</para> - -<para>In general this will not cause any problems, but there are -circumstances where you will take a hit, either in performance or -accuracy of the math emulation code (see the section <link linkend="emul">on FP emulation</link>). In particular, drawing arcs in X will be -VERY slow. It is highly recommended that you buy a math -co-processor; it's well worth it.</para> - -<para><acronym>NOTE</acronym> Some math co-processors are better than others. It pains -us to say it, but nobody ever got fired for buying Intel. Unless -you're sure it works with FreeBSD, beware of clones.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>What other devices does FreeBSD support?</para></question><answer> - -<para>See the <ulink URL="../handbook/install.html#INSTALL-MISC">Handbook</ulink> -for the list of other devices supported.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Does FreeBSD support power management on my laptop?</para></question><answer> - -<para>FreeBSD supports APM on certain machines. Please look in the -<acronym>LINT</acronym> kernel config file, searching for the <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?apm(4)">APM</ulink> keyword.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>My Micron system hangs at boot time</para></question><answer> - -<para>Certain Micron motherboards have a non-conforming PCI BIOS -implementation that causes grief when FreeBSD boots because -PCI devices don't get configured at their reported addresses.</para> - -<para>Disable the "Plug and Play Operating System" flag in the BIOS -to work around this problem. More information can be found at -<ulink URL="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron</ulink></para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I have a newer Adaptec controller and FreeBSD can't find it. - </para></question><answer> - -<para>The newer AIC789x series Adaptec chips are supported under the CAM SCSI -framework which made it's debut in 3.0. Patches against 2.2-STABLE -are in <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/">ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/</ulink>. -A CAM-enhanced boot floppy is available at <ulink URL="http://people.FreeBSD.org/~abial/cam-boot/">http://people.FreeBSD.org/~abial/cam-boot/</ulink>. In both cases read the README before -beginning. </para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I have an internal Plug & Play modem and FreeBSD can't find it. - </para></question><answer> - -<para>You will need to add the modem's PnP ID to the PnP ID list in the serial driver. -To enable Plug & Play support, compile a new kernel with <emphasis remap=tt>controller pnp0</emphasis> in -the configuration file, then reboot the system. The kernel will print the PnP IDs -of all the devices it finds. Copy the PnP ID from the modem to the table in -<filename>/sys/i386/isa/sio.c</filename>, at about line 2777. Look for the string "SUP1310" -in the structure "siopnp_ids[]" to -find the table. Build the kernel again, install, reboot, and your modem should be found.</para> - -<para>You may have to manually configure the PnP devices using the `pnp' command in the -boot-time configuration with a command like -<literallayout> pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8 - </literallayout> - -to make the modem show.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I get the boot: prompt to show on the serial console? - </para></question><answer> - -<para> -<orderedlist> - -<listitem> -<para>Build a kernel with <emphasis remap=tt>options COMCONSOLE</emphasis>.</para> -</listitem> - -<listitem> -<para>Create /boot.config and place <option>-P</option> as the only text in the file.</para> -</listitem> - -<listitem> -<para>Unplug the keyboard from the system.</para> -</listitem> - -</orderedlist> -</para> - -<para>See <filename>/usr/src/sys/i386/boot/biosboot/README.serial</filename> for information.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Why doesn't my 3Com PCI network card work with my Micron computer?</para></question><answer> - -<para>Certain Micron motherboards have a non-conforming PCI BIOS -implementation that does not configure PCI devices at -the addresses reported. This causes grief when FreeBSD boots.</para> - -<para>To work around this problem, disable the "Plug and Play Operating -System" flag in the BIOS. </para> - -<para>More information on this problem is available at 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> - -</answer></qandaentry> - -<qandaentry><question> -<para>Does FreeBSD support Symmetric Multiprocessing (SMP)? - </para></question><answer> - -<para>SMP is supported in 3.0-STABLE and later releases only. SMP is -not enabled in the <emphasis>GENERIC</emphasis> kernel, so you will -have to recompile your kernel to enable SMP. Take a look at -<filename>/sys/i386/conf/LINT</filename> to figure out what options to put in -your kernel config file.</para> - -</answer></qandaentry> - - <qandaentry> - <question> - <para>The boot floppy hangs on a system with an ASUS K7V - motherboard. How do I fix this?</para> - </question> - - <answer> - <para>Go in to the BIOS setup and disable the boot virus - protection.</para> - </answer> - </qandaentry> - </qandaset> -</chapter> - -<chapter -id="troubleshoot"> -<title>Troubleshooting</title> - - -<qandaset><qandaentry><question -id="awre"> -<para>I have bad blocks on my hard drive!</para></question><answer> - -<para>With SCSI drives, the drive should be capable of re-mapping -these automatically. However, many drives are shipped with -this feature disabled, for some mysterious reason...</para> - -<para>To enable this, you'll need to edit the first device page mode, -which can be done on FreeBSD by giving the command (as root)</para> - -<para> -<literallayout> scsi -f /dev/rsd0c -m 1 -e -P 3 - </literallayout> -</para> - -<para>and changing the values of AWRE and ARRE from 0 to 1:-</para> - -<para> -<literallayout> AWRE (Auto Write Reallocation Enbld): 1 - ARRE (Auto Read Reallocation Enbld): 1 - </literallayout> -</para> - -<para>The following paragraphs were submitted by -<ulink URL="mailto:tedm@toybox.placo.com">Ted Mittelstaedt</ulink>:</para> - -<para>For IDE drives, any bad block is usually a sign of potential trouble. -All modern IDE drives come with internal bad-block remapping turned -on. All IDE hard drive manufacturers today offer extensive -warranties and will replace drives with bad blocks on them.</para> - -<para>If you still want to attempt to rescue an IDE drive with bad blocks, -you can attempt to download the IDE drive manufacturer's IDE diagnostic -program, and run this against the drive. Sometimes these programs can -be set to force the drive electronics to rescan the drive for bad blocks -and lock them out.</para> - -<para>For ESDI, RLL and MFM drives, bad blocks are a normal part of the -drive and are no sign of trouble, generally. With a PC, the disk drive -controller card and BIOS handle the task of locking out bad sectors. -This is fine for operating systems like DOS that use BIOS code to -access the disk. However, FreeBSD's disk driver does not go through -BIOS, therefore a mechanism, bad144, exists that replaces this -functionality. bad144 only works with the wd driver (which means it -is not supported in FreeBSD 4.0), -it is NOT able to be used with SCSI. bad144 works by entering all bad -sectors found into a special file.</para> - -<para>One caveat with bad144 - the bad block special file is placed on the -last track of the disk. As this file may possibly contain a listing for -a bad sector that would occur near the beginning of the disk, where the -/kernel file might be located, it therefore must be accessible to the -bootstrap program that uses BIOS calls to read the kernel file. This -means that the disk with bad144 used on it must not exceed 1024 -cylinders, 16 heads, and 63 sectors. This places an effective limit -of 500MB on a disk that is mapped with bad144.</para> - -<para>To use bad144, simply set the "Bad Block" scanning to ON in the -FreeBSD fdisk screen during the initial install. This works up through -FreeBSD 2.2.7. The disk must have less than 1024 cylinders. It is -generally recommended that the disk drive has been in operation for at -least 4 hours prior to this to allow for thermal expansion and track -wandering.</para> - -<para>If the disk has more than 1024 cylinders (such as a large ESDI drive) -the ESDI controller uses a special translation mode to make it work -under DOS. The wd driver understands about these translation modes, -IF you enter the "translated" geometry with the "set geometry" command -in fdisk. You must also NOT use the "dangerously dedicated" mode of -creating the FreeBSD partition, as this ignores the geometry. Also, -even though fdisk will use your overridden geometry, it still knows the -true size of the disk, and will attempt to create a too large FreeBSD -partition. If the disk geometry is changed to the translated geometry, -the partition MUST be manually created with the number of blocks.</para> - -<para>A quick trick to use is to set up the large ESDI disk with the ESDI -controller, boot it with a DOS disk and format it with a DOS partition. -Then, boot the FreeBSD install and in the fdisk screen, read off and -write down the blocksize and block numbers for the DOS partition. Then, -reset the geometry to the same that DOS uses, delete the DOS partition, -and create a "cooperative" FreeBSD partition using the blocksize you -recorded earlier. Then, set the partition bootable and turn on bad -block scanning. During the actual install, bad144 will run first, -before any filesystems are created. (you can view this with an Alt-F2) -If it has any trouble creating the badsector file, you have set too -large a disk geometry - reboot the system and start all over again -(including repartitioning and reformatting with DOS).</para> - -<para>If remapping is enabled and you are seeing bad blocks, consider -replacing the drive. The bad blocks will only get worse as time goes on.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>FreeBSD does not recognize my Bustek 742a EISA SCSI!</para></question><answer> - -<para>This info is specific to the 742a but may also cover other -Buslogic cards. (Bustek = Buslogic)</para> - -<para>There are 2 general ``versions'' of the 742a card. They are -hardware revisions A-G, and revisions H - onwards. The revision -letter is located after the Assembly number on the edge of the -card. The 742a has 2 ROM chips on it, one is the BIOS chip and -the other is the Firmware chip. FreeBSD doesn't care what -version of BIOS chip you have but it does care about what version -of firmware chip. Buslogic will send upgrade ROMS out if you -call their tech support dept. The BIOS and Firmware chips are -shipped as a matched pair. You must have the most current -Firmware ROM in your adapter card for your hardware revision.</para> - -<para>The REV A-G cards can only accept BIOS/Firmware sets up to -2.41/2.21. The REV H- up cards can accept the most current -BIOS/Firmware sets of 4.70/3.37. The difference between the -firmware sets is that the 3.37 firmware supports ``round robin''</para> - -<para>The Buslogic cards also have a serial number on them. If you -have a old hardware revision card you can call the Buslogic RMA -department and give them the serial number and attempt to -exchange the card for a newer hardware revision. If the card is -young enough they will do so.</para> - -<para>FreeBSD 2.1 only supports Firmware revisions 2.21 onward. If you -have a Firmware revision older than this your card will not be -recognized as a Buslogic card. It may be recognized as an -Adaptec 1540, however. The early Buslogic firmware contains an -AHA1540 ``emulation'' mode. This is not a good thing for an EISA -card, however.</para> - -<para>If you have an old hardware revision card and you obtain the 2.21 -firmware for it, you will need to check the position of jumper W1 -to B-C, the default is A-B.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> My HP Netserver's SCSI controller is not detected! - </para></question><answer> - -<para>This is basically a known problem. The EISA on-board SCSI controller -in the HP Netserver machines occupies EISA slot number 11, so all -the ``true'' EISA slots are in front of it. Alas, the address space -for EISA slots >= 10 collides with the address space assigned to PCI, -and FreeBSD's auto-configuration currently cannot handle this -situation very well.</para> - -<para>So now, the best you can do is to pretend there is no address -range clash :), by bumping the kernel option <symbol>EISA_SLOTS</symbol> -to a value of 12. -Configure and compile a kernel, as described in the -<ulink URL="../handbook/kernelconfig.html">Handbook entry on configuring the kernel</ulink>.</para> - -<para>Of course, this does present you with a chicken-and-egg problem when -installing on such a machine. In order to work around this -problem, a special hack is available inside <emphasis>UserConfig</emphasis>. -Do not use the ``visual'' interface, but the plain command-line -interface there. Simply type</para> - -<para> -<literallayout> eisa 12 - quit - </literallayout> -</para> - -<para>at the prompt, and install your system as usual. While it's -recommended you compile and install a custom kernel anyway,</para> - -<para>Hopefully, future versions will have a proper fix for this problem.</para> - -<para><emphasis remap=tt>NOTE:</emphasis> You can not use a <emphasis remap=bf>dangerously dedicated</emphasis> disk with -an HP Netserver. See <link linkend="dedicate">this note</link> for -more info.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>What's up with this CMD640 IDE controller?</para></question><answer> - -<para>It's broken. It cannot handle commands on both channels -simultaneously.</para> - -<para>There's a workaround available now and it is enabled automatically -if your system uses this chip. For the details refer to the -manual page of the disk driver (man 4 wd).</para> - -<para>If you're already running FreeBSD 2.2.1 or 2.2.2 with a -CMD640 IDE controller and you want to use the second channel, -build a new kernel with <emphasis remap=tt>options "CMD640"</emphasis> enabled. This -is the default for 2.2.5 and later.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I keep seeing messages like ``<emphasis remap=tt>ed1: timeout</emphasis>''.</para></question><answer> - -<para>This is usually caused by an interrupt conflict (e.g., two boards -using the same IRQ). FreeBSD prior to 2.0.5R used to be tolerant -of this, and the network driver would still function in the -presence of IRQ conflicts. However, with 2.0.5R and later, IRQ -conflicts are no longer tolerated. Boot with the -c option and -change the ed0/de0/... entry to match your board.</para> - -<para>If you're using the BNC connector on your network card, you may -also see device timeouts because of bad termination. To check this, -attach a terminator directly to the NIC (with no cable) and see if -the error messages go away. </para> - -<para>Some NE2000 compatible cards will give this error if there is -no link on the UTP port or if the cable is disconnected.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>When I mount a CDROM, I get ``Incorrect super block''.</para></question><answer> - -<para>You have to tell -<ulink -URL="http://www.FreeBSD.org/cgi/man.cgi?mount(8)">mount</ulink> -the type of the device that you want to mount. By default, -<ulink -URL="http://www.FreeBSD.org/cgi/man.cgi?mount(8)">mount(8)</ulink> -will assume the filesystem is of type ``<emphasis remap=tt>ufs</emphasis>''. You want to mount -a CDROM filesystem, and you do this by specifying the ``<option>-t cd9660</option>'' -option to <ulink -URL="http://www.FreeBSD.org/cgi/man.cgi?mount(8)">mount(8) -</ulink>. This does, of course, assume that the -CDROM contains an ISO 9660 filesystem, which is what most CDROMs -have. As of 1.1R, FreeBSD automatically understands the Rock Ridge -(long filename) extensions as well.</para> - -<para>As an example, if you want to mount the CDROM device, -``<filename>/dev/cd0c</filename>'', under <filename>/mnt</filename>, you would execute:</para> - -<para> -<literallayout> mount -t cd9660 /dev/cd0c /mnt - </literallayout> -</para> - -<para>Note that your device name (``<filename>/dev/cd0c</filename>'' in this -example) could be different, depending on the CDROM interface. -Note that the ``<option>-t cd9660</option>'' option just causes the -``<symbol>mount_cd9660</symbol>'' command to be executed, and so the -above example could be shortened to:</para> - -<para> -<literallayout> mount_cd9660 /dev/cd0c /mnt - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>When I mount a CDROM, I get ``Device not configured''.</para></question><answer> - -<para>This generally means that there is no CDROM in the CDROM drive, -or the drive is not visible on the bus. Feed the drive -something, and/or check its master/slave status if it is -IDE (ATAPI). It can take a couple of seconds for a CDROM drive -to notice that it's been fed, so be patient.</para> - -<para>Sometimes a SCSI CD-ROM may be missed because it hadn't enough time -to answer the bus reset. If you have a SCSI CD-ROM please try to -add the following symbol into your kernel configuration file -and recompile.</para> - -<para> -<literallayout> options "SCSI_DELAY=15" - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>My printer is ridiculously slow. What can I do ?</para></question><answer> - -<para>If it's parallel, and the only problem is that it's terribly -slow, try setting your printer port into ``polled'' mode:</para> - -<para> -<literallayout> lptcontrol -p - </literallayout> -</para> - -<para>Some newer HP printers are claimed not to work correctly in -interrupt mode, apparently due to some (not yet exactly -understood) timing problem.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>My programs occasionally die with ``Signal 11'' errors.</para></question><answer> - -<para>This can be caused by bad hardware (memory, motherboard, etc.). -Try running a memory-testing program on your PC. Note that, even -though every memory testing program you try will report your -memory as being fine, it's possible for slightly marginal memory -to pass all memory tests, yet fail under operating conditions -(such as during bus mastering DMA from a SCSI controller like the -Adaptec 1542, when you're beating on memory by compiling a kernel, -or just when the system's running particularly hot).</para> - -<para>The SIG11 FAQ (listed below) points up slow memory as being the -most common problem. Increase the number of wait states in your -BIOS setup, or get faster memory.</para> - -<para>For me the guilty party has been bad cache RAM or a bad on-board -cache controller. Try disabling the on-board (secondary) cache in -the BIOS setup and see if that solves the problem.</para> - -<para>There's an extensive FAQ on this at -<ulink URL="http://www.bitwizard.nl/sig11/">the SIG11 problem FAQ</ulink></para> - -</answer></qandaentry> - -<qandaentry><question> -<para>When I boot, the screen goes black and loses sync!</para></question><answer> - -<para>This is a known problem with the ATI Mach 64 video card. -The problem is that this card uses address <emphasis remap=tt>2e8</emphasis>, and -the fourth serial port does too. Due to a bug (feature?) in the -<ulink -URL="http://www.FreeBSD.org/cgi/man.cgi?sio(4)">sio(4)</ulink> -driver it will touch this port even if you don't have the -fourth serial port, and <emphasis remap=bf>even</emphasis> if you disable sio3 (the fourth -port) which normally uses this address.</para> - -<para>Until the bug has been fixed, you can use this workaround:</para> - -<para> -<orderedlist> - -<listitem> -<para>Enter <option>-c</option> at the bootprompt. (This will put the kernel -into configuration mode). -</para> -</listitem> - -<listitem> -<para>Disable <emphasis remap=tt>sio0</emphasis>, <emphasis remap=tt>sio1</emphasis>, <emphasis remap=tt>sio2</emphasis> and <emphasis remap=tt>sio3</emphasis> -(all of them). This way the sio driver doesn't get activated --> no problems. -</para> -</listitem> - -<listitem> -<para>Type exit to continue booting.</para> -</listitem> - -</orderedlist> -</para> - -<para>If you want to be able to use your serial ports, -you'll have to build a new kernel with the following -modification: in <filename>/usr/src/sys/i386/isa/sio.c</filename> find the -one occurrence of the string <literal>0x2e8</literal> and remove that string -and the preceding comma (keep the trailing comma). Now follow -the normal procedure of building a new kernel.</para> - -<para>Even after applying these workarounds, you may still find that -the X Window System does not work properly. If this is the case, make -sure that the XFree86 version you are using is at least XFree86 3.3.3 -or higher. This version and upwards has built-in support for the -Mach64 cards and even a dedicated X server for those cards.</para> -</answer></qandaentry> - -<qandaentry><question -id="reallybigram"> -<para> I have 128 MB of RAM but the system only uses 64 MB. - - </para></question><answer> - -<para>Due to the manner in which FreeBSD gets the memory size from the -BIOS, it can only detect 16 bits worth of Kbytes in size (65535 -Kbytes = 64MB) (or less... some BIOSes peg the memory size to 16M). -If you have more than 64MB, FreeBSD will attempt to detect it; -however, the attempt may fail.</para> - -<para>To work around this problem, you need to use the -kernel option specified below. There is a way to get complete -memory information from the BIOS, but we don't have room in the -bootblocks to do it. Someday when lack of room in the bootblocks -is fixed, we'll use the extended BIOS functions to get the full -memory information...but for now we're stuck with the kernel -option.</para> - -<para><literal>options "MAXMEM=<n>"</literal></para> - -<para>Where <emphasis remap=tt>n</emphasis> is your memory in Kilobytes. For a 128 MB machine, -you'd want to use <emphasis remap=tt>131072</emphasis>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>FreeBSD 2.0 panics with ``kmem_map too small!''</para></question><answer> - -<para><emphasis remap=tt>Note</emphasis> The message may also be ``mb_map too small!''</para> - -<para>The panic indicates that the system ran out of virtual memory for -network buffers (specifically, mbuf clusters). You can increase -the amount of VM available for mbuf clusters by adding:</para> - -<para><literal>options "NMBCLUSTERS=<n>"</literal></para> - -<para>to your kernel config file, where <n> is a number in the -range 512-4096, depending on the number of concurrent TCP -connections you need to support. I'd recommend trying 2048 - this -should get rid of the panic completely. You can monitor the -number of mbuf clusters allocated/in use on the system with -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?netstat(1)">netstat -m</ulink>. The default value for NMBCLUSTERS is -<emphasis remap=tt>512 + MAXUSERS * 16</emphasis>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>``CMAP busy panic'' when rebooting with a new kernel.</para></question><answer> - -<para>The logic that attempts to detect an out of date -<filename>/var/db/kvm_*.db</filename> files sometimes fails and using a -mismatched file can sometimes lead to panics.</para> - -<para>If this happens, reboot single-user and do:</para> - -<para> -<literallayout> rm /var/db/kvm_*.db - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>ahc0: brkadrint, Illegal Host Access at seqaddr 0x0</para></question><answer> - -<para>This is a conflict with an Ultrastor SCSI Host Adapter. </para> - -<para>During the boot process enter the kernel configuration menu and -disable <ulink -URL="http://www.FreeBSD.org/cgi/man.cgi?uha(4)">uha0</ulink>, -which is causing the problem.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Sendmail says ``mail loops back to myself''</para></question><answer> - -<para>This is answered in the sendmail FAQ as follows:-</para> - -<para> -<literallayout> * I'm getting "Local configuration error" messages, such as: - - 553 relay.domain.net config error: mail loops back to myself - 554 <user@domain.net>... Local configuration error - - How can I solve this problem? - - You have asked mail to the domain (e.g., domain.net) to be - forwarded to a specific host (in this case, relay.domain.net) - by using an MX record, but the relay machine doesn't recognize - itself as domain.net. Add domain.net to /etc/sendmail.cw - (if you are using FEATURE(use_cw_file)) or add "Cw domain.net" - to /etc/sendmail.cf. - </literallayout> -</para> - -<para>The current version of the <ulink URL="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq">sendmail FAQ</ulink> is no longer maintained with the sendmail -release. It is however regularly posted to -<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>, and -<ulink URL="news:news.answers">news.answers</ulink>. -You can also receive a copy via email by sending a message to -<ulink URL="mailto:mail-server@rtfm.mit.edu">mail-server@rtfm.mit.edu</ulink> with the command "send -usenet/news.answers/mail/sendmail-faq" as the body of the -message.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Full screen applications on remote machines misbehave</para></question> -<answer> - -<para>The remote machine may be setting your terminal type -to something other than the <emphasis remap=tt>cons25</emphasis> terminal type -required by the FreeBSD console.</para> - -<para>There are a number of possible work-arounds for this problem: -<itemizedlist> - -<listitem> -<para>After logging on to the remote machine, set your TERM shell -variable to <emphasis remap=tt>ansi</emphasis> or -<emphasis remap=tt>sco</emphasis> if the remote machine knows -about these terminal types.</para> -</listitem> - -<listitem> -<para>Use a VT100 emulator like <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?screen-">screen</ulink> -at the FreeBSD console. -<emphasis remap=tt>screen</emphasis> offers you the ability to run multiple -concurrent sessions from one terminal, and is a neat program in its own right. -Each <emphasis remap=tt>screen</emphasis> window behaves like a VT100 terminal, -so the TERM variable at the remote end should be set to <emphasis remap=tt> -vt100</emphasis>. -</para> -</listitem> - -<listitem> -<para>Install the <emphasis remap=tt>cons25</emphasis> terminal database entry on -the remote machine. The way to do this depends on the operating system on the -remote machine. The system administration manuals for the remote system -should be able to help you here.</para> -</listitem> - -<listitem> -<para>Fire up an X server at the FreeBSD end and login to the remote machine -using an X based terminal emulator such as <emphasis remap=tt>xterm</emphasis> or -<emphasis remap=tt>rxvt</emphasis>. The TERM variable at the remote host -should be set to <emphasis remap=tt>xterm</emphasis> or <emphasis remap=tt>vt100 -</emphasis>.</para> -</listitem> - -</itemizedlist> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>My machine prints "calcru: negative time..."</para></question><answer> - -<para>This can be caused by various hardware and/or software ailments -relating to interrupts. It may be due to bugs but can also happen -by nature of certain devices. Running TCP/IP over the parallel -port using a large MTU is one good way to provoke this problem. -Graphics accelerators can also get you here, in which case you -should check the interrupt setting of the card first.</para> - -<para>A side effect of this problem are dying processes with the -message "SIGXCPU exceeded cpu time limit".</para> - -<para>For FreeBSD 3.0 and later from Nov 29, 1998 forward: If the -problem cannot be fixed otherwise the solution is to set -this sysctl variable: -<literallayout> sysctl -w kern.timecounter.method=1</literallayout> -</para> - -<para> This means a performance impact, but considering the cause of -this problem, you probably will not notice. If the problem -persists, keep the sysctl set to one and set the "NTIMECOUNTER" -option in your kernel to increasingly large values. If by the -time you have reached "NTIMECOUNTER=20" the problem isn't -solved, interrupts are too hosed on your machine for reliable -timekeeping.</para> - -</answer></qandaentry></qandaset> -</chapter> - -<chapter -id="commercial"> -<title>Commercial Applications</title> - -<para><acronym>NOTE</acronym> This section is still very sparse, though we're hoping, of -course, that companies will add to it! :) The FreeBSD group has no -financial interest in any of the companies listed here but simply -lists them as a public service (and feels that commercial interest -in FreeBSD can have very positive effects on FreeBSD's long-term -viability). We encourage commercial software vendors to send their -entries here for inclusion. See -<ulink URL="../commercial/commercial.html">the Vendors page</ulink> -for a longer list.</para> - - -<qandaset><qandaentry><question> -<para>Where can I get Motif for FreeBSD?</para></question><answer> - -<para>Contact <link linkend="apps2go">Apps2go</link> for the least expensive -ELF Motif 2.1.20 distribution for FreeBSD (either i386 or -Alpha).<anchor id="apps2go"></para> - -<para>There are two distributions, the "developement edition" and the -"runtime edition" (for much less). These distributions includes: -<itemizedlist> - -<listitem> -<para>OSF/Motif manager, xmbind, panner, wsm. -</para> -</listitem> - -<listitem> -<para>Development kit with uil, mrm, xm, xmcxx, include and Imake -files. -</para> -</listitem> - -<listitem> -<para>Static and dynamic ELF libraries (for use with FreeBSD 3.0 -and above). -</para> -</listitem> - -<listitem> -<para>Demonstration applets.</para> -</listitem> - -</itemizedlist> -</para> - -<para>Be sure to specify that you want the FreeBSD version of Motif when -ordering (don't forget to mention the architecture you want too)! Versions -for NetBSD and OpenBSD are also sold by <emphasis>Apps2go</emphasis>. -This is currently a FTP only download.</para> - -<para> -<variablelist> -<varlistentry><term>More info</term> -<listitem> -<para><ulink URL="http://www.apps2go.com/">Apps2go WWW page</ulink></para> - -<para></para> - -</listitem> -</varlistentry> - -<varlistentry><term>or</term> - -<listitem> -<para><ulink URL="mailto:sales@apps2go.com">Sales</ulink> or -<ulink URL="mailto:support@apps2go.com">Support</ulink> email addresses.</para> - -<para></para> - -</listitem> -</varlistentry> - -<varlistentry><term>or</term> - -<listitem> -<para>phone (817) 431 8775 or +1 817 431-8775</para> - -</listitem> -</varlistentry> -</variablelist> -</para> - -<para>Contact <link linkend="metrox">Metro Link</link> for an either ELF or -a.out Motif 2.1 distribution for FreeBSD.</para> - -<para>This distribution includes: -<itemizedlist> - -<listitem> -<para>OSF/Motif manager, xmbind, panner, wsm. -</para> -</listitem> - -<listitem> -<para>Development kit with uil, mrm, xm, xmcxx, include and Imake -files. -</para> -</listitem> - -<listitem> -<para>Static and dynamic libraries (specify ELF for use with FreeBSD -3.0 and later; or a.out for use with FreeBSD 2.2.8 and eariler). -</para> -</listitem> - -<listitem> -<para>Demonstration applets. -</para> -</listitem> - -<listitem> -<para>Preformatted man pages.</para> -</listitem> - -</itemizedlist> -</para> - -<para>Be sure to specify that you want the FreeBSD version of Motif -when ordering! Versions for Linux are also sold by -<emphasis>Metro Link</emphasis>. This is available on either a CDROM or for -FTP download.</para> - -<para>Contact <link linkend="xig">Xi Graphics</link> for an a.out Motif 2.0 -distribution for FreeBSD.</para> - -<para>This distribution includes: -<itemizedlist> - -<listitem> -<para>OSF/Motif manager, xmbind, panner, wsm. -</para> -</listitem> - -<listitem> -<para>Development kit with uil, mrm, xm, xmcxx, include and Imake -files. -</para> -</listitem> - -<listitem> -<para>Static and dynamic libraries (for use with FreeBSD 2.2.8 and -eariler). -</para> -</listitem> - -<listitem> -<para>Demonstration applets. -</para> -</listitem> - -<listitem> -<para>Preformatted man pages.</para> -</listitem> - -</itemizedlist> -</para> - -<para>Be sure to specify that you want the FreeBSD version of Motif -when ordering! Versions for BSDI and Linux are also sold by -<emphasis>Xi Graphics</emphasis>. This is currently a 4 diskette set... in the -future this will change to a unified CD distribution like their CDE.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Where can I get CDE for FreeBSD?</para></question><answer> - -<para><link linkend="xig">Xi Graphics</link> used to sell CDE for -FreeBSD, but no longer do.</para> - -<para><ulink URL="http://www.kde.org/">KDE</ulink> is an open source -X11 desktop which is similar to CDE in many respects. - You might also like the look and feel of <ulink - url="http://www.xfce.org/">xfce</ulink>. KDE and xfce are both - in the <ulink url="http://www.FreeBSD.org/ports/">ports - system</ulink>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> Are there any commercial high-performance X servers? - </para></question><answer> - -<para>Yes, <ulink URL="http://www.xig.com/">Xi Graphics</ulink> and -<ulink URL="http://www.metrolink.com/">Metro Link</ulink> sells -Accelerated-X product for FreeBSD and other Intel based systems. -</para> - -<para>The Metro Link offering is a high performance X Server that offers -easy configuration using the FreeBSD Package suite of tools, support -for multiple concurrent video boards and is distributed in binary -form only, in a convienent FTP download. Not to mention the Metro -Link offering is available at the very reasonable price of $39. -<anchor id="metrox"></para> - -<para>Metro Link also sells both ELF and a.out Motif for FreeBSD (see above).</para> - -<para> -<variablelist> -<varlistentry><term>More info</term> -<listitem> -<para><ulink URL="http://www.metrolink.com/">Metro Link WWW page</ulink></para> - -<para></para> - -</listitem> -</varlistentry> - -<varlistentry><term>or</term> - -<listitem> -<para><ulink URL="mailto:sales@metrolink.com">Sales</ulink> or -<ulink URL="mailto:tech@metrolink.com">Support</ulink> email addresses.</para> - -<para></para> - -</listitem> -</varlistentry> - -<varlistentry><term>or</term> - -<listitem> -<para>phone (954) 938-0283 or +1 954 938-0283</para> - -</listitem> -</varlistentry> -</variablelist> -</para> - -<para>The Xi Graphics offering is a high performance X Server that offers -easy configuration, support -for multiple concurrent video boards and is distributed in binary -form only, in a unified diskette distribution for FreeBSD and Linux. -Xi Graphics also offers a high performance X Server taylored for -laptop support.<anchor id="xig"></para> - -<para>There is a free "compatibility demo" of version 5.0 available.</para> - -<para>Xi Graphics also sells Motif and CDE for FreeBSD (see above).</para> - -<para> -<variablelist> -<varlistentry><term>More info</term> -<listitem> -<para><ulink URL="http://www.xig.com/">Xi Graphics WWW page</ulink></para> - -<para></para> - -</listitem> -</varlistentry> - -<varlistentry><term>or</term> - -<listitem> -<para><ulink URL="mailto:sales@xig.com">Sales</ulink> or -<ulink URL="mailto:support@xig.com">Support</ulink> email addresses.</para> - -<para></para> - -</listitem> -</varlistentry> - -<varlistentry><term>or</term> - -<listitem> -<para>phone (800) 946 7433 or +1 303 298-7478.</para> - -</listitem> -</varlistentry> -</variablelist> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Are there any Database systems for FreeBSD?</para></question><answer> - -<para>Yes! See the <ulink URL="../commercial/software_bycat.html#CATEGORY_DATABASE">Commercial Vendors</ulink> section of FreeBSD's Web site.</para> - -<para>Also see the <ulink URL="../ports/databases.html">Databases</ulink> section of the Ports collection.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Can I run Oracle on FreeBSD?</para></question><answer> - -<para>Yes. The following pages tell you exactly how to setup Linux-Oracle -on FreeBSD:</para> - -<para> -<itemizedlist> - -<listitem> -<para><ulink URL="http://www.scc.nl/~marcel/howto-oracle.html">http://www.scc.nl/~marcel/howto-oracle.html</ulink> -</para> -</listitem> - -<listitem> -<para><ulink URL="http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd">http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd</ulink></para> -</listitem> - -</itemizedlist> -</para> - -</answer></qandaentry></qandaset> -</chapter> - -<chapter -id="applications"> -<title>User Applications</title> - - -<qandaset><qandaentry><question> -<para>So, where are all the user applications?</para></question><answer> - -<para>Please take a look at <ulink URL="../ports/">the ports page</ulink> for info on software packages ported to -FreeBSD. The list currently tops 1800 and is growing daily, so come -back to check often or subscribe to the <emphasis remap=tt>freebsd-announce</emphasis> -<link linkend="mailing">mailing list</link> for periodic updates on new -entries.</para> - -<para>Most ports should be available for the 2.2, 3.x and 4.0 -branches, and many of them should work on 2.1.x systems as -well. Each time a FreeBSD release is made, a snapshot of the -ports tree at the time of release in also included in the -<filename>ports/</filename> directory.</para> - -<para>We also support the concept of a ``package'', essentially no -more than a gzipped binary distribution with a little extra -intelligence embedded in it for doing whatever custom installation -work is required. A package can be installed and uninstalled -again easily without having to know the gory details of which -files it includes.</para> - -<para>Use the package installation menu in <filename>/stand/sysinstall</filename> -(under the post-configuration menu item) or invoke the -<command>pkg_add(1)</command> command on the specific package files you're -interested in installing. Package files can usually be identified by -their <filename>.tgz</filename> suffix and CDROM distribution people will have -a <filename>packages/All</filename> directory on their CD which contains such -files. They can also be downloaded over the net for various versions -of FreeBSD at the following locations:</para> - -<para> -<variablelist> -<varlistentry><term>for 2.2.8-RELEASE/2.2.8-STABLE</term> -<listitem> -<para><ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/</ulink></para> - -<para></para> - -</listitem> -</varlistentry> - -<varlistentry><term>for 3.X-RELEASE/3.X-STABLE</term> - -<listitem> -<para><ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/</ulink></para> - -<para></para> - -</listitem> -</varlistentry> - -<varlistentry><term>for 4.0-RELEASE/4.X-STABLE</term> - -<listitem> -<para><ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/</ulink></para> - -</listitem> -</varlistentry> - -<varlistentry> -<term>for 5.X-CURRENT</term> - -<listitem> -<para><ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current</ulink></para> -</listitem> -</varlistentry> - -</variablelist> -</para> - -<para>or your nearest local mirror site.</para> - -<para>Note that all ports may not be available as packages since -new ones are constantly being added. It is always a good -idea to check back periodically to see which packages are available -at the <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/">ftp.FreeBSD.org</ulink> master site.</para> - -</answer></qandaentry> - - <qandaentry> - <question> - <para>Why is <command>/bin/sh</command> so minimal? Why doesn't - FreeBSD use <command>bash</command> or another shell?</para> - </question> - - <answer> - <para>Because POSIX says that there shall be such a shell.</para> - - <para>The more complicated answer: many people need to write shell - scripts which will be portable across many systems. That's why - POSIX specifies the shell and utility commands in great detail. - Most scripts are written in Bourne shell, and because several - important programming interfaces (&man.make.1;, &man.system.3;, - &man.popen.3;, and analogues in higher-level scripting languages - like Perl and Tcl) are specified to use the Bourne shell to - interpret commands. Because the Bourne shell is so often and - widely used, it is important for it to be quick to start, be - deterministic in its behavior, and have a small memory - footprint.</para> - - <para>The existing implementation is our best effort at meeting as - many of these requirements simultaneously as we can. In order to - keep <command>/bin/sh</command> small, we have not provided many - of the convenience features that other shells have. That's why the - Ports Collection includes more featureful shells like bash, scsh, - tcsh, and zsh. (You can compare for yourself the memory - utilization of all these shells by looking at the - <quote>VSZ</quote> and <quote>RSS</quote> columns in a <command>ps - -u</command> listing.)</para> - </answer> - </qandaentry> -<qandaentry><question> -<para>Where do I find libc.so.3.0?</para></question><answer> - -<para>You are trying to run a package built on 2.2 and later on a 2.1.x -system. Please take a look at the previous section and get -the correct port/package for your system.</para> - -</answer></qandaentry> -<qandaentry><question> -<para>I get a message "Error: can't find -libc.so.4.0"</para></question> -<answer> - -<para>You accidently downloaded packages meant for 4.X and 5.X -systems and attempted to install them on your 2.X or 3.X FreeBSD system. -Please download the correct version of the -packages.</para></answer> -</qandaentry> - -<qandaentry><question -id="emul"> -<para> ghostscript gives lots of errors with my 386/486SX. - </para></question><answer> - -<para>You don't have a math co-processor, right? -You will need to add the alternative math emulator to your kernel; -you do this by adding the following to your kernel config file -and it will be compiled in.</para> - -<para> -<literallayout> options GPL_MATH_EMULATE - </literallayout> -</para> - -<para><acronym>NOTE</acronym> You will need to remove the <symbol>MATH_EMULATE</symbol> -option when you do this.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> When I run a SCO/iBCS2 application, it bombs on -<emphasis remap=tt>socksys</emphasis> (FreeBSD 3.0 and older only). - </para></question><answer> - -<para>You first need to edit the <filename>/etc/sysconfig</filename> -(or <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)">/etc/rc.conf</ulink>) file in the last section to change the -following variable to <acronym>YES</acronym>:</para> - -<para> -<literallayout> # Set to YES if you want ibcs2 (SCO) emulation loaded at startup - ibcs2=NO - </literallayout> -</para> - -<para>It will load the <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ibcs2(8)">ibcs2</ulink> -kernel module at startup.</para> - -<para>You'll then need to set up /compat/ibcs2/dev to look like:</para> - -<para> -<literallayout>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 - </literallayout> -</para> - -<para>You just need socksys to go to <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?null(4)">/dev/null</ulink> -to fake the open & close. The code in -CURRENT will handle the -rest. This is much cleaner than the way it was done before. If you -want the <emphasis remap=tt>spx</emphasis> driver for a local socket X connection, define -<symbol>SPX_HACK</symbol> when you compile the system.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> How do I configure INN (Internet News) for my machine? - </para></question><answer> - -<para>After installing the inn package or port, an excellent place to -start is <ulink URL="http://www.cis.ohio-state.edu/~barr/INN.html">Dave Barr's INN Page</ulink> where you'll find the INN FAQ.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>What version of Microsoft FrontPage should I get?</para></question><answer> - -<para>Use the Port, Luke! A pre-patched version of Apache is available -in the ports tree.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Does FreeBSD support Java?</para></question><answer> - -<para>Yes. Please see <ulink URL="http://www.FreeBSD.org/java/">http://www.FreeBSD.org/java/</ulink>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Why can't I build this port on my 3.X-STABLE machine?</para></question><answer> - -<para>If you're running a FreeBSD version that lags significantly behind --CURRENT or -STABLE, you may need a ports upgrade kit from -<ulink URL="http://www.FreeBSD.org/ports/">http://www.FreeBSD.org/ports/</ulink>. If you are up to date, then -someone might have committed a change to the port which works for --CURRENT but which broke the port for -STABLE. Please submit a bug -report on this with the <command>send-pr(1)</command> command, since the ports -collection is supposed to work for both the -CURRENT and -STABLE -branches.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Where do I find ld.so?</para></question><answer> - -<para>If you want to run some aout applications like -Netscape Navigator on an Elf'ened machine such as 3.1-R or later, -it would need /usr/libexec/ld.so and some aout libs. -They are included in the compat22 distribution. -Use /stand/sysinstall or install.sh in the compat22 subdirectory -and install it. -Also read ERRATAs for 3.1-R and 3.2-R.</para> - -</answer></qandaentry></qandaset> -</chapter> - -<chapter -id="kernelconfig"> -<title>Kernel Configuration</title> - - -<qandaset><qandaentry><question -id="make-kernel"> -<para> I'd like to customize my kernel. Is it difficult? - - </para></question><answer> - -<para>Not at all! Check out the <ulink URL="../handbook/kernelconfig.html">kernel config section of the Handbook</ulink>.</para> - -<para><emphasis remap=bf>NOTE:</emphasis> I recommend making a dated snapshot of your kernel -in <filename>kernel.YYMMDD</filename> after you get it all working, that way if -you do something dire the next time you play with your configuration -you can boot that kernel instead of having to go all the way back -to <filename>kernel.GENERIC</filename>. This is particularly important if you're -now booting off a controller that isn't supported in the GENERIC -kernel (yes, personal experience).</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> My kernel compiles fail because <symbol>_hw_float</symbol> is missing. - </para></question><answer> - -<para>Let me guess. You removed <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?npx(4)">npx0</ulink> from your -kernel configuration file because you don't have a math co-processor, -right? Wrong! :-) The <emphasis remap=tt>npx0</emphasis> is <acronym>MANDATORY</acronym>. Even if you don't -have a mathematic co-processor, you <emphasis remap=bf>must</emphasis> include the <emphasis remap=tt>npx0</emphasis> -device.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Interrupt conflicts with multi-port serial code.</para></question><answer> - -<para><emphasis remap=bf>Q.</emphasis> When I compile a kernel with multi-port serial code, it -tells me that only the first port is probed and the rest skipped due to -interrupt conflicts. How do I fix this?</para> - -<para><emphasis remap=bf>A.</emphasis> The problem here is that FreeBSD has code built-in to keep -the kernel from getting trashed due to hardware or software -conflicts. The way to fix this is to leave out the IRQ settings -on all but one port. Here is a example:</para> - -<para> -<literallayout> # - # 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 - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I enable support for QIC-40/80 drives?</para></question><answer> - -<para>You need to uncomment the following line in the generic config -file (or add it to your config file), add a ``<literal>flags 0x1</literal>'' -on the <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fdc(4)">fdc</ulink> line and recompile.</para> - -<para> -<literallayout>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 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - </literallayout> -</para> - -<para>Next, you create a device called <filename>/dev/ft0</filename> by going into -<filename>/dev</filename> and run the following command:</para> - -<para> -<literallayout> sh ./MAKEDEV ft0 - </literallayout> -</para> - -<para>for the first device. <emphasis remap=tt>ft1</emphasis> for a second one and so on.</para> - -<para>You will have a device called <filename>/dev/ft0</filename>, which you can -write to through a special program to manage it called -``<emphasis remap=tt>ft</emphasis>'' - see the man page on <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ft">ft</ulink> -for further details.</para> - -<para>Versions previous to <option>-CURRENT</option> also had some trouble dealing -with bad tape media; if you have trouble where <emphasis remap=tt>ft</emphasis> seems to -go back and forth over the same spot, try grabbing the latest -version of <emphasis remap=tt>ft</emphasis> from <filename>/usr/src/sbin/ft</filename> in -<option>-CURRENT</option> and try that.</para> - -</answer></qandaentry></qandaset> -</chapter> - -<chapter -id="admin"> -<title>System Administration</title> - - -<qandaset><qandaentry><question> -<para>Where are the system start-up configuration files?</para></question><answer> - -<para>From 2.0.5R to 2.2.1R, the primary configuration file is -<filename>/etc/sysconfig</filename>. All the options are to be specified in -this file and other files such as <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc(8)">/etc/rc</ulink> and -<filename>/etc/netstart</filename> just include it.</para> - -<para>Look in the <filename>/etc/sysconfig</filename> file and change the value to -match your system. This file is filled with comments to show what -to put in there.</para> - -<para>In post-2.2.1 and 3.0, <filename>/etc/sysconfig</filename> was renamed -to a more self-describing <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)">rc.conf</ulink> -file and the syntax cleaned up a bit in the process. -<filename>/etc/netstart</filename> was also renamed to <filename>/etc/rc.network</filename> -so that all files could be copied with a <command><ulink URL="http://www.FreeBSD.org/cgi/man.cgi?cp(1)">cp</ulink> /usr/src/etc/rc* -/etc</command> command.</para> - -<para>And, in 3.1 and later, <filename>/etc/rc.conf</filename> has -been moved to <filename>/etc/defaults/rc.conf</filename>. <emphasis>Do not edit -this file!</emphasis> Instead, if there is any entry in -<filename>/etc/defaults/rc.conf</filename> that you want to change, -you should copy the line into <filename>/etc/rc.conf</filename> and -change it there.</para> - -<para>For example, if you wish to start named, the DNS server included -with FreeBSD in FreeBSD 3.1 or later, all you need to do is:</para> -<screen>&prompt.root; <userinput>echo named_enable="YES" >> -/etc/rc.conf</userinput></screen> - -<para>To start up local services in FreeBSD 3.1 or later, place shell -scripts in the <filename>/usr/local/etc.rd</filename> directory. These -shell scripts should be set executable, and end with a .sh. In FreeBSD -3.0 and earlier releases, you should edit the -<filename>/etc/rc.local</filename> file.</para> - -<para>The <filename>/etc/rc.serial</filename> is for serial port initialization -(e.g. locking the port characteristics, and so on.).</para> - -<para>The <filename>/etc/rc.i386</filename> is for Intel-specifics settings, such -as iBCS2 emulation or the PC system console configuration.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I add a user easily?</para></question><answer> - -<para>Use the <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?adduser">adduser</ulink> command. For more complicated usage, the -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?pw">pw</ulink> command.</para> - -<para>To remove the user again, use the <ulink -URL="http://www.FreeBSD.org/cgi/man.cgi?rmuser">rmuser</ulink> -command. Once again, <command>pw</command> will work as well.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How can I add my new hard disk to my FreeBSD system?</para></question><answer> - -<para>See the Disk Formatting Tutorial at -<ulink URL="../tutorials/formatting-media/">www.FreeBSD.org</ulink>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I have a new removable drive, how do I use it?</para></question><answer> - -<para>Whether it's a removable drive like a ZIP or an EZ drive (or -even a floppy, if you want to use it that way), or a new hard -disk, once it's installed and recognized by the system, and -you have your cartridge/floppy/whatever slotted in, things are -pretty much the same for all devices.</para> - -<para><anchor id="disklabel">(this section is based on <ulink URL="http://www.vmunix.com/mark/FreeBSD/ZIP-FAQ.html">Mark Mayo's ZIP FAQ</ulink>)</para> - -<para>If it's a ZIP drive or a floppy , you've already got a DOS -filesystem on it, you can use a command like this:</para> - -<para> -<literallayout> mount -t msdos /dev/fd0c /floppy - </literallayout> -</para> - -<para>if it's a floppy, or this:</para> - -<para> -<literallayout> mount -t msdos /dev/da2s4 /zip - </literallayout> -</para> - -<para>for a ZIP disk with the factory configuration.</para> - -<para>For other disks, see how they're laid out using <emphasis remap=tt>fdisk</emphasis> or -<filename>/stand/sysinstall</filename>.</para> - -<para>The rest of the examples will be for a ZIP drive on da2, the third -SCSI disk.</para> - -<para>Unless it's a floppy, or a removable you plan on sharing with -other people, it's probably a better idea to stick a BSD file -system on it. You'll get long filename support, at least a 2X -improvement in performance, and a lot more stability. First, you -need to redo the DOS-level partitions/filesystems. You can either -use <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fdisk">fdisk</ulink> or <filename>/stand/sysinstall</filename>, or for a small -drive that you don't want to bother with multiple operating system -support on, just blow away the whole FAT partition table (slices) -and just use the BSD partitioning:</para> - -<para> -<literallayout> dd if=/dev/zero of=/dev/rda2 count=2 - disklabel -Brw da2 auto - </literallayout> -</para> - -<para>You can use disklabel or <filename>/stand/sysinstall</filename> to create multiple -BSD partitions. You'll certainly want to do this if you're adding -swap space on a fixed disk, but it's probably irrelevant on a -removable drive like a ZIP.</para> - -<para>Finally, create a new file system, this one's on our ZIP drive -using the whole disk:</para> - -<para> -<literallayout> newfs /dev/rda2c - </literallayout> -</para> - -<para>and mount it:</para> - -<para> -<literallayout> mount /dev/da2c /zip - </literallayout> -</para> - -<para>and it's probably a good idea to add a line like this to -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fstab">/etc/fstab</ulink> so you can just type "mount /zip" in the -future:</para> - -<para> -<literallayout> /dev/da2c /zip ffs rw,noauto 0 0 - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I mount a secondary DOS partition?</para></question><answer> - -<para>The secondary DOS partitions are found after ALL the primary -partitions. For example, if you have an "E" partition as the -second DOS partition on the second SCSI drive, you need to create -the special files for "slice 5" in /dev, then mount /dev/da1s5:</para> - -<para> -<literallayout> # cd /dev - # ./MAKEDEV da1s5 - # mount -t msdos /dev/da1s5 /dos/e - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Can I mount other foreign filesystems under FreeBSD?</para></question><answer> - -<para><emphasis remap=bf> Digital UNIX</emphasis> UFS CDROMs can be mounted directly on FreeBSD. -Mounting disk partitions from Digital UNIX and other systems -that support UFS may be more complex, depending on the details -of the disk partitioning for the operating system in question.</para> - -<para><emphasis remap=bf> Linux</emphasis>: 2.2 and later have support for <emphasis remap=bf>ext2fs</emphasis> partitions. -See <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?mount_ext2fs">mount_ext2fs</ulink> for more information.</para> - -<para><emphasis remap=bf> NT</emphasis>: A read-only NTFS driver exists for FreeBSD. For more -information, see this tutorial by Mark Ovens at -<ulink URL="http://ukug.uk.freebsd.org/~mark/ntfs_install.html">http://ukug.uk.freebsd.org/~mark/ntfs_install.html</ulink>.</para> - -<para>Any other information on this subject would be appreciated.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How can I use the NT loader to boot FreeBSD?</para></question><answer> - -<para>This procedure is slightly different for 2.2.x and 3.x (with the -3-stage boot) systems.</para> - -<para>The general idea is that you copy the first sector of your -native root FreeBSD partition into a file in the DOS/NT -partition. Assuming you name that file something like -<filename>c:\bootsect.bsd</filename> (inspired by <filename>c:\bootsect.dos</filename>), -you can then edit the <filename>c:\boot.ini</filename> file to come up with -something like this:</para> - -<para> -<literallayout> [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" - </literallayout> -</para> - -<para>For 2.2.x systems this procedure assumes that DOS, NT, FreeBSD, or whatever -have been installed into their respective fdisk partitions on the -<emphasis remap=bf>same</emphasis> disk. In my case DOS & NT are in the first fdisk -partition and FreeBSD is in the second. I also installed FreeBSD -to boot from its native partition, <emphasis remap=bf>not</emphasis> the disk MBR.</para> - -<para>Mount a DOS-formatted floppy (if you've converted to NTFS) or the -FAT partition, under, say, <filename>/mnt</filename>.</para> - -<para> -<literallayout> dd if=/dev/rda0a of=/mnt/bootsect.bsd bs=512 count=1 - </literallayout> -</para> - -<para>Reboot into DOS or NT. NTFS users copy the <filename>bootsect.bsd</filename> -and/or the <filename>bootsect.lnx</filename> file from the floppy to -<emphasis remap=tt>C:\</emphasis>. Modify the attributes (permissions) on -<filename>boot.ini</filename> with:</para> - -<para> -<literallayout> attrib -s -r c:\boot.ini - </literallayout> -</para> - -<para>Edit to add the appropriate entries from the example -<filename>boot.ini</filename> above, and restore the attributes:</para> - -<para> -<literallayout> attrib +s +r c:\boot.ini - </literallayout> -</para> - -<para>If FreeBSD is booting from the MBR, restore it with the DOS -``<command>fdisk</command>'' command after you reconfigure them to boot from their -native partitions.</para> - -<para>For FreeBSD 3.x systems the procedure is somewhat simpler.</para> - -<para>If FreeBSD is installed on the same disk as the NT boot partition -simply copy <filename>/boot/boot1</filename> to -<filename>C:\BOOTSECT.BSD</filename> However, if FreeBSD is installed -on a different disk <filename>/boot/boot1</filename> will not work, -<filename>/boot/boot0</filename> is needed. - -<warning> - <para>DO NOT SIMPLY COPY <filename>/boot/boot0</filename> INSTEAD OF - <filename>/boot/boot1</filename>, YOU WILL OVERWRITE YOUR PARTITION - TABLE AND RENDER YOUR COMPUTER UN-BOOTABLE!</para></warning> - -<filename>/boot/boot0</filename> needs to be installed using -sysinstall by selecting the FreeBSD boot manager on the screen which -asks if you wish to use a boot manager. This is because -<filename>/boot/boot0</filename> has the partition table area filled -with NULL characters but sysinstall copies the partition table before -copying <filename>/boot/boot0</filename> to the MBR.</para> - -<para>When the FreeBSD boot manager runs it records the last OS booted -by setting the active flag on the partition table entry for that OS -and then writes the whole 512-bytes of itself back to the MBR so if -you just copy <filename>/boot/boot0</filename> to -<filename>C:\BOOTSECT.BSD</filename> then it writes an empty partition -table, with the active flag set on one entry, to the MBR.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> How do I boot FreeBSD and Linux from LILO? - </para></question><answer> - -<para>If you have FreeBSD and Linux on the same disk, just follow -LILO's installation instructions for booting a non-Linux operating -system. Very briefly, these are:</para> - -<para>Boot Linux, and add the following lines to -<filename>/etc/lilo.conf</filename>: -<programlisting> other=/dev/hda2 - table=/dev/hda - label=FreeBSD - </programlisting> - -(the above assumes that your FreeBSD slice is known to Linux as -<filename>/dev/hda2</filename>; tailor to suit your setup). Then, -run <command>lilo</command> as root and you should be done.</para> - -<para>If FreeBSD resides on another disk, you need to add -``<literal>loader=/boot/chain.b</literal>'' to the LILO entry. -For example: -<programlisting> other=/dev/dab4 - table=/dev/dab - loader=/boot/chain.b - label=FreeBSD - </programlisting> -</para> - -<para>In some cases you may need to specify the BIOS drive number -to the FreeBSD boot loader to successfully boot off the second disk. -For example, if your FreeBSD SCSI disk is probed by BIOS as BIOS -disk 1, at the FreeBSD boot loader prompt you need to specify: -<literallayout> Boot: 1:da(0,a)/kernel - </literallayout> -</para> - -<para>On FreeBSD 2.2.5 and later, you can configure <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?boot(8)">boot(8)</ulink> -to automatically do this for you at boot time.</para> - -<para>The <ulink URL="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html">Linux+FreeBSD mini-HOWTO</ulink> is a good reference for -FreeBSD and Linux interoperability issues.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> How do I boot FreeBSD and Linux using BootEasy? - </para></question><answer> - -<para>Install LILO at the start of your Linux boot partition instead of -in the Master Boot Record. You can then boot LILO from BootEasy.</para> - -<para>If you're running Windows-95 and Linux this is recommended anyway, -to make it simpler to get Linux booting again if you should need -to reinstall Windows95 (which is a Jealous Operating System, and -will bear no other Operating Systems in the Master Boot Record).</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> Will a ``dangerously dedicated'' disk endanger my health? - </para></question><answer> - -<para><anchor id="dedicate">The installation procedure allows you to chose -two different methods in partitioning your harddisk(s). The default way -makes it compatible with other operating systems on the same machine, -by using fdisk table entries (called ``slices'' in FreeBSD), -with a FreeBSD slice that employs partitions of its own. -Optionally, one can chose to install a boot-selector to switch -between the possible operating systems on the disk(s). -The alternative uses the entire disk for FreeBSD, and makes -no attempt to be compatible with other operating systems.</para> - -<para>So why it is called ``dangerous''? A disk in this mode -doesn't contain what normal PC utilities would consider a -valid fdisk table. Depending on how well they have been -designed, they might complain at you once they are getting -in contact with such a disk, or even worse, they might -damage the BSD bootstrap without even asking or notifying -you. In addition, the ``dangerously dedicated'' disk's layout -is known to confuse many BIOSsen, including those from AWARD -(eg. as found in HP Netserver and Micronics systems as well as -many others) and Symbios/NCR (for the popular 53C8xx range of -SCSI controllers). This isn't a complete list, there are more. -Symptoms of this confusion include the "read error" message -printed by the FreeBSD bootstrap when it can't find itself, -as well as system lockups when booting.</para> - -<para>Why have this mode at all then? It only saves a few kbytes -of disk space, and it can cause real problems for a new -installation. ``Dangerously dedicated'' mode's origins lie -in a desire to avoid one of the most common problems plaguing -new FreeBSD installers - matching the BIOS ``geometry'' numbers -for a disk to the disk itself.</para> - -<para>``Geometry'' is an outdated concept, but one still at the -heart of the PC's BIOS and its interaction with disks. When -the FreeBSD installer creates slices, it has to record the -location of these slices on the disk in a fashion that -corresponds with the way the BIOS expects to find them. If -it gets it wrong, you won't be able to boot.</para> - -<para>``Dangerously dedicated'' mode tries to work around this -by making the problem simpler. In some cases, it gets it right. -But it's meant to be used as a last-ditch alternative - there -are better ways to solve the problem 99 times out of 100.</para> - -<para>So, how do you avoid the need for ``DD'' mode when you're -installing? Start by making a note of the geometry that your -BIOS claims to be using for your disks. You can arrange to have -the kernel print this as it boots by specifying ``-v'' at the -``boot:'' prompt, or using ``boot -v'' in the loader. Just -before the installer starts, the kernel will print a list of -BIOS geometries. Don't panic - wait for the installer to start -and then use scrollback to read the numbers. Typically the BIOS -disk units will be in the same order that FreeBSD lists your -disks, first IDE, then SCSI.</para> - -<para>When you're slicing up your disk, check that the disk geometry -displayed in the FDISK screen is correct (ie. it matches the BIOS -numbers); if it's wrong, use the ``g'' key to fix it. You may have -to do this if there's absolutely nothing on the disk, or if the -disk has been moved from another system. Note that this is only -an issue with the disk that you're going to boot from; FreeBSD -will sort itself out just fine with any other disks you may have.</para> - -<para>Once you've got the BIOS and FreeBSD agreeing about the -geometry of the disk, your problems are almost guaranteed to be -over, and with no need for ``DD'' mode at all. If, however, -you are still greeted with the dreaded ``read error'' message -when you try to boot, it's time to cross your fingers and -go for it - there's nothing left to lose.</para> - -<para>To return a ``dangerously dedicated'' disk for normal PC -use, there are basically two options. The first is, you -write enough NULL bytes over the MBR to make any subsequent -installation believe this to be a blank disk. You can do -this for example with</para> - -<para> -<literallayout> dd if=/dev/zero of=/dev/rda0 count=15 - </literallayout> -</para> - -<para>Alternatively, the undocumented DOS ``feature''</para> - -<para> -<literallayout> fdisk /mbr - </literallayout> -</para> - -<para>will to install a new master boot record as well, thus clobbering the -BSD bootstrap.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How can I add more swap space?</para></question><answer> - -<para>The best way is to increase the size of your swap partition, or -take advantage of this convenient excuse to add another disk. The -general rule of thumb is to have around 2x the swap space as you have -main memory. However, if you have a very small amount of main memory -you may want to configure swap beyond that. It is also a good idea -to configure sufficient swap relative to anticipated future memory -upgrades so you do not have to futz with your swap configuration later.</para> - -<para>Adding swap onto a separate disk makes things faster than -simply adding swap onto the same disk. As an example, if you -are compiling source located on one disk, and the swap is on -another disk, this is much faster than both swap and compile -on the same disk. This is true for SCSI disks specifically.</para> - -<para>When you have several disks, configuring a swap partition on -each one is usually beneficial, even if you wind up putting swap on a -work disk. Typically, each fast disk in your system should have some -swap configured. FreeBSD supports up to 4 interleaved swap devices by -default. When configuring multiple swap partitions you generally -want to make them all about the same size, but people sometimes make -their primary swap parition larger in order to accomodate a kernel -core dump. Your primary swap partition must be at least as large as -main memory in order to be able to accomodate a kernel core.</para> - -<para>IDE drives are not able to allow access to both drives on -the same channel at the same time (FreeBSD doesn't support mode 4, so -all IDE disk I/O is ``programmed''). I would still suggest putting -your swap on a separate drive however. The drives are so cheap, -it is not worth worrying about.</para> - -<para>Swapping over NFS is only recommended if you do not have a local -disk to swap to. Swapping over NFS is slow and inefficient in FreeBSD -releases prior to 4.x, but reasonably fast in releases greater or -equal to 4.0. Even so, it will be limited to the network bandwidth -available and puts an additional burden on the NFS server.</para> - -<para>Here is an example for 64Mb vn-swap (<filename>/usr/swap0</filename>, though -of course you can use any name that you want).</para> - -<para>Make sure your kernel was built with the line</para> - -<para> -<literallayout> pseudo-device vn 1 #Vnode driver (turns a file into a device) - </literallayout> -</para> - -<para>in your config-file. The GENERIC kernel already contains this.</para> - -<para> -<orderedlist> - -<listitem> -<para>create a vn-device - -<literallayout> cd /dev - sh ./MAKEDEV vn0 - </literallayout> - -</para> -</listitem> - -<listitem> -<para>create a swapfile (<filename>/usr/swap0</filename>) - -<literallayout> dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 - </literallayout> - -</para> -</listitem> - -<listitem> -<para>set proper permissions on (<filename>/usr/swap0</filename>) - -<literallayout> chmod 0600 /usr/swap0 - </literallayout> - -</para> -</listitem> - -<listitem> -<para>enable the swap file in <filename>/etc/rc.conf</filename> - -<literallayout> swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. - </literallayout> - -</para> -</listitem> - -<listitem> -<para>reboot the machine</para> -</listitem> - -</orderedlist> -</para> - -<para>To enable the swap file immediately, type</para> - -<para> -<literallayout> vnconfig -ce /dev/vn0c /usr/swap0 swap - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I'm having problems setting up my printer.</para></question><answer> - -<para>Please have a look at the Handbook entry on printing. It -should cover most of your problem. See the -<ulink URL="../handbook/printing.html">Handbook entry on printing.</ulink></para> - -</answer></qandaentry> - -<qandaentry><question> -<para>The keyboard mappings are wrong for my system.</para></question><answer> - -<para>The kbdcontrol program has an option to load a keyboard map file. -Under <filename>/usr/share/syscons/keymaps</filename> are a number of map -files. Choose the one relevant to your system and load it.</para> - -<para> -<literallayout> kbdcontrol -l uk.iso - </literallayout> -</para> - -<para>Both the <filename>/usr/share/syscons/keymaps</filename> and the <filename>.kbd</filename> -extension are assumed by -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?kbdcontrol">kbdcontrol</ulink>.</para> - -<para>This can be configured in <filename>/etc/sysconfig</filename> (or <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)">rc.conf</ulink>). -See the appropriate comments in this file.</para> - -<para>In 2.0.5R and later, everything related to text fonts, keyboard -mapping is in <filename>/usr/share/examples/syscons</filename>.</para> - -<para>The following mappings are currently supported:</para> - -<para> -<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> - -</answer></qandaentry> - -<qandaentry><question> -<para>I can't get user quotas to work properly.</para></question><answer> - -<para> -<orderedlist> - -<listitem> -<para>Don't turn on quotas on '/', -</para> -</listitem> - -<listitem> -<para>Put the quota file on the file system that the quotas are -to be enforced on. ie: - -<literallayout> FS QUOTA FILE - /usr /usr/admin/quotas - /home /home/admin/quotas - ... - </literallayout> -</para> -</listitem> - -</orderedlist> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>What's inappropriate about my ccd?</para></question><answer> - -<para>The symptom of this is:</para> - -<para> -<literallayout> # ccdconfig -C - ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format - # - </literallayout> -</para> - -<para>This usually happens when you are trying to concatenate the -`c' partitions, which default to type `unused'. The ccd -driver requires the underlying partition type to be -FS_BSDFFS. Edit the disklabel of the disks you are trying -to concatenate and change the types of partitions to -`4.2BSD'.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Why can't I edit the disklabel on my ccd?</para></question><answer> - -<para>The symptom of this is:</para> - -<para> -<literallayout> # disklabel ccd0 - (it prints something sensible here, so let's try to edit it) - # disklabel -e ccd0 - (edit, save, quit) - disklabel: ioctl DIOCWDINFO: No disk label on disk; - use "disklabel -r" to install initial label - # - </literallayout> -</para> - -<para>This is because the disklabel returned by ccd is actually a -`fake' one that is not really on the disk. You can solve -this problem by writing it back explicitly, as in:</para> - -<para> -<literallayout> # disklabel ccd0 > /tmp/disklabel.tmp - # disklabel -Rr ccd0 /tmp/disklabel.tmp - # disklabel -e ccd0 - (this will work now) - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Does FreeBSD support System V IPC primitives?</para></question><answer> - -<para>Yes, FreeBSD supports System V-style IPC. This includes shared -memory, messages and semaphores. You need to add the following -lines to your kernel config to enable them.</para> - -<para> -<literallayout> options SYSVSHM - options SYSVSHM # enable shared memory - options SYSVSEM # enable for semaphores - options SYSVMSG # enable for messaging - </literallayout> -</para> -<para><note><para>In FreeBSD 3.2 and later, these options are already part -of the <emphasis>GENERIC</emphasis> kernel, which means they should -already be compiled into your system.</para></note></para> - -<para>Recompile and install your kernel.</para> - -</answer></qandaentry> - -<qandaentry><question -id="uucpmail"> -<para> How do I use sendmail for mail delivery with UUCP? - </para></question><answer> - -<para>The sendmail configuration that ships with FreeBSD is -suited for sites that connect directly to the Internet. -Sites that wish to exchange their mail via UUCP must install -another sendmail configuration file.</para> - -<para>Tweaking <filename>/etc/sendmail.cf</filename> manually is considered -something for purists. Sendmail version 8 comes with a -new approach of generating config files via some -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?m4">m4</ulink> preprocessing, where the actual hand-crafted configuration -is on a higher abstraction level. You should use the -configuration files under - -<filename>/usr/src/usr.sbin/sendmail/cf</filename> -</para> - -<para>If you didn't install your system with full sources, the sendmail -config stuff has been broken out into a separate source distribution -tarball just for you. Assuming you've got your CD-ROM mounted, do:</para> - - <screen>&prompt.root; <userinput>cd /cdrom/src</userinput> -&prompt.root; <userinput>cat scontrib.?? | tar xzf - -C /usr/src contrib/sendmail</userinput></screen> - -<para>Don't panic, this is only a few hundred kilobytes in size. -The file <filename>README</filename> in the <filename>cf</filename> directory can -serve as a basic introduction to m4 configuration.</para> - -<para>For UUCP delivery, you are best advised to use the -<literal>mailertable</literal> feature. This constitutes a database -that sendmail can use to base its routing decision upon.</para> - -<para>First, you have to create your <filename>.mc</filename> file. The -directory <filename>/usr/src/usr.sbin/sendmail/cf/cf</filename> is the -home of these files. Look around, there are already a few -examples. Assuming you have named your file <filename>foo.mc</filename>, -all you need to do in order to convert it into a valid -<filename>sendmail.cf</filename> is:</para> - -<screen> -&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail/cf/cf</userinput> -&prompt.root; <userinput>make foo.cf</userinput> -&prompt.root; <userinput>cp foo.cf /etc/sendmail.cf</userinput> -</screen> - -<para>A typical <filename>.mc</filename> file might look like:</para> - - -<programlisting>include(`../m4/cf.m4') -VERSIONID(`<replaceable>Your version number</replaceable>') -OSTYPE(bsd4.4) - -FEATURE(nodns) -FEATURE(nocanonify) -FEATURE(mailertable) - -define(`UUCP_RELAY', <replaceable>your.uucp.relay</replaceable>) -define(`UUCP_MAX_SIZE', 200000) - -MAILER(local) -MAILER(smtp) -MAILER(uucp) - -Cw <replaceable>your.alias.host.name</replaceable> -Cw <replaceable>youruucpnodename.UUCP</replaceable></programlisting> - -<para>The <literal>nodns</literal> and <literal>nocanonify</literal> features will -prevent any usage of the DNS during mail delivery. The -<symbol>UUCP_RELAY</symbol> clause is needed for bizarre reasons, -don't ask. Simply put an Internet hostname there that -is able to handle .UUCP pseudo-domain addresses; most likely, -you will enter the mail relay of your ISP there.</para> - -<para>Once you've got this, you need this file called -<filename>/etc/mailertable</filename>. A typical example of this -gender again:</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:</programlisting> - - -<para>As you can see, this is part of a real-life file. The first -three lines handle special cases where domain-addressed mail -should not be sent out to the default route, but instead to -some UUCP neighbor in order to ``shortcut'' the delivery -path. The next line handles mail to the local Ethernet -domain that can be delivered using SMTP. Finally, the UUCP -neighbors are mentioned in the .UUCP pseudo-domain notation, -to allow for a ``uucp-neighbor!recipient'' override of the -default rules. The last line is always a single dot, matching -everything else, with UUCP delivery to a UUCP neighbor that -serves as your universal mail gateway to the world. All of -the node names behind the <literal>uucp-dom:</literal> keyword must -be valid UUCP neighbors, as you can verify using the -command <literal>uuname</literal>.</para> - -<para>As a reminder that this file needs to be converted into a -DBM database file before being usable, the command line to -accomplish this is best placed as a comment at the top of -the mailertable. You always have to execute this command -each time you change your mailertable.</para> - -<para>Final hint: if you are uncertain whether some particular -mail routing would work, remember the <option>-bt</option> option to -sendmail. It starts sendmail in <emphasis>address test mode</emphasis>; -simply enter ``0 '', followed by the address you wish to -test for the mail routing. The last line tells you the used -internal mail agent, the destination host this agent will be -called with, and the (possibly translated) address. Leave -this mode by typing Control-D.</para> - - <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 > -<prompt>></prompt> <userinput>^D</userinput></screen> - - -</answer></qandaentry> - -<qandaentry><question -id="ispmail"> -<para> How do I set up mail with a dialup connection to the 'net? - - </para></question><answer> - -<para>If you've got a statically assigned IP number, you should not -need to adjust anything from the default. Set your host name up -as your assigned internet name and sendmail will do the rest.</para> - -<para>If you've got a dynamically assigned IP number and use a dialup -<emphasis remap=bf>ppp</emphasis> connection to the internet, you will probably be given a -mailbox on your ISPs mail server. Lets assume your ISPs domain is -<filename>myISP.com</filename>, and that your user name is <emphasis remap=tt>user</emphasis>. Lets also -assume you've called your machine <filename>bsd.home</filename> and that your ISP -has told you that you may use <filename>relay.myISP.com</filename> as a mail relay.</para> - -<para>In order to retrieve mail from your mailbox, you'll need to -install a retrieval agent. <emphasis remap=bf>Fetchmail</emphasis> is a good choice as it -supports many different protocols. Usually, POP3 will be provided -by your ISP. If you've chosen to use user-ppp, you can automatically -fetch your mail when a connection to the 'net is established with the -following entry in <filename>/etc/ppp/ppp.linkup</filename>:</para> - -<para> -<literallayout> MYADDR: - !bg su user -c fetchmail - </literallayout> -</para> - -<para>If you are using <emphasis remap=tt>sendmail</emphasis> (as shown below) to deliver mail to -non-local accounts, put the command</para> - -<para> -<literallayout> !bg su user -c "sendmail -q" - </literallayout> -</para> - -<para>after the above shown entry. This forces sendmail to process your -mailqueue as soon as the connection to the 'net is established.</para> - -<para>I'm assuming that you have an account for <emphasis remap=tt>user</emphasis> on <filename>bsd.home</filename>. -In the home directory of <emphasis remap=tt>user</emphasis> on <filename>bsd.home</filename>, create a -<filename>.fetchmailrc</filename> file:</para> - -<para> -<literallayout> poll myISP.com protocol pop3 fetchall pass MySecret; - </literallayout> -</para> - -<para>Needless to say, this file should not be readable by anyone except -<emphasis remap=tt>user</emphasis> as it contains the password <emphasis remap=tt>MySecret</emphasis>.</para> - -<para>In order to send mail with the correct <emphasis remap=bf>from:</emphasis> header, you must -tell sendmail to use <email>user@myISP.com</email> rather than -<email>user@bsd.home</email>. You may also wish to tell sendmail to send all -mail via <filename>relay.myISP.com</filename>, allowing quicker mail transmission.</para> - -<para>The following <filename>.mc</filename> file should suffice:</para> - -<para> -<literallayout> VERSIONID(`bsd.home.mc version 1.0') - OSTYPE(bsd4.4)dnl - FEATURE(nouucp)dnl - MAILER(local)dnl - MAILER(smtp)dnl - Cwlocalhost - Cwbsd.home - MASQUERADE_AS(`myISP.com')dnl - FEATURE(allmasquerade)dnl - FEATURE(masquerade_envelope)dnl - FEATURE(nocanonify)dnl - FEATURE(nodns)dnl - define(SMART_HOST, `relay.myISP.com') - Dmbsd.home - define(`confDOMAIN_NAME',`bsd.home')dnl - define(`confDELIVERY_MODE',`deferred')dnl - </literallayout> -</para> - -<para>Refer to the previous section for details of how to turn this -<filename>.mc</filename> file into a <filename>sendmail.cf</filename> file. Also, don't forget to -restart sendmail after updating sendmail.cf.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Eek! I forgot the root password!</para></question><answer> - -<para>Don't Panic! Simply restart the system, type <userinput>boot -s</userinput> -at the Boot: prompt (just <userinput>-s</userinput> for FreeBSD releases before 3.2) -to enter Single User mode. At the question about the shell to use, -hit ENTER. You'll be dropped to a &prompt.root; prompt. Enter <command>mount -u /</command> to -remount your root filesystem read/write, then run <command>mount -a</command> to -remount all the filesystems. Run <emphasis remap=tt>passwd root</emphasis> to -change the root password then run <emphasis remap=tt>exit</emphasis> -to continue booting. </para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I keep Control-Alt-Delete from rebooting the system? - </para></question><answer> - -<para>If you are using syscons (the default console driver) -in FreeBSD 2.2.7-RELEASE or later, -build and install a new kernel with the line</para> - -<programlisting>options SC_DISABLE_REBOOT</programlisting> - -<para>in the configuration file. -If you use the PCVT console driver -in FreeBSD 2.2.5-RELEASE or later, -use the following kernel configuration line instead:</para> - -<programlisting>options PCVT_CTRL_ALT_DEL</programlisting> - -<para>For older versions of FreeBSD, -edit the keymap you are using for the console and replace the -<literal>boot</literal> keywords with <literal>nop</literal>. The default keymap is -<filename>/usr/share/syscons/keymaps/us.iso.kbd</filename>. You may have to instruct -<filename>/etc/rc.conf</filename> to load this keymap explicitly for the change to -take effect. Of course if you are using an alternate keymap for your -country, you should edit that one instead.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I reformat DOS text files to UNIX ones?</para></question><answer> - -<para>Simply use this perl command:</para> - -<para> -<literallayout>perl -i.bak -npe 's/\r\n/\n/g' file ...</literallayout> -</para> - -<para>file is the file(s) to process. The modification is done in-place, -with the original file stored with a .bak extension.</para> - -<para>Alternatively you can use the <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tr">tr</ulink> command:</para> - -<para> -<literallayout>tr -d '\r' < dos-text-file > unix-file</literallayout> -</para> - -<para>dos-text-file is the file containing DOS text while -unix-file will contain the converted output. This can -be quite a bit faster than using perl.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I kill processes by name?</para></question><answer> - -<para>Use <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?killall">killall</ulink>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Why is su bugging me about not being in root's ACL? - </para></question><answer> - -<para>The error comes from the Kerberos distributed authentication system. -The problem isn't fatal but annoying. You can either run su with the -K -option, or uninstall Kerberos as described in the next question.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I uninstall Kerberos?</para></question><answer> - -<para>To remove Kerberos from the system, reinstall the bin distribution -for the release you are running. If you have the CDROM, you can -mount the cd (we'll assume on /cdrom) and run</para> - -<para> -<literallayout>cd /cdrom/bin -./install.sh</literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I add pseudoterminals to the system?</para></question><answer> - -<para>If you have lots of telnet, ssh, X, or screen users, you'll probably run -out of pseudoterminals. Here's how to add more:</para> - -<para> -<orderedlist> - -<listitem> -<para>Build and install a new kernel with the line - -<literallayout> pseudo-device pty 256 - </literallayout> - - -</para> - -<para>in the configuration file.</para> - -<para></para> -</listitem> - -<listitem> -<para>Run the command - -<literallayout> # cd /dev - # ./MAKEDEV pty{1,2,3,4,5,6,7} - </literallayout> - - -</para> - -<para>to make 256 device nodes for the new terminals.</para> - -<para></para> -</listitem> - -<listitem> -<para>Edit <filename>/etc/ttys</filename> and add lines for each of the 256 -terminals. They should match the form of the existing entries, i.e. they look like - -<literallayout> ttyqc none network - </literallayout> - - -</para> - -<para>The order of the letter designations is <emphasis remap=tt>tty[pqrsPQRS][0-9a-v]</emphasis>, -using a regular expression. </para> - -<para></para> -</listitem> - -<listitem> -<para>Reboot the system with the new kernel and you're ready to go.</para> -</listitem> - -</orderedlist> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I can't create the snd0 device!</para></question><answer> - - <para>There is no <devicename>snd</devicename> device. The name is - used as a shorthand for the various devices that make up the - FreeBSD sound driver, such as <devicename>mixer</devicename>, - <devicename>sequencer</devicename>, and - <devicename>dsp</devicename>.</para> - - <para>To create these devices you should</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>sh MAKDEV snd0</userinput></screen> -</answer></qandaentry> - -<qandaentry><question> -<para>How do I re-read /etc/rc.conf and re-start /etc/rc without - a reboot?</para></question><answer> - -<para>Go into single user mode and than back to multi user mode.</para> - -<para>On the console do: -<literallayout> # shutdown now - (Note: without -r or -h) - - # return - # exit</literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>What is a sandbox?</para></question><answer> - -<para>"Sandbox" is a security term. It can mean two things:</para> - -<para> -<itemizedlist> - -<listitem> -<para></para> - -<para>A process which is placed inside a set of virtual walls -that are designed to prevent someone who breaks into the -process from being able to break into the wider system.</para> - -<para></para> - -<para>The process is said to be able to "play" inside the -walls. That is, nothing the process does in regards to -executing code is supposed to be able to breech the walls -so you do not have to do a detailed audit of its code to -be able to say certain things about its security.</para> - -<para></para> - -<para>The walls might be a userid, for example. This is the -definition used in the security and named man pages.</para> - -<para></para> - -<para>Take the 'ntalk' service, for example (see -/etc/inetd.conf). This service used to run as userid -root. Now it runs as userid tty. The tty user is a -sandbox designed to make it more difficult for someone -who has successfully hacked into the system via ntalk from -being able to hack beyond that user id.</para> -</listitem> - -<listitem> -<para></para> - -<para>A process which is placed inside a simulation of the -machine. This is more hard-core. Basically it means that -someone who is able to break into the process may believe -that he can break into the wider machine but is, in fact, -only breaking into a simulation of that machine and not -modifying any real data.</para> - -<para></para> - -<para>The most common way to accomplish this is to build a -simulated environment in a subdirectory and then run the -processes in that directory chroot'd (i.e. "/" for that -process is this directory, not the real "/" of the -system).</para> - -<para></para> - -<para>Another common use is to mount an underlying filesystem -read-only and then create a filesystem layer on top of it -that gives a process a seemingly writeable view into that -filesystem. The process may believe it is able to write -to those files, but only the process sees the effects -- other processes in the system do not, necessarily.</para> - -<para>An attempt is made to make this sort of sandbox so -transparent that the user (or hacker) does not realize -that he is sitting in it.</para> -</listitem> - -</itemizedlist> -</para> - -<para>UNIX implements two core sanboxes. One is at the process -level, and one is at the userid level.</para> - -<para>Every UNIX process is completely firewalled off from every -other UNIX process. One process can not modify the address space -of another. This is unlike Windows where a process can easily -overwrite the address space of any other, leading to a crash.</para> - -<para>A UNIX process is owned by a patricular userid. If the -userid is not the root user, it serves to firewall the process -off from processes owned by other users. The userid is also -used to firewall off on-disk data.</para> - -</answer></qandaentry> - - <qandaentry> - <question> - <para>How do I let ordinary users mount floppies and other removable - media?</para> - </question> - - <answer> - <para>Ordinary users can be permitted to mount devices. Here is - how:</para> - - <procedure> - <step> - <para>As <username>root</username> assign the appropriate - permissions to the block device associated with the removable - media.</para> - - <para>For example, to allow users to mount the first floppy - drive, use:</para> - - <screen>&prompt.root; <userinput>chmod 777 /dev/fd0</userinput></screen> - </step> - - <step> - <para>As <username>root</username> set the sysctl variable - <varname>vfs.usermount</varname> to - <literal>1</literal>.</para> - - <screen>&prompt.root; <userinput>sysctl -w vfs.usermount=1</userinput></screen> - </step> - </procedure> - - <para>Users can now mount <filename>/dev/fd0</filename> onto a - directory that they own:</para> - - <screen>&prompt.user; <userinput> mkdir ~/my-mount-point</userinput> -&prompt.user; <userinput> mount -t msdos /dev/fd0 ~/my-mount-point</userinput></screen> - - <para>Unmounting the device is simple:</para> - - <screen>&prompt.user; <userinput>umount <filename>~/my-mount-point</filename></userinput></screen> - - <para>Enabling <varname>vfs.usermount</varname>, however, has - negative security implications. A better way to access MSDOS - formatted media is to use the - <ulink - url="http://www.freebsd.org/cgi/ports.cgi?query=%5Emtools-&stype=name">mtools</ulink> package in the ports collection.</para> - </answer> - </qandaentry> - -</qandaset> -</chapter> - -<chapter -id="x"> -<title>The X Window System and Virtual Consoles</title> - - -<qandaset><qandaentry><question> -<para>I want to run X, how do I go about it?</para></question><answer> - -<para>The easiest way is to simply specify that you want to run X -during the installation process.</para> - -<para>Then read and follow the documentation on the <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=xf86config">xf86config</ulink> tool, which assists you in configuring XFree86(tm) -for your particular graphics card/mouse/etc.</para> - -<para>You may also wish to investigate the Xaccel server. -See the section on <link linkend="xig">Xi Graphics</link> or -<link linkend="metrox">Metro Link</link> for more details.</para> - -</answer></qandaentry> - -<qandaentry><question -id="x-and-moused"> -<para>Why doesn't my mouse work with X?</para></question><answer> - -<para>If you are using syscons (the default console driver), you can -configure FreeBSD to support a mouse pointer on each virtual -screen. In order to avoid conflicting with X, syscons supports -a virtual device called ``<filename>/dev/sysmouse</filename>''. All mouse events -received from the real mouse device are written to the sysmouse -device via moused. If you wish to use your -mouse on one or more virtual consoles, <emphasis remap=bf>and</emphasis> use X, -see <xref linkend="moused" remap="another section"> and set up moused.</para> - - <para>Then edit <filename>/etc/XF86Config</filename> and make sure you - have the following lines.</para> - - <programlisting> -Section Pointer -Protocol "SysMouse" -Device "/dev/sysmouse" -.....</programlisting> - -<para>The above example is for XFree86 3.3.2 or later. For earlier -versions, the <emphasis>Protocol</emphasis> should be -<emphasis>MouseSystems</emphasis>.</para> - -<para>Some people prefer to use ``<filename>/dev/mouse</filename>'' under X. To -make this work, ``<filename>/dev/mouse</filename>'' should be linked to -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sysmouse">/dev/sysmouse</ulink>:</para> - -<para> -<literallayout> # cd /dev - # rm -f mouse - # ln -s sysmouse mouse - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry> - <question id="x-and-wheel"> - <para>My mouse has a fancy wheel. Can I use it in X?</para> - </question> - - <answer> - <para>Yes. But you need to customize X client programs. See <ulink - URL="http://www.inria.fr/koala/colas/mouse-wheel-scroll/">Colas Nahaboo's web page (http://www.inria.fr/koala/colas/mouse-wheel-scroll/)</ulink>.</para> - - <para>If you want to use the - <application>imwheel</application> program, just follow - these simple steps.</para> - - <orderedlist> - <listitem> - <para>Translate the Wheel Events</para> - - <para>The <application>imwheel</application> program - works by translating mouse button 4 and mouse button 5 - events into key events. Thus, you have to get the - mouse driver to translate mouse wheel events to button - 4 and 5 events. There are two ways of doing this, the - first way is to have &man.moused.8; do the - translation. The second way is for the X server - itself to do the event translation.</para> - - <orderedlist> - <listitem> - <para>Using &man.moused.8; to Translate Wheel - Events</para> - - <para>To have &man.moused.8; perform the event - translations, simply add <option>-z 4</option> to - the command line used to start &man.moused.8;. - For example, if you normally start &man.moused.8; - via <command>moused -p /dev/psm0</command> you - would start it by entering <command>moused -p - /dev/psm0 -z 4</command> instead. If you start - &man.moused.8; automatically during bootup via - <filename>/etc/rc.conf</filename>, you can simply - add <option>-z 4</option> to the - <varname>moused_flags</varname> variable in - <filename>/etc/rc.conf</filename>.</para> - - <para>You now need to tell X that you have a 5 - button mouse. To do this, simply add the line - <literal>Buttons 5</literal> to the - <quote>Pointer</quote> section of - <filename>/etc/XF86Config</filename>. For - example, you might have the following - <quote>Pointer</quote> section in - <filename>/etc/XF86Config</filename>.</para> - - <example> - <title><quote>Pointer</quote> Section for Wheeled - Mouse in XF86Config with moused - Translation</title> - - <programlisting>Section "Pointer" - Protocol "SysMouse" - Device "/dev/sysmouse" - Buttons 5 -EndSection - </programlisting> - </example> - </listitem> - - <listitem> - <para>Using Your X Server to Translate the Wheel - Events</para> - - <para>If you aren't running &man.moused.8;, or if - you don't want &man.moused.8; to translate your - wheel events, you can have the X server do the - event translation instead. This requires a couple - of modifications to your - <filename>/etc/XF86Config</filename> file. First, - you need to choose the proper protocol for your - mouse. Most wheeled mice use the - <quote>IntelliMouse</quote> protocol. However, - XFree86 does support other protocols, such as - <quote>MouseManPlusPS/2</quote> for the Logitech - MouseMan+ mice. Once you have chosen the protocol - you will use, you need to add a - <varname>Protocol</varname> line to the - <quote>Pointer</quote> section.</para> - - <para>Secondly, you need to tell the X server to - remap wheel scroll events to mouse buttons 4 and - 5. This is done with the - <varname>ZAxisMapping</varname> option.</para> - - <para>For example, if you aren't using - &man.moused.8;, and you have an IntelliMouse - attached to the PS/2 mouse port you would use - the following in - <filename>/etc/XF86Config</filename>.</para> - - <example> - <title><quote>Pointer</quote> Section for Wheeled - Mouse in <filename>XF86Config</filename> with X - Server Translation</title> - - <programlisting>Section "Pointer" - Protocol "IntelliMouse" - Device "/dev/psm0" - ZAxisMapping 4 5 -EndSection - </programlisting> - </example> - </listitem> - </orderedlist> - </listitem> - - <listitem> - <para>Install <application>imwheel</application></para> - - <para>Next, install <application>imwheel</application> - from the Ports collection. It can be found in the - <filename>x11</filename> category. This program will - map the wheel events from your mouse into keyboard - events. For example, it might send <keycap>Page - Up</keycap> to a program when you scroll the wheel - forwards. <application>Imwheel</application> uses a - configuration file to map the wheel events to - keypresses so that it can send different keys to - different applications. The default - <application>imwheel</application> configuration file - is installed in - <filename>/usr/X11R6/etc/imwheelrc</filename>. You - can copy it to <filename>~/.imwheelrc</filename> and - then edit it if you wish to customize - <application>imwheel</application>'s configuration. - The format of the configuration file is documented in - &man.imwheel.1;.</para> - </listitem> - - <listitem> - <para>Configure <application>Emacs</application> to Work - with <application>Imwheel</application> - (<emphasis>optional</emphasis>)</para> - - <para>If you use <application>emacs</application> or - <application>Xemacs</application>, then you need to - add a small section to your - <filename>~/.emacs</filename> file. For - <application>emacs</application>, add the - following:</para> - - <example> - <title><application>Emacs</application> Configuration - for <application>Imwheel</application></title> - - <programlisting>;;; For imwheel -(setq imwheel-scroll-interval 3) -(defun imwheel-scroll-down-some-lines () - (interactive) - (scroll-down imwheel-scroll-interval)) -(defun imwheel-scroll-up-some-lines () - (interactive) - (scroll-up imwheel-scroll-interval)) -(global-set-key [?\M-\C-\)] 'imwheel-scroll-up-some-lines) -(global-set-key [?\M-\C-\(] 'imwheel-scroll-down-some-lines) -;;; end imwheel section - </programlisting> - </example> - - <para>For <application>Xemacs</application>, add the - following to your <filename>~/.emacs</filename> file - instead:</para> - - <example> - <title><application>Xemacs</application> Configuration - for <application>Imwheel</application></title> - - <programlisting>;;; For imwheel -(setq imwheel-scroll-interval 3) -(defun imwheel-scroll-down-some-lines () - (interactive) - (scroll-down imwheel-scroll-interval)) -(defun imwheel-scroll-up-some-lines () - (interactive) - (scroll-up imwheel-scroll-interval)) -(define-key global-map [(control meta \))] 'imwheel-scroll-up-some-lines) -(define-key global-map [(control meta \()] 'imwheel-scroll-down-some-lines) -;;; end imwheel section - </programlisting> - </example> - </listitem> - - <listitem> - <para>Run <application>Imwheel</application></para> - - <para>You can just type <command>imwheel</command> - in an xterm to start it up once it is installed. It - will background itself and take effect immediately. - If you want to always use - <application>imwheel</application>, simply add it to - your <filename>.xinitrc</filename> or - <filename>.xsession</filename> file. You can safely - ignore any warnings <application>imwheel</application> - displays about PID files. Those warnings only apply - to the Linux version of - <application>imwheel</application>.</para> - </listitem> - </orderedlist> - </answer> -</qandaentry> - -<qandaentry><question> -<para>X Window menus and dialog boxes don't work right!</para></question><answer> - -<para>Try turning off the Num Lock key.</para> - -<para>If your Num Lock key is on by default at boot-time, you may add -the following line in the ``<emphasis remap=tt>Keyboard</emphasis>'' section of the -<emphasis remap=tt>XF86Config</emphasis> file.</para> - -<para> -<literallayout> # Let the server do the NumLock processing. This should only be - # required when using pre-R6 clients - ServerNumLock - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>What is a virtual console and how do I make more?</para></question><answer> - -<para>Virtual consoles, put simply, enable you to have several -simultaneous sessions on the same machine without doing anything -complicated like setting up a network or running X.</para> - -<para>When the system starts, it will display a login prompt on -the monitor after displaying all the boot messages. You can -then type in your login name and password and start working (or -playing!) on the first virtual console.</para> - -<para>At some point, you will probably wish to start another -session, perhaps to look at documentation for a program -you are running or to read your mail while waiting for an -FTP transfer to finish. Just do Alt-F2 (hold down the Alt -key and press the F2 key), and you will find a login prompt -waiting for you on the second ``virtual console''! When you -want to go back to the original session, do Alt-F1.</para> - -<para>The default FreeBSD installation has three virtual consoles -enabled (8 starting with 3.3-RELEASE), and Alt-F1, Alt-F2, and -Alt-F3 will switch between these virtual consoles.</para> - -<para>To enable more of them, edit <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink> -and add entries for ``<emphasis remap=tt>ttyv4</emphasis>'' to ``<emphasis remap=tt>ttyvc</emphasis>'' after the -comment on ``Virtual terminals'':</para> - -<para> -<literallayout> # 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 - </literallayout> -</para> - -<para>Use as many or as few as you want. The more virtual terminals -you have, the more resources that are used; this can be important -if you have 8MB RAM or less. You may also want to change the -``<emphasis remap=tt>secure</emphasis>'' to ``<emphasis remap=tt>insecure</emphasis>''.</para> - -<para><emphasis remap=bf>IMPORTANT NOTE</emphasis> if you want to run an X server you <acronym>MUST</acronym> -leave at least one virtual terminal unused (or turned off) for it -to use. That is to say that if you want to have a login -prompt pop up for all twelve of your Alt-function keys, -you're out of luck - you can only do this for eleven of them -if you also want to run an X server on the same machine.</para> - -<para>The easiest way to disable a console is by turning it off. For -example, if you had the full 12 terminal allocation mentioned -above and you wanted to run X, you would change settings for -virtual terminal 12 from:</para> - -<para> -<literallayout> ttyvb "/usr/libexec/getty Pc" cons25 on secure - </literallayout> -</para> - -<para>to:</para> - -<para> -<literallayout> ttyvb "/usr/libexec/getty Pc" cons25 off secure - </literallayout> -</para> - -<para>If your keyboard has only ten function keys, you would end up with:</para> - -<para> -<literallayout> ttyv9 "/usr/libexec/getty Pc" cons25 off secure - ttyva "/usr/libexec/getty Pc" cons25 off secure - ttyvb "/usr/libexec/getty Pc" cons25 off secure - </literallayout> -</para> - -<para>(You could also just delete these lines.)</para> - -<para>Once you have edited <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink>, -the next step is to make sure that you have enough virtual terminal -devices. The easiest way to do this is:</para> - -<para> -<literallayout> # cd /dev - # ./MAKEDEV vty12 # For 12 devices - </literallayout> -</para> - -<para>Next, the easiest (and cleanest) way to activate the virtual -consoles is to reboot. However, if you really don't want to -reboot, you can just shut down the X Window system and execute (as -<emphasis remap=tt>root</emphasis>):</para> - -<para> -<literallayout> kill -HUP 1 - </literallayout> -</para> - -<para>It's imperative that you completely shut down X Window if it is -running, before running this command. If you don't, your system -will probably appear to hang/lock up after executing the kill -command.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I access the virtual consoles from X?</para></question><answer> - -<para>If the console is currently displaying X Window, you can use -Ctrl-Alt-F1, etc. to switch to a virtual console. Note, however, -that once you've switched away from X Window to a virtual -terminal, you may use only the Alt- function key to switch to another -virtual terminal or back to X Window. You do not need to also press the -Ctrl key. If you use the control key to switch back to X on some -older releases, you can find your text console stuck in ``control-lock'' -mode. Tap the control key to wake it up again.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I start XDM on boot?</para></question><answer> - -<para>There are two schools of thought on how to start <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=xdm">xdm</ulink>. One school starts xdm from -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink> using the supplied example, while the other -simply runs xdm from <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc(8)">rc.local</ulink> or -from a <filename>X.sh</filename> script in <filename>/usr/local/etc/rc.d</filename>. -Both are equally valid, and one may work in -situations where the other doesn't. In both cases the result is the -same: X will popup a graphical login: prompt. </para> - -<para>The ttys method has the advantage -of documenting which vty X will start on and passing the responsibility -of restarting the X server on logout to init. The rc.local method -makes it easy to kill xdm if there is a problem starting the X server. </para> - -<para>If loaded from rc.local, <emphasis remap=tt>xdm</emphasis> should be started without any -arguments (i.e., as a daemon). xdm must start AFTER getty runs, or -else getty and xdm will conflict, locking out the console. The best -way around this is to have the script sleep 10 seconds or so then -launch xdm.</para> - -<para>If you are to start <command>xdm</command> from - <filename>/etc/ttys</filename>, there still is a chance of conflict - between <command>xdm</command> and <command>getty</command>. One way to - avoid this is to add the <literal>vt</literal> number in the - <filename>/usr/X11R6/lib/X11/xdm/Xservers</filename> file.</para> - -<programlisting>:0 local /usr/X11R6/bin/X vt4</programlisting> - -<para>The above example will direct the X server to run in - <filename>/dev/ttyv3</filename>. Note the number is offset by one. The - X server counts the vty from one, whereas the FreeBSD kernel numbers the - vty from zero.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>When I run xconsole, I get ``Couldn't open console''.</para></question><answer> - -<para>If you start <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=X">X</ulink> with <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=startx">startx</ulink>, the permissions on /dev/console will <emphasis remap=tt>not</emphasis> get -changed, resulting in things like <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=xterm">xterm -C</ulink> and <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=xconsole">xconsole</ulink> not working.</para> - -<para>This is because of the way console permissions are set by default. -On a multi-user system, one doesn't necessarily want just any user -to be able to write on the system console. For users who are logging -directly onto a machine with a VTY, the -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fbtab">fbtab</ulink> -file exists to solve such problems.</para> - -<para>In a nutshell, make sure an uncommented line of the form</para> - -<para> -<literallayout> /dev/ttyv0 0600 /dev/console - </literallayout> -</para> - -<para>is in <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fbtab(5)">/etc/fbtab</ulink> and it will ensure that whomever logs in on -<filename>/dev/ttyv0</filename> will own the console.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>My PS/2 mouse doesn't behave properly under X.</para></question><answer> - -<para>Your mouse and the mouse driver may have somewhat become out of -synchronization.</para> - -<para>In versions 2.2.5 and earlier, switching away from X to a -virtual terminal and getting back to X again may make them -re-synchronized. If the problem occurs often, you may add the -following option in your kernel configuration file and recompile it.</para> - -<para> -<literallayout> options PSM_CHECKSYNC - </literallayout> -</para> - -<para>See the section on <link linkend="make-kernel">building a kernel</link> -if you've no experience with building kernels.</para> - -<para>With this option, there should be less chance of synchronization -problem between the mouse and the driver. If, however, you -still see the problem, click any mouse button while holding -the mouse still to re-synchronize the mouse and the driver.</para> - -<para>Note that unfortunately this option may not work with all the -systems and voids the ``tap'' feature of the ALPS GlidePoint -device attached to the PS/2 mouse port.</para> - -<para>In versions 2.2.6 and later, synchronization check is done -in a slightly better way and is standard in the PS/2 mouse driver. -It should even work with GlidePoint. (As the check code has become -a standard feature, PSM_CHECKSYNC option is not available in these -versions.) However, in rare case the driver may erroneously report -synchronization problem and you may see the kernel message:</para> - -<para> -<literallayout> psmintr: out of sync (xxxx != yyyy) - </literallayout> -</para> - -<para>and find your mouse doesn't seem to work properly.</para> - -<para>If this happens, disable the synchronization check code by -setting the driver flags for the PS/2 mouse driver to 0x100. -Enter <emphasis>UserConfig</emphasis> by giving the ``<option>-c</option>'' option -at the boot prompt:</para> - -<para> -<literallayout> boot: -c - </literallayout> -</para> - -<para>Then, in the <emphasis>UserConfig</emphasis> command line, type:</para> - -<para> -<literallayout> UserConfig> flags psm0 0x100 - UserConfig> quit - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>My PS/2 mouse from MouseSystems doesn't seem to work.</para></question><answer> - -<para>There have been some reports that certain model of PS/2 mouse -from MouseSystems works only if it is put into the ``high resolution'' -mode. Otherwise, the mouse cursor may jump to the upper-left -corner of the screen every so often.</para> - -<para>Unfortunately there is no workaround for versions 2.0.X and -2.1.X. In versions 2.2 through 2.2.5, apply the following patch -to <filename>/sys/i386/isa/psm.c</filename> and rebuild the kernel. See the -section on <link linkend="make-kernel">building a kernel</link> -if you've no experience with building kernels.</para> - -<para> -<literallayout>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 */ - </literallayout> -</para> - -<para>In versions 2.2.6 or later, specify the flags 0x04 to the PS/2 -mouse driver to put the mouse into the high resolution mode. -Enter <emphasis>UserConfig</emphasis> by giving the ``<option>-c</option>'' option -at the boot prompt:</para> - -<para> -<literallayout> boot: -c - </literallayout> -</para> - -<para>Then, in the <emphasis>UserConfig</emphasis> command line, type:</para> - -<para> -<literallayout> UserConfig> flags psm0 0x04 - UserConfig> quit - </literallayout> -</para> - -<para>See the previous section for another possible cause of mouse -problems.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>When building an X app, <emphasis remap=tt>imake</emphasis> can't find <filename>Imake.tmpl</filename>. Where is it? - </para></question><answer> - -<para>Imake.tmpl is part of the Imake package, a standard X application building tool. -Imake.tmpl, as well as several header files that are required to build X apps, -is contained in the X prog distribution. You can install this from sysinstall or -manually from the X distribution files. </para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I reverse the mouse buttons? - </para></question><answer> - -<para>Run the command <literal> xmodmap -e "pointer = 3 2 1"</literal> from your .xinitrc or .xsession.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I install a splash screen and where do I find them? - </para></question><answer> - -<para>Just prior to the release of FreeBSD 3.1, a new feature was -added to allow the display of "splash" screens during -the boot messages. The splash screens currently must be a 256 -color bitmap (<filename>*.BMP</filename>) or ZSoft PCX -(<filename>*.PCX</filename>) file. In addition, they must have a -resolution of 320x200 or less to work on standard VGA adapters. -If you compile VESA support into your kernel, then you can use -larger bitmaps up to 1024x768. Note that VESA support requires -the <emphasis remap=tt>VM86</emphasis> kernel option to be compiled into the -kernel. The actual VESA support can either be compiled directly -into the kernel with the <acronym>VESA</acronym> kernel config option -or by loading the VESA kld module during bootup.</para> - -<para>To use a splash screen, you need to modify the startup files -that control the boot process for FreeBSD. The files for this -changed prior to the release of FreeBSD 3.2, so there are now -two ways of loading a splash screen:</para> - -<para> -<itemizedlist> - -<listitem> -<para>FreeBSD 3.1 - -</para> - -<para>The first step is to find a bitmap version of your splash -screen. Release 3.1 only supports Windows bitmap splash -screens. Once you've found your splash screen of choice -copy it to <filename>/boot/splash.bmp</filename>. Next, you need to -have a <filename>/boot/loader.rc</filename> file that contains the -following lines:</para> - -<para> -<literallayout> load kernel - load -t splash_image_data /boot/splash.bmp - load splash_bmp - autoboot - </literallayout> -</para> -</listitem> - -<listitem> -<para>FreeBSD 3.2+ - -</para> - -<para>In addition to adding support for PCX splash screens, -FreeBSD 3.2 includes a nicer way of configuring the boot -process. If you wish, you can use the method listed above -for FreeBSD 3.1. If you do and you want to use PCX, replace -<symbol>splash_bmp</symbol> with <symbol>splash_pcx</symbol>. If, -on the other hand, you want to use the newer boot -configuration, you need to create a -<filename>/boot/loader.rc</filename> file that contains the -following lines:</para> - -<para> -<literallayout> include /boot/loader.4th - start - </literallayout> -</para> - -<para></para> - -<para>and a <filename>/boot/loader.conf</filename> that contains the -following:</para> - -<para> -<literallayout> splash_bmp_load="YES" - bitmap_load="YES" - </literallayout> -</para> - -<para></para> - -<para>This assumes you are using <filename>/boot/splash.bmp</filename> -for your splash screen. If you'd rather use a PCX file, -copy it to <filename>/boot/splash.pcx</filename>, create a -<filename>/boot/loader.rc</filename> as instructed above, and -create a <filename>/boot/loader.conf</filename> that contains:</para> - -<para> -<literallayout> splash_pcx_load="YES" - bitmap_load="YES" - bitmap_name="/boot/splash.pcx" - </literallayout> -</para> -</listitem> - -</itemizedlist> -</para> - -<para>Now all you need is a splash screen. For that you can surf -on over to the gallery at <ulink URL="http://www.cslab.vt.edu/~jobaldwi/splash/">http://www.cslab.vt.edu/~jobaldwi/splash/</ulink>.</para> - -</answer></qandaentry> - - <qandaentry> - <question> - <para>Can I use the Windows(tm) keys on my keyboard in X?</para> - </question> - - <answer> - <para>Yes. All you need to do is use &man.xmodmap.1; to define what - function you wish them to perform.</para> - - <para>Assuming all "Windows(tm)" keyboards are standard - then the keycodes for the 3 keys are</para> - - <itemizedlist> - <listitem> - <para>115 - Windows(tm) key, between the left-hand Ctrl and - Alt keys</para> - </listitem> - - <listitem> - <para>116 - Windows(tm) key, to the right of the Alt-Gr - key</para> - </listitem> - - <listitem> - <para>117 - Menu key, to the left of the right-hand Ctrl - key</para> - </listitem> - </itemizedlist> - - <para>To have the left Windows(tm) key print a comma, try - this.</para> - - <screen>&prompt.root; <userinput>xmodmap -e "keycode 115 = comma"</userinput></screen> - - <para>You will probably have to re-start your window manager - to see the result.</para> - - <para>To have the Windows(tm) key-mappings enabled automatically - everytime you start X either put the <command>xmodmap</command> - commands in your <filename>~/.xinitrc</filename> file or, - preferably, create a file <filename>~/.xmodmaprc</filename> and - include the <command>xmodmap</command> options, one per line, - then add the line</para> - - <programlisting>xmodmap $HOME/.xmodmaprc</programlisting> - - <para>to your <filename>~/.xinitrc</filename>.</para> - - <para>For example, I have mapped the 3 keys to be F13, F14, and F15 - respectively. This makes it easy to map them to useful functions - within applications or your window manager.</para> - - <para>To do this put the following in - <filename>~/.xmodmaprc</filename>.</para> - - <programlisting>keycode 115 = F13 -keycode 116 = F14 -keycode 117 = F15</programlisting> - - <para>I use <command>fvwm2</command> and have mapped the keys so - that F13 iconifies (or de-iconifies) the window the cursor is in, - F14 brings the window the cursor is in to the front or, if it is - already at the front, pushes it to the back, and F15 pops up the - main Workplace (application) menu even if the cursor is not on the - desktop, which is useful if you don't have any part of the desktop - visible (and the logo on the key matches its - functionality).</para> - - <para>The entries in my <filename>~/.fvwmrc</filename> which map the - keys this way are:</para> - - <programlisting>Key F13 FTIWS A Iconify -Key F14 FTIWS A RaiseLower -Key F15 A A Menu Workplace Nop</programlisting> - - </answer> - </qandaentry> - </qandaset> - -</chapter> - -<chapter -id="networking"> -<title>Networking</title> - - -<qandaset><qandaentry><question> -<para>Where can I get information on ``diskless booting''?</para></question><answer> - -<para>``Diskless booting'' means that the FreeBSD box is booted over a -network, and reads the necessary files from a server instead of -its hard disk. For full details, please read -<ulink URL="../handbook/diskless.html">the Handbook entry on diskless booting</ulink></para> - -</answer></qandaentry> - -<qandaentry><question> -<para> Can a FreeBSD box be used as a dedicated network router? - </para></question><answer> - -<para>Internet standards and good engineering practice prohibit us from -providing packet forwarding by default in FreeBSD. You can -however enable this feature by changing the following variable to -<acronym>YES</acronym> in <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf">rc.conf</ulink>:</para> - -<para> -<literallayout> gateway_enable=YES # Set to YES if this host will be a gateway - </literallayout> -</para> - -<para>This option will put the <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sysctl">sysctl</ulink> variable -<filename>net.inet.ip.forwarding</filename> to <emphasis remap=tt>1</emphasis>.</para> - -<para>In most cases, you will also need to run a routing process to -tell other systems on your network about your router; FreeBSD -comes with the standard BSD routing daemon -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?routed">routed</ulink>, or for more complex situations you may want to try -<emphasis>GaTeD</emphasis> (available from <ulink URL="http://www.gated.org/"> http://www.gated.org/ </ulink>) which -supports FreeBSD as of 3_5Alpha7.</para> - -<para>It is our duty to warn you that, even when FreeBSD is configured -in this way, it does not completely comply with the Internet -standard requirements for routers; however, it comes close enough -for ordinary usage.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Can I connect my Win95 box to the Internet via FreeBSD?</para></question><answer> - -<para>Typically, people who ask this question have two PC's at home, one -with FreeBSD and one with Win95; the idea is to use the FreeBSD -box to connect to the Internet and then be able to access the -Internet from the Windows95 box through the FreeBSD box. This -is really just a special case of the previous question.</para> -<para> ... and the answer is yes! In FreeBSD 3.x, user-mode ppp contains a -<option>-nat</option> option. If you run <command>ppp</command> with -the <option>-nat</option>, set <literal>gateway_enable</literal> to -<emphasis>YES</emphasis> in <filename>/etc/rc.conf</filename>, and -configure your Windows machine correctly, this should work -fine.</para> - -<para>More detailed information about setting this up can be found in -the <ulink url="http://www.FreeBSD.org/tutorials/ppp/index.html">Pedantic PPP -Primer</ulink> by Steve Sims.</para> - -<para>If you are using kernel-mode ppp, or have an Ethernet connection -to the Internet, you will have to use <command>natd</command>. Please -look at the <link linkend="natd">natd</link> section of this FAQ.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> Why does recompiling the latest BIND from ISC fail? - </para></question><answer> - -<para>There is a conflict between the ``<filename>cdefs.h</filename>'' file in the -distribution and the one shipped with FreeBSD. Just remove -<filename>compat/include/sys/cdefs.h</filename>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Does FreeBSD support SLIP and PPP?</para></question><answer> - -<para>Yes. See the man pages for -<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> and -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink>. -<emphasis remap=tt>pppd</emphasis> and <emphasis remap=tt>ppp</emphasis> provide support for both incoming and outgoing -connections. <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sliplogin">Sliplogin</ulink> deals exclusively with incoming connections and -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?slattach">slattach</ulink> deals exclusively with outgoing connections.</para> - -<para>These programs are described in the following sections of the -<ulink URL="../handbook/index.html">handbook</ulink>:</para> - -<para> -<itemizedlist> - -<listitem> -<para><ulink URL="../handbook/slips.html">Handbook entry on SLIP (server side)</ulink> -</para> -</listitem> - -<listitem> -<para><ulink URL="../handbook/slipc.html">Handbook entry on SLIP (client side)</ulink> -</para> -</listitem> - -<listitem> -<para><ulink URL="../handbook/ppp.html">Handbook entry on PPP (kernel version)</ulink> -</para> -</listitem> - -<listitem> -<para><ulink URL="../handbook/ppp-and-slip.html#USERPPP">Handbook entry on PPP (user-mode version)</ulink></para> -</listitem> - -</itemizedlist> -</para> - -<para>If you only have access to the Internet through a "shell -account", you may want to have a look at the <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^slirp">slirp</ulink> -package. It can provide you with (limited) access to services -such as ftp and http direct from your local machine.</para> - -</answer></qandaentry> - -<qandaentry><question -id="natd"> -<para> Does FreeBSD support NAT or Masquerading - </para></question><answer> - -<para>If you have a local subnet (one or more local machines), but have -been allocated only a single IP number from your Internet provider -(or even if you receive a dynamic IP number), you may want to look at -the <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?natd">natd</ulink> -program. <emphasis remap=tt>Natd</emphasis> allows you to connect an entire subnet to the -internet using only a single IP number.</para> - -<para>The <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink> program has similar functionality built in via -the <option>-nat</option> switch. The <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?libalias">alias library</ulink> -is used in both cases.</para> - -</answer></qandaentry> - - -<qandaentry><question> -<para>I can't create a <filename>/dev/ed0</filename> device!</para></question><answer> - -<para>In the Berkeley networking framework, network interfaces are only -directly accessible by kernel code. Please see the -<filename>/etc/rc.network</filename> file and the manual pages for the various -network programs mentioned there for more information. If this -leaves you totally confused, then you should pick up a book -describing network administration on another BSD-related -operating system; with few significant exceptions, administering -networking on FreeBSD is basically the same as on SunOS 4.0 or -Ultrix.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How can I setup Ethernet aliases?</para></question><answer> - -<para>Add ``<literal>netmask 0xffffffff</literal>'' to your <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ifconfig">ifconfig</ulink> -command-line like the following:</para> - -<para> -<literallayout> ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I get my 3C503 to use the other network port?</para></question><answer> - -<para>If you want to use the other ports, you'll have to specify an -additional parameter on the -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ifconfig">ifconfig</ulink> command line. The -default port is ``<emphasis remap=tt>link0</emphasis>''. To use the AUI port instead of -the BNC one, use ``<emphasis remap=tt>link2</emphasis>''. These flags should be specified -using the ifconfig_* variables in <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf">/etc/rc.conf</ulink>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I'm having problems with NFS to/from FreeBSD.</para></question><answer> - -<para>Certain PC network cards are better than others (to put it -mildly) and can sometimes cause problems with network intensive -applications like NFS.</para> - -<para>See <ulink URL="../handbook/nfs.html">the Handbook entry on NFS</ulink> -for more information on this topic.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Why can't I NFS-mount from a Linux box?</para></question><answer> - -<para>Some versions of the Linux NFS code only accept mount requests -from a privileged port; try</para> - -<para> -<literallayout> mount -o -P linuxbox:/blah /mnt - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Why can't I NFS-mount from a Sun box?</para></question><answer> - -<para>Sun workstations running SunOS 4.X only accept mount requests -from a privileged port; try</para> - -<para> -<literallayout> mount -o -P sunbox:/blah /mnt - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I'm having problems talking PPP to NeXTStep machines.</para></question><answer> - -<para>Try disabling the TCP extensions in <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf">/etc/rc.conf</ulink> by -changing the following variable to NO:</para> - -<para> -<literallayout> tcp_extensions=NO - </literallayout> -</para> - -<para>Xylogic's Annex boxes are also broken in this regard and you must -use the above change to connect thru them.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I enable IP multicast support?</para></question><answer> - -<para>Multicast host operations are fully supported in FreeBSD 2.0 and -later by default. If you want your box to run as a multicast router, -you will need to recompile your kernel with the <acronym>MROUTING</acronym> -option and run <emphasis remap=tt>mrouted</emphasis>. FreeBSD 2.2 and later will start -<emphasis remap=tt>mrouted</emphasis> at boot time if the flag <symbol>mrouted_enable</symbol> is set -to "YES" in <filename>/etc/rc.conf</filename>.</para> - -<para>MBONE tools are available in their own ports category, mbone. If -you are looking for the conference tools <emphasis remap=tt>vic</emphasis> and <emphasis remap=tt>vat</emphasis>, -look there!</para> - -<para>For more information, see the -<ulink URL="http://www.mbone.com/">Mbone Information Web</ulink>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Which network cards are based on the DEC PCI chipset?</para></question><answer> - -<para>Here is a list compiled by <ulink URL="mailto:gfoster@driver.nsta.org">Glen Foster</ulink>, with some more modern additions:</para> - -<para> -<literallayout> Vendor Model - ---------------------------------------------- - ASUS PCI-L101-TB - Accton ENI1203 - Cogent EM960PCI - Compex ENET32-PCI - D-Link DE-530 - Dayna DP1203, DP2100 - DEC DE435, DE450 - Danpex EN-9400P3 - JCIS Condor JC1260 - Linksys EtherPCI - Mylex LNP101 - SMC EtherPower 10/100 (Model 9332) - SMC EtherPower (Model 8432) - TopWare TE-3500P - Znyx (2.2.x) ZX312, ZX314, ZX342, ZX345, ZX346, ZX348 - (3.x) ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442, - ZX444, ZX474, ZX478, ZX212, ZX214 (10mbps/hd) - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Why do I have to use the FQDN for hosts on my site?</para></question><answer> - -<para>You will probably find that the host is actually in a different -domain; for example, if you are in foo.bar.edu and you wish to reach -a host called ``mumble'' in the bar.edu domain, you will have to -refer to it by the fully-qualified domain name, ``mumble.bar.edu'', -instead of just ``mumble''.</para> - -<para>Traditionally, this was allowed by BSD BIND resolvers. However -the current version of <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?named">bind</ulink> that ships -with FreeBSD no longer provides default abbreviations for non-fully -qualified domain names other than the domain you are in. -So an unqualified host <emphasis remap=tt>mumble</emphasis> must either be found -as <filename>mumble.foo.bar.edu</filename>, or it will be searched for -in the root domain.</para> - -<para>This is different from the previous behavior, where the -search continued across <filename>mumble.bar.edu</filename>, and -<filename>mumble.edu</filename>. Have a look at RFC 1535 for why this -was considered bad practice, or even a security hole.</para> - -<para>As a good workaround, you can place the line</para> - -<para> -<literallayout> search foo.bar.edu bar.edu - </literallayout> -</para> - -<para>instead of the previous</para> - -<para> -<literallayout> domain foo.bar.edu - </literallayout> -</para> - -<para>into your <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?resolv.conf">/etc/resolv.conf</ulink> file. However, make sure that the search order -does not go beyond the ``boundary between local and public -administration'', as RFC 1535 calls it.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>``Permission denied'' for all networking operations.</para></question><answer> - -<para>If you have compiled your kernel with the <acronym>IPFIREWALL</acronym> -option, you need to be aware that the default policy as of -2.1.7R (this actually changed during 2.1-STABLE development) -is to deny all packets that are not explicitly allowed.</para> - -<para>If you had unintentionally misconfigured your system for -firewalling, you can restore network operability by typing -the following while logged in as root:</para> - -<para> -<literallayout> ipfw add 65534 allow all from any to any - </literallayout> -</para> - -<para>You can also set "firewall_type='open'" in <filename>/etc/rc.conf</filename>.</para> - -<para>For further information on configuring a FreeBSD firewall, -see the <ulink URL="../handbook/firewalls.html">Handbook section</ulink>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How much overhead does IPFW incur?</para></question><answer> - -<para>The answer to this depends mostly on your rule set and processor -speed. For most applications dealing with ethernet and small -rule sets, the answer is, negligible. For those of you that need -actual measurements to satisfy your curiosity, read on.</para> - -<para>The following measurements were made using 2.2.5-STABLE on -a 486-66. IPFW was modified to measure the time spent within -the <symbol>ip_fw_chk</symbol> routine, displaying the results to the console -every 1000 packets.</para> - -<para>Two rule sets, each with 1000 rules were tested. The first set -was designed to demonstrate a worst case scenario by repeating the -rule:</para> - -<para> -<literallayout> ipfw add deny tcp from any to any 55555 - </literallayout> -</para> - -<para>This demonstrates worst case by causing most of IPFW's packet -check routine to be executed before finally deciding that the -packet does not match the rule (by virtue of the port number). -Following the 999th iteration of this rule was an <emphasis remap=tt>allow ip -from any to any</emphasis>.</para> - -<para>The second set of rules were designed to abort the rule -check quickly:</para> - -<para> -<literallayout> ipfw add deny ip from 1.2.3.4 to 1.2.3.4 - </literallayout> -</para> - -<para>The nonmatching source IP address for the above rule causes -these rules to be skipped very quickly. As before, the 1000th -rule was an <emphasis remap=tt>allow ip from any to any</emphasis>.</para> - -<para>The per-packet processing overhead in the former case was -approximately 2.703ms/packet, or roughly 2.7 microseconds per -rule. Thus the theoretical packet processing limit with these -rules is around 370 packets per second. Assuming 10Mbps ethernet -and a ~1500 byte packet size, we would only be able to achieve a -55.5% bandwidth utilization.</para> - -<para>For the latter case each packet was processed in -approximately 1.172ms, or roughly 1.2 microseconds per rule. -The theoretical packet processing limit here would be about -853 packets per second, which could consume 10Mbps ethernet -bandwidth.</para> - -<para>The excessive number of rules tested and the nature of those -rules do not provide a real-world scenario -- they were used only -to generate the timing information presented here. Here are a -few things to keep in mind when building an efficient rule set:</para> - -<para> -<itemizedlist> - -<listitem> -<para>Place an `established' rule early on to handle the -majority of TCP traffic. Don't put any <emphasis remap=tt>allow tcp</emphasis> -statements before this rule. -</para> -</listitem> - -<listitem> -<para>Place heavily triggered rules earlier in the rule -set than those rarely used (<emphasis remap=bf>without changing the -permissiveness of the firewall</emphasis>, of course). You can see -which rules are used most often by examining the packet counting -statistics with <command>ipfw -a l</command>. -</para> -</listitem> - -</itemizedlist> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How can I redirect service requests from one machine to another? - </para></question><answer> - -<para>You can redirect FTP (and other service) request with the 'socket' -package, available in the ports tree in category 'sysutils'. -Simply replace the service's commandline to call socket instead, like so:</para> - -<para> -<literallayout>ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.foo.com ftp</literallayout> -</para> - -<para>where 'ftp.foo.com' and 'ftp' are the host and port to redirect to, -respectively.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Where can I get a bandwidth management tool?</para></question><answer> - -<para>There are two bandwidth management tools available for FreeBSD. -<ulink URL="http://www.csl.sony.co.jp/person/kjc/programs.html">ALTQ</ulink> is available for free; Bandwidth Manager from -<ulink URL="http://www.etinc.com/">Emerging Technologies</ulink> is -a commercial product. </para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Why do I get “/dev/bpf0: device not configured”?</para></question><answer> - -<para>The Berkeley Packet Filter <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?bpf">(bpf)</ulink> driver -needs to be enabled before running programs that utilize it. -Add this to your kernel config file and build a new kernel:</para> - -<para> -<literallayout> pseudo-device bpfilter # Berkeley Packet Filter - </literallayout> -</para> - -<para>Secondly, after rebooting you will have to create the device -node. This can be accomplished by a change to the <filename>/dev</filename> -directory, followed by the execution of:</para> - -<para> -<informalexample> -<screen> # sh MAKEDEV bpf0 - </screen> -</informalexample> -</para> - -<para>Please see the <ulink URL="../handbook/kernelconfig-nodes.html">handbook's entry on device nodes</ulink> for more information -on creating devices.</para> - -</answer></qandaentry></qandaset> -</chapter> - -<chapter id="ppp"> -<title>PPP</title> -<qandaset> -<qandaentry><question -id="userppp"> -<para> I can't make ppp work. What am I doing wrong ? - </para></question><answer> - -<para>You should first read the <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp man page</ulink> and -the <ulink URL="../handbook/ppp-and-slip.html#USERPPP">ppp section of the handbook</ulink>. Enable logging with the command</para> - -<para> -<literallayout> set log Phase Chat Connect Carrier lcp ipcp ccp command - </literallayout> -</para> - -<para>This command may be typed at the <emphasis remap=bf>ppp</emphasis> command prompt or -it may be entered in the <filename>/etc/ppp/ppp.conf</filename> configuration file -(the start of the <emphasis remap=bf>default</emphasis> section is the best place to put it). -Make sure that <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?syslog.conf">/etc/syslog.conf</ulink> contains the lines</para> - -<para> -<literallayout> !ppp - *.* /var/log/ppp.log - </literallayout> -</para> - -<para>and that the file <filename>/var/log/ppp.log</filename> exists. You can -now find out a lot about what's going on from the log file. -Don't worry if it doesn't all make sense. If you need to -get help from someone, it may make sense to them.</para> - -<para>If your version of ppp doesn't understand the "set log" -command, you should download the -<ulink URL="http://people.FreeBSD.org/~brian/">latest version</ulink>. -It will build on FreeBSD version 2.1.5 and higher.</para> -</answer> -</qandaentry> - -<qandaentry><question> -<para>Ppp just hangs when I run it</para></question><answer> - -<para>This is usually because your hostname won't resolve. The best -way to fix this is to make sure that <filename>/etc/hosts</filename> is -consoluted by your resolver first by editing <filename>/etc/host.conf</filename> -and putting the <emphasis remap=tt>hosts</emphasis> line first. Then, simply put an -entry in <filename>/etc/hosts</filename> for your local machine. If you have -no local network, change your <emphasis remap=tt>localhost</emphasis> line:</para> - -<para> -<literallayout>127.0.0.1 foo.bar.com foo localhost - </literallayout> -</para> - -<para>Otherwise, simply add another entry for your host. Consult the -relevant man pages for more details.</para> - -<para>You should be able to successfully <command>ping -c1 `hostname`</command> -when you're done.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Ppp won't dial in -auto mode</para></question><answer> - -<para>First, check that you've got a default route. By running <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?netstat">http://www.FreeBSD.org/cgi/man.cgi?netstat</ulink> -name="netstat -rn">, you should see two entries like this:</para> - -<para> -<literallayout>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 - </literallayout> -</para> - -<para>This is assuming that you've used the addresses from the -handbook, the man page or from the ppp.conf.sample file. -If you haven't got a default route, it may be because you're -running an old version of <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink> that doesn't understand the -word <acronym>HISADDR</acronym> in the ppp.conf file. If your version of -<emphasis remap=bf>ppp</emphasis> is from before FreeBSD 2.2.5, change the</para> - -<para> -<literallayout> add 0 0 HISADDR - </literallayout> -</para> - -<para>line to one saying</para> - -<para> -<literallayout> add 0 0 10.0.0.2 - </literallayout> -</para> - -<para>Another reason for the default route line being missing is that -you have mistakenly set up a default router in your -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf">/etc/rc.conf</ulink> file (this file was called -<filename>/etc/sysconfig</filename> prior to release 2.2.2), and you have -omitted the line saying</para> - -<para> -<literallayout> delete ALL - </literallayout> -</para> - -<para>from <filename>ppp.conf</filename>. If this is the case, go back to the -<ulink URL="../handbook/ppp-and-slip.html#USERPPP-FINAL">Final system configuration</ulink> section of the handbook.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>What does "No route to host" mean</para></question><answer> - -<para>This error is usually due to a missing</para> - -<para> -<literallayout> MYADDR: - delete ALL - add 0 0 HISADDR - </literallayout> -</para> - -<para>section in your <filename>/etc/ppp/ppp.linkup</filename> file. This is -only necessary if you have a dynamic IP address or don't know the -address of your gateway. If you're using interactive mode, you can -type the following after entering <emphasis remap=tt>packet mode</emphasis> (packet mode is -indicated by the capitalized <acronym>PPP</acronym> in the prompt):</para> - -<para> -<literallayout> delete ALL - add 0 0 HISADDR - </literallayout> -</para> - -<para>Refer to the <ulink URL="../handbook/ppp-and-slip.html#USERPPP-DYNAMICIP">PPP and Dynamic IP addresses</ulink> section of the handbook -for further details.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>My connection drops after about 3 minutes</para></question><answer> - -<para>The default ppp timeout is 3 minutes. This can be adjusted -with the line</para> - -<para> -<literallayout> set timeout NNN - </literallayout> -</para> - -<para>where <acronym>NNN</acronym> is the number of seconds of inactivity before the -connection is closed. If <acronym>NNN</acronym> is zero, the connection is -never closed due to a timeout. It is possible to put this command in -the <filename>ppp.conf</filename> file, or to type it at the prompt in -interactive mode. It is also possible to adjust it on the fly while -the line is active by connecting to <emphasis remap=bf>ppp</emphasis>s server socket using -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?telnet">telnet</ulink> -or <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?pppctl">pppctl</ulink>. Refer to the -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink> man -page for further details.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>My connection drops under heavy load</para></question><answer> - -<para>If you have Link Quality Reporting (LQR) configured, it is -possible that too many LQR packets are lost between your -machine and the peer. Ppp deduces that the line must therefore -be bad, and disconnects. Prior to FreeBSD version 2.2.5, -LQR was enabled by default. It is now disabled by default. -LQR can be disabled with the line</para> - -<para> -<literallayout> disable lqr - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>My connection drops after a random amount of time</para></question><answer> - -<para>Sometimes, on a noisy phone line or even on a line with -call waiting enabled, your modem may hang up because it -thinks (incorrectly) that it lost carrier.</para> - -<para>There's a setting on most modems for determining how tolerant -it should be to temporary losses of carrier. On a USR -Sportster for example, this is measured by the S10 register in -tenths of a second. To make your modem more forgiving, you could -add the following send-expect sequence to your dial string:</para> - -<para> -<literallayout> set dial "...... ATS10=10 OK ......" - </literallayout> -</para> - -<para>Refer to your modem manual for details.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>My connection hangs after a random amount of time</para></question><answer> - -<para>Many people experience hung connections with no apparent -explaination. The first thing to establish is which side of the -link is hung.</para> - -<para>If you are using an external modem, you can simply try using -<emphasis remap=tt>ping</emphasis> to see if the <acronym>TD</acronym> light is flashing when you -transmit data. If it flashes (and the <acronym>RD</acronym> light doesn't), the -problem is with the remote end. If <acronym>TD</acronym> doesn't flash, the problem -is local. With an internal modem, you'll need to use the <emphasis remap=tt>set -server</emphasis> command in your <filename>ppp.conf</filename> file. When the hang occurs, -connect to ppp using pppctl. If your network connection suddenly -revives (ppp was revived due to the activity on the diagnostic socket) -or if you can't connect (assuming the <emphasis remap=tt>set socket</emphasis> command -succeeded at startup time), the problem is local. If you can connect -and things are still hung, enable local async logging with <emphasis remap=tt>set log -local async</emphasis> and use <emphasis remap=tt>ping</emphasis> from another window or terminal to make -use of the link. The async logging will show you the data being -transmitted and received on the link. If data is going out and not -coming back, the problem is remote.</para> - -<para>Having established whether the problem is local or remote, -you now have two possibilities:</para> -</answer> -</qandaentry> - -<qandaentry><question> -<para>The remote end isn't responding</para></question><answer> - -<para>There's very little you can do about this. Most ISPs will -refuse to help if you're not running a Microsoft OS. You can -<emphasis remap=tt>enable lqr</emphasis> in your <filename>ppp.conf</filename> file, allowing ppp to -detect the remote failure and hang up, but this detection is -relatively slow and therefore not that useful. You may want -to avoid telling your ISP that you're running user-ppp....</para> - -<para>First, try disabling all local compression by adding the -following to your configuration:</para> - -<para> -<literallayout> disable pred1 deflate deflate24 protocomp acfcomp shortseq vj - deny pred1 deflate deflate24 protocomp acfcomp shortseq vj - </literallayout> -</para> - -<para>Then reconnect to ensure that this makes no difference. -If things improve or if the problem is solved completely, -determine which setting makes the difference through trial -and error. This will provide good amunition when you contact -your ISP (although it may make it apparent that you're not -running a Microsoft product).</para> - -<para>Before contacting your ISP, enable async logging locally -and wait until the connection hangs again. This may use up -quite a bit of disk space. The last data read from the port -may be of interest. It is usually ascii data, and may even -describe the problem (``Memory fault, core dumped'' ?).</para> - -<para>If your ISP is helpful, they should be able to enable logging -on their end, then when the next link drop occurs, they may be -able to tell you why their side is having a problem. Feel free -to send the details to <ulink URL="mailto:brian@Awfulhak.org">brian@Awfulhak.org</ulink>, or even to ask your ISP to -contact me directly.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Ppp is hung</para></question><answer> - -<para>Your best bet here is to rebuild ppp by adding <literal>CFLAGS+=-g</literal> -and <literal>STRIP=</literal> to the end of the Makefile, then doing a -<emphasis remap=tt>make clean && make && make install</emphasis>. When -ppp hangs, find the ppp process id with <emphasis remap=tt>ps ajxww | fgrep ppp</emphasis> -and run <emphasis remap=tt>gdb ppp PID</emphasis>. From the gdb prompt, you can then use -<emphasis remap=tt>bt</emphasis> to get a stack trace.</para> - -<para>Send the results to <ulink URL="mailto:brian@Awfulhak.org">brian@Awfulhak.org</ulink>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Nothing happens after the Login OK! message</para></question><answer> - -<para>Prior to FreeBSD version 2.2.5, once the link was established, -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink> would wait for the peer to initiate the Line Control -Protocol (LCP). Many ISPs will not initiate negotiations and -expect the client to do so. To force <emphasis remap=bf>ppp</emphasis> to initiate -the LCP, use the following line:</para> - -<para> -<literallayout> set openmode active - </literallayout> -</para> - -<para><emphasis remap=bf>Note</emphasis>: It usually does no harm if both sides initiate -negotiation, so openmode is now active by default. However, -the next section explains when it <emphasis remap=bf>does</emphasis> do some harm.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I keep seeing errors about magic being the same</para></question><answer> - -<para>Occasionally, just after connecting, you may see messages in -the log that say "magic is the same". Sometimes, these -messages are harmless, and sometimes one side or the other -exits. Most ppp implementations cannot survive this problem, and -even if the link seems to come up, you'll see repeated configure -requests and configure acknowledgements in the log file until -ppp eventually gives up and closes the connection.</para> - -<para>This normally happens on server machines with slow disks that -are spawning a getty on the port, and executing ppp from a -login script or program after login. I've also heard reports -of it happening consistently when using slirp. The reason is -that in the time taken between getty exiting and ppp starting, the -client-side ppp starts sending Line Control Protocol (LCP) -packets. Because ECHO is still switched on for the port on -the server, the client ppp sees these packets "reflect" back.</para> - -<para>One part of the LCP negotiation is to establish a magic number -for each side of the link so that "reflections" can be detected. -The protocol says that when the peer tries to negotiate -the same magic number, a NAK should be sent and a new magic -number should be chosen. During the period that the server -port has ECHO turned on, the client ppp sends LCP packets, -sees the same magic in the reflected packet and NAKs it. It -also sees the NAK reflect (which also means ppp must change -its magic). This produces a potentially enormous number of -magic number changes, all of which are happily piling into -the server's tty buffer. As soon as ppp starts on the server, -it's flooded with magic number changes and almost immediately -decides it's tried enough to negotiate LCP and gives up. -Meanwhile, the client, who no longer sees the reflections, -becomes happy just in time to see a hangup from the server.</para> - -<para>This can be avoided by allowing the peer to start negotiating -with the following line in your ppp.conf file:</para> - -<para> -<literallayout> set openmode passive - </literallayout> -</para> - -<para>This tells ppp to wait for the server to initiate LCP -negotiations. Some servers however may never initiate negotiations. -If this is the case, you can do something like:</para> - -<para> -<literallayout> set openmode active 3 - </literallayout> -</para> - -<para>This tells ppp to be passive for 3 seconds, and then to start -sending LCP requests. If the peer starts sending requests during -this period, ppp will immediately respond rather than waiting for -the full 3 second period.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> LCP negotiations continue 'till the connection is closed - </para></question><answer> - -<para>There is currently an implementation mis-feature in <emphasis remap=bf>ppp</emphasis> -where it doesn't associate LCP, CCP & IPCP responses with -their original requests. As a result, if one <emphasis remap=bf>ppp</emphasis> -implementation is more than 6 seconds slower than the other side, -the other side will send two additional LCP configuration requests. -This is fatal.</para> - -<para>Consider two implementations, <emphasis remap=bf>A</emphasis> and <emphasis remap=bf>B</emphasis>. <emphasis remap=bf>A</emphasis> starts -sending LCP requests immediately after connecting and <emphasis remap=bf>B</emphasis> takes -7 seconds to start. When <emphasis remap=bf>B</emphasis> starts, <emphasis remap=bf>A</emphasis> has sent 3 LCP -REQs. We're assuming the line has ECHO switched off, otherwise -we'd see magic number problems as described in the previous section. -<emphasis remap=bf>B</emphasis> sends a REQ, then an ACK to the first of <emphasis remap=bf>A</emphasis>'s REQs. -This results in <emphasis remap=bf>A</emphasis> entering the <acronym>OPENED</acronym> state and sending -and ACK (the first) back to <emphasis remap=bf>B</emphasis>. In the meantime, <emphasis remap=bf>B</emphasis> sends -back two more ACKs in response to the two additional REQs sent by -<emphasis remap=bf>A</emphasis> before <emphasis remap=bf>B</emphasis> started up. <emphasis remap=bf>B</emphasis> then receives the first -ACK from <emphasis remap=bf>A</emphasis> and enters the <acronym>OPENED</acronym> state. <emphasis remap=bf>A</emphasis> receives -the second ACK from <emphasis remap=bf>B</emphasis> and goes back to the <emphasis remap=bf>REQ-SENT</emphasis> state, -sending another (forth) REQ as per the RFC. It then receives the -third ACK and enters the <acronym>OPENED</acronym> state. In the meantime, -<emphasis remap=bf>B</emphasis> receives the forth REQ from <emphasis remap=bf>A</emphasis>, resulting in it reverting -to the <emphasis remap=bf>ACK-SENT</emphasis> state and sending another (second) REQ and -(forth) ACK as per the RFC. <emphasis remap=bf>A</emphasis> gets the REQ, goes into -<emphasis remap=bf>REQ-SENT</emphasis> and sends another REQ. It immediately receives the -following ACK and enters <acronym>OPENED</acronym>.</para> - -<para>This goes on 'till one side figures out that they're getting -nowhere and gives up.</para> - -<para>The best way to avoid this is to configure one side to be -<emphasis remap=bf>passive</emphasis> - that is, make one side wait for the other to start -negotiating. This can be done with the</para> - -<para> -<literallayout> set openmode passive - </literallayout> -</para> - -<para>command. Care should be taken with this option. You should also -use the</para> - -<para> -<literallayout> set stopped N - </literallayout> -</para> - -<para>command to limit the amount of time that <emphasis remap=bf>ppp</emphasis> waits for the peer -to begin negotiations. Alternatively, the</para> - -<para> -<literallayout> set openmode active N - </literallayout> -</para> - -<para>command (where <emphasis remap=bf>N</emphasis> is the number of seconds to wait before -starting negotiations) can be used. Check the manual page for -details.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Ppp locks up shortly after connecting</para></question><answer> - -<para>Prior to version 2.2.5 of FreeBSD, it was possible that your -link was disabled shortly after connection due to <emphasis remap=bf>ppp</emphasis> -mis-handling Predictor1 compression negotiation. This would -only happen if both sides tried to negotiate different -Compression Control Protocols (CCP). This problem is now -corrected, but if you're still running an old version of -<emphasis remap=bf>ppp</emphasis>, the problem can be circumvented with the line</para> - -<para> -<literallayout> disable pred1 - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Ppp locks up when I shell out to test it</para></question><answer> - -<para>When you execute the <emphasis remap=tt>shell</emphasis> or <emphasis remap=tt>!</emphasis> command, <emphasis remap=bf>ppp</emphasis> -executes a shell (or if you've passed any arguements, <emphasis remap=bf>ppp</emphasis> -will execute those arguements). Ppp will wait for the command -to complete before continuing. If you attempt to use the -ppp link while running the command, the link will appear to have -frozen. This is because <emphasis remap=bf>ppp</emphasis> is waiting for the command -to complete.</para> - -<para>If you wish to execute commands like this, use the -<emphasis remap=tt>!bg</emphasis> command instead. This will execute the given command -in the background, and ppp can continue to service the link.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Ppp over a null-modem cable never exits</para></question><answer> - -<para>There is no way for <emphasis remap=bf>ppp</emphasis> to automatically determine that -a direct connection has been dropped. This is due to the -lines that are used in a null-modem serial cable. When using -this sort of connection, LQR should always be enabled with -the line</para> - -<para> -<literallayout> enable lqr - </literallayout> -</para> - -<para>LQR is accepted by default if negotiated by the peer.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Why does ppp dial for no reason in -auto mode</para></question><answer> - -<para>If <emphasis remap=bf>ppp</emphasis> is dialing unexpectedly, you must determine the -cause, and set up Dial filters (dfilters) to prevent such dialing.</para> - -<para>To determine the cause, use the following line:</para> - -<para> -<literallayout> set log +tcp/ip - </literallayout> -</para> - -<para>This will log all traffic through the connection. The next -time the line comes up unexpectedly, you will see the reason -logged with a convenient timestamp next to it.</para> - -<para>You can now disable dialing under these circumstances. Usually, -this sort of problem arises due to DNS lookups. To prevent -DNS lookups from establishing a connection (this will <emphasis remap=bf>not</emphasis> -prevent <emphasis remap=bf>ppp</emphasis> from passing the packets through an established -connection), use the following:</para> - -<para> -<literallayout> set dfilter 1 deny udp src eq 53 - set dfilter 2 deny udp dst eq 53 - set dfilter 3 permit 0/0 0/0 - </literallayout> -</para> - -<para>This is not always suitable, as it will effectively break your -demand-dial capabilities - most programs will need a DNS lookup -before doing any other network related things.</para> - -<para>In the DNS case, you should try to determine what is actually -trying to resolve a host name. A lot of the time, -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sendmail">sendmail</ulink> is the culprit. You should make sure that you tell -sendmail not to do any DNS lookups in its configuration file. See -the section on <link linkend="ispmail">Mail Configuration</link> for -details on how to create your own configuration file and what should -go into it. You may also want to add the following line to your -<filename>.mc</filename> file:</para> - -<para> -<literallayout> define(`confDELIVERY_MODE', `d')dnl - </literallayout> -</para> - -<para>This will make sendmail queue everything until the queue is -run (usually, sendmail is invoked with ``-bd -q30m'', telling it -to run the queue every 30 minutes) or until a ``sendmail -q'' -is done (perhaps from your ppp.linkup file).</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>What do these CCP errors mean</para></question><answer> - -<para>I keep seeing the following errors in my log file:</para> - -<para> -<literallayout> CCP: CcpSendConfigReq - CCP: Received Terminate Ack (1) state = Req-Sent (6) - </literallayout> -</para> - -<para>This is because ppp is trying to negotiate Predictor1 -compression, and the peer does not want to negotiate any -compression at all. The messages are harmless, but if you -wish to remove them, you can disable Predictor1 compression -locally too:</para> - -<para> -<literallayout> disable pred1 - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Ppp locks up during file transfers with IO errors</para></question><answer> - -<para>Under FreeBSD 2.2.2 and before, there was a bug in the tun -driver that prevents incoming packets of a size larger than -the tun interface's MTU size. Receipt of a packet greater than -the MTU size results in an IO error being logged via syslogd.</para> - -<para>The ppp specification says that an MRU of 1500 should -<emphasis remap=bf>always</emphasis> be accepted as a minimum, despite any LCP -negotiations, therefore it is possible that should you decrease -the MTU to less than 1500, your ISP will transmit packets of -1500 regardless, and you will tickle this non-feature - locking -up your link.</para> - -<para>The problem can be circumvented by never setting an MTU of -less than 1500 under FreeBSD 2.2.2 or before.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Why doesn't ppp log my connection speed?</para></question><answer> - -<para>In order to log all lines of your modem ``conversation'', -you must enable the following:</para> - -<para> -<literallayout> set log +connect - </literallayout> -</para> - -<para>This will make -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink> -log everything up until the last requested "expect" string.</para> - -<para>If you wish to see your connect speed and are using PAP or CHAP -(and therefore don't have anything to "chat" after the CONNECT -in the dial script - no "set login" script), you must make sure that -you instruct ppp to "expect" the whole CONNECT line, something like -this:</para> - -<para> -<literallayout> set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n" - </literallayout> -</para> - -<para>Here, we get our CONNECT, send nothing, then expect a line-feed, -forcing <emphasis remap=bf>ppp</emphasis> to read the whole CONNECT response.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Ppp ignores the `\' character in my chat script</para></question><answer> - -<para>Ppp parses each line in your config files so that it can -interpret strings such as <emphasis remap=tt>set phone "123 456 789"</emphasis> correctly -(and realize that the number is actually only <emphasis remap=bf>one</emphasis> argument. -In order to specify a “"” character, you must escape it using -a backslash (“\”).</para> - -<para>When the chat interpreter parses each argument, it re-interprets -the argument in order to find any special escape sequences such -as “\P” or “\T” (see the man page). As a result of this -double-parsing, you must remember to use the correct number of -escapes.</para> - -<para>If you wish to actually send a “\” character to (say) your -modem, you'd need something like:</para> - -<para> -<literallayout> set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK" - </literallayout> -</para> - -<para>resulting in the following sequence:</para> - -<para> -<literallayout> ATZ - OK - AT\X - OK - </literallayout> -</para> - -<para>or</para> - -<para> -<literallayout> set phone 1234567 - set dial "\"\" ATZ OK ATDT\\T" - </literallayout> -</para> - -<para>resulting in the following sequence:</para> - -<para> -<literallayout> ATZ - OK - ATDT1234567 - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Ppp gets a seg-fault, but I see no <filename>ppp.core</filename> file</para></question><answer> - -<para>Ppp (or any other program for that matter) should never -dump core. Because ppp runs with an effective user id of 0, -the operating system will not write ppps core image to disk -before terminating it. If, however ppp <emphasis remap=bf>is</emphasis> actually -termating due to a segmentation violation or some other -signal that normally causes core to be dumped, <emphasis remap=bf>and</emphasis> you're -sure you're using the latest version (see the start of this -section), then you should do the following:</para> - -<para> -<literallayout> $ 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 - </literallayout> -</para> - -<para>You will now have a debuggable version of ppp installed. You -will have to be root to run ppp as all of its privileges have -been revoked. When you start ppp, take a careful note of what -your current directory was at the time.</para> - -<para>Now, if and when ppp receives the segmentation violation, it -will dump a core file called ppp.core. You should then do the -following:</para> - -<para> -<literallayout> $ su - # gdb /usr/sbin/ppp ppp.core - (gdb) bt - ..... - (gdb) f 0 - ..... - (gdb) i args - ..... - (gdb) l - ..... - </literallayout> -</para> - -<para>All of this information should be given alongside your -question, making it possible to diagnose the problem.</para> - -<para>If you're familiar with gdb, you may wish to find out some -other bits and pieces such as what actually caused the dump and -the addresses & values of the relevant variables.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> The process that forces a dial in auto mode never connects - </para></question><answer> - -<para>This was a known problem with <emphasis remap=bf>ppp</emphasis> set up to negotiate -a dynamic local IP number with the peer in auto mode. It is -fixed in the latest version - search the man page for <emphasis remap=bf>iface</emphasis>.</para> - -<para>The problem was that when that initial program calls -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?connect">connect(2)</ulink>, the IP number of the tun interface is -assigned to the socket endpoint. The kernel creates the first -outgoing packet and writes it to the tun device. <emphasis remap=bf>Ppp</emphasis> then -reads the packet and establishes a connection. If, as a result -of <emphasis remap=bf>ppp</emphasis>s dynamic IP assignment, the interface address is changed, -the original socket endpoint will be invalid. Any subsequent -packets sent to the peer will usually be dropped. Even if -they aren't, any responses will not route back to the originating -machine as the IP number is no longer owned by that machine.</para> - -<para>There are several theoretical ways to approach this problem. -It would be nicest if the peer would re-assign the same IP number -if possible <emphasis remap=tt>:-)</emphasis> The current version of <emphasis remap=bf>ppp</emphasis> does this, -but most other implementations don't.</para> - -<para>The easiest method from our side would be to never change the -tun interface IP number, but instead to change all outgoing packets -so that the source IP number is changed from the interface IP to -the negotiated IP on the fly. This is essentially what the -<emphasis remap=tt>iface-alias</emphasis> option in the latest version of <emphasis remap=bf>ppp</emphasis> is -doing (with the help of <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?libalias">libalias(3)</ulink> -and ppp's <option>-nat</option> switch) - it's maintaining all previous -interface addresses and NATing them to the last negotiated address.</para> - -<para>Another alternative (and probably the most reliable) would be -to implement a system call that changes all bound sockets from one -IP to another. <emphasis remap=bf>Ppp</emphasis> would use this call to modify the -sockets of all existing programs when a new IP number is -negotiated. The same system call could be used by dhcp clients -when they are forced to re-bind() their sockets.</para> - -<para>Yet another possibility is to allow an interface to be brought -up without an IP number. Outgoing packets would be given -an IP number of 255.255.255.255 up until the first SIOCAIFADDR -ioctl is done. This would result in fully binding the socket. It -would be up to <emphasis remap=bf>ppp</emphasis> to change the source IP number, but only if -it's set to 255.255.255.255, and only the IP number and IP checksum -would need to change. This, however is a bit of a hack as -the kernel would be sending bad packets to an improperly -configured interface, on the assumption that some other mechanism -is capable of fixing things retrospectively.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Why don't most games work with the -nat switch</para></question><answer> - -<para>The reason games and the like don't work when libalias is -in use is that the machine on the outside will try to open a -connection or send (unsolicited) UDP packets to the machine -on the inside. The NAT software doesn't know that -it should send these packets to the interior machine.</para> - -<para>To make things work, make sure that the only thing running -is the software that you're having problems with, then either -run tcpdump on the tun interface of the gateway or enable ppp -tcp/ip logging (``set log +tcp/ip'') on the gateway.</para> - -<para>When you start the offending software, you should see packets -passing through the gateway machine. When something comes back -from the outside, it'll be dropped (that's the problem). Note -the port number of these packets then shut down the offending -software. Do this a few times to see if the port numbers are -consistent. If they are, then the following line in the relevant -section of /etc/ppp/ppp.conf will make the software functional:</para> - -<para> -<literallayout> nat port proto internalmachine:port port - </literallayout> -</para> - -<para>where ``proto'' is either ``tcp'' or ``udp'', -``internalmachine'' is the machine that you want the packets -to be sent to and ``port'' is the destination port number of -the packets.</para> - -<para>You won't be able to use the software on other machines -without changing the above command, and running the software -on two internal machines at the same time is out of the question -- after all, the outside world is seeing your entire internal -network as being just a single machine.</para> - -<para>If the port numbers aren't consistent, there are three more -options:</para> - -<para><emphasis remap=bf>1)</emphasis> Submit support in libalias. Examples of ``special -cases'' can be found in /usr/src/lib/libalias/alias_*.c (alias_ftp.c -is a good prototype). This usually involves reading certain -recognised outgoing packets, identifying the instruction that -tells the outside machine to initiate a connection back to the -internal machine on a specific (random) port and setting up a -``route'' in the alias table so that the subsequent packets -know where to go.</para> - -<para>This is the most difficult solution, but it is the best and -will make the software work with multiple machines.</para> - -<para><emphasis remap=bf>2)</emphasis> Use a proxy. The application may support socks5 -for example, or (as in the ``cvsup'' case) may have a ``passive'' -option that avoids ever requesting that the peer open connections -back to the local machine.</para> - -<para><emphasis remap=bf>3)</emphasis> Redirect everything to the internal machine using -``nat addr''. This is the sledge-hammer approach.</para> -</answer> -</qandaentry> - -<qandaentry><question> -<para>Has anybody made a list of useful port numbers ?</para></question><answer> - -<para>Not yet, but this is intended to grow into such a list (if -any interest is shown). In each example, <emphasis remap=tt>internal</emphasis> should -be replaced with the IP number of the machine playing the game.</para> - -<para> -<itemizedlist> - -<listitem> -<para><emphasis remap=bf>Asheron's Call</emphasis> -</para> - -<para><emphasis remap=tt>nat port udp internal:65000 65000</emphasis></para> - -<para>Manually change the port number within the game to 65000. -If you've got a number of machines that you wish to play on assign -a unique port number for each (i.e. 65001, 65002, etc) and add a -<emphasis remap=tt>nat port</emphasis> line for each one.</para> -</listitem> - -</itemizedlist> -</para> - -<para> -<itemizedlist> - -<listitem> -<para><emphasis remap=bf>Half Life</emphasis> -</para> - -<para><emphasis remap=tt>nat port udp internal:27005 27015</emphasis></para> -</listitem> - -</itemizedlist> -</para> - -<para> -<itemizedlist> - -<listitem> -<para><emphasis remap=bf>PCAnywhere 8.0</emphasis> -</para> - -<para><emphasis remap=tt>nat port udp internal:5632 5632</emphasis></para> - -<para><emphasis remap=tt>nat port tcp internal:5631 5631</emphasis></para> -</listitem> - -</itemizedlist> -</para> - -<para> -<itemizedlist> - -<listitem> -<para><emphasis remap=bf>Quake</emphasis> -</para> - -<para><emphasis remap=tt>nat port udp internal:6112 6112</emphasis></para> - -<para>Alternatively, you may want to take a look at -<ulink URL="http://www.battle.net/support/proxy/">www.battle.net</ulink> for Quake proxy support.</para> -</listitem> - -</itemizedlist> -</para> - -<para> -<itemizedlist> - -<listitem> -<para><emphasis remap=bf>Quake 2</emphasis> -</para> - -<para><emphasis remap=tt>nat port udp internal:27901 27910</emphasis></para> -</listitem> - -</itemizedlist> -</para> - -<para> -<itemizedlist> - -<listitem> -<para><emphasis remap=bf>Red Alert</emphasis> -</para> - -<para><emphasis remap=tt>nat port udp internal:8675 8675</emphasis></para> - -<para><emphasis remap=tt>nat port udp internal:5009 5009</emphasis></para> -</listitem> - -</itemizedlist> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>What are FCS errors ?</para></question><answer> - -<para>FCS stands for <emphasis remap=bf>F</emphasis>rame <emphasis remap=bf>C</emphasis>heck <emphasis remap=bf>S</emphasis>equence. Each -ppp packet has a checksum attached to ensure that the data -being received is the data being sent. If the FCS of an -incoming packet is incorrect, the packet is dropped and the -HDLC FCS count is increased. The HDLC error values can be -displayed using the <emphasis remap=tt>show hdlc</emphasis> command.</para> - -<para>If your link is bad (or if your serial driver is dropping -packets), you will see the occasional FCS error. This is not -usually worth worrying about although it does slow down the -compression protocols substantially. If you have an external -modem, make sure your cable is properly shielded from -interference - this may eradicate the problem.</para> - -<para>If your link freezes as soon as you've connected and you see -a large number of FCS errors, this may be because your link is -not 8 bit clean. Make sure your modem is not using software -flow control (XON/XOFF). If your datalink <emphasis remap=bf>must</emphasis> use -software flow control, use the command -<literal>set accmap 0x000a0000</literal> to tell <emphasis remap=bf>ppp</emphasis> to escape -the ^Q and ^S characters.</para> - -<para>Another reason for seeing too many FCS errors may be that -the remote end has stopped talking <acronym>PPP</acronym>. You may want to -enable <emphasis remap=tt>async</emphasis> logging at this point to determine if the -incoming data is actually a login or shell prompt. If you -have a shell prompt at the remote end, it's possible to -terminate ppp without dropping the line by using the -<emphasis remap=tt>close lcp</emphasis> command (a following <emphasis remap=tt>term</emphasis> command -will reconnect you to the shell on the remote machine.</para> - -<para>If nothing in your log file indicates why the link might -have been terminated, you should ask the remote administrator -(your ISP?) why the session was terminated.</para> - -</answer></qandaentry> - -<qandaentry id=PPPoEwithNAT> - - <question> - <para>Why do my Windows 98 connections freeze when I run PPPoE on the gateway</para> - </question> - - <answer> - - <para> - Thanks to Michael Wozniak <email>mwozniak@netcom.ca</email> for figuring - this out: - </para> - - <para> - This is due to what's called a "Black Hole" router. Windows 98 (and - maybe other Microsoft OSs) is sending TCP packets with a requested - segment size too big to fit into a PPPoE frame (MTU is 1500 by default - for ethernet) <emphasis remap=bf>and</emphasis> have the "don't fragment" - bit set (default of TCP) and the Telco router is not sending ICMP "must - fragment" back to the www site you are trying to load. When the www - server is sending you frames that don't fit into the PPPoE pipe the Telco - router drops them on the floor and your page doesn't load (some - pages/graphics do as they are smaller than a MSS.) This seems to be the - default of most Telco PPPoE configurations (if only they knew how to - program a router... sigh...) - </para> - - <para> - One fix is to use regedit on your 95/98 boxes to add the following - registry entry... - </para> - - <literallayout> - HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU - </literallayout> - - <para> - It should be a string with a value <quote>1450</quote> (more accurately it - should be <quote>1464</quote> to fit TCP packets into a PPPoE frame - perfectly but the <quote>1450</quote> gives you a margin of error for - other IP protocols you may encounter). - </para> - - <para> - Refer to MS KB # <quote>Q158474 - Windows TCPIP Registry Entries</quote> - and <quote>Q120642 - TCPIP & NBT Configuration Parameters for Windows NT - </quote> for more information on changing Windoze MTU to work with a - FreeBSD/NAT/PPPoE router. - </para> - - </answer> -</qandaentry> - -<qandaentry><question> -<para>None of this helps - I'm desperate !</para></question><answer> - -<para>If all else fails, send as much information as you can, -including your config files, how you're starting <emphasis remap=bf>ppp</emphasis>, -the relevant parts of your log file and the output of the -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?netstat">netstat -rn</ulink> command (before and after connecting) to the -<ulink URL="mailto:freebsd-questions@FreeBSD.org">freebsd-questions@FreeBSD.org</ulink> mailing list or the -<ulink URL="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</ulink> news group, and someone -should point you in the right direction.</para> - -</answer></qandaentry> -</qandaset> -</chapter> - -<chapter -id="serial"> -<title>Serial Communications</title> - -<para>This section answers common questions about serial communications -with FreeBSD. PPP and SLIP are covered in the <xref linkend="networking" remap="Networking"> section.</para> - - -<qandaset><qandaentry><question> -<para>How do I tell if FreeBSD found my serial ports?</para></question><answer> - -<para>As the FreeBSD kernel boots, it will probe for the serial ports -in your system for which the kernel was configured. You can -either watch your system closely for the messages it prints or -run the command</para> - -<para> -<literallayout> dmesg | grep sio - </literallayout> -</para> - -<para>after your system's up and running.</para> - -<para>Here's some example output from the above command:</para> - -<para> -<literallayout> sio0 at 0x3f8-0x3ff irq 4 on isa - sio0: type 16550A - sio1 at 0x2f8-0x2ff irq 3 on isa - sio1: type 16550A - </literallayout> -</para> - -<para>This shows two serial ports. The first is on irq 4, is using -port address <literal>0x3f8</literal>, and has a 16550A-type UART chip. The -second uses the same kind of chip but is on irq 3 and is at port -address <literal>0x2f8</literal>. Internal modem cards are treated just like -serial ports---except that they always have a modem ``attached'' -to the port.</para> - -<para>The <acronym>GENERIC</acronym> kernel includes support for two serial ports -using the same irq and port address settings in the above -example. If these settings aren't right for your system, or if -you've added modem cards or have more serial ports than your -kernel is configured for, just reconfigure your kernel. See -section <link linkend="make-kernel">about building a kernel</link> for -more details.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I tell if FreeBSD found my modem cards?</para></question><answer> - -<para>Refer to the answer to the previous question.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I just upgraded to 2.0.5 and my <emphasis remap=tt>tty0X</emphasis> are missing!</para></question><answer> - -<para>Don't worry, they have been merged with the <emphasis remap=tt>ttydX</emphasis> devices. -You'll have to change any old configuration files you have, though.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I access the serial ports on FreeBSD?</para></question><answer> - -<para>The third serial port, <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sio">sio2</ulink> (known as -COM3 in DOS), is on <filename>/dev/cuaa2</filename> for dial-out devices, and on -<filename>/dev/ttyd2</filename> for dial-in devices. What's the difference -between these two classes of devices?</para> - -<para>You use <emphasis remap=tt>ttydX</emphasis> for dial-ins. When opening <filename>/dev/ttydX</filename> -in blocking mode, a process will wait for the corresponding -<emphasis remap=tt>cuaaX</emphasis> device to become inactive, and then wait -for the carrier detect line to go active. When you open the -<emphasis remap=tt>cuaaX</emphasis> device, it makes sure the serial port isn't already in -use by the <emphasis remap=tt>ttydX</emphasis> device. If the port's available, it -``steals'' it from the <emphasis remap=tt>ttydX</emphasis> device. Also, the <emphasis remap=tt>cuaXX</emphasis> -device doesn't care about carrier detect. With this scheme and -an auto-answer modem, you can have remote users log in and you -can still dialout with the same modem and the system will take -care of all the conflicts.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I enable support for a multiport serial card?</para></question><answer> - -<para>Again, the section on kernel configuration provides information -about configuring your kernel. For a multiport serial card, -place an <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sio">sio</ulink> line for each serial port on the card in the -kernel configuration file. But place the irq and vector -specifiers on only one of the entries. All of the ports on the -card should share one irq. For consistency, use the last serial -port to specify the irq. Also, specify the <symbol>COM_MULTIPORT</symbol> -option.</para> - -<para>The following example is for an AST 4-port serial card on irq 7:</para> - -<para> -<literallayout> 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 - </literallayout> -</para> - -<para>The flags indicate that the master port has minor number 7 -(<literal>0x700</literal>), diagnostics enabled during probe (<literal>0x080</literal>), and -all the ports share an irq (<literal>0x001</literal>).</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Can FreeBSD handle multiport serial cards sharing irqs?</para></question><answer> - -<para>Not yet. You'll have to use a different irq for each card.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Can I set the default serial parameters for a port?</para></question><answer> - -<para>The <emphasis remap=tt>ttydX</emphasis> (or <emphasis remap=tt>cuaaX</emphasis>) device is the regular device -you'll want to open for your applications. When a process opens -the device, it'll have a default set of terminal I/O settings. -You can see these settings with the command</para> - -<para> -<literallayout> stty -a -f /dev/ttyd1 - </literallayout> -</para> - -<para>When you change the settings to this device, the settings are in -effect until the device is closed. When it's reopened, it goes -back to the default set. To make changes to the default set, you -can open and adjust the settings of the ``initial state'' device. -For example, to turn on <acronym>CLOCAL</acronym> mode, 8 bits, and -<filename>XON/XOFF</filename> flow control by default for ttyd5, do:</para> - -<para> -<literallayout> stty -f /dev/ttyid5 clocal cs8 ixon ixoff - </literallayout> -</para> - -<para>A good place to do this is in <filename>/etc/rc.serial</filename>. Now, an -application will have these settings by default when it opens -<emphasis remap=tt>ttyd5</emphasis>. It can still change these settings to its liking, -though.</para> - -<para>You can also prevent certain settings from being changed by an -application by making adjustments to the ``lock state'' device. -For example, to lock the speed of <emphasis remap=tt>ttyd5</emphasis> to 57600 bps, do</para> - -<para> -<literallayout> stty -f /dev/ttyld5 57600 - </literallayout> -</para> - -<para>Now, an application that opens <emphasis remap=tt>ttyd5</emphasis> and tries to change the -speed of the port will be stuck with 57600 bps.</para> - -<para>Naturally, you should make the initial state and lock state -devices writable only by <emphasis remap=tt>root</emphasis>. The <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?MAKEDEV">MAKEDEV</ulink> script does <acronym>NOT</acronym> do this when it creates the -device entries.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How can I enable dialup logins on my modem?</para></question><answer> - -<para>So you want to become an Internet service provider, eh? First, -you'll need one or more modems that can auto-answer. Your modem -will need to assert carrier-detect when it detects a carrier and -not assert it all the time. It will need to hang up the phone -and reset itself when the data terminal ready (<acronym>DTR</acronym>) line -goes from on to off. It should probably use <filename>RTS/CTS</filename> -flow control or no local flow control at all. Finally, it must -use a constant speed between the computer and itself, but (to be -nice to your callers) it should negotiate a speed between itself -and the remote modem.</para> - -<para>For many Hayes command-set--compatible modems, this command will -make these settings and store them in nonvolatile memory:</para> - -<para> -<literallayout> AT &C1 &D3 &K3 &Q6 S0=1 &W - </literallayout> -</para> - -<para>See the section <link linkend="direct-at">on sending AT commands</link> below for information on how to make these settings -without resorting to an MS-DOS terminal program.</para> - -<para>Next, make an entry in <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink> for the -modem. This file lists all the ports on which the operating system will -await logins. Add a line that looks something like this:</para> - -<para> -<literallayout> ttyd1 "/usr/libexec/getty std.57600" dialup on insecure - </literallayout> -</para> - -<para>This line indicates that the second serial port -(<filename>/dev/ttyd1</filename>) has a modem connected running at 57600 bps -and no parity (<emphasis remap=tt>std.57600</emphasis>, which comes from the file -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?gettytab">/etc/gettytab</ulink>). The terminal type for this port is -``dialup.'' The port is ``on'' and is ``insecure''---meaning -root logins on the port aren't allowed. For dialin ports like -this one, use the <emphasis remap=tt>ttydX</emphasis> entry.</para> - -<para>It's common practice to use ``dialup'' as the terminal type. -Many users set up in their .profile or .login files a prompt for -the actual terminal type if the starting type is dialup. The -example shows the port as insecure. To become root on this port, -you have to login as a regular user, then ``<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?su">su</ulink>'' to -<emphasis remap=tt>root</emphasis>. If you use ``secure'' then <emphasis remap=tt>root</emphasis> can login in -directly.</para> - -<para>After making modifications to <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink>, you -need to send a hangup or <acronym>HUP</acronym> signal to the <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?init">init</ulink> process:</para> - -<para> -<literallayout> kill -HUP 1 - </literallayout> -</para> - -<para>This forces the init process to reread <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink>. The -init process will then start getty processes on all ``on'' ports. -You can find out if logins are available for your port by typing</para> - -<para> -<literallayout> ps -ax | grep '[t]tyd1' - </literallayout> -</para> - -<para>You should see something like:</para> - -<para> -<literallayout> 747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1 - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How can I connect a dumb terminal to my FreeBSD box?</para></question><answer> - -<para>If you're using another computer as a terminal into your FreeBSD -system, get a null modem cable to go between the two serial -ports. If you're using an actual terminal, see its accompanying -instructions.</para> - -<para>Then, modify <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink>, like above. For example, if you're hooking up a -WYSE-50 terminal to the fifth serial port, use an entry like this:</para> - -<para> -<literallayout> ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure - </literallayout> -</para> - -<para>This example shows that the port on <filename>/dev/ttyd4</filename> has a -wyse50 terminal connected at 38400 bps with no parity -(<emphasis remap=tt>std.38400</emphasis> from <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?gettytab">/etc/gettytab</ulink>) and <emphasis remap=tt>root</emphasis> logins are allowed (secure).</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Why can't I run <emphasis remap=tt>tip</emphasis> or <emphasis remap=tt>cu</emphasis>?</para></question><answer> - -<para>On your system, the programs <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> and <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?cu">cu</ulink> are probably -executable only by <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?uucp">uucp</ulink> and group <emphasis remap=tt>dialer</emphasis>. You can use the group <emphasis remap=tt>dialer</emphasis> -to control who has access to your modem or remote systems. Just add -yourself to group dialer.</para> - -<para>Alternatively, you can let everyone on your system run <emphasis remap=tt>tip</emphasis> -and <emphasis remap=tt>cu</emphasis> by typing:</para> - -<para> -<literallayout> # chmod 4511 /usr/bin/cu - # chmod 4511 /usr/bin/tip - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>My stock Hayes modem isn't supported---what can I do?</para></question><answer> - -<para>Actually, the man page for <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> is out of -date. There is a generic Hayes dialer already built in. Just use -``<literal>at=hayes</literal>'' in your <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink> file.</para> - -<para>The Hayes driver isn't smart enough to recognize some of the -advanced features of newer modems---messages like <acronym>BUSY</acronym>, -<emphasis remap=tt>NO DIALTONE</emphasis>, or <emphasis remap=tt>CONNECT 115200</emphasis> will just confuse it. -You should turn those messages off when you use <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> (using -<emphasis remap=tt>ATX0&W</emphasis>).</para> - -<para>Also, the dial timeout for <emphasis remap=tt>tip</emphasis> is 60 seconds. Your modem -should use something less, or else tip will think there's a -communication problem. Try <literal>ATS7=45&W</literal>.</para> - -<para>Actually, as shipped <emphasis remap=tt>tip</emphasis> doesn't yet support it fully. The -solution is to edit the file <filename>tipconf.h</filename> in the directory -<filename>/usr/src/usr.bin/tip/tip</filename>. Obviously you need the source -distribution to do this.</para> - -<para>Edit the line ``<emphasis remap=tt>#define HAYES 0</emphasis>'' to ``<emphasis remap=tt>#define HAYES -1</emphasis>''. Then ``<emphasis remap=tt>make</emphasis>'' and ``<emphasis remap=tt>make install</emphasis>''. Everything -works nicely after that.</para> - -</answer></qandaentry> - -<qandaentry><question -id="direct-at"> -<para> How am I expected to enter these AT commands? - </para></question><answer> - -<para>Make what's called a ``<emphasis remap=tt>direct</emphasis>'' entry in your -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink> file. For example, if your modem's hooked -up to the first serial port, <filename>/dev/cuaa0</filename>, then put in the -following line:</para> - -<para> -<literallayout> cuaa0:dv=/dev/cuaa0:br#19200:pa=none - </literallayout> -</para> - -<para>Use the highest bps rate your modem supports in the br -capability. Then, type <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip cuaa0</ulink> and -you'll be connected to your modem.</para> - -<para>If there is no <filename>/dev/cuaa0</filename> on your system, do this:</para> - -<para> -<literallayout> # cd /dev - # ./MAKEDEV cuaa0 - </literallayout> -</para> - -<para>Or use cu as root with the following command:</para> - -<para> -<literallayout> # cu -l``line'' -s``speed'' - </literallayout> -</para> - -<para>with line being the serial port (e.g.<filename>/dev/cuaa0</filename>) -and speed being the speed (e.g.<emphasis remap=tt>57600</emphasis>). When you are done -entering the AT commands hit <emphasis remap=tt>~.</emphasis> to exit.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>The <emphasis remap=tt><@></emphasis> sign for the pn capability doesn't work!</para></question><answer> - -<para>The <emphasis remap=tt><@></emphasis> sign in the phone number capability tells tip to look in -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?phones(5)">/etc/phones</ulink> for a phone number. But the <emphasis remap=tt><@></emphasis> sign is -also a special character in capability files like -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink>. Escape it with a backslash:</para> - -<para> -<literallayout> pn=\@ - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How can I dial a phone number on the command line?</para></question><answer> - -<para>Put what's called a ``<emphasis remap=tt>generic</emphasis>'' entry in your -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink> file. For example:</para> - -<para> -<literallayout> 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: - </literallayout> -</para> - -<para>Then you can do something like ``<command>tip -115200 5551234</command>''. If you -prefer <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?cu">cu</ulink> over <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink>, use a -generic cu entry:</para> - -<para> -<literallayout> cu115200|Use cu to dial any number at 115200bps:\ - :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du: - </literallayout> -</para> - -<para>and type ``<command>cu 5551234 -s 115200</command>''.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Do I have to type in the bps rate every time I do that?</para></question><answer> - -<para>Put in an entry for <emphasis remap=tt>tip1200</emphasis> or <emphasis remap=tt>cu1200</emphasis>, but go ahead and -use whatever bps rate is appropriate with the br capability. <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> thinks a good -default is 1200 bps which is why it looks for a ``<emphasis remap=tt>tip1200</emphasis>'' entry. -You don't have to use 1200 bps, though.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I access a number of hosts through a terminal server.</para></question><answer> - -<para>Rather than waiting until you're connected and typing -``<emphasis remap=tt>CONNECT <host></emphasis>'' each time, use tip's <emphasis remap=tt>cm</emphasis> -capability. For example, these entries in -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink>:</para> - -<para> -<literallayout> 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: - </literallayout> -</para> - -<para>will let you type ``<emphasis remap=tt>tip pain</emphasis>'' or ``<emphasis remap=tt>tip muffin</emphasis>'' to -connect to the hosts pain or muffin; and ``<emphasis remap=tt>tip deep13</emphasis>'' to -get to the terminal server.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Can tip try more than one line for each site?</para></question><answer> - -<para>This is often a problem where a university has several modem lines -and several thousand students trying to use them...</para> - -<para>Make an entry for your university in <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink> -and use <emphasis remap=tt><\@></emphasis> for the <emphasis remap=tt>pn</emphasis> capability:</para> - -<para> -<literallayout> big-university:\ - :pn=\@:tc=dialout - dialout:\ - :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none: - </literallayout> -</para> - -<para>Then, list the phone numbers for the university in -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?phones">/etc/phones</ulink>:</para> - -<para> -<literallayout> big-university 5551111 - big-university 5551112 - big-university 5551113 - big-university 5551114 - </literallayout> -</para> - -<para><ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> will try each one in the listed order, then give up. If -you want to keep retrying, run <emphasis remap=tt>tip</emphasis> in a while loop.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Why do I have to hit CTRL+P twice to send CTRL+P once?</para></question><answer> - -<para>CTRL+P is the default ``force'' character, used to tell -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> -that the next character is literal data. You can set the force -character to any other character with the <emphasis remap=tt>~s</emphasis> escape, which -means ``set a variable.''</para> - -<para>Type ``<literal>~sforce=<single-char></literal>'' followed by a newline. -<emphasis remap=tt><single-char></emphasis> is any single character. If you leave -out <emphasis remap=tt><single-char></emphasis>, then the force character is the nul -character, which you can get by typing CTRL+2 or CTRL+SPACE. A -pretty good value for <emphasis remap=tt><single-char></emphasis> is SHIFT+CTRL+6, -which I've seen only used on some terminal servers.</para> - -<para>You can have the force character be whatever you want by -specifying the following in your <filename>$HOME/.tiprc</filename> -file:</para> - -<para> -<literallayout> force=<single-char> - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Suddenly everything I type is in UPPER CASE??</para></question><answer> - -<para>You must've pressed CTRL+A, <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> ``raise -character,'' specially designed for people with broken caps-lock keys. -Use <emphasis remap=tt>~s</emphasis> as above and set the variable ``raisechar'' to something -reasonable. In fact, you can set it to the same as the force -character, if you never expect to use either of these features.</para> - -<para>Here's a sample .tiprc file perfect for Emacs users who need to -type CTRL+2 and CTRL+A a lot:</para> - -<para> -<literallayout> force=^^ - raisechar=^^ - </literallayout> -</para> - -<para>The ^^ is SHIFT+CTRL+6.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How can I do file transfers with <emphasis remap=tt>tip</emphasis>?</para></question><answer> - -<para>If you're talking to another UNIX system, you can send and -receive files with <emphasis remap=tt>~p</emphasis> (put) and <emphasis remap=tt>~t</emphasis> (take). These -commands run <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?cat">cat</ulink> and <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?echo">echo</ulink> on the remote system to accept and send files. The syntax -is:</para> - -<para> -<literallayout> ~p <local-file> [<remote-file>] - ~t <remote-file> [<local-file>] - </literallayout> -</para> - -<para>There's no error checking, so you probably should use another -protocol, like zmodem.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How can I run zmodem with <emphasis remap=tt>tip</emphasis>?</para></question><answer> - -<para>First, install one of the zmodem programs from the ports -collection (such as one of the two from the comms category, -<ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^lrzsz">lrzsz</ulink> -and <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^rzsz">rzsz</ulink>).</para> - -<para>To receive files, start the sending program on the remote end. -Then, press enter and type ``<emphasis remap=tt>~C rz</emphasis>'' (or ``<emphasis remap=tt>~C lrz</emphasis>'' if -you installed lrzsz) to begin receiving them locally.</para> - -<para>To send files, start the receiving program on the remote end. -Then, press enter and type ``<emphasis remap=tt>~C sz <files></emphasis>'' (or -``<emphasis remap=tt>~C lsz <files></emphasis>'') to send them to the -remote system.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>FreeBSD can't seem to find my serial ports, even when the - settings are correct.</para></question><answer> - -<para>Motherboards and cards with Acer UARTs do not probe properly under -the FreeBSD sio probe. Obtain a patch from -<ulink URL="http://www.lemis.com/serial-port-patch.html">www.lemis.com</ulink> to fix your problem.</para> - -</answer></qandaentry></qandaset> -</chapter> - -<chapter -id="misc"> -<title>Miscellaneous Questions</title> - - -<qandaset><qandaentry><question> -<para> FreeBSD uses far more swap space than Linux. Why? - </para></question><answer> - -<para>FreeBSD only appears to use more swap than Linux. In actual fact, -it does not. The main difference between FreeBSD and Linux in this -regard is that FreeBSD will proactively move entirely idle, unused pages -of main memory into swap in order to make more main memory available -for active use. Linux tends to only move pages to swap as a last resort. -The perceived heavier use of swap is balanced by the more efficient use -of main memory. </para> - -<para>Note that while FreeBSD is proactive in this regard, it does not -arbitrarily decide to swap pages when the system is truely idle. Thus -you will not find your system all paged out when you get up in the -morning after leaving it idle overnight.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> Why use (what are) a.out and ELF executable formats? - </para></question><answer> - -<para>To understand why FreeBSD uses the <filename>ELF</filename> format, you must -first know a little about the 3 currently "dominant" executable -formats for UNIX:</para> - -<para><note><para>Prior to FreeBSD 3.x, FreeBSD used the a.out format.</para></note></para> - -<para> -<itemizedlist> - -<listitem> -<para><ulink URL="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)">a.out</ulink> - -</para> - -<para>The oldest and `classic' unix object format. It uses a -short and compact header with a magic number at the beginning -that's often used to characterize the format (see -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)">a.out(5)</ulink> for more details). It contains three loaded -segments: .text, .data, and .bss plus a symbol table and a -string table.</para> - -<para></para> -</listitem> - -<listitem> -<para><acronym>COFF</acronym> -</para> - -<para>The SVR3 object format. The header now comprises a section -table, so you can have more than just .text, .data, and .bss -sections.</para> -</listitem> - -<listitem> -<para><acronym>ELF</acronym> -</para> - -<para>The successor to <acronym>COFF</acronym>, featuring Multiple sections -and 32-bit or 64-bit possible values. One major drawback: -<acronym>ELF</acronym> was also designed with the assumption that there -would be only one ABI per system architecture. That -assumption is actually quite incorrect, and not even in the -commercial SYSV world (which has at least three ABIs: SVR4, -Solaris, SCO) does it hold true.</para> - -<para></para> - -<para>FreeBSD tries to work around this problem somewhat by -providing a utility for <emphasis>branding</emphasis> a known <acronym>ELF</acronym> -executable with information about the ABI it's compliant with. -See the man page for -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?brandelf">brandelf</ulink> for more information.</para> -</listitem> - -</itemizedlist> -</para> - -<para>FreeBSD comes from the "classic" camp and has traditionally used -the <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)">a.out</ulink> format, a technology tried and proven through -many generations of BSD releases. Though it has also been possible -for some time to build and run native <acronym>ELF</acronym> binaries (and -kernels) on a FreeBSD system, FreeBSD initially resisted the "push" -to switch to <acronym>ELF</acronym> as the default format. Why? Well, -when the Linux camp made their painful transition to <acronym>ELF</acronym>, it -was not so much to flee the <filename>a.out</filename> 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. Since the <acronym>ELF</acronym> -tools available offered a solution to the shared library -problem and were generally seen as "the way forward" anyway, the -migration cost was accepted as necessary and the transition -made.</para> - -<para>In FreeBSD's case, our shared -library mechanism is based more closely on Sun's -<emphasis remap=tt>SunOS</emphasis>-style shared library mechanism and, as such, is very -easy to use. -However, starting with 3.0, FreeBSD officially supports <acronym>ELF</acronym> -binaries as the default format. Even though the <filename>a.out</filename> -executable format has served us well, the GNU people, who author the -compiler tools we use, have dropped support for the <filename>a.out</filename> -format. This has forced us to maintain a divergent version of -the compler and linker, and has kept us from reaping the benefits -of the latest GNU development efforts. Also the demands of -ISO-C++, notably contstructors and destructors, has also led to -native <acronym>ELF</acronym> support in future FreeBSD releases.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Yes, but why are there so many different - formats?</para></question><answer> - -<para>Back in the dim, dark past, there was simple hardware. This -simple hardware supported a simple, small system. a.out was -completely adequate for the job of representing binaries on this -simple system (a PDP-11). As people ported unix from this -simple system, they retained the a.out format because it was -sufficient for the early ports of unix to architectures like the -Motorola 68k, VAXen, etc.</para> - -<para>Then some bright hardware engineer decided that if he could -force software to do some sleazy tricks, then he'd be able to -shave a few gates off the design and allow his CPU core to run -faster. While it was made to work with this new kind of -hardware (known these days as RISC), <filename>a.out</filename> was ill-suited -for this hardware, so many formats were developed to get to a -better performance from this hardware than the limited, simple -<filename>a.out</filename> format could offer. Things like <acronym>COFF</acronym>, -<acronym>ECOFF</acronym>, and a few obscure others were invented and their -limitations explored before things seemed to settle on <acronym>ELF</acronym>.</para> - -<para>In addition, program sizes were getting huge and disks (and -physical memory) were still relatively small so the concept of a -shared library was born. The VM system also became more -sophisticated. While each one of these advancements was done -using the <filename>a.out</filename> format, its usefulness was stretched more -and more with each new feature. In addition, people wanted to -dynamically load things at run time, or to junk parts of their -program after the init code had run to save in core memory -and/or swap space. Languages became more sophistocated and -people wanted code called before main automatically. Lots of -hacks were done to the <filename>a.out</filename> format to allow all of these -things to happen, and they basically worked for a time. In -time, <filename>a.out</filename> wasn't up to handling all these problems -without an ever increasing overhead in code and complexity. -While <acronym>ELF</acronym> solved many of these problems, it would be -painful to switch from the system that basically worked. So -<acronym>ELF</acronym> had to wait until it was more painful to remain with -<filename>a.out</filename> than it was to migrate to <acronym>ELF</acronym>.</para> - -<para>However, as time passed, the build tools that FreeBSD derived -their build tools from (the assembler and loader especially) -evolved in two parallel trees. The FreeBSD tree added shared -libraries and fixed some bugs. The GNU folks that originally -write these programs rewrote them and added simpler support for -building cross compilers, plugging in different formats at will, -etc. Since many people wanted to build cross compilers -targeting FreeBSD, they were out of luck since the older sources -that FreeBSD had for as and ld weren't up to the task. The new -gnu tools chain (binutils) does support cross compiling, -<acronym>ELF</acronym>, shared libraries, C++ extnensions, etc. In addition, -many vendors are releasing <acronym>ELF</acronym> binaries, and it is a good -thing for FreeBSD to run them. And if it is running <acronym>ELF</acronym> -binaries, why bother having <filename>a.out</filename> any more? It is a tired -old horse that has proven useful for a long time, but it is time -to turn him out to pasture for his long, faithful years of -service.</para> - -<para><acronym>ELF</acronym> is more expressive than a.out and will allow more -extensibility in the base system. The <acronym>ELF</acronym> tools are better -maintained, and offer cross compilation support, which is -important to many people. <acronym>ELF</acronym> may be a little slower than -a.out, but trying to measure it can be difficult. There are -also numerous details that are different between the two in how -they map pages, handle init code, etc. None of these are very -important, but they are differences. In time support for -<filename>a.out</filename> will be moved out of the GENERIC kernel, and -eventually removed from the kernel once the need to run legacy -<filename>a.out</filename> programs is past.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Why won't chmod change the permissions on symlinks?</para></question><answer> - - <para>Symlinks do not have permissions, and by default, - &man.chmod.1; will not follow symlinks to change the permissions - on the target file. So if you have a file, - <filename>foo</filename>, and a symlink to that file, - <filename>bar</filename>, then this command will always - succeed.</para> - - <screen>&prompt.user; <userinput>chmod g-w bar</userinput></screen> - - <para>However, the permissions on <filename>foo</filename> will not - have changed.</para> - -<para>You have to use either ``<option>-H</option>'' or ``<option>-L</option>'' together with -the ``<option>-R</option>'' option to make this work. See the <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?chmod">chmod</ulink> and -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?symlink">symlink</ulink> -man pages for more info.</para> - -<para><acronym>WARNING</acronym> the ``<option>-R</option>'' option does a <acronym>RECURSIVE</acronym> -<emphasis remap=tt>chmod</emphasis>. Be careful about specifying directories or symlinks -to directories to <emphasis remap=tt>chmod</emphasis>. If you want to change the -permissions of a directory referenced by a symlink, use -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?chmod">chmod</ulink> -without any options and follow the symlink with a trailing slash -(``<filename>/</filename>''). For example, if ``<emphasis remap=tt>foo</emphasis>'' is a symlink to -directory ``<emphasis remap=tt>bar</emphasis>'', and you want to change the permissions of -``<emphasis remap=tt>foo</emphasis>'' (actually ``<emphasis remap=tt>bar</emphasis>''), you would do something like:</para> - -<para> -<literallayout> chmod 555 foo/ - </literallayout> -</para> - -<para>With the trailing slash, <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?chmod">chmod</ulink> will -follow the symlink, ``<emphasis remap=tt>foo</emphasis>'', to change the permissions of the -directory, ``<emphasis remap=tt>bar</emphasis>''.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> Why are login names <emphasis remap=bf>still</emphasis> restricted to 8 characters? - </para></question><answer> - -<para>You'd think it'd be easy enough to change <symbol>UT_NAMESIZE</symbol> and rebuild -the whole world, and everything would just work. Unfortunately there -are often scads of applications and utilities (including system tools) -that have hard-coded small numbers (not always "8" or "9", but oddball -ones like "15" and "20") in structures and buffers. Not only will -this get you log files which are trashed (due to variable-length -records getting written when fixed records were expected), but it can -break Sun's NIS clients and potentially cause other problems in -interacting with other UNIX systems.</para> - -<para>In FreeBSD 3.0 and later, the maximum name length has been -increased to 16 characters and those various utilities with -hard-coded name sizes have been found and fixed. The fact that this -touched so many areas of the system is why, in fact, the change was -not made until 3.0.</para> - -<para>If you're absolutely confident in your ability to find and fix -these sorts of problems for yourself when and if they pop up, you -can increase the login name length in earlier releases by editing -/usr/include/utmp.h and changing UT_NAMESIZE accordingly. You must -also update MAXLOGNAME in /usr/include/sys/param.h to match -the UT_NAMESIZE change. Finally, if you build from sources, don't -forget that /usr/include is updated each time! Change the appropriate -files in /usr/src/.. instead.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Can I run DOS binaries under FreeBSD?</para></question><answer> - -<para>Yes, starting with version 3.0 you can using BSDI's <emphasis remap=tt>doscmd</emphasis> -DOS emulation which has been integrated and enhanced. -Send mail to <ulink URL="mailto:freebsd-emulation@FreeBSD.org">The FreeBSD emulation discussion list</ulink> if you're interested in -joining this ongoing effort!</para> - -<para>For pre-3.0 systems, there is a neat utility called -<ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^pcemu">pcemu</ulink> -in the ports collection which emulates an 8088 and enough BIOS services -to run DOS text mode applications. It requires the X Window -System (provided as XFree86).</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> What is ``<emphasis remap=tt>sup</emphasis>'', and how do I use it? - </para></question><answer> - -<para><ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^sup">SUP</ulink> -stands for Software Update Protocol, and was developed by CMU -for keeping their development trees in sync. We used it to keep -remote sites in sync with our central development sources.</para> - -<para>SUP is not bandwidth friendly, and has been retired. The current -recommended method to keep your sources up to date is -<ulink URL="../handbook/synching.html#CVSUP">Handbook entry on CVSup</ulink></para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How cool is FreeBSD?</para></question><answer> - -<para>Q. Has anyone done any temperature testing while running FreeBSD? -I know Linux runs cooler than dos, but have never seen a mention of -FreeBSD. It seems to run really hot.</para> - -<para>A. No, but we have done numerous taste tests on blindfolded -volunteers who have also had 250 micrograms of LSD-25 -administered beforehand. 35% of the volunteers said that FreeBSD -tasted sort of orange, whereas Linux tasted like purple haze. -Neither group mentioned any particular variances in temperature -that I can remember. We eventually had to throw the results of -this survey out entirely anyway when we found that too many -volunteers were wandering out of the room during the tests, thus -skewing the results. I think most of the volunteers are at Apple -now, working on their new ``scratch and sniff'' GUI. It's a -funny old business we're in!</para> - -<para>Seriously, both FreeBSD and Linux use the ``<acronym>HLT</acronym>'' (halt) -instruction when the system is idle thus lowering its energy -consumption and therefore the heat it generates. Also if you -have APM (automatic power management) configured, then FreeBSD -can also put the CPU into a low power mode.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Who's scratching in my memory banks??</para></question><answer> - -<para>Q. Is there anything "odd" that FreeBSD does when compiling the -kernel which would cause the memory to make a scratchy sound? When -compiling (and for a brief moment after recognizing the floppy drive -upon startup, as well), a strange scratchy sound emanates from what -appears to be the memory banks.</para> - -<para>A. Yes! You'll see frequent references to ``daemons'' in the BSD -documentation, and what most people don't know is that this -refers to genuine, non-corporeal entities that now possess your -computer. The scratchy sound coming from your memory is actually -high-pitched whispering exchanged among the daemons as they best -decide how to deal with various system administration tasks.</para> - -<para>If the noise gets to you, a good ``<command>fdisk /mbr</command>'' from DOS -will get rid of them, but don't be surprised if they react -adversely and try to stop you. In fact, if at any point during -the exercise you hear the satanic voice of Bill Gates coming from -the built-in speaker, take off running and don't ever look back! -Freed from the counterbalancing influence of the BSD daemons, the -twin demons of DOS and Windows are often able to re-assert total -control over your machine to the eternal damnation of your soul. -Given a choice, I think I'd prefer to get used to the scratchy -noises, myself!</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>What does 'MFC' mean?</para></question><answer> - -<para>MFC is an acronym for 'Merged From -CURRENT.' It's used in the CVS -logs to denote when a change was migrated from the CURRENT to the STABLE -branches.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>What does 'BSD' mean?</para></question><answer> - -<para>It stands for something in a secret language that only -members can know. It doesn't translate literally but its ok to -tell you that BSD's translation is something between, 'Formula-1 -Racing Team', 'Penguins are tasty snacks', and 'We have a better -sense of humor than Linux.' :-)</para> - -<para>Seriously, BSD is an acronym for 'Berkeley Software -Distribution', which is the name the Berkeley CSRG (Computer -Systems Research Group) chose for their Unix distribution way -back when.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How many FreeBSD hackers does it take to change a lightbulb?</para></question><answer> - -<para>One thousand, one hundred and seventy-two:</para> - -<para>Twenty-three to complain to -CURRENT about the lights being -out;</para> - -<para>Four to claim that it is a configuration problem, and that -such matters really belong on -questions;</para> - -<para>Three to submit PRs about it, one of which is misfiled under -doc and consists only of "it's dark";</para> - -<para>One to commit an untested lightbulb which breaks buildworld, -then back it out five minutes later;</para> - -<para>Eight to flame the PR originators for not including patches -in their PRs;</para> - -<para>Five to complain about buildworld being broken;</para> - -<para>Thirty-one to answer that it works for them, and they must -have cvsupped at a bad time;</para> - -<para>One to post a patch for a new lightbulb to -hackers;</para> - -<para>One to complain that he had patches for this three years ago, -but when he sent them to -CURRENT they were just ignored, and he -has had bad experiences with the PR system; besides, the -proposed new lightbulb is non-reflexive;</para> - -<para>Thirty-seven to scream that lightbulbs do not belong in the -base system, that committers have no right to do things like -this without consulting the Community, and WHAT IS -CORE DOING -ABOUT IT!?</para> - -<para>Two hundred to complain about the color of the bicycle shed;</para> - -<para>Three to point out that the patch breaks style(9);</para> - -<para>Seventeen to complain that the proposed new lightbulb is -under GPL;</para> - -<para>Five hundred and eighty-six to engage in a flame war about -the comparative advantages of the GPL, the BSD license, the MIT -license, the NPL, and the personal hygiene of unnamed FSF -founders;</para> - -<para>Seven to move various portions of the thread to -chat and --advocacy;</para> - -<para>One to commit the suggested lightbulb, even though it shines -dimmer than the old one;</para> - -<para>Two to back it out with a furious flame of a commit message, -arguing that FreeBSD is better off in the dark than with a dim -lightbulb;</para> - -<para>Forty-six to argue vociferously about the backing out of the -dim lightbulb and demanding a statement from -core;</para> - -<para>Eleven to request a smaller lightbulb so it will fit their -Tamagotchi if we ever decide to port FreeBSD to that platform;</para> - -<para>Seventy-three to complain about the SNR on -hackers and -chat -and unsubscribe in protest;</para> - -<para>Thirteen to post "unsubscribe", "How do I unsubscribe?", or -"Please remove me from the list", followed by the usual footer;</para> - -<para>One to commit a working lightbulb while everybody is too busy -flaming everybody else to notice;</para> - -<para>Thirty-one to point out that the new lightbulb would shine -0.364% brighter if compiled with TenDRA (although it will have -to be reshaped into a cube), and that FreeBSD should therefore -switch to TenDRA instead of EGCS;</para> - -<para>One to complain that the new lightbulb lacks fairings;</para> - -<para>Nine (including the PR originators) to ask "what is MFC?";</para> - -<para>Fifty-seven to complain about the lights being out two weeks -after the bulb has been changed.</para> - -<para><emphasis><ulink URL="mailto:nik@FreeBSD.org">Nik Clayton</ulink> -adds:</emphasis></para> - -<para><emphasis>I was laughing quite hard at this.</emphasis></para> - -<para><emphasis>And then I thought, "Hang on, shouldn't there be '1 to -document it.' in that list somewhere?"</emphasis></para> - -<para><emphasis>And then I was enlightened :-)</emphasis></para> - -<para><emphasis>This entry is Copyright (c) 1999 <ulink URL="mailto:des@FreeBSD.org">Dag-Erling Coïdan Smørgrav</ulink>. Please do not reproduce without attribution.</emphasis></para> - -</answer></qandaentry></qandaset> -</chapter> - -<chapter -id="hackers"> -<title>For serious FreeBSD hackers only</title> - - -<qandaset><qandaentry><question> -<para> What are SNAPs and RELEASEs? - </para></question><answer> - -<para>There are currently three active/semi-active branches in the FreeBSD -<ulink URL="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVS -Repository</ulink> (the RELENG_2 branch is probably only changed twice -a year, which is why there are only three active branches of development):</para> - -<para> -<itemizedlist> - -<listitem> -<para><symbol>RELENG_2_2</symbol> AKA <emphasis remap=bf>2.2-STABLE</emphasis></para> -</listitem> - -<listitem> -<para><symbol>RELENG_3</symbol> AKA <emphasis remap=bf>3.X-STABLE</emphasis></para> -</listitem> - -<listitem> -<para><symbol>RELENG_4</symbol> AKA <emphasis>4.X-STABLE</emphasis></para> -</listitem> - -<listitem> -<para><acronym>HEAD</acronym> AKA <option>-CURRENT</option> AKA <emphasis remap=bf>5.0-CURRENT</emphasis></para> -</listitem> - -</itemizedlist> -</para> - -<para><acronym>HEAD</acronym> is not an actual branch tag, like the other two; it's -simply a symbolic constant for -<emphasis>"the current, non-branched development stream"</emphasis> which we simply -refer to as <option>-CURRENT</option>.</para> - -<para>Right now, <option>-CURRENT</option> is the 5.0 development stream and the -<emphasis remap=bf>4-STABLE</emphasis> branch, <symbol>RELENG_4</symbol>, forked off from -<option>-CURRENT</option> in Mar 2000.</para> - -<para>The <emphasis remap=bf>2.2-STABLE</emphasis> branch, <symbol>RELENG_2_2</symbol>, departed -CURRENT in -November 1996, and has pretty much been retired.</para> - -</answer></qandaentry> - -<qandaentry><question -id="custrel"> -<para> How do I make my own custom release? - </para></question><answer> - -<para>To make a release you need to do three things: First, you need to -be running a kernel with the <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?vn">vn</ulink> driver configured -in. Add this to your kernel config file and build a new kernel:</para> - -<para> -<literallayout> pseudo-device vn #Vnode driver (turns a file into a device) - </literallayout> -</para> - -<para>Second, you have to have the whole CVS repository at hand. -To get this you can use <ulink URL="../handbook/synching.html#CVSUP">CVSUP</ulink> -but in your supfile set the release name to cvs and remove any tag or -date fields:</para> - -<para> -<literallayout> *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 - </literallayout> -</para> - -<para>Then run <command>cvsup -g supfile</command> to suck all the good bits onto your -box...</para> - -<para>Finally, you need a chunk of empty space to build into. Let's -say it's in <filename>/some/big/filesystem</filename>, and from the example -above you've got the CVS repository in <filename>/home/ncvs</filename>:</para> - -<para> -<literallayout> setenv CVSROOT /home/ncvs # or export CVSROOT=/home/ncvs - cd /usr/src/release - make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/some/big/filesystem/release - </literallayout> -</para> - -<para>An entire release will be built in -<filename>/some/big/filesystem/release</filename> and you will have a full FTP-type -installation in <filename>/some/big/filesystem/release/R/ftp</filename> when you're -done. If you want to build your SNAP along some other branch than --CURRENT, you can also add <literal>RELEASETAG=SOMETAG</literal> to -the make release command line above, e.g. <literal>RELEASETAG=RELENG_2_2</literal> -would build an up-to-the- minute 2.2-STABLE snapshot.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How do I create customized installation disks?</para></question><answer> - -<para>The entire process of creating installation disks and source and -binary archives is automated by various targets in -<filename>/usr/src/release/Makefile</filename>. The information there should -be enough to get you started. However, it should be said that this -involves doing a ``make world'' and will therefore take up a lot of -time and disk space.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>``make world'' clobbers my existing installed binaries.</para></question><answer> - -<para>Yes, this is the general idea; as its name might suggest, -``make world'' rebuilds every system binary from scratch, so you can be -certain of having a clean and consistent environment at the end (which -is why it takes so long).</para> - -<para>If the environment variable <acronym>DESTDIR</acronym> is defined while running -``<emphasis remap=tt>make world</emphasis>'' or ``<emphasis remap=tt>make install</emphasis>'', the newly-created -binaries will be deposited in a directory tree identical to the -installed one, rooted at <emphasis remap=tt>${DESTDIR}</emphasis>. -Some random combination of shared libraries modifications and -program rebuilds can cause this to fail in ``<emphasis remap=tt>make world</emphasis>'', -however.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para> When my system boots, it says ``(bus speed defaulted)''. - </para></question><answer> - -<para>The Adaptec 1542 SCSI host adapters allow the user to configure -their bus access speed in software. Previous versions of the -1542 driver tried to determine the fastest usable speed and set -the adapter to that. We found that this breaks some users' -systems, so you now have to define the ``<symbol>TUNE_1542</symbol>'' kernel -configuration option in order to have this take place. Using it -on those systems where it works may make your disks run faster, -but on those systems where it doesn't, your data could be -corrupted.</para> - -</answer></qandaentry> - -<qandaentry><question -id="ctm"> -<para> Can I follow current with limited Internet access? - </para></question><answer> - -<para>Yes, you can do this <emphasis remap=tt>without</emphasis> downloading the whole source tree -by using the <ulink URL="../handbook/synching.html#CTM">CTM facility.</ulink></para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How did you split the distribution into 240k files?</para></question><answer> - -<para>Newer BSD based systems have a ``<option>-b</option>'' option to split that -allows them to split files on arbitrary byte boundaries.</para> - -<para>Here is an example from <filename>/usr/src/Makefile</filename>.</para> - -<para> -<literallayout> bin-tarball: - (cd ${DISTDIR}; \ - tar cf - . \ - gzip --no-name -9 -c | \ - split -b 240640 - \ - ${RELEASEDIR}/tarballs/bindist/bin_tgz.) - </literallayout> -</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I've written a kernel extension, who do I send it to?</para></question><answer> - -<para>Please take a look at <ulink URL="../handbook/contrib.html">The Handbook entry on how to submit code.</ulink></para> - -<para>And thanks for the thought!</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>How are Plug N Play ISA cards detected and initialized?</para></question><answer> - -<para>By: <ulink URL="mailto:uhclem@nemesis.lonestar.org">Frank Durda IV</ulink></para> - -<para>In a nutshell, there a few I/O ports that all of the PnP boards -respond to when the host asks if anyone is out there. So when -the PnP probe routine starts, he asks if there are any PnP boards -present, and all the PnP boards respond with their model # to -a I/O read of the same port, so the probe routine gets a wired-OR -``yes'' to that question. At least one bit will be on in that -reply. Then the probe code is able to cause boards with board -model IDs (assigned by Microsoft/Intel) lower than X to go -``off-line''. It then looks to see if any boards are still -responding to the query. If the answer was ``<emphasis remap=tt>0</emphasis>'', then -there are no boards with IDs above X. Now probe asks if there -are any boards below ``X''. If so, probe knows there are boards -with a model numbers below X. Probe then asks for boards greater -than X-(limit/4) to go off-line. If repeats the query. By -repeating this semi-binary search of IDs-in-range enough times, -the probing code will eventually identify all PnP boards present -in a given machine with a number of iterations that is much lower -than what 2^64 would take.</para> - -<para>The IDs are two 32-bit fields (hence 2ˆ64) + 8 bit checksum. -The first 32 bits are a vendor identifier. They never come out -and say it, but it appears to be assumed that different types of -boards from the same vendor could have different 32-bit vendor -ids. The idea of needing 32 bits just for unique manufacturers -is a bit excessive.</para> - -<para>The lower 32 bits are a serial #, ethernet address, something -that makes this one board unique. The vendor must never produce -a second board that has the same lower 32 bits unless the upper -32 bits are also different. So you can have multiple boards of -the same type in the machine and the full 64 bits will still be -unique.</para> - -<para>The 32 bit groups can never be all zero. This allows the -wired-OR to show non-zero bits during the initial binary search.</para> - -<para>Once the system has identified all the board IDs present, it will -reactivate each board, one at a time (via the same I/O ports), -and find out what resources the given board needs, what interrupt -choices are available, etc. A scan is made over all the boards -to collect this information.</para> - -<para>This info is then combined with info from any ECU files on the -hard disk or wired into the MLB BIOS. The ECU and BIOS PnP -support for hardware on the MLB is usually synthetic, and the -peripherals don't really do genuine PnP. However by examining -the BIOS info plus the ECU info, the probe routines can cause the -devices that are PnP to avoid those devices the probe code cannot -relocate.</para> - -<para>Then the PnP devices are visited once more and given their I/O, -DMA, IRQ and Memory-map address assignments. The devices will -then appear at those locations and remain there until the next -reboot, although there is nothing that says you can't move them -around whenever you want.</para> - -<para>There is a lot of oversimplification above, but you should get -the general idea.</para> - -<para>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 + <literal>0x800</literal>, and a third I/O port for reading -that can be located anywhere between <literal>0x200</literal> and <literal>0x3ff</literal>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Does FreeBSD support architectures other than the x86?</para></question><answer> - -<para>Several groups of people have expressed interest in working on -multi-architecture ports for FreeBSD and the FreeBSD/AXP (ALPHA) -port is one such effort which has been quite successful, now -available in 3.0 SNAPshot release form at <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/alpha/">ftp://ftp.FreeBSD.org/pub/FreeBSD/alpha</ulink>. The ALPHA -port currently runs on a growing number of ALPHA machine -types, among them the AlphaStation, AXPpci, PC164, Miata and Multia -models. This port is not yet considered a full release and won't be -until a full compliment of system installation tools and a distribution -on CDROM installation media is available, including a reasonable -number of working ports and packages. -FreeBSD/AXP should be considered BETA quality software at this -time. For status information, please join the -<email>freebsd-alpha@FreeBSD.org</email><link linkend="mailing">mailing list</link>.</para> - -<para>Interest has also been expressed in a port of FreeBSD to -the SPARC architecture, join the <email>freebsd-sparc@FreeBSD.org</email><link linkend="mailing">mailing list</link> if you are interested -in joining that project. For general discussion on new architectures, -join the <email>freebsd-platforms@FreeBSD.org</email> -<link linkend="mailing">mailing list</link>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>I need a major number for a device driver I've written.</para></question><answer> - -<para>This depends on whether or not you plan on making the driver -publicly available. If you do, then please send us a copy of the -driver source code, plus the appropriate modifications to -<emphasis remap=tt>files.i386</emphasis>, a sample configuration file entry, and the -appropriate <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?MAKEDEV">MAKEDEV</ulink> code to create any special files your device uses. If -you do not, or are unable to because of licensing restrictions, then -character major number 32 and block major number 8 have been reserved -specifically for this purpose; please use them. In any case, we'd -appreciate hearing about your driver on -<email>freebsd-hackers@FreeBSD.org</email>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Alternative layout policies for directories</para></question><answer> - -<para>In answer to the question of alternative layout policies for -directories, the scheme that is currently in use is unchanged -from what I wrote in 1983. I wrote that policy for the original -fast filesystem, and never revisited it. It works well at keeping -cylinder groups from filling up. As several of you have noted, -it works poorly for find. Most filesystems are created from -archives that were created by a depth first search (aka ftw). -These directories end up being striped across the cylinder groups -thus creating a worst possible senario for future depth first -searches. If one knew the total number of directories to be -created, the solution would be to create (total / fs_ncg) per -cylinder group before moving on. Obviously, one would have to -create some heuristic to guess at this number. Even using a -small fixed number like say 10 would make an order of magnitude -improvement. To differentiate restores from normal operation -(when the current algorithm is probably more sensible), you -could use the clustering of up to 10 if they were all done -within a ten second window. Anyway, my conclusion is that this -is an area ripe for experimentation.</para> - -<para>Kirk McKusick, September 1998</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Making the most of a kernel panic</para></question><answer> - -<para> -<emphasis>[This section was extracted from a mail written by <ulink URL="mailto:wpaul@FreeBSD.org">Bill Paul</ulink> on the -freebsd-current <link linkend="mailing">mailing list</link> by <ulink URL="mailto:des@FreeBSD.org">Dag-Erling Coïdan Smørgrav</ulink>, who fixed a few typos and added the bracketed -comments]</emphasis></para> - -<para> -<literallayout>From: Bill Paul <wpaul@skynet.ctr.columbia.edu> -Subject: Re: the fs fun never stops -To: ben@rosengart.com -Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT) -Cc: current@FreeBSD.org - </literallayout> -</para> - -<para><emphasis>[<ben@rosengart.com> posted the following panic -message]</emphasis> -<literallayout>> Fatal trap 12: page fault while in kernel mode -> fault virtual address = 0x40 -> fault code = supervisor read, page not present -> instruction pointer = 0x8:0xf014a7e5 - ^^^^^^^^^^ -> stack pointer = 0x10:0xf4ed6f24 -> frame pointer = 0x10:0xf4ed6f28 -> code segment = base 0x0, limit 0xfffff, type 0x1b -> = DPL 0, pres 1, def32 1, gran 1 -> processor eflags = interrupt enabled, resume, IOPL = 0 -> current process = 80 (mount) -> interrupt mask = -> trap number = 12 -> panic: page fault - </literallayout> -</para> - -<para> [When] you see a message like this, it's not enough to just -reproduce it and send it in. The instruction pointer value that -I highlighted up there is important; unfortunately, it's also -configuration dependent. In other words, the value varies -depending on the exact kernel image that you're using. If you're -using a GENERIC kernel image from one of the snapshots, then -it's possible for somebody else to track down the offending -function, but if you're running a custom kernel then only -<emphasis>you</emphasis> can tell us where the fault occured.</para> - -<para> What you should do is this:</para> - -<para> -<itemizedlist> - -<listitem> -<para>Write down the instruction pointer value. Note that the -<literal>0x8:</literal> part at the begining is not significant in this case: -it's the <literal>0xf0xxxxxx</literal> part that we want.</para> -</listitem> - -<listitem> -<para>When the system reboots, do the following: -<literallayout>% nm /kernel.that.caused.the.panic | grep f0xxxxxx - </literallayout> - -where <literal>f0xxxxxx</literal> is the instruction pointer value. The -odds are you will not get an exact match since the symbols -in the kernel symbol table are for the entry points of -functions and the instruction pointer address will be -somewhere inside a function, not at the start. If you don't -get an exact match, omit the last digit from the instruction -pointer value and try again, i.e.: -<literallayout>% nm /kernel.that.caused.the.panic | grep f0xxxxx - </literallayout> - -If that doesn't yield any results, chop off another digit. -Repeat until you get some sort of output. The result will be -a possible list of functions which caused the panic. This is -a less than exact mechanism for tracking down the point of -failure, but it's better than nothing.</para> -</listitem> - -</itemizedlist> -</para> - -<para> I see people constantly show panic messages like this but -rarely do I see someone take the time to match up the -instruction pointer with a function in the kernel symbol table.</para> - -<para> The best way to track down the cause of a panic is by -capturing a crash dump, then using <command>gdb(1)</command> to to a stack -trace on the crash dump. Of course, this depends on <command>gdb(1)</command> -in -CURRENT working correctly, which I can't guarantee (I recall -somebody saying that the new ELF-ized <command>gdb(1)</command> didn't handle -kernel crash dumps correctly: somebody should check this before -3.0 goes out of beta or there'll be a lot of red faces after the -CDs ship).</para> - -<para>In any case, the method I normally use is this:</para> - -<para> -<itemizedlist> - -<listitem> -<para>Set up a kernel config file, optionally adding 'options DDB' if you -think you need the kernel debugger for something. (I use this mainly -for setting beakpoints if I suspect an infinite loop condition of -some kind.)</para> -</listitem> - -<listitem> -<para>Use <command>config -g KERNELCONFIG</command> to set up the build directory.</para> -</listitem> - -<listitem> -<para><command>cd /sys/compile/KERNELCONFIG; make</command></para> -</listitem> - -<listitem> -<para>Wait for kernel to finish compiling.</para> -</listitem> - -<listitem> -<para><command>make install</command></para> -</listitem> - -<listitem> -<para>reboot</para> -</listitem> - -</itemizedlist> -</para> - - <para>The &man.make.1; process will have built two kernels. - <filename>kernel</filename> and - <filename>kernel.debug</filename>. <filename>kernel</filename> - was installed as <filename>/kernel</filename>, while - <filename>kernel.debug</filename> can be used as the source of - debugging symbols for gdb(1).</para> - -<para> To make sure you capture a crash dump, you need edit -<filename>/etc/rc.conf</filename> and set <emphasis remap=tt>dumpdev</emphasis> to point to your swap -partition. This will cause the <command>rc(8)</command> scripts to use the -<command>dumpon(8)</command> command to enable crash dumps. You can also run -<command>dumpon(8)</command> manually. After a panic, the crash dump can be -recovered using <command>savecore(8)</command>; if <emphasis remap=tt>dumpdev</emphasis> is set in -<filename>/etc/rc.conf</filename>, the <command>rc(8)</command> scripts will run -<command>savecore(8)</command> automatically and put the crash dump in -<filename>/var/crash</filename>.</para> - -<para> NOTE: FreeBSD crash dumps are usually the same size as the -physical RAM size of your machine. That is, if you have 64MB of -RAM, you will get a 64MB crash dump. Therefore you must make sure -there's enough space in <filename>/var/crash</filename> to hold the dump. -Alternatively, you run <command>savecore(8)</command> manually and have it -recover the crash dump to another directory where you have more -room. It's possible to limit the size of the crash dump by using -<literal>options MAXMEM=(foo)</literal> to set the amount of memory the kernel -will use to something a little more sensible. For example, if -you have 128MB of RAM, you can limit the kernel's memory usage -to 16MB so that your crash dump size will be 16MB instead of -128MB.</para> - -<para> Once you have recovered the crash dump, you can get a stack -trace with <command>gdb(1)</command> as follows:</para> - -<para> -<literallayout>% gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0 -(gdb) where - </literallayout> -</para> - -<para> Note that there may be several screens worth of information; -ideally you should use <command>script(1)</command> to capture all of them. -Using the unstripped kernel image with all the debug symbols -should show the exact line of kernel source code where the panic -occured. Usually you have to read the stack trace from the -bottom up in order to trace the exact sequence of events that -lead to the crash. You can also use <command>gdb(1)</command> to print out the -contents of various variables or structures in order to examine -the system state at the time of the crash.</para> - -<para> Now, if you're really insane and have a second computer, you -can also configure <command>gdb(1)</command> to do remote debugging such that -you can use <command>gdb(1)</command> on one system to debug the kernel on -another system, including setting breakpoints, single-stepping -through the kernel code, just like you can do with a normal -user-mode program. I haven't played with this yet as I don't -often have the chance to set up two machines side by side for -debugging purposes.</para> - -<para> <emphasis>[Bill adds: "I forgot to mention one thing: if you have -DDB enabled and the kernel drops into the debugger, you can -force a panic (and a crash dump) just by typing 'panic' at the -ddb prompt. It may stop in the debugger again during the panic -phase. If it does, type 'continue' and it will finish the crash -dump." -ed]</emphasis></para> - -</answer></qandaentry> - -<qandaentry><question> -<para>dlsym() stopped working for ELF executables!</para></question><answer> - -<para>The ELF toolchain does not, by default, make the symbols -defined in an executable visible to the dynamic linker. -Consequently <function>dlsym()</function> searches on handles obtained -from calls to <emphasis remap=tt>dlopen(NULL, flags)</emphasis> will fail to find -such symbols.</para> - -<para>If you want to search, using <function>dlsym()</function>, for symbols -present in the main executable of a process, you need to link -the executable using the <option>-export-dynamic</option> option to the -<ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ld">ELF linker</ulink>.</para> - -</answer></qandaentry> - -<qandaentry><question> -<para>Increasing or reducing the kernel address space</para></question><answer> - -<para>By default, the kernel address space is 256 MB on FreeBSD 3.x -and 1 GB on FreeBSD 4.x. If you run a network-intensive server -(e.g. a large FTP or HTTP server), you might find that 256 MB is -not enough.</para> - -<para>So how do you increase the address space? There are two aspects -to this. First, you need to tell the kernel to reserve a larger -portion of the address space for itself. Second, since the -kernel is loaded at the top of the address space, you need to -lower the load address so it doesn't bump its head against the -ceiling.</para> - -<para>The first goal is achieved by increasing the value of -<acronym>NKPDE</acronym> in <filename>src/sys/i386/include/pmap.h</filename>. Here's what -it looks like for a 1 GB address space:</para> - -<para> -<literallayout>#ifndef NKPDE -#ifdef SMP -#define NKPDE 254 /* addressable number of page tables/pde's */ -#else -#define NKPDE 255 /* addressable number of page tables/pde's */ -#endif /* SMP */ -#endif - </literallayout> -</para> - -<para>To find the correct value of <acronym>NKPDE</acronym>, divide the desired -address space size (in megabytes) by four, then subtract one for -UP and two for SMP.</para> - -<para>To achieve the second goal, you need to compute the correct load -address: simply subtract the address space size (in bytes) from -0x100100000; the result is 0xc0100000 for a 1 GB address space. -Set <symbol>LOAD_ADDRESS</symbol> in <filename>src/sys/i386/conf/Makefile.i386</filename> -to that value; then set the location counter in the beginning of -the section listing in <filename>src/sys/i386/conf/kernel.script</filename> -to the same value, as follows:</para> - -<para> -<literallayout>OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") -OUTPUT_ARCH(i386) -ENTRY(btext) -SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib); -SECTIONS -{ - /* Read-only sections, merged into text segment: */ - . = 0xc0100000 + SIZEOF_HEADERS; - .interp : { *(.interp) } - </literallayout> -</para> - -<para>Then reconfig and rebuild your kernel. You will probably have -problems with <command>ps(1)</command>, <command>top(1)</command> and the like; <emphasis remap=tt>make -world</emphasis> should take care of it (or a manual rebuild of -<emphasis remap=tt>libkvm</emphasis>, <emphasis remap=tt>ps</emphasis> and <emphasis remap=tt>top</emphasis> after copying the patched -<filename>pmap.h</filename> to <filename>/usr/include/vm/</filename>.</para> - -<para>NOTE: the size of the kernel address space must be a multiple of -four megabytes.</para> - -<para>[<ulink URL="mailto:dg@FreeBSD.org">David Greenman</ulink> -adds: <emphasis> I think the kernel address space needs to be a power -of two, but I'm not certain about that. The old(er) boot code -used to monkey with the high order address bits and I think -expected at least 256MB granularity.]</emphasis></para> - -</answer></qandaentry></qandaset> -</chapter> - -<chapter -id="acknowledgments"> -<title>ACKNOWLEDGMENTS</title> - -<para> -<literallayout> If you see a problem with this FAQ, or wish to submit an entry, - please mail us at <FAQ@FreeBSD.org>. We appreciate your - feedback, and cannot make this a better FAQ without your help! - - - FreeBSD Core Team - </literallayout> -</para> - -<para> -<variablelist> -<varlistentry><term>Jordan Hubbard</term> -<listitem> -<para>Occasional fits of FAQ-reshuffling and updating.</para> - -<para></para> - -</listitem> -</varlistentry> - -<varlistentry><term>Doug White</term> - -<listitem> -<para>Services above and beyond the call of duty on freebsd-questions</para> - -<para></para> - -</listitem> -</varlistentry> - -<varlistentry><term>Joerg Wunsch</term> - -<listitem> -<para>Services above and beyond the call of duty on Usenet</para> - -<para></para> - -</listitem> -</varlistentry> - -<varlistentry><term>Garrett Wollman</term> - -<listitem> -<para>Networking and formatting</para> - -<para></para> - -</listitem> -</varlistentry> - -<varlistentry><term>Jim Lowe</term> - -<listitem> -<para>Multicast information</para> - -<para></para> - -</listitem> -</varlistentry> - -<varlistentry><term>Peter da Silva</term> - -<listitem> -<para>FreeBSD FAQ typing machine slavey</para> - -<para></para> - -</listitem> -</varlistentry> - -<varlistentry><term>The FreeBSD Team</term> - -<listitem> -<para>Kvetching, moaning, submitting data</para> - -</listitem> -</varlistentry> -</variablelist> -</para> - -<para>And to any others we've forgotten, apologies and heartfelt thanks!</para> - -</chapter> -</book> diff --git a/en_US.ISO8859-1/books/fdp-primer/Makefile b/en_US.ISO8859-1/books/fdp-primer/Makefile deleted file mode 100644 index fd7cf47675..0000000000 --- a/en_US.ISO8859-1/books/fdp-primer/Makefile +++ /dev/null @@ -1,40 +0,0 @@ -# -# $FreeBSD$ -# -# Build the FreeBSD Documentation Project Primer. -# - -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+= overview/chapter.sgml -SRCS+= psgml-mode/chapter.sgml -SRCS+= see-also/chapter.sgml -SRCS+= sgml-markup/chapter.sgml -SRCS+= sgml-primer/chapter.sgml -SRCS+= stylesheets/chapter.sgml -SRCS+= structure/chapter.sgml -SRCS+= the-website/chapter.sgml -SRCS+= tools/chapter.sgml -SRCS+= translations/chapter.sgml -SRCS+= writing-style/chapter.sgml - -# Entities -SRCS+= chapters.ent - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/en_US.ISO8859-1/books/fdp-primer/book.sgml b/en_US.ISO8859-1/books/fdp-primer/book.sgml deleted file mode 100644 index 6c3615378d..0000000000 --- a/en_US.ISO8859-1/books/fdp-primer/book.sgml +++ /dev/null @@ -1,281 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML, HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/book.sgml,v 1.9 1999/09/06 07:22:25 peter Exp $ ---> - -<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ - -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> -%man; - -<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters; -<!ENTITY % not.published "INCLUDE"> -]> - -<book> - <bookinfo> - <title>FreeBSD Documentation Project Primer for New Contributors</title> - - <author> - <firstname>Nik</firstname> - <surname>Clayton</surname> - <affiliation> - <address><email>nik@FreeBSD.org</email></address> - </affiliation> - </author> - - <copyright> - <year>1998</year> - <year>1999</year> - <holder role="mailto:nik@FreeBSD.org">Nik Clayton</holder> - </copyright> - - <pubdate role="rcs">$FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/book.sgml,v 1.9 1999/09/06 07:22:25 peter Exp $</pubdate> - - <releaseinfo>$FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/book.sgml,v 1.9 1999/09/06 07:22:25 peter Exp $</releaseinfo> - - <legalnotice> - <para>Redistribution and use in source (SGML DocBook) and 'compiled' - forms (SGML, HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions are - met:</para> - - <orderedlist> - <listitem> - <para>Redistributions of source code (SGML DocBook) must retain the - above copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified.</para> - </listitem> - - <listitem> - <para>Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must - reproduce the above copyright notice, this list of conditions and - the following disclaimer in the documentation and/or other - materials provided with the distribution.</para> - </listitem> - </orderedlist> - - <important> - <para>THIS DOCUMENTATION 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 - DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - DAMAGE.</para> - </important> - </legalnotice> - - <abstract> - <para>Thank you for becoming a part of the FreeBSD Documentation - Project. Your contribution is extremely valuable.</para> - - <para>This primer covers everything you will need to know in order - to start contributing to the FreeBSD Documentation Project, from - the tools and software you will be using (both mandatory and - recommended) to the philosophy behind the Documentation - Project.</para> - - <para>This document is a work in progress, and is not complete. Sections - that are known to be incomplete are indicated with a - <literal>*</literal> in their name.</para> - </abstract> - </bookinfo> - - <preface> - <title>Preface</title> - - <sect1> - <title>Shell Prompts</title> - - <para>The following table shows the default system prompt and superuser - prompt. The examples will use this prompt to indicate which user you - should be running the example as.</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>User</entry> - <entry>Prompt</entry> - </row> - </thead> - - <tbody> - <row> - <entry>Normal user</entry> - <entry>&prompt.user;</entry> - </row> - - <row> - <entry><username>root</username></entry> - <entry>&prompt.root;</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </sect1> - - <sect1> - <title>Typographic Conventions</title> - - <para>The following table describes the typographic conventions used in - this book.</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Meaning</entry> - <entry>Examples</entry> - </row> - </thead> - - <tbody> - <row> - <entry>The name of commands, files, and directories. On screen - computer output.</entry> - <entry><para>Edit your <filename>.login</filename> - file.</para><para>Use <command>ls -a</command> to list all - files.</para><para><screen>You have mail.</screen> - </para></entry> - </row> - - <row> - <entry>What you type, when contrasted with on-screen computer - output.</entry> - - <entry><screen>&prompt.user; <userinput>su</userinput> -Password:</screen></entry> - </row> - - <row> - <entry>Manual page references.</entry> - - <entry>Use <citerefentry> - <refentrytitle>su</refentrytitle> - <manvolnum>1</manvolnum> - </citerefentry> to change user names.</entry> - </row> - - <row> - <entry>User and group names</entry> - - <entry>Only <username>root</username> can do this.</entry> - </row> - - <row> - <entry>Emphasis</entry> - - <entry>You <emphasis>must</emphasis> do this.</entry> - </row> - - <row> - <entry>Command line variables; replace with the real name or - variable.</entry> - - <entry>To delete a file, type <command>rm <filename><replaceable>filename</replaceable></filename></command></entry> - </row> - - <row> - <entry>Environment variables</entry> - - <entry><envar>$HOME</envar> is your home directory.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </sect1> - - <sect1> - <title>Notes, warnings, and examples</title> - - <para>Within the text appear notes, warnings, and examples.</para> - - <note> - <para>Notes are represented like this, and contain information that - you should take note of, as it may affect what you do.</para> - </note> - - <warning> - <para>Warnings are represented like this, and contain information - warning you about possible damage if you do not follow the - instructions. This damage may be physical, to your hardware or to - you, or it may be non-physical, such as the inadvertant deletion of - important files.</para> - </warning> - - <example> - <title>A sample example</title> - - <para>Examples are represented like this, and typically contain - examples you should walk through, or show you what the results of a - particular action should be.</para> - </example> - </sect1> - - <sect1> - <title>Acknowledgments</title> - - <para>My thanks to Sue Blake, Patrick Durusau, Jon Hamilton, Peter - Flynn, and Christopher Maden, who took the time to read early drafts - of this document and offer many valuable comments and - criticisms.</para> - </sect1> - </preface> - - &chap.overview; - &chap.tools; - &chap.sgml-primer; - &chap.sgml-markup; - &chap.stylesheets; - &chap.structure; - &chap.the-website; - &chap.translations; - &chap.writing-style; - &chap.psgml-mode; - &chap.see-also; - -</book> - -<!-- - Local Variables: - mode: sgml - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - End: ---> diff --git a/en_US.ISO8859-1/books/fdp-primer/chapter.decl b/en_US.ISO8859-1/books/fdp-primer/chapter.decl deleted file mode 100644 index ce0a7ed16a..0000000000 --- a/en_US.ISO8859-1/books/fdp-primer/chapter.decl +++ /dev/null @@ -1 +0,0 @@ -<!DOCTYPE chapter PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN"> diff --git a/en_US.ISO8859-1/books/fdp-primer/chapters.ent b/en_US.ISO8859-1/books/fdp-primer/chapters.ent deleted file mode 100644 index 9391c5751b..0000000000 --- a/en_US.ISO8859-1/books/fdp-primer/chapters.ent +++ /dev/null @@ -1,22 +0,0 @@ -<!-- - Creates entities for each chapter in the Documentation Project Primer. - 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. - - $FreeBSD$ ---> - -<!ENTITY chap.overview SYSTEM "overview/chapter.sgml"> -<!ENTITY chap.sgml-primer SYSTEM "sgml-primer/chapter.sgml"> -<!ENTITY chap.tools SYSTEM "tools/chapter.sgml"> -<!ENTITY chap.sgml-markup SYSTEM "sgml-markup/chapter.sgml"> -<!ENTITY chap.stylesheets SYSTEM "stylesheets/chapter.sgml"> -<!ENTITY chap.structure SYSTEM "structure/chapter.sgml"> -<!ENTITY chap.the-website SYSTEM "the-website/chapter.sgml"> -<!ENTITY chap.translations SYSTEM "translations/chapter.sgml"> -<!ENTITY chap.writing-style SYSTEM "writing-style/chapter.sgml"> -<!ENTITY chap.psgml-mode SYSTEM "psgml-mode/chapter.sgml"> -<!ENTITY chap.see-also SYSTEM "see-also/chapter.sgml"> diff --git a/en_US.ISO8859-1/books/fdp-primer/overview/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/overview/chapter.sgml deleted file mode 100644 index 9ea5225913..0000000000 --- a/en_US.ISO8859-1/books/fdp-primer/overview/chapter.sgml +++ /dev/null @@ -1,179 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $FreeBSD$ ---> - -<chapter id="overview"> - <title>Overview</title> - - <para>Welcome to the FreeBSD Documentation Project. Good quality - documentation is very important to the success of FreeBSD, and the - FreeBSD Documentation Project (FDP) is how a lot of that documentation - is produced. Your contributions are very valuable.</para> - - <para>This document's main purpose is to clearly explain <emphasis>how - the FDP is organised</emphasis>, <emphasis>how to write and submit - documentation to the FDP</emphasis>, and <emphasis>how to - effectively use the tools available to you when writing - documentation</emphasis>.</para> - - <para>Every one is welcome to join the FDP. There is no minimum - membership requirements, no quota of documentation you need to - produce per month. All you need to do is subscribe to the - <email>freebsd-doc@FreeBSD.org</email> mailing list.</para> - - <para>After you have finished reading this document you should:</para> - - <itemizedlist> - <listitem> - <para>Know which documentation is maintained by the FDP.</para> - </listitem> - - <listitem> - <para>Be able to read and understand the SGML source code for the - documentation maintained by the FDP.</para> - </listitem> - - <listitem> - <para>Be able to make changes to the documentation.</para> - </listitem> - - <listitem> - <para>Be able to submit your changes back for review and eventual - inclusion in the FreeBSD documentation.</para> - </listitem> - </itemizedlist> - - <sect1> - <title>The FreeBSD Documentation Set</title> - - <para>The FDP is responsible for four categories of FreeBSD - documentation.</para> - - <variablelist> - <varlistentry> - <term>Manual pages</term> - - <listitem> - <para>The English language system manual pages are not written by - the FDP, as they are part of the base system. However, the FDP can - (and has) re-worded parts of existing manual pages to make them - clearer, or to correct inaccuracies.</para> - - <para>The translation teams are responsible for translating the - system manual pages in to different languages. These translations - are kept within the FDP.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FAQ</term> - - <listitem> - <para>The FAQ aims to address (in short question and answer format) - questions that are asked, or should be asked, on the various - mailing lists and newsgroups devoted to FreeBSD. The format does - not permit long and comprehensive answers.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Handbook</term> - - <listitem> - <para>The Handbook aims to be the comprehensive on-line resource and - reference for FreeBSD users.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Web site</term> - - <listitem> - <para>This is the main FreeBSD presence on the World Wide Web, - visible at <ulink - url="http://www.FreeBSD.org/">http://www.FreeBSD.org/</ulink> - and many mirrors around the world. The web site is many people's - first exposure to FreeBSD.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>These four groups of documentation are all available in the - FreeBSD CVS tree. This means that the logs and changes to these - files are visible to anyone, and anyone can use a program such as - <application>CVSup</application> or - <application>CTM</application> to keep their own local copies of - this documentation.</para> - - <para>In addition, many people have written tutorials or other web - sites relating to FreeBSD. Some of these are stored in the CVS - repository as well (where the author has agreed to this). In - other cases the author has decided to keep their documentation - separate from the main FreeBSD repository. The FDP endeavours to - provide links to as much of this documentation as - possible.</para> - </sect1> - - <sect1> - <title>Before you start</title> - - <para>This document assumes that you already know:</para> - - <itemizedlist> - <listitem> - <para>How to maintain an up-to-date local copy of the FreeBSD - documentation. Either by maintaining a local copy of the - FreeBSD CVS repository (using <application>CVS</application> - and either <application>CVSup</application> or - <application>CTM</application>) or by using - <application>CVSup</application> to download just a - <emphasis>checked-out</emphasis> copy.</para> - </listitem> - - <listitem> - <para>How to download and install new software using either the - FreeBSD Ports system or &man.pkg.add.1;.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml deleted file mode 100644 index 79415582fa..0000000000 --- a/en_US.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml +++ /dev/null @@ -1,150 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $FreeBSD$ ---> - -<chapter id="psgml-mode"> - <title>Using <literal>sgml-mode</literal> with - <application>Emacs</application></title> - - <para>Recent versions of Emacs or Xemacs (available from the ports - collection) contain a very useful package called PSGML. Automatically - invoked when a file with <filename>.sgml</filename> extension is loaded, - or by typing <command>M-x sgml-mode</command>, it is a major mode for - dealing with SGML files, elements and attributes.</para> - - <para>An understanding of some of the commands provided by this mode can - make working with SGML documents such as the Handbook much easier.</para> - - <variablelist> - <varlistentry> - <term><command>C-c C-e</command></term> - - <listitem> - <para>Runs <literal>sgml-insert-element</literal>. You will be - prompted for the name of the element to insert at the current point. - You can use the TAB key to complete the element. Elements that are - not valid at the current point will be disallowed.</para> - - <para>The start and end tags for the element will be inserted. If the - element contains other, mandatory, elements then these will be - inserted as well.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>C-c =</command></term> - - <listitem> - <para>Runs <literal>sgml-change-element-name</literal>. Place the - point within an element and run this command. You will be prompted - for the name of the element to change to. Both the start and end - tags of the current element will be changed to the new - element.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>C-c C-r</command></term> - - <listitem> - <para>Runs <literal>sgml-tag-region</literal>. Select some text (move - to start of text, C-space, move to end of text, C-space) and then - run this command. You will be prompted for the element to use. This - element will then be inserted immediately before and after your - marked region.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>C-c -</command></term> - - <listitem> - <para>Runs <literal>sgml-untag-element</literal>. Place the point - within the start or end tag of an element you want to remove, and - run this command. The element's start and end tags will be - removed.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>C-c C-q</command></term> - - <listitem> - <para>Runs <literal>sgml-fill-element</literal>. Will recursively fill - (i.e., reformat) content from the current element in. The filling - <emphasis>will</emphasis> affect content in which whitespace is - significant, such as within <sgmltag>programlisting</sgmltag> - elements, so run this command with care.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>C-c C-a</command></term> - - <listitem> - <para>Runs <literal>sgml-edit-attributes</literal>. Opens a second - buffer containing a list of all the attributes for the closest - enclosing element, and their current values. Use TAB to navigate - between attributes, <command>C-k</command> to remove an existing - value and replace it with a new one, <command>C-c</command> to close - this buffer and return to the main document.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>C-c C-v</command></term> - - <listitem> - <para>Runs <literal>sgml-validate</literal>. Prompts you to save the - current document (if necessary) and then runs an SGML validator. The - output from the validator is captured into a new buffer, and you can - then navigate from one troublespot to the next, fixing markup errors - as you go.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Doubtless there are other useful functions of this mode, but those are - the ones I use most often.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/fdp-primer/see-also/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/see-also/chapter.sgml deleted file mode 100644 index 9698df7b0b..0000000000 --- a/en_US.ISO8859-1/books/fdp-primer/see-also/chapter.sgml +++ /dev/null @@ -1,121 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $FreeBSD$ ---> - -<chapter id="see-also"> - <title>See Also</title> - - <para>This document is deliberately not an exhaustive discussion of SGML, - the DTDs listed, and the FreeBSD Documentation Project. For more - information about these, you are encouraged to see the following web - sites.</para> - - <sect1> - <title>The FreeBSD Documentation Project</title> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.FreeBSD.org/docproj/">The FreeBSD - Documentation Project web pages</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.FreeBSD.org/handbook/">The FreeBSD Handbook</ulink></para> - </listitem> - </itemizedlist> - </sect1> - - <sect1> - <title>SGML</title> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.oasis-open.org/cover/">The SGML/XML web - page</ulink>, a comprehensive SGML resource</para> - </listitem> - - <listitem> - <para><ulink - url='http://etext.virginia.edu/bin/tei-tocs?div=DIV1&id=SG">http://etext.virginia.edu/bin/tei-tocs?div=DIV1&id=SG'>Gentle introduction to SGML</ulink></para> - </listitem> - </itemizedlist> - </sect1> - - <sect1> - <title>HTML</title> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.w3.org/">The World Wide Web - organisation</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.w3.org/TR/REC-html40/">The HTML 4.0 - specification</ulink></para> - </listitem> - </itemizedlist> - </sect1> - - <sect1> - <title>DocBook</title> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.oreilly.com/davenport/">The Davenport - Group</ulink>, maintainers of the DocBook DTD</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1> - <title>The Linux Documentation Project</title> - - <itemizedlist> - <listitem> - <para><ulink url="http://metalab.unc.edu/LDP/">The Linux Documentation - Project web pages</ulink></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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml deleted file mode 100644 index 0ac3f02504..0000000000 --- a/en_US.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml +++ /dev/null @@ -1,2259 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/sgml-markup/chapter.sgml,v 1.10 2000/01/16 22:05:58 asmodai Exp $ ---> - -<chapter id="sgml-markup"> - <title>SGML Markup</title> - - <para>This chapter describes the three markup languages you will encounter - when you contribute to the FreeBSD documentation project. Each section - describes the markup language, and details the markup that you are likely - to want to use, or that is already in use.</para> - - <para>These markup languages contain a large number of elements, and it can - be confusing sometimes to know which element to use for a particular - situation. This section goes through the elements you are most likely to - need, and gives examples of how you would use them.</para> - - <para>This is <emphasis>not</emphasis> an exhaustive list of elements, since - that would just reiterate the documentation for each language. The aim of - this section is to list those elements more likely to be useful to you. - If you have a question about how best to markup a particular piece of - content, please post it to the FreeBSD Documentation Project mailing list - <email>freebsd-doc@FreeBSD.org</email>.</para> - - <note> - <title>Inline vs. block</title> - - <para>In the remainder of this document, when describing elements, - <emphasis>inline</emphasis> means that the element can occur within a - block element, and does not cause a line break. A - <emphasis>block</emphasis> element, by comparison, will cause a line - break (and other processing) when it is encountered.</para> - </note> - - <sect1> - <title>HTML</title> - - <para>HTML, the HyperText Markup Language, is the markup language of - choice on the World Wide Web. More information can be found at - <URL:<ulink - url="http://www.w3.org/">http://www.w3.org/</ulink>>.</para> - - <para>HTML is used to markup pages on the FreeBSD web site. It should not - (generally) be used to mark up other documention, since DocBook offers a - far richer set of elements to choose from. Consequently, you will - normally only encounter HTML pages if you are writing for the web - site.</para> - - <para>HTML has gone through a number of versions, 1, 2, 3.0, 3.2, and the - latest, 4.0 (available in both <emphasis>strict</emphasis> and - <emphasis>loose</emphasis> variants).</para> - - <para>The HTML DTDs are available from the ports collection in the - <filename>textproc/html</filename> port. They are automatically - installed as part of the <filename>textproc/docproj</filename> - port.</para> - - <sect2> - <title>Formal Public Identifier (FPI)</title> - - <para>There are a number of HTML FPIs, depending upon the version (also - known as the level) of HTML that you want to declare your document to - be compliant with.</para> - - <para>The majority of HTML documents on the FreeBSD web site comply with - the loose version of HTML 4.0.</para> - - <programlisting>PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"</programlisting> - </sect2> - - <sect2> - <title>Sectional elements</title> - - <para>An HTML document is normally split in to two sections. The first - section, called the <emphasis>head</emphasis>, contains - meta-information about the document, such as its title, the name of - the author, the parent document, and so on. The second section, the - <emphasis>body</emphasis>, contains the content that will be displayed - to the user.</para> - - <para>These sections are indicated with <sgmltag>head</sgmltag> and - <sgmltag>body</sgmltag> elements respectively. These elements are - contained within the top-level <sgmltag>html</sgmltag> element.</para> - - <example> - <title>Normal HTML document structure</title> - - <programlisting><html> - <head> - <title><replaceable>The document's title</replaceable></title> - </head> - - <body> - - … - - </body> -</html></programlisting> - </example> - </sect2> - - <sect2> - <title>Block elements</title> - - <sect3> - <title>Headings</title> - - <para>HTML allows you to denote headings in your document, at up to - six different levels.</para> - - <para>The largest and most prominent heading is <sgmltag>h1</sgmltag>, - then <sgmltag>h2</sgmltag>, continuing down to - <sgmltag>h6</sgmltag>.</para> - - <para>The element's content is the text of the heading.</para> - - <example> - <title><sgmltag>h1</sgmltag>, <sgmltag>h2</sgmltag>, etc.</title> - - <para>Use:</para> - - <programlisting><![ CDATA [<h1>First section</h1> - -<!-- Document introduction goes here --> - -<h2>This is the heading for the first section</h2> - -<!-- Content for the first section goes here --> - -<h3>This is the heading for the first sub-section</h3> - -<!-- Content for the first sub-section goes here --> - -<h2>This is the heading for the second section</h2> - -<!-- Content for the second section goes here -->]]></programlisting> - </example> - - <para>Generally, an HTML page should have one first level heading - (<sgmltag>h1</sgmltag>). This can contain many second level - headings (<sgmltag>h2</sgmltag>), which can in turn contain many - third level headings. Each - <sgmltag>h<replaceable>n</replaceable></sgmltag> element should have - the same element, but one further up the hierarchy, preceeding it. - Leaving gaps in the numbering is to be avoided.</para> - - <example> - <title>Bad ordering of - <sgmltag>h<replaceable>n</replaceable></sgmltag> elements</title> - - <para>Use:</para> - - <programlisting><![ CDATA [<h1>First section</h1> - -<!-- Document introduction --> - -<h3>Sub-section</h3> - -<!-- This is bad, <h2> has been left out -->]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Paragraphs</title> - - <para>HTML supports a single paragraph element, - <sgmltag>p</sgmltag>.</para> - - <example> - <title><sgmltag>p</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<p>This is a paragraph. It can contain just about any - other element.</p>]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Block quotations</title> - - <para>A block quotation is an extended quotation from another document - that should not appear within the current paragraph.</para> - - <example> - <title><sgmltag>blockquote</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<p>A small excerpt from the US Constitution;</p> - -<blockquote>We the People of the United States, in Order to form - a more perfect Union, establish Justice, insure domestic - Tranquility, provide for the common defence, promote the general - Welfare, and secure the Blessings of Liberty to ourselves and our - Posterity, do ordain and establish this Constitution for the - United States of America.</blockquote>]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Lists</title> - - <para>You can present the user with three types of lists, ordered, - unordered, and definition.</para> - - <para>Typically, each entry in an ordered list will be numbered, while - each entry in an unordered list will be proceeded by a bullet point. - Definition lists are composed of two sections for each entry. The - first section is the term being defined, and the second section is - the definition of the term.</para> - - <para>Ordered lists are indicated by the <sgmltag>ol</sgmltag> - element, unordered lists by the <sgmltag>ul</sgmltag> element, and - definition lists by the <sgmltag>dl</sgmltag> element.</para> - - <para>Ordered and unordered lists contain listitems, indicated by the - <sgmltag>li</sgmltag> element. A listitem can contain textual - content, or it may be further wrapped in one or more - <sgmltag>p</sgmltag> elements.</para> - - <para>Definition lists contain definition terms - (<sgmltag>dt</sgmltag>) and definition descriptions - (<sgmltag>dd</sgmltag>). A definition term can only contain inline - elements. A definition description can contain other block - elements.</para> - - <example> - <title><sgmltag>ul</sgmltag> and <sgmltag>ol</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<p>An unordered list. Listitems will probably be - preceeded by bullets.</p> - -<ul> - <li>First item</li> - - <li>Second item</li> - - <li>Third item</li> -</ul> - -<p>An ordered list, with list items consisting of multiple - paragraphs. Each item (note: not each paragraph) will be - numbered.</p> - -<ol> - <li><p>This is the first item. It only has one paragraph.</p></li> - - <li><p>This is the first paragraph of the second item.</p> - - <p>This is the second paragraph of the second item.</p></li> - - <li><p>This is the first and only paragraph of the third - item.</p></li> -</ol>]]></programlisting> - </example> - - <example> - <title>Definition lists with <sgmltag>dl</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<dl> - <dt>Term 1</dt> - - <dd><p>Paragraph 1 of definition 1.</p></dd> - - <p>Paragraph 2 of definition 1.</p></dd> - - <dt>Term 2</dt> - - <dd><p>Paragraph 1 of definition 2.</p></dd> - - <dt>Term 3</dt> - - <dd>Paragraph 1 of definition 3. Note that the <p> - element is not required in the single paragraph case.</dd> -</dl>]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Pre-formatted text</title> - - <para>You can indicate that text should be shown to the user exactly - as it is in the file. Typically, this means that the text is shown - in a fixed font, multiple spaces are not merged in to one, and line - breaks in the text are significant.</para> - - <para>In order to do this, wrap the content in the - <sgmltag>pre</sgmltag> element.</para> - - <example> - <title><sgmltag>pre</sgmltag></title> - - <para>You could use <sgmltag>pre</sgmltag> to mark up an e-mail - message;</para> - - <programlisting><![ CDATA [<pre> From: nik@FreeBSD.org - To: freebsd-doc@FreeBSD.org - Subject: New documentation available - - There's a new copy of my primer for contributers to the FreeBSD - Documentation Project available at - - <URL:http://people.FreeBSD.org/~nik/primer/index.html> - - Comments appreciated. - - N</pre>]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Tables</title> - - <note> - <para>Most text-mode browsers (such as Lynx) do not render tables - particularly effectively. If you are relying on the tabular - display of your content, you should consider using alternative - markup to prevent confusion.</para> - </note> - - <para>Mark up tabular information using the <sgmltag>table</sgmltag> - element. A table consists of one or more table rows - (<sgmltag>tr</sgmltag>), each containing one or more cells of table - data (<sgmltag>td</sgmltag>). Each cell can contain other block - elements, such as paragraphs or lists. It can also contain another - table (this nesting can repeat indefinitely). If the cell only - contains one paragraph then you do not need to include the - <sgmltag>p</sgmltag> element.</para> - - <example> - <title>Simple use of <sgmltag>table</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<p>This is a simple 2x2 table.</p> - -<table> - <tr> - <td>Top left cell</td> - - <td>Top right cell</td> - </tr> - - <tr> - <td>Bottom left cell</td> - - <td>Bottom right cell</td> - </tr> -</table>]]></programlisting></example> - - <para>A cell can span multiple rows and columns. To indicate this, - add the <literal>rowspan</literal> and/or <literal>colspan</literal> - attributes, with values indicating the number of rows of columns - that should be spanned.</para> - - <example> - <title>Using <literal>rowspan</literal></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<p>One tall thin cell on the left, two short cells next to - it on the right.</p> - -<table> - <tr> - <td rowspan="2">Long and thin</td> - </tr> - - <tr> - <td>Top cell</td> - - <td>Bottom cell</td> - </tr> -</table>]]></programlisting> - </example> - - <example> - <title>Using <literal>colspan</literal></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<p>One long cell on top, two short cells below it.</p> - -<table> - <tr> - <td colspan="2">Top cell</td> - </tr> - - <tr> - <td>Bottom left cell</td> - - <td>Bottom right cell</td> - </tr> -</table>]]></programlisting> - </example> - - <example> - <title>Using <literal>rowspan</literal> and - <literal>colspan</literal> together</title> - - <para>Use:</para> - - <programlisting><![ CDATA [<p>On a 3x3 grid, the top left block is a 2x2 set of - cells merged in to one. The other cells are normal.</p> - -<table> - <tr> - <td colspan="2" rowspan="2">Top left large cell</td> - - <td>Top right cell</td> - </tr> - - <tr> - <!-- Because the large cell on the left merges in to - this row, the first <td> will occur on its - right --> - - <td>Middle right cell</td> - </tr> - - <tr> - <td>Bottom left cell</td> - - <td>Bottom middle cell</td> - - <td>Bottom right cell</td> - </tr> -</table>]]></programlisting> - </example> - </sect3> - </sect2> - - <sect2> - <title>In-line elements</title> - - <sect3> - <title>Emphasising information</title> - - <para>You have two levels of emphasis available in HTML, - <sgmltag>em</sgmltag> and <sgmltag>strong</sgmltag>. - <sgmltag>em</sgmltag> is for a normal level of emphasis and - <sgmltag>strong</sgmltag> indicates stronger emphasis.</para> - - <para>Typically, <sgmltag>em</sgmltag> is rendered in italic and - <sgmltag>strong</sgmltag> is rendered in bold. This is not always - the case however, and you should not rely on it.</para> - - <example> - <title><sgmltag>em</sgmltag> and <sgmltag>strong</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<p><em>This</em> has been emphasised, while - <strong>this</strong> has been strongly emphasised.</p>]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Bold and italics</title> - - <para>Because HTML includes presentational markup, you can also - indicate that particular content should be rendered in bold or - italic. The elements are <sgmltag>b</sgmltag> and - <sgmltag>i</sgmltag> respectively.</para> - - <example> - <title><sgmltag>b</sgmltag> and <sgmltag>i</sgmltag></title> - - <programlisting><![ CDATA [<p><b>This</b> is in bold, while <i>this</i> is - in italics.</p>]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Indicating fixed pitch text</title> - - <para>If you have content that should be rendered in a fixed pitch - (typewriter) typeface, use <sgmltag>tt</sgmltag> (for - “teletype”).</para> - - <example> - <title><sgmltag>tt</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<p>This document was originally written by - Nik Clayton, who can be reached by e-mail as - <tt>nik@FreeBSD.org</tt>.</p>]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Content size</title> - - <para>You can indicate that content should be shown in a larger or - smaller font. There are three ways of doing this.</para> - - <orderedlist> - <listitem> - <para>Use <sgmltag>big</sgmltag> and <sgmltag>small</sgmltag> - around the content you wish to change size. These tags can be - nested, so <literal><big><big>This is much - bigger</big></big></literal> is possible.</para> - </listitem> - - <listitem> - <para>Use <sgmltag>font</sgmltag> with the <literal>size</literal> - attribute set to <literal>+1</literal> or <literal>-1</literal> - respectively. This has the same effect as using - <sgmltag>big</sgmltag> or <sgmltag>small</sgmltag>. However, - the use of this approach is deprecated.</para> - </listitem> - - <listitem> - <para>Use <sgmltag>font</sgmltag> with the <literal>size</literal> - attribute set to a number between 1 and 7. The default font size - is <literal>3</literal>. This approach is deprecated.</para> - </listitem> - </orderedlist> - - <example> - <title><sgmltag>big</sgmltag>, <sgmltag>small</sgmltag>, and - <sgmltag>font</sgmltag></title> - - <para>The following fragments all do the same thing.</para> - - <programlisting><![ CDATA [<p>This text is <small>slightly smaller</small>. But - this text is <big>slightly bigger</big>.</p> - -<p>This text is <font size="-1">slightly smaller</font>. But - this text is <font size="+1">slightly bigger</font.</p> - -<p>This text is <font size="2">slightly smaller</font>. But - this text is <font size="4">slightly bigger</font>.</p>]]></programlisting> - </example> - </sect3> - </sect2> - - <sect2> - <title>Links</title> - - <note> - <para>Links are also in-line elements.</para> - </note> - - <sect3> - <title>Linking to other documents on the WWW</title> - - <para>In order to include a link to another document on the WWW you - must know the URL of the document you want to link to.</para> - - <para>The link is indicated with <sgmltag>a</sgmltag>, and the - <literal>href</literal> attribute contains the URL of the target - document. The content of the element becomes the link, and is - normally indicated to the user in some way (underlining, change of - colour, different mouse cursor when over the link, and so - on).</para> - - <example> - <title>Using <literal><a href="..."></literal></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<p>More information is available at the - <a href="http://www.FreeBSD.org/">FreeBSD web site</a>.</p>]]></programlisting> - </example> - - <para>These links will take the user to the top of the chosen - document.</para> - </sect3> - - <sect3> - <title>Linking to other parts of documents</title> - - <para>Linking to a point within another document (or within the same - document) requires that the document author include anchors that you - can link to.</para> - - <para>Anchors are indicated with <sgmltag>a</sgmltag> and the - <literal>name</literal> attribute instead of - <literal>href</literal>.</para> - - <example> - <title>Using <literal><a name="..."></literal></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<p><a name="para1">This</a> paragraph can be referenced - in other links with the name <tt>para1</tt>.</p>]]></programlisting> - </example> - - <para>To link to a named part of a document, write a normal link to - that document, but include the name of the anchor after a - <literal>#</literal> symbol.</para> - - <example> - <title>Linking to a named part of another document</title> - - <para>Assume that the <literal>para1</literal> example resides in a - document called <filename>foo.html</filename>.</para> - - <programlisting><![ CDATA [<p>More information can be found in the - <a href="foo.html#para1">first paragraph</a> of - <tt>foo.html</tt>.</p>]]></programlisting> - </example> - - <para>If you are linking to a named anchor within the same document - then you can omit the document's URL, and just include the name of - the anchor (with the preceeding <literal>#</literal>).</para> - - <example> - <title>Linking to a named part of another document</title> - - <para>Assume that the <literal>para1</literal> example resides in - this document</para> - - <programlisting><![ CDATA [<p>More information can be found in the - <a href="#para1">first paragraph</a> of this - document.</p>]]></programlisting> - </example> - </sect3> - </sect2> - </sect1> - - <sect1> - <title>DocBook</title> - - <para>DocBook was designed by the <ulink - url="http://www.oreilly.com/davenport/">Davenport Group</ulink> to be - a DTD for writing technical documentation. As such, and unlike LinuxDoc - and HTML, DocBook is very heavily orientated towards markup that - describes <emphasis>what</emphasis> something is, rather than describing - <emphasis>how</emphasis> it should be presented.</para> - - <note> - <title><literal>formal</literal> vs. <literal>informal</literal></title> - - <para>Some elements may exist in two forms, <emphasis>formal</emphasis> - and <emphasis>informal</emphasis>. Typically, the formal version of - the element will consist of a title followed by the information - version of the element. The informal version will not have a - title.</para> - </note> - - <para>The DocBook DTD is available from the ports collection in the - <filename>textproc/docbook</filename> port. It is automatically - installed as part of the <filename>textproc/docproj</filename> - port.</para> - - <sect2> - <title>FreeBSD extensions</title> - - <para>The FreeBSD Documentation Project has extended the DocBook DTD by - adding some new elements. These elements serve to make some of the - markup more precise.</para> - - <para>Where a FreeBSD specific element is listed below it is clearly - marked.</para> - - <para>Throughout the rest of this document, the term - “DocBook” is used to mean the FreeBSD extended DocBook - DTD.</para> - - <note> - <para>There is nothing about these extensions that is FreeBSD - specific, it was just felt that they were useful enhancements for - this particular project. Should anyone from any of the other *nix - camps (NetBSD, OpenBSD, Linux, …) be interested in - collaborating on a standard DocBook extension set, please get in - touch with Nik Clayton <email>nik@FreeBSD.org</email>.</para> - </note> - - <para>The FreeBSD extensions are not (currently) in the ports - collection. It is a part of the Documentation Project source - repository, and can be found in - <filename>doc/share/sgml/freebsd.dtd</filename>.</para> - </sect2> - - <sect2> - <title>Formal Public Identifier (FPI)</title> - - <para>In compliance with the DocBook guidelines for writing FPIs for - DocBook customisations, the FPI for the FreeBSD extended DocBook DTD - is;</para> - - <programlisting>PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN"</programlisting> - </sect2> - - <sect2> - <title>Document structure</title> - - <para>DocBook allows you to structure your documentation in several - ways. In the FreeBSD Documentation Project we are using two primary - types of DocBook document, the book, and the article.</para> - - <para>A book is organised into <sgmltag>chapter</sgmltag>s. This is a - mandatory requirement. There may be <sgmltag>part</sgmltag>s between - the book and the chapter to provide another layer of organisation. - The Handbook is arranged in this way.</para> - - <para>A chapter may (or may not) contain one or more sections. These - are indicated with the <sgmltag>sect1</sgmltag> element. If a section - contains another section then use the <sgmltag>sect2</sgmltag> - element, and so on, up to <sgmltag>sect5</sgmltag>.</para> - - <para>Chapters and sections contain the remainder of the content.</para> - - <para>An article is simpler than a book, and does not use chapters. - Instead, the content of an article is organised into one or more - sections, using the same <sgmltag>sect1</sgmltag> (and - <sgmltag>sect2</sgmltag> and so on) elements that are used in - books.</para> - - <para>Obviously, you should consider the nature of the documentation you - are writing in order to decide whether it is best marked up as a book - or an article. Articles are well suited to information that does not - need to be broken down in to several chapters, and that is, relatively - speaking, quite short, at up to 20-25 pages of content. Books are - best suited to information that can be broken up in to several - chapters, possibly with appendices and similar content as well.</para> - - <para>The <ulink url="http://www.FreeBSD.org/tutorials/">FreeBSD - tutorials</ulink> are all marked up as articles, while this - document, the <ulink url="http://www.FreeBSD.org/FAQ/">FreeBSD - FAQ</ulink>, and the <ulink - url="http://www.FreeBSD.org/handbook/">FreeBSD Handbook</ulink> are - all marked up as books.</para> - - <sect3> - <title>Starting a book</title> - - <para>The content of the book is contained within the - <sgmltag>book</sgmltag> element. As well as containing structural - markup, this element can contain elements that include additional - information about the book. This is either meta-information, used - for reference purposes, or additional content used to produce a - title page.</para> - - <para>This additional information should be contained within - <sgmltag>bookinfo</sgmltag>.</para> - - <example> - <title>Boilerplate <sgmltag>book</sgmltag> with - <sgmltag>bookinfo</sgmltag></title> - - <!-- Can't put this in a marked section because of the - replaceable elements --> - <programlisting><book> - <bookinfo> - <title><replaceable>Your title here</replaceable></title> - - <author> - <firstname><replaceable>Your first name</replaceable></firstname> - <surname><replaceable>Your surname</replaceable></surname> - <affiliation> - <address><email><replaceable>Your e-mail address</replaceable></email></address> - </affiliation> - </author> - - <copyright> - <year><replaceable>1998</replaceable></year> - <holder role="mailto:<replaceable>your e-mail address</replaceable>"><replaceable>Your name</replaceable></holder> - </copyright> - - <pubdate role="rcs">$Date$</pubdate> - - <releaseinfo>$Id$</releaseinfo> - - <abstract> - <para><replaceable>Include an abstract of the book's contents here.</replaceable></para> - </abstract> - </bookinfo> - - … - -</book></programlisting> - </example> - </sect3> - - <sect3> - <title>Starting an article</title> - - <para>The content of the article is contained within the - <sgmltag>article</sgmltag> element. As well as containing - structural markup, this element can contain elements that include - additional information about the article. This is either - meta-information, used for reference purposes, or additional content - used to produce a title page.</para> - - <para>This additional information should be contained within - <sgmltag>artheader</sgmltag>.</para> - - <example> - <title>Boilerplate <sgmltag>article</sgmltag> with - <sgmltag>artheader</sgmltag></title> - - <!-- Can't put this in a marked section because of the - replaceable elements --> - <programlisting><article> - <artheader> - <title><replaceable>Your title here</replaceable></title> - - <author> - <firstname><replaceable>Your first name</replaceable></firstname> - <surname><replaceable>Your surname</replaceable></surname> - <affiliation> - <address><email><replaceable>Your e-mail address</replaceable></email></address> - </affiliation> - </author> - - <copyright> - <year><replaceable>1998</replaceable></year> - <holder role="mailto:<replaceable>your e-mail address</replaceable>"><replaceable>Your name</replaceable></holder> - </copyright> - - <pubdate role="rcs">$Date$</pubdate> - - <releaseinfo>$Id$</releaseinfo> - - <abstract> - <para><replaceable>Include an abstract of the article's contents here.</replaceable></para> - </abstract> - </artheader> - - … - -</article></programlisting> - </example> - </sect3> - <sect3> - <title>Indicating chapters</title> - - <para>Use <sgmltag>chapter</sgmltag> to mark up your chapters. Each - chapter has a mandatory <sgmltag>title</sgmltag>. Articles do not - contain chapters, they are reserved for books.</para> - - <example> - <title>A simple chapter</title> - - <programlisting><![ CDATA [<chapter> - <title>The chapter's title</title> - - ... -</chapter>]]></programlisting> - </example> - - <para>A chapter can not be empty, it must contain elements in addition - to <sgmltag>title</sgmltag>. If you need to include an empty - chapter then just use an empty paragraph.</para> - - <example> - <title>Empty chapters</title> - - <programlisting><![ CDATA [<chapter> - <title>This is an empty chapter</title> - - <para></para> -</chapter>]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Sections below chapters</title> - - <para>In books, chapters may (but do not need to) be broken up into - sections, subsections, and so on. In articles, sections are the - main structural element, and each article must contain at least one - section. Use the - <sgmltag>sect<replaceable>n</replaceable></sgmltag> element. The - <replaceable>n</replaceable> indicates the section number, which - identifies the section level.</para> - - <para>The first <sgmltag>sect<replaceable>n</replaceable></sgmltag> is - <sgmltag>sect1</sgmltag>. You can have one or more of these in a - chapter. They can contain one or more <sgmltag>sect2</sgmltag> - elements, and so on, down to <sgmltag>sect5</sgmltag>.</para> - - <example> - <title>Sections in chapters</title> - - <programlisting><![ RCDATA [<chapter> - <title>A sample chapter</title> - - <para>Some text in the chapter.</para> - - <sect1> - <title>First section (1.1)</title> - - … - </sect1> - - <sect1> - <title>Second section (1.2)</title> - - <sect2> - <title>First sub-section (1.2.1)</title> - - <sect3> - <title>First sub-sub-section (1.2.1.1)</title> - - … - </sect3> - </sect2> - - <sect2> - <title>Second sub-section (1.2.2)</title> - - … - </sect2> - </sect1> -</chapter>]]></programlisting> - </example> - - <note> - <para>This example includes section numbers in the section titles. - You should not do this in your documents. Adding the section - numbers is carried out the by the stylesheets (of which more - later), and you do not need to manage them yourself.</para> - </note> - </sect3> - - <sect3> - <title>Subdividing using <sgmltag>part</sgmltag>s</title> - - <para>You can introduce another layer of organisation between - <sgmltag>book</sgmltag> and <sgmltag>chapter</sgmltag> with one or - more <sgmltag>part</sgmltag>s. This can not be done in an - <sgmltag>article</sgmltag>.</para> - - <programlisting><![ CDATA [<part> - <title>Introduction</title> - - <chapter> - <title>Overview</title> - - ... - </chapter> - - <chapter> - <title>What is FreeBSD?</title> - - ... - </chapter> - - <chapter> - <title>History</title> - - ... - </chapter> -</part>]]></programlisting> - </sect3> - </sect2> - - <sect2> - <title>Block elements</title> - - <sect3> - <title>Paragraphs</title> - - <para>DocBook supports three types of paragraphs; - <sgmltag>formalpara</sgmltag>, <sgmltag>para</sgmltag>, and - <sgmltag>simpara</sgmltag>.</para> - - <para>Most of the time you will only need to use - <sgmltag>para</sgmltag>. <sgmltag>formalpara</sgmltag> includes a - <sgmltag>title</sgmltag> element, and <sgmltag>simpara</sgmltag> - disallows some elements from within <sgmltag>para</sgmltag>. Stick - with <sgmltag>para</sgmltag>.</para> - - <example> - <title><sgmltag>para</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<para>This is a paragraph. It can contain just about any - other element.</para> ]]></programlisting> - - <para>Appearance:</para> - - <para>This is a paragraph. It can contain just about any other - element.</para> - </example> - </sect3> - - <sect3> - <title>Block quotations</title> - - <para>A block quotation is an extended quotation from another document - that should not appear within the current paragraph. You will - probably only need it infrequently.</para> - - <para>Blockquotes can optionally contain a title and an attribution - (or they can be left untitled and unattributed).</para> - - <example> - <title><sgmltag>blockquote</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<para>A small excerpt from the US Constitution;</para> - -<blockquote> - <title>Preamble to the Constitution of the United States</title> - - <attribution>Copied from a web site somewhere</attribution> - - <para>We the People of the United States, in Order to form a more perfect - Union, establish Justice, insure domestic Tranquility, provide for the - common defence, promote the general Welfare, and secure the Blessings - of Liberty to ourselves and our Posterity, do ordain and establish this - Constitution for the United States of America.</para> -</blockquote>]]></programlisting> - - <para>Appearance:</para> - - <blockquote> - <title>Preamble to the Constitution of the United States</title> - - <attribution>Copied from a web site somewhere</attribution> - - <para>We the People of the United States, in Order to form a more - perfect Union, establish Justice, insure domestic Tranquility, - provide for the common defence, promote the general Welfare, and - secure the Blessings of Liberty to ourselves and our Posterity, - do ordain and establish this Constitution for the United States - of America.</para> - </blockquote> - </example> - </sect3> - - <sect3> - <title>Tips, notes, warnings, cautions, important information and - sidebars.</title> - - <para>You may need to include extra information separate from the - main body of the text. Typically this is “meta” - information that the user should be aware of.</para> - - <para>Depending on the nature of the information, one of - <sgmltag>tip</sgmltag>, <sgmltag>note</sgmltag>, - <sgmltag>warning</sgmltag>, <sgmltag>caution</sgmltag>, and - <sgmltag>important</sgmltag> should be used. Alternatively, if the - information is related to the main text but is not one of the above, - use <sgmltag>sidebar</sgmltag>.</para> - - <para>The circumstances in which to choose one of these elements over - another is unclear. The DocBook documentation suggests;</para> - - <itemizedlist> - <listitem> - <para>A Note is for information that should be heeded by all - readers.</para> - </listitem> - - <listitem> - <para>An Important element is a variation on Note.</para> - </listitem> - - <listitem> - <para>A Caution is for information regarding possible data loss - or software damage.</para> - </listitem> - - <listitem> - <para>A Warning is for information regarding possible hardware - damage or injury to life or limb.</para> - </listitem> - </itemizedlist> - - <example> - <title><sgmltag>warning</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<warning> - <para>Installing FreeBSD may make you want to delete Windows from your - harddisk.</para> -</warning>]]></programlisting> - </example> - - <!-- Need to do this outside of the example --> - <warning> - <para>Installing FreeBSD may make you want to delete Windows from - your harddisk.</para> - </warning> - </sect3> - - <sect3> - <title>Lists and procedures</title> - - <para>You will often need to list pieces of information to the user, - or present them with a number of steps that must be carried out in - order to accomplish a particular goal.</para> - - <para>In order to do this, use <sgmltag>itemizedlist</sgmltag>, - <sgmltag>orderedlist</sgmltag>, or - <sgmltag>procedure</sgmltag><footnote><para>There are other types of - list element in DocBook, but we're not concerned with those at - the moment.</para> - </footnote> - </para> - - <para><sgmltag>itemizedlist</sgmltag> and - <sgmltag>orderedlist</sgmltag> are similar to the counterparts in - HTML, <sgmltag>ul</sgmltag> and <sgmltag>ol</sgmltag>. Each one - consists of one or more <sgmltag>listitem</sgmltag> elements, and - each <sgmltag>listitem</sgmltag> contains one or more block - elements. The <sgmltag>listitem</sgmltag> elements are analagous to - HTMLs <sgmltag>li</sgmltag> tags. However, unlike HTML they are - required.</para> - - <para><sgmltag>procedure</sgmltag> is slightly different. It consists - of <sgmltag>step</sgmltag>s, which may in turn consists of more - <sgmltag>step</sgmltag>s or <sgmltag>substep</sgmltag>s. Each - <sgmltag>step</sgmltag> contains block elements.</para> - - <example> - <title><sgmltag>itemizedlist</sgmltag>, - <sgmltag>orderedlist</sgmltag>, and - <sgmltag>procedure</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<itemizedlist> - <listitem> - <para>This is the first itemized item.</para> - </listitem> - - <listitem> - <para>This is the second itemized item.</para> - </listitem> -</itemizedlist> - -<orderedlist> - <listitem> - <para>This is the first ordered item.</para> - </listitem> - - <listitem> - <para>This is the second ordered item.</para> - </listitem> -</orderedlist> - -<procedure> - <step> - <para>Do this.</para> - </step> - - <step> - <para>Then do this.</para> - </step> - - <step> - <para>And now do this.</para> - </step> -</procedure>]]></programlisting> - - <para>Appearance:</para> - - <itemizedlist> - <listitem> - <para>This is the first itemized item.</para> - </listitem> - - <listitem> - <para>This is the second itemized item.</para> - </listitem> - </itemizedlist> - - <orderedlist> - <listitem> - <para>This is the first ordered item.</para> - </listitem> - - <listitem> - <para>This is the second ordered item.</para> - </listitem> - </orderedlist> - </example> - - <!-- Can't have <procedure> inside <example>, so this is a cheat --> - - <procedure> - <step> - <para>Do this.</para> - </step> - - <step> - <para>Then do this.</para> - </step> - - <step> - <para>And now do this.</para> - </step> - </procedure> - </sect3> - - <sect3> - <title>Showing file samples</title> - - <para>If you want to show a fragment of a file (or perhaps a complete - file) to the user, wrap it in the <sgmltag>programlisting</sgmltag> - element.</para> - - <para>White space and line breaks within - <sgmltag>programlisting</sgmltag> <emphasis>are</emphasis> - significant. In particular, this means that the opening tag should - appear on the same line as the first line of the output, and the - closing tag should appear on the same line as the last line of the - output, otherwise spurious blank lines may be included.</para> - - <example> - <title><sgmltag>programlisting</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA[<para>When you have finished, your program should look like - this;</para> - -<programlisting>#include <stdio.h> - -int -main(void) -{ - printf("hello, world\n"); -}</programlisting>]]></programlisting> - - <para>Notice how the angle brackets in the - <literal>#include</literal> line need to be referenced by their - entities instead of being included literally.</para> - - <para>Appearance:</para> - - <para>When you have finished, your program should look like - this;</para> - - <programlisting>#include <stdio.h> - -int -main(void) -{ - printf("hello, world\n"); -}</programlisting> - </example> - - <note> - <para>There is a mechanism within DocBook for referring to sections - of a previously occuring <sgmltag>programlisting</sgmltag>, called - callouts (see <sgmltag>programlistingco</sgmltag> for more - information). I don't fully understand (i.e., have never used) - this feature, so can't document it here. For the mean time, you - can include line numbers within the content, and then refer to - them later on in your description. That will change, as soon as I - find the time to understand and document callouts.</para> - </note> - </sect3> - - <sect3> - <title>Tables</title> - - <para>Unlike HTML, you do not need to use tables for layout purposes, - as the stylesheet handles those issues for you. Instead, just use - tables for marking up tabular data.</para> - - <para>In general terms (and see the DocBook documentation for more - detail) a table (which can be either formal or informal) consists of - a <sgmltag>table</sgmltag> element. This contains at least one - <sgmltag>tgroup</sgmltag> element, which specifies (as an attribute) - the number of columns in this table group. Within the tablegroup - you can then have one <sgmltag>thead</sgmltag> element, which - contains elements for the table headings (column headings), and one - <sgmltag>tbody</sgmltag> which contains the body of the - table.</para> - - <para>Both <sgmltag>tgroup</sgmltag> and <sgmltag>thead</sgmltag> - contain <sgmltag>row</sgmltag> elements, which in turn contain - <sgmltag>entry</sgmltag> elements. Each <sgmltag>entry</sgmltag> - element specifies one cell in the table.</para> - - <example> - <title><sgmltag>informaltable</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<informaltable> - <tgroup cols="2"> - <thead> - <row> - <entry>This is column head 1</entry> - <entry>This is column head 2</entry> - </row> - </thead> - - <tbody> - <row> - <entry>Row 1, column 1</entry> - <entry>Row 1, column 2</entry> - </row> - - <row> - <entry>Row 2, column 1</entry> - <entry>Row 2, column 2</entry> - </row> - </tbody> - </tgroup> -</informaltable>]]></programlisting> - - <para>Appearance:</para> - - <informaltable> - <tgroup cols="2"> - <thead> - <row> - <entry>This is column head 1</entry> - <entry>This is column head 2</entry> - </row> - </thead> - - <tbody> - <row> - <entry>Row 1, column 1</entry> - <entry>Row 1, column 2</entry> - </row> - - <row> - <entry>Row 2, column 1</entry> - <entry>Row 2, column 2</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </example> - - <para>If you don't want a border around the table the - <literal>frame</literal> attribute can be added to the - <sgmltag>informaltable</sgmltag> element with a value of - <literal>none</literal> (i.e., <literal><informaltable - frame="none"></literal>).</para> - - <example> - <title>Tables where <literal>frame="none"</literal></title> - - <para>Appearance:</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>This is column head 1</entry> - <entry>This is column head 2</entry> - </row> - </thead> - - <tbody> - <row> - <entry>Row 1, column 1</entry> - <entry>Row 1, column 2</entry> - </row> - - <row> - <entry>Row 2, column 1</entry> - <entry>Row 2, column 2</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </example> - </sect3> - - <sect3> - <title>Examples for the user to follow</title> - - <para>A lot of the time you need to show examples for the user to - follow. Typically, these will consist of dialogs with the computer; - the user types in a command, the user gets a response back, they - type in another command, and so on.</para> - - <para>A number of distinct elements and entities come in to play - here.</para> - - <variablelist> - <varlistentry> - <term><sgmltag>screen</sgmltag></term> - - <listitem> - <para>Everything the user sees in this example will be on the - computer screen, so the next element is - <sgmltag>screen</sgmltag>.</para> - - <para>Within <sgmltag>screen</sgmltag>, white space is - significant.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><sgmltag>prompt</sgmltag>, - <literal>&prompt.root;</literal> and - <literal>&prompt.user;</literal></term> - - <listitem> - <para>Some of the things the user will be seeing on the screen - are prompts from the computer (either from the OS, command - shell, or application. These should be marked up using - <sgmltag>prompt</sgmltag>.</para> - - <para>As a special case, the two shell prompts for the normal - user and the root user have been provided as entities. Every - time you want to indicate the user is at a shell prompt, use - one of <literal>&prompt.root;</literal> and - <literal>&prompt.user;</literal> as necessary. They do - not need to be inside <sgmltag>prompt</sgmltag>.</para> - - <note> - <para><literal>&prompt.root;</literal> and - <literal>&prompt.user;</literal> are FreeBSD - extensions to DocBook, and are not part of the original - DTD.</para> - </note> - </listitem> - </varlistentry> - - <varlistentry> - <term><sgmltag>userinput</sgmltag></term> - - <listitem> - <para>When displaying text that the user should type in, wrap it - in <sgmltag>userinput</sgmltag> tags. It will probably be - displayed differently to the user.</para> - </listitem> - </varlistentry> - </variablelist> - - <example> - <title><sgmltag>screen</sgmltag>, <sgmltag>prompt</sgmltag>, and - <sgmltag>userinput</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<screen>&prompt.user; <userinput>ls -1</userinput> -foo1 -foo2 -foo3 -&prompt.user; <userinput>ls -1 | grep foo2</userinput> -foo2 -&prompt.user; <userinput>su</userinput> -<prompt>Password: </prompt> -&prompt.root; <userinput>cat foo2</userinput> -This is the file called 'foo2'</screen>]]></programlisting> - - <para>Appearance:</para> - - <screen>&prompt.user; <userinput>ls -1</userinput> -foo1 -foo2 -foo3 -&prompt.user; <userinput>ls -1 | grep foo2</userinput> -foo2 -&prompt.user; <userinput>su</userinput> -<prompt>Password: </prompt> -&prompt.root; <userinput>cat foo2</userinput> -This is the file called 'foo2'</screen> - </example> - - <note> - <para>Even though we are displaying the contents of the file - <filename>foo2</filename>, it is <emphasis>not</emphasis> marked - up as <sgmltag>programlisting</sgmltag>. Reserve - <sgmltag>programlisting</sgmltag> for showing fragments of files - outside the context of user actions.</para> - </note> - </sect3> - </sect2> - - <sect2> - <title>In-line elements</title> - - <sect3> - <title>Emphasising information</title> - - <para>When you want to emphasise a particular word or phrase, use - <sgmltag>emphasis</sgmltag>. This may be presented as italic, or - bold, or might be spoken differently with a text-to-speech - system.</para> - - <para>There is no way to change the presentation of the emphasis - within your document, no equivalent of HTML's <sgmltag>b</sgmltag> - and <sgmltag>i</sgmltag>. If the information you are presenting is - important then consider presenting it in - <sgmltag>important</sgmltag> rather than - <sgmltag>emphasis</sgmltag>.</para> - - <example> - <title><sgmltag>emphasis</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<para>FreeBSD is without doubt <emphasis>the</emphasis> - premiere Unix like operating system for the Intel architecture.</para>]]></programlisting> - - <para>Appearance:</para> - - <para>FreeBSD is without doubt <emphasis>the</emphasis> premiere Unix - like operating system for the Intel architecture.</para> - </example> - </sect3> - - <sect3> - <title>Applications, commands, options, and cites</title> - - <para>You will frequently want to refer to both applications and - commands when writing for the Handbook. The distinction between - them is simple; an application is the name for a suite (or possibly - just 1) of programs that fulfil a particular task. A command is the - name of a program that the user can run.</para> - - <para>In addition, you will occasionally need to list one or more of - the options that a command might take.</para> - - <para>Finally, you will often want to list a command with it's manual - section number, in the “command(number)” format so - common in Unix manuals.</para> - - <para>Mark up application names with - <sgmltag>application</sgmltag>.</para> - - <para>When you want to list a command with it's manual section number - (which should be most of the time) the DocBook element is - <sgmltag>citerefentry</sgmltag>. This will contain a further two - elements, <sgmltag>refentrytitle</sgmltag> and - <sgmltag>manvolnum</sgmltag>. The content of - <sgmltag>refentrytitle</sgmltag> is the name of the command, and the - content of <sgmltag>manvolnum</sgmltag> is the manual page - section.</para> - - <para>This can be cumbersome to write, and so a series of <link - linkend="sgml-primer-general-entities">general entities</link> - have been created to make this easier. Each entity takes the form - <literal>&man.<replaceable>manual-page</replaceable>.<replaceable>manual-section</replaceable>;</literal>.</para> - - <para>The file that contains these entities is in - <filename>doc/share/sgml/man-refs.ent</filename>, and can be - referred to using this FPI;</para> - - <programlisting>PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"</programlisting> - - <para>Therefore, the introduction to your documentation will probably - look like this;</para> - - <programlisting><!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ - -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> -%man; - -… - -]></programlisting> - - <para>Use <sgmltag>command</sgmltag> when you want to include a - command name “in-line” but present it as something the - user should type in.</para> - - <para>Use <sgmltag>option</sgmltag> to mark up a command's - options.</para> - - <para>This can be confusing, and sometimes the choice is not always - clear. Hopefully this example makes it clearer.</para> - - <example> - <title>Applications, commands, and options.</title> - - <para>Use:</para> - - <programlisting><![ CDATA [<para><application>Sendmail</application> is the most - widely used Unix mail application.</para> - -<para><application>Sendmail</application> includes the - <citerefentry> - <refentrytitle>sendmail</refentrytitle> - <manvolnum>8</manvolnum> - </citerefentry>, &man.sendmail.8;, and &man.newaliases.8; - programs.</para> - -<para>One of the command line parameters to <citerefentry> - <refentrytitle>sendmail</refentrytitle> - <manvolnum>8</manvolnum> - </citerefentry>, <option>-bp</option>, will display the current - status of messages in the mail queue. Check this on the command - line by running <command>sendmail -bp</command>.</para>]]></programlisting> - - <para>Appearance:</para> - - <para><application>Sendmail</application> is the most widely used - Unix mail application.</para> - - <para><application>Sendmail</application> includes the - <citerefentry> - <refentrytitle>sendmail</refentrytitle> - <manvolnum>8</manvolnum> - </citerefentry>, <citerefentry> - <refentrytitle>mailq</refentrytitle> - <manvolnum>8</manvolnum> - </citerefentry>, and <citerefentry> - <refentrytitle>newaliases</refentrytitle> - <manvolnum>8</manvolnum> - </citerefentry> programs.</para> - - <para>One of the command line parameters to <citerefentry> - <refentrytitle>sendmail</refentrytitle> - <manvolnum>8</manvolnum> - </citerefentry>, <option>-bp</option>, will display the current - status of messages in the mail queue. Check this on the command - line by running <command>sendmail -bp</command>.</para> - </example> - - <note> - <para>Notice how the - <literal>&man.<replaceable>command</replaceable>.<replaceable>section</replaceable>;</literal> notation is easier to follow.</para> - </note> - </sect3> - - <sect3> - <title>Files, directories, extensions</title> - - <para>Whenever you wish to refer to the name of a file, a directory, - or a file extension, use <sgmltag>filename</sgmltag>.</para> - - <example> - <title><sgmltag>filename</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<para>The SGML source for the Handbook in English can be - found in <filename>/usr/doc/en/handbook/</filename>. The first - file is called <filename>handbook.sgml</filename> in that - directory. You should also see a <filename>Makefile</filename> - and a number of files with a <filename>.ent</filename> - extension.</para>]]></programlisting> - - <para>Appearance:</para> - - <para>The SGML source for the Handbook in English can be found in - <filename>/usr/doc/en/handbook/</filename>. The first file is - called <filename>handbook.sgml</filename> in that directory. You - should also see a <filename>Makefile</filename> and a number of - files with a <filename>.ent</filename> extension.</para> - </example> - </sect3> - - <sect3> - <title>Devices</title> - - <note> - <title>FreeBSD extension</title> - - <para>These elements are part of the FreeBSD extension to DocBook, - and do not exist in the original DocBook DTD.</para> - </note> - - <para>When referring to devices you have two choices. You can either - refer to the device as it appears in <filename>/dev</filename>, or - you can use the name of the device as it appears in the kernel. For - this latter course, use <sgmltag>devicename</sgmltag>.</para> - - <para>Sometimes you will not have a choice. Some devices, such as - networking cards, do not have entries in <filename>/dev</filename>, - or the entries are markedly different from those entries.</para> - - <example> - <title><sgmltag>devicename</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<para><devicename>sio</devicename> is used for serial - communication in FreeBSD. <devicename>sio</devicename> manifests - through a number of entries in <filename>/dev</filename>, including - <filename>/dev/ttyd0</filename> and <filename>/dev/cuaa0</filename>.</para> - -<para>By contrast, the networking devices, such as - <devicename>ed0</devicename> do not appear in <filename>/dev</filename>. - -<para>In MS-DOS, the first floppy drive is referred to as - <devicename>a:</devicename>. In FreeBSD it is - <filename>/dev/fd0</filename>.</para>]]></programlisting> - - <para>Appearance:</para> - - <para><devicename>sio</devicename> is used for serial communication - in FreeBSD. <devicename>sio</devicename> manifests through a - number of entries in <filename>/dev</filename>, including - <filename>/dev/ttyd0</filename> and - <filename>/dev/cuaa0</filename>.</para> - - <para>By contrast, the networking devices, such as - <devicename>ed0</devicename> do not appear in - <filename>/dev</filename>.</para> - - <para>In MS-DOS, the first floppy drive is referred to as - <devicename>a:</devicename>. In FreeBSD it is - <filename>/dev/fd0</filename>.</para> - </example> - </sect3> - - <sect3> - <title>Hosts, domains, IP addresses, and so forth</title> - - <note> - <title>FreeBSD extension</title> - - <para>These elements are part of the FreeBSD extension to DocBook, - and do not exist in the original DocBook DTD.</para> - </note> - - <para>You can markup identification information for networked - computers (hosts) in several ways, depending on the nature of the - information. All of them use <sgmltag>hostid</sgmltag> as the - element, with the <literal>role</literal> attribute selecting the - type of the marked up information.</para> - - <variablelist> - <varlistentry> - <term>No role attribute, or - <literal>role="hostname"</literal></term> - - <listitem> - <para>With no role attribute (i.e., - <sgmltag>hostid</sgmltag>...<sgmltag>hostid</sgmltag> the - marked up information is the simple hostname, such as - <literal>freefall</literal> or <literal>wcarchive</literal>. - You can explicitly specify this with - <literal>role="hostname"</literal>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>role="domainname"</literal></term> - - <listitem> - <para>The text is a domain name, such as - <literal>FreeBSD.org</literal> or - <literal>ngo.org.uk</literal>. There is no hostname - component.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>role="fqdn"</literal></term> - - <listitem> - <para>The text is a Fully Qualified Domain Name, with both - hostname and domain name parts.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>role="ipaddr"</literal></term> - - <listitem> - <para>The text is an IP address, probably expressed as a dotted - quad.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>role="netmask"</literal></term> - - <listitem> - <para>The text is a network mask, which might be expressed as a - dotted quad, a hexadecimal string, or as a - <literal>/</literal> followed by a number.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>role="mac"</literal></term> - - <listitem> - <para>The text is an ethernet MAC address, expressed as a series - of 2 digit hexadecimal numbers seperated by colons.</para> - </listitem> - </varlistentry> - </variablelist> - - <example> - <title><sgmltag>hostid</sgmltag> and roles</title> - - <para>Use:</para> - - <programlisting><![ CDATA [<para>The local machine can always be referred to by the - name <hostid>localhost</hostid>, which will have the IP address - <hostid role="ipaddr">127.0.0.1</hostid>.</para> - -<para>The <hostid role="domainname">FreeBSD.org</hostid> domain - contains a number of different hosts, including - <hostid role="fqdn">freefall.FreeBSD.org</hostid> and - <hostid role="fqdn">bento.FreeBSD.org</hostid>.</para> - -<para>When adding an IP alias to an interface (using - <command>ifconfig</command>) <emphasis>always</emphasis> use a - netmask of <hostid role="netmask">255.255.255.255</hostid> - (which can also be expressed as <hostid - role="netmask">0xffffffff</hostid>.</para> - -<para>The MAC address uniquely identifies every network card in - in existence. A typical MAC address looks like <hostid - role="mac">08:00:20:87:ef:d0</hostid>.</para>]]></programlisting> - - <para>Appearance:</para> - - <para>The local machine can always be referred to by the name - <hostid>localhost</hostid>, which will have the IP address <hostid - role="ipaddr">127.0.0.1</hostid>.</para> - - <para>The <hostid role="domainname">FreeBSD.org</hostid> domain - contains a number of different hosts, including <hostid - role="fqdn">freefall.FreeBSD.org</hostid> and <hostid - role="fqdn">bento.FreeBSD.org</hostid>.</para> - - <para>When adding an IP alias to an interface (using - <command>ifconfig</command>) <emphasis>always</emphasis> use a - netmask of <hostid role="netmask">255.255.255.255</hostid> (which - can also be expressed as <hostid - role="netmask">0xffffffff</hostid>.</para> - - <para>The MAC address uniquely identifies every network card in - existence. A typical MAC address looks like <hostid - role="mac">08:00:20:87:ef:d0</hostid>.</para> - </example> - </sect3> - - <sect3> - <title>Usernames</title> - - <note> - <title>FreeBSD extension</title> - - <para>These elements are part of the FreeBSD extension to DocBook, - and do not exist in the original DocBook DTD.</para> - </note> - - <para>When you need to refer to a specific username, such as - <literal>root</literal> or <literal>bin</literal>, use - <sgmltag>username</sgmltag>.</para> - - <example> - <title><sgmltag>username</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<para>To carry out most system administration functions you - will need to be <username>root</username>.</para>]]></programlisting> - - <para>Appearance:</para> - - <para>To carry out most system administration functions you will - need to be <username>root</username>.</para> - </example> - </sect3> - - <sect3> - <title>Describing <filename>Makefile</filename>s</title> - - <note> - <title>FreeBSD extension</title> - - <para>These elements are part of the FreeBSD extension to DocBook, - and do not exist in the original DocBook DTD.</para> - </note> - - <para>Two elements exist to describe parts of - <filename>Makefile</filename>s, <sgmltag>maketarget</sgmltag> and - <sgmltag>makevar</sgmltag>.</para> - - <para><sgmltag>maketarget</sgmltag> identifies a build target exported - by a <filename>Makefile</filename> that can be given as a parameter - to <command>make</command>. <sgmltag>makevar</sgmltag> identifies a - variable that can be set (in the environment, on the - <command>make</command> command line, or within the - <filename>Makefile</filename>) to influence the process.</para> - - <example> - <title><sgmltag>maketarget</sgmltag> and - <sgmltag>makevar</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<para>Two common targets in a <filename>Makefile</filename> - are <maketarget>all</maketarget> and <maketarget>clean</maketarget>.</para> - -<para>Typically, invoking <maketarget>all</maketarget> will rebuild the - application, and invoking <maketarget>clean</maketarget> will remove - the temporary files (<filename>.o</filename> for example) created by - the build process.</para> - -<para><maketarget>clean</maketarget> may be controlled by a number of - variables, including <makevar>CLOBBER</makevar> and - <makevar>RECURSE</makevar>.</para>]]></programlisting> - - <para>Appearance:</para> - - <para>Two common targets in a <filename>Makefile</filename> are - <maketarget>all</maketarget> and - <maketarget>clean</maketarget>.</para> - - <para>Typically, invoking <maketarget>all</maketarget> will rebuild - the application, and invoking <maketarget>clean</maketarget> will - remove the temporary files (<filename>.o</filename> for example) - created by the build process.</para> - - <para><maketarget>clean</maketarget> may be controlled by a number - of variables, including <makevar>CLOBBER</makevar> and - <makevar>RECURSE</makevar>.</para> - </example> - </sect3> - - <sect3> - <title>Literal text</title> - - <para>You will often need to include “literal” text in the - Handbook. This is text that is excerpted from another file, or - which should be copied from the Handbook into another file - verbatim.</para> - - <para>Some of the time, <sgmltag>programlisting</sgmltag> will be - sufficient to denote this text. <sgmltag>programlisting</sgmltag> - is not always appropriate, particularly when you want to include a - portion of a file “in-line” with the rest of the - paragraph.</para> - - <para>On these occasions, use <sgmltag>literal</sgmltag>.</para> - - <example> - <title><sgmltag>literal</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<para>The <literal>maxusers 10</literal> line in the kernel - configuration file determines the size of many system tables, and is - a rough guide to how many simultaneous logins the system will - support.</para>]]></programlisting> - - <para>Appearance:</para> - - <para>The <literal>maxusers 10</literal> line in the kernel - configuration file determines the size of many system tables, and - is a rough guide to how many simultaneous logins the system will - support.</para> - </example> - </sect3> - - <sect3> - <title>Showing items that the user <emphasis>must</emphasis> fill - in</title> - - <para>There will often be times when you want to show the user what to - do, or refer to a file, or command line, or similar, where the user - can not simply copy the examples that you provide, but must instead - include some information themselves.</para> - - <para><sgmltag>replaceable</sgmltag> is designed for this eventuality. - Use it <emphasis>inside</emphasis> other elements to indicate parts - of that element's content that the user must replace.</para> - - <example> - <title><sgmltag>replaceable</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<informalexample> - <screen>&prompt.user; <userinput>man <replaceable>command</replaceable></userinput></screen> -</informalexample>]]></programlisting> - - <para>Appearance:</para> - - <informalexample> - <screen>&prompt.user; <userinput>man <replaceable>command</replaceable></userinput></screen> - </informalexample> - - <para><sgmltag>replaceable</sgmltag> can be used in many different - elements, including <sgmltag>literal</sgmltag>. This example also - shows that <sgmltag>replaceable</sgmltag> should only be wrapped - around the content that the user <emphasis>is</emphasis> meant to - provide. The other content should be left alone.</para> - - <para>Use:</para> - - <programlisting><![ CDATA [<para>The <literal>maxusers <replaceable>n</replaceable></literal> - line in the kernel configuration file determines the size of many system - tables, and is a rough guide to how many simultaneous logins the system will - support.</para> - -<para>For a desktop workstation, <literal>32</literal> is a good value - for <replaceable>n</replaceable>.</para>]]></programlisting> - - <para>Appearance:</para> - - <para>The <literal>maxusers <replaceable>n</replaceable></literal> - line in the kernel configuration file determines the size of many - system tables, and is a rough guide to how many simultaneous - logins the system will support.</para> - - <para>For a desktop workstation, <literal>32</literal> is a good - value for <replaceable>n</replaceable>.</para> - </example> - </sect3> - </sect2> - - <sect2> - <title>Links</title> - - <note> - <para>Links are also in-line elements.</para> - </note> - - <sect3> - <title>Linking to other parts of the same document</title> - - <para>Linking within the same document requires you to to specify - where you are linking from (i.e., the text the user will click, or - otherwise indicate, as the source of the link) and where you are - linking to (the link's destination).</para> - - <para>Each element within DocBook has an attribute called - <literal>id</literal>. You can place text in this attribute to - uniquely name the element it is attached to.</para> - - <para>This value will be used when you specify the link - source.</para> - - <para>Normally, you will only be linking to chapters or sections, so - you would add the <literal>id</literal> attribute to these - elements.</para> - - <example> - <title><literal>id on chapters and sections</literal></title> - - <programlisting><![ CDATA [<chapter id="chapter1"> - <title>Introduction</title> - - <para>This is the introduction. It contains a subsection, - which is identified as well.</para> - - <sect1 id="chapter1-sect1"> - <title>Sub-sect 1</title> - - <para>This is the subsection.</para> - </sect1> -</chapter>]]></programlisting> - </example> - - <para>Obviously, you should use more descriptive values. The values - must be unique within the document (i.e., not just the file, but the - document the file might be included in as well). Notice how the - <literal>id</literal> for the subsection is constructed by appending - text to the <literal>id</literal> of the chapter. This helps to - ensure that they are unique.</para> - - <para>If you want to allow the user to jump into a specific portion of - the document (possibly in the middle of a paragraph or an example), - use <sgmltag>anchor</sgmltag>. This element has no content, but - takes an <literal>id</literal> attribute.</para> - - <example> - <title><sgmltag>anchor</sgmltag></title> - - <programlisting><![ CDATA [<para>This paragraph has an embedded - <anchor id="para1">link target in it. It won't show up in - the document.</para>]]></programlisting> - </example> - - <para>When you want to provide the user with a link they can activate - (probably by clicking) to go to a section of the document that has - an <literal>id</literal> attribute, you can use either - <sgmltag>xref</sgmltag> or <sgmltag>link</sgmltag>.</para> - - <para>Both of these elements have a <literal>linkend</literal> - attribute. The value of this attribute should be the value that you - have used in a <literal>id</literal> attribute (it does not matter - if that value has not yet occured in your document, this will work - for forward links as well as backward links).</para> - - <para>If you use <sgmltag>xref</sgmltag> then you have no control over - the text of the link. It will be generated for you.</para> - - <example> - <title>Using <sgmltag>xref</sgmltag></title> - - <para>Assume that this fragment appears somewhere in a document that - includes the <literal>id</literal> example;</para> - - <programlisting><![ CDATA [<para>More information can be found - in <xref linkend="chapter1">.</para> - -<para>More specific information can be found - in <xref linkend="chapter1-sect1">.</para>]]></programlisting> - - <para>The text of the link will be generated automatically, and will - look like (<emphasis>emphasised</emphasis> text indicates the text - that will be the link);</para> - - <blockquote> - <para>More information can be found in <emphasis>Chapter - One</emphasis>.</para> - - <para>More specific information can be found in <emphasis>the - section called Sub-sect 1</emphasis>.</para> - </blockquote> - </example> - - <para>Notice how the text from the link is derived from the section - title or the chapter number.</para> - - <note> - <para>This means that you <emphasis>can not</emphasis> use - <sgmltag>xref</sgmltag> to link to an <literal>id</literal> - attribute on an <sgmltag>anchor</sgmltag> element. The - <sgmltag>anchor</sgmltag> has no content, so the - <sgmltag>xref</sgmltag> can not generate the text for the - link.</para> - </note> - - <para>If you want to control the text of the link then use - <sgmltag>link</sgmltag>. This element wraps content, and the - content will be used for the link.</para> - - <example> - <title>Using <sgmltag>link</sgmltag></title> - - <para>Assume that this fragment appears somewhere in a document that - includes the <literal>id</literal> example.</para> - - <programlisting><![ CDATA [<para>More information can be found in - <link linkend="chapter1">the first chapter</link>.</para> - -<para>More specific information can be found in - <link linkend="chapter1-sect1>this</link> section.</para>]]></programlisting> - - <para>This will generate the following - (<emphasis>emphasised</emphasis> text indicates the text that will - be the link);</para> - - <blockquote> - <para>More information can be found in <emphasis>the first - chapter</emphasis>.</para> - - <para>More specific information can be found in - <emphasis>this</emphasis> section.</para> - </blockquote> - </example> - - <note> - <para>That last one is a bad example. Never use words like - “this” or “here” as the source for the - link. The reader will need to hunt around the surrounding context - to see where the link is actually taking them.</para> - </note> - - <note> - <para>You <emphasis>can</emphasis> use <sgmltag>link</sgmltag> to - include a link to an <literal>id</literal> on an - <sgmltag>anchor</sgmltag> element, since the - <sgmltag>link</sgmltag> content defines the text that will be used - for the link.</para> - </note> - </sect3> - - <sect3> - <title>Linking to documents on the WWW</title> - - <para>Linking to external documents is much simpler, as long as you - know the URL of the document you want to link to. Use - <sgmltag>ulink</sgmltag>. The <literal>url</literal> attribute is - the URL of the page that the link points to, and the content of the - element is the text that will be displayed for the user to - activate.</para> - - <example> - <title><sgmltag>ulink</sgmltag></title> - - <para>Use:</para> - - <programlisting><![ CDATA [<para>Of course, you could stop reading this document and - go to the <ulink url="http://www.FreeBSD.org/">FreeBSD - home page</ulink> instead.</para>]]></programlisting> - - <para>Appearance:</para> - - <para>Of course, you could stop reading this document and go to the - <ulink url="http://www.FreeBSD.org/">FreeBSD home page</ulink> - instead.</para> - </example> - </sect3> - </sect2> - </sect1> - - <sect1> - <title>* LinuxDoc</title> - - <para>LinuxDoc is an adaptation of the QWERTZ DTD, first adopted by the - <ulink url="http://sunsite.unc.edu/LDP/">Linux Documentation - Project</ulink>, and subsequently adopted by the FreeBSD Documentation - Project.</para> - - <para>The LinuxDoc DTD contains primarily appearance related markup rather - than content related markup (i.e., it describes what something looks - like rather than what it is).</para> - - <para>Both the FreeBSD Documentation Project and the Linux Documentation - Project are migrating from the LinuxDoc DTD to the DocBook DTD.</para> - - <para>The LinuxDoc DTD is available from the ports collection in the - <filename>textproc/linuxdoc</filename> category.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml deleted file mode 100644 index da050c4242..0000000000 --- a/en_US.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml +++ /dev/null @@ -1,1594 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML, HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/sgml-primer/chapter.sgml,v 1.10 2000/04/30 23:00:03 nik Exp $ ---> - -<chapter id="sgml-primer"> - <title>SGML Primer</title> - - <para>The majority of FDP documentation is written in applications of - SGML. This chapter explains exactly what that means, how to read - and understand the source to the documentation, and the sort of SGML - tricks you will see used in the documentation.</para> - - <para>Portions of this section were inspired by Mark Galassi's <ulink - url="http://nis-www.lanl.gov/~rosalia/mydocs/docbook-intro/docbook-intro.html">Get Going With DocBook</ulink>.</para> - - <sect1> - <title>Overview</title> - - <para>Way back when, electronic text was simple to deal with. Admittedly, - you had to know which character set your document was written in (ASCII, - EBCDIC, or one of a number of others) but that was about it. Text was - text, and what you saw really was what you got. No frills, no - formatting, no intelligence.</para> - - <para>Inevitably, this was not enough. Once you have text in a - machine-usable format, you expect machines to be able to use it and - manipulate it intelligently. You would like to indicate that certain - phrases should be emphasised, or added to a glossary, or be hyperlinks. - You might want filenames to be shown in a “typewriter” style - font for viewing on screen, but as “italics” when printed, - or any of a myriad of other options for presentation.</para> - - <para>It was once hoped that Artificial Intelligence (AI) would make this - easy. Your computer would read in the document and automatically - identify key phrases, filenames, text that the reader should type in, - examples, and more. Unfortunately, real life has not happened quite - like that, and our computers require some assistance before they can - meaningfully process our text.</para> - - <para>More precisely, they need help identifying what is what. You or I - can look at - - <blockquote> - <para>To remove <filename>/tmp/foo</filename> use &man.rm.1;.</para> - - <screen>&prompt.user; <command>rm /tmp/foo</command></screen> - </blockquote> - - and easily see which parts are filenames, which are commands to be typed - in, which parts are references to manual pages, and so on. But the - computer processing the document can not. For this we need - markup.</para> - - <para>“Markup” is commonly used to describe “adding - value” or “increasing cost”. The term takes on both - these meanings when applied to text. Markup is additional text included - in the document, distinguished from the document's content in some way, - so that programs that process the document can read the markup and use - it when making decisions about the document. Editors can hide the - markup from the user, so the user is not distracted by it.</para> - - <para>The extra information stored in the markup <emphasis>adds - value</emphasis> to the document. Adding the markup to the document - must typically be done by a person—after all, if computers could - recognise the text sufficiently well to add the markup then there would - be no need to add it in the first place. This <emphasis>increases the - cost</emphasis> (i.e., the effort required) to create the - document.</para> - - <para>The previous example is actually represented in this document like - this;</para> - - <programlisting><![ CDATA [ -<para>To remove <filename>/tmp/foo</filename> use &man.rm.1;.</para> - -<para><command>rm /tmp/foo</command></para>]]></programlisting> - - <para>As you can see, the markup is clearly separate from the - content.</para> - - <para>Obviously, if you are going to use markup you need to define what - your markup means, and how it should be interpreted. You will need a - markup language that you can follow when marking up your - documents.</para> - - <para>Of course, one markup language might not be enough. A markup - language for technical documentation has very different requirements - than a markup language that was to be used for cookery recipes. This, - in turn, would be very different from a markup language used to describe - poetry. What you really need is a first language that you use to write - these other markup languages. A <emphasis>meta markup - language</emphasis>.</para> - - <para>This is exactly what the Standard Generalised Markup Language (SGML) - is. Many markup languages have been written in SGML, including the two - most used by the FDP, HTML and DocBook.</para> - - <para>Each language definition is more properly called a Document Type - Definition (DTD). The DTD specifies the name of the elements that can - be used, what order they appear in (and whether some markup can be used - inside other markup) and related information. A DTD is sometimes - referred to as an <emphasis>application</emphasis> of SGML.</para> - - <para id="sgml-primer-validating">A DTD is a <emphasis>complete</emphasis> - specification of all the elements that are allowed to appear, the order - in which they should appear, which elements are mandatory, which are - optional, and so forth. This makes it possible to write an SGML - <emphasis>parser</emphasis> which reads in both the DTD and a document - which claims to conform to the DTD. The parser can then confirm whether - or not all the elements required by the DTD are in the document in the - right order, and whether there are any errors in the markup. This is - normally referred to as <quote>validating the document</quote>.</para> - - <note> - <para>This processing simply confirms that the choice of elements, their - ordering, and so on, conforms to that listed in the DTD. It does - <emphasis>not</emphasis> check that you have used - <emphasis>appropriate</emphasis> markup for the content. If you were - to try and mark up all the filenames in your document as function - names, the parser would not flag this as an error (assuming, of - course, that your DTD defines elements for filenames and functions, - and that they are allowed to appear in the same place).</para> - </note> - - <para>It is likely that most of your contributions to the Documentation - Project will consist of content marked up in either HTML or DocBook, - rather than alterations to the DTDs. For this reason this book will - not touch on how to write a DTD.</para> - </sect1> - - <sect1 id="sgml-primer-elements"> - <title>Elements, tags, and attributes</title> - - <para>All the DTDs written in SGML share certain characteristics. This is - hardly surprising, as the philosophy behind SGML will inevitably show - through. One of the most obvious manifestations of this philisophy is - that of <emphasis>content</emphasis> and - <emphasis>elements</emphasis>.</para> - - <para>Your documentation (whether it is a single web page, or a lengthy - book) is considered to consist of content. This content is then divided - (and further subdivided) into elements. The purpose of adding markup is - to name and identify the boundaries of these elements for further - processing.</para> - - <para>For example, consider a typical book. At the very top level, the - book is itself an element. This “book” element obviously - contains chapters, which can be considered to be elements in their own - right. Each chapter will contain more elements, such as paragraphs, - quotations, and footnotes. Each paragraph might contain further - elements, identifying content that was direct speech, or the name of a - character in the story.</para> - - <para>You might like to think of this as “chunking” content. - At the very top level you have one chunk, the book. Look a little - deeper, and you have more chunks, the individual chapters. These are - chunked further into paragraphs, footnotes, character names, and so - on.</para> - - <para>Notice how you can make this differentation between different - elements of the content without resorting to any SGML terms. It really - is surprisingly straightforward. You could do this with a highlighter - pen and a printout of the book, using different colours to indicate - different chunks of content.</para> - - <para>Of course, we do not have an electronic highlighter pen, so we need - some other way of indicating which element each piece of content belongs - to. In languages written in SGML (HTML, DocBook, et al) this is done by - means of <emphasis>tags</emphasis>.</para> - - <para>A tag is used to identify where a particular element starts, and - where the element ends. <emphasis>The tag is not part of the element - itself</emphasis>. Because each DTD was normally written to mark up - specific types of information, each one will recognise different - elements, and will therefore have different names for the tags.</para> - - <para>For an element called <replaceable>element-name</replaceable> the - start tag will normally look like - <literal><<replaceable>element-name</replaceable>></literal>. The - corresponding closing tag for this element is - <literal></<replaceable>element-name</replaceable>></literal>.</para> - - <example> - <title>Using an element (start and end tags)</title> - - <para>HTML has an element for indicating that the content enclosed by - the element is a paragraph, called <literal>p</literal>. This - element has both start and end tags.</para> - - <programlisting> -<![ CDATA [<p>This is a paragraph. It starts with the start tag for - the 'p' element, and it will end with the end tag for the 'p' - element.</p> - -<p>This is another paragraph. But this one is much shorter.</p>]]></programlisting> - </example> - - <para>Not all elements require an end tag. Some elements have no content. - For example, in HTML you can indicate that you want a horizontal line to - appear in the document. Obviously, this line has no content, so just - the start tag is required for this element.</para> - - <example> - <title>Using an element (start tag only)</title> - - <para>HTML has an element for indicating a horizontal rule, called - <literal>hr</literal>. This element does not wrap content, so only - has a start tag.</para> - - <programlisting> -<![ CDATA [<p>This is a paragraph.</p> - -<hr> - -<p>This is another paragraph. A horizontal rule separates this - from the previous paragraph.</p>]]></programlisting> - </example> - - <para>If it is not obvious by now, elements can contain other elements. - In the book example earlier, the book element contained all the chapter - elements, which in turn contained all the paragraph elements, and so - on.</para> - - <example> - <title>Elements within elements; <sgmltag>em</sgmltag></title> - - <programlisting> -<![ CDATA [<p>This is a simple <em>paragraph</em> where some - of the <em>words</em> have been <em>emphasised</em>.</p>]]></programlisting> - </example> - - <para>The DTD will specify the rules detailing which elements can contain - other elements, and exactly what they can contain.</para> - - <important> - <para>People often confuse the terms tags and elements, and use the - terms as if they were interchangeable. They are not.</para> - - <para>An element is a conceptual part of your document. An element has - a defined start and end. The tags mark where the element starts and - end.</para> - - <para>When this document (or anyone else knowledgable about SGML) refers - to “the <p> tag” they mean the literal text - consisting of the three characters <literal><</literal>, - <literal>p</literal>, and <literal>></literal>. But the phrase - “the <p> element” refers to the whole - element.</para> - - <para>This distinction <emphasis>is</emphasis> very subtle. But keep it - in mind.</para> - </important> - - <para>Elements can have attributes. An attribute has a name and a value, - and is used for adding extra information to the element. This might be - information that indicates how the content should be rendered, or might - be something that uniquely identifies that occurence of the element, or - it might be something else.</para> - - <para>An element's attributes are written <emphasis>inside</emphasis> the - start tag for that element, and take the form - <literal><replaceable>attribute-name</replaceable>="<replaceable>attribute-value</replaceable>"</literal>.</para> - - <para>In sufficiently recent versions of HTML, the <sgmltag>p</sgmltag> - element has an attribute called <literal>align</literal>, which suggests - an alignment (justification) for the paragraph to the program displaying - the HTML.</para> - - <para>The <literal>align</literal> attribute can take one of four defined - values, <literal>left</literal>, <literal>center</literal>, - <literal>right</literal> and <literal>justify</literal>. If the - attribute is not specified then the default is - <literal>left</literal>.</para> - - <example> - <title>Using an element with an attribute</title> - - <programlisting> -<![ CDATA [<p align="left">The inclusion of the align attribute - on this paragraph was superfluous, since the default is left.</p> - -<p align="center">This may appear in the center.</p>]]></programlisting> - </example> - - <para>Some attributes will only take specific values, such as - <literal>left</literal> or <literal>justify</literal>. Others will - allow you to enter anything you want. If you need to include quotes - (<literal>"</literal>) within an attribute then use single quotes around - the attribute value.</para> - - <example> - <title>Single quotes around attributes</title> - - <programlisting> -<![ CDATA [<p align='right'>I'm on the right!</p>]]></programlisting> - </example> - - <para>Sometimes you do not need to use quotes around attribute values at - all. However, the rules for doing this are subtle, and it is far - simpler just to <emphasis>always</emphasis> quote your attribute - values.</para> - - <sect2> - <title>For you to do…</title> - - <para>In order to run the examples in this document you will need to - install some software on your system and ensure that an environment - variable is set correctly.</para> - - <procedure> - <step> - <para>Download and install <filename>textproc/docproj</filename> - from the FreeBSD ports system. This is a - <emphasis>meta-port</emphasis> that should download and install - all of the programs and supporting files that are used by the - Documentation Project.</para> - </step> - - <step> - <para>Add lines to your shell startup files to set - <envar>SGML_CATALOG_FILES</envar>.</para> - - <example id="sgml-primer-envars"> - <title><filename>.profile</filename>, for &man.sh.1; and - &man.bash.1; users</title> - - <programlisting> -SGML_ROOT=/usr/local/share/sgml -SGML_CATALOG_FILES=${SGML_ROOT}/jade/catalog -SGML_CATALOG_FILES=${SGML_ROOT}/iso8879/catalog:$SGML_CATALOG_FILES -SGML_CATALOG_FILES=${SGML_ROOT}/html/catalog:$SGML_CATALOG_FILES -SGML_CATALOG_FILES=${SGML_ROOT}/docbook/catalog:$SGML_CATALOG_FILES -export SGML_CATALOG_FILES</programlisting> - </example> - - <example> - <title><filename>.login</filename>, for &man.csh.1; and - &man.tcsh.1; users</title> - - <programlisting> -setenv SGML_ROOT /usr/local/share/sgml -setenv SGML_CATALOG_FILES ${SGML_ROOT}/jade/catalog -setenv SGML_CATALOG_FILES ${SGML_ROOT}/iso8879/catalog:$SGML_CATALOG_FILES -setenv SGML_CATALOG_FILES ${SGML_ROOT}/html/catalog:$SGML_CATALOG_FILES -setenv SGML_CATALOG_FILES ${SGML_ROOT}/docbook/catalog:$SGML_CATALOG_FILES</programlisting> - </example> - - <para>Then either log out, and log back in again, or run those - commands from the command line to set the variable values.</para> - </step> - </procedure> - - <procedure> - <step> - <para>Create <filename>example.sgml</filename>, and enter the - following text;</para> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> - -<html> - <head> - <title>An example HTML file</title> - </head> - - <body> - <p>This is a paragraph containing some text.</p> - - <p>This paragraph contains some more text.</p> - - <p align="right">This paragraph might be right-justified.</p> - </body> -</html>]]></programlisting> - </step> - - <step> - <para>Try and validate this file using an SGML parser.</para> - - <para>Part of <filename>textproc/docproj</filename> is the - &man.nsgmls.1; <link linkend="sgml-primer-validating">validating - parser</link>. Normally, &man.nsgmls.1; reads in a document - marked up according to an SGML DTD and returns a copy of the - document's Element Structure Information Set (ESIS, but that is - not important right now).</para> - - <para>However, when &man.nsgmls.1; is given the <option>-s</option> - parameter, &man.nsgmls.1; will suppress its normal output, and - just print error messages. This makes it a useful way to check to - see if your document is valid or not.</para> - - <para>Use &man.nsgmls.1; to check that your document is - valid;</para> - - <screen>&prompt.user; <userinput>nsgmls -s example.sgml</userinput></screen> - - <para>As you will see, &man.nsgmls.1; returns without displaying any - output. This means that your document validated - successfully.</para> - </step> - - <step> - <para>See what happens when required elements are omitted. Try - removing the <sgmltag>title</sgmltag> and - <sgmltag>/title</sgmltag> tags, and re-run the validation.</para> - - <screen>&prompt.user; <userinput>nsgmls -s example.sgml</userinput> -nsgmls:example.sgml:5:4:E: character data is not allowed here -nsgmls:example.sgml:6:8:E: end tag for "HEAD" which is not finished</screen> - - <para>The error output from &man.nsgmls.1; is organised into - colon-separated groups, or columns.</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Column</entry> - <entry>Meaning</entry> - </row> - </thead> - - <tbody> - <row> - <entry>1</entry> - <entry>The name of the program generating the error. This - will always be <literal>nsgmls</literal>.</entry> - </row> - - <row> - <entry>2</entry> - <entry>The name of the file that contains the error.</entry> - </row> - - <row> - <entry>3</entry> - <entry>Line number where the error appears.</entry> - </row> - - <row> - <entry>4</entry> - <entry>Column number where the error appears.</entry> - </row> - - <row> - <entry>5</entry> - <entry>A one letter code indicating the nature of the - message. <literal>I</literal> indicates an informational - message, <literal>W</literal> is for warnings, and - <literal>E</literal> is for errors<footnote> - <para>It is not always the fifth column either. - <command>nsgmls -sv</command> displays - <literal>nsgmls:I: SP version "1.3"</literal> - (depending on the installed version). As you can see, - this is an informational message.</para> - </footnote>, and <literal>X</literal> is for - cross-references. As you can see, these messages are - errors.</entry> - </row> - - <row> - <entry>6</entry> - <entry>The text of the error message.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - -<![ %not.published; [ - - <para><ulink - url="http://www.cs.duke.edu/~dsb/kgv-faq/errors.html">More - information about errors from &man.nsgmls.1;</ulink> is - available in the <ulink - url="http://www.cs.duke.edu/~dsb/kgv-faq/">Unofficial 'Kindler, - Gentler HTML Validator' FAQ</ulink>.</para> - -]]> - - <para>Simply omitting the <sgmltag>title</sgmltag> tags has - generated 2 different errors.</para> - - <para>The first error indicates that content (in this case, - characters, rather than the start tag for an element) has occured - where the SGML parser was expecting something else. In this case, - the parser was expecting to see one of the start tags for elements - that are valid inside <sgmltag>head</sgmltag> (such as - <sgmltag>title</sgmltag>).</para> - - <para>The second error is because <sgmltag>head</sgmltag> elements - <emphasis>must</emphasis> contain a <sgmltag>title</sgmltag> - element. Because it does not &man.nsgmls.1; considers that the - element has not been properly finished. However, the closing tag - indicates that the element has been closed before it has been - finished.</para> - </step> - - <step> - <para>Put the <literal>title</literal> element back in.</para> - </step> - </procedure> - </sect2> - </sect1> - - <sect1 id="sgml-primer-doctype-declaration"> - <title>The DOCTYPE declaration</title> - - <para>The beginning of each document that you write must specify the name - of the DTD that the document conforms to. This is so that SGML parsers - can determine the DTD and ensure that the document does conform to - it.</para> - - <para>This information is generally expressed on one line, in the DOCTYPE - declaration.</para> - - <para>A typical declaration for a document written to conform with version - 4.0 of the HTML DTD looks like this;</para> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN">]]></programlisting> - - <para>That line contains a number of different components.</para> - - <variablelist> - <varlistentry> - <term><literal><!</literal></term> - - <listitem> - <para>Is the <emphasis>indicator</emphasis> that indicates that this - is an SGML declaration. This line is declaring the document type. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>DOCTYPE</literal></term> - - <listitem> - <para>Shows that this is an SGML declaration for the document - type.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>html</literal></term> - - <listitem> - <para>Names the first <link linkend="sgml-primer-elements">element</link> that - will appear in the document.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>PUBLIC "-//W3C//DTD HTML 4.0//EN"</literal></term> - - <listitem> - <para>Lists the Formal Public Identifier (FPI) for the DTD that this - document conforms to. Your SGML parser will use this to find the - correct DTD when processing this document.</para> - - <para><literal>PUBLIC</literal> is not a part of the FPI, but - indicates to the SGML processor how to find the DTD referenced in - the FPI. Other ways of telling the SGML parser how to find the - DTD are shown <link - linkend="sgml-primer-fpi-alternatives">later</link>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>></literal></term> - - <listitem> - <para>Returns to the document.</para> - </listitem> - </varlistentry> - </variablelist> - - <sect2> - <title>Formal Public Identifiers (FPIs)</title> - - <note> - <para>You don't need to know this, but it's useful background, and - might help you debug problems when your SGML processor can't locate - the DTD you are using.</para> - </note> - - <para>FPIs must follow a specific syntax. This syntax is as - follows;</para> - - <programlisting> -"<replaceable>Owner</replaceable>//<replaceable>Keyword</replaceable> <replaceable>Description</replaceable>//<replaceable>Language</replaceable>"</programlisting> - - <variablelist> - <varlistentry> - <term><replaceable>Owner</replaceable></term> - - <listitem> - <para>This indicates the owner of the FPI.</para> - - <para>If this string starts with “ISO” then this is an - ISO owned FPI. For example, the FPI <literal>"ISO - 8879:1986//ENTITIES Greek Symbols//EN"</literal> lists - <literal>ISO 8879:1986</literal> as being the owner for the set - of entities for greek symbols. ISO 8879:1986 is the ISO number - for the SGML standard.</para> - - <para>Otherwise, this string will either look like - <literal>-//<replaceable>Owner</replaceable></literal> or - <literal>+//<replaceable>Owner</replaceable></literal> (notice - the only difference is the leading <literal>+</literal> or - <literal>-</literal>).</para> - - <para>If the string starts with <literal>-</literal> then the - owner information is unregistered, with a <literal>+</literal> - it identifies it as being registered.</para> - - <para>ISO 9070:1991 defines how registered names are generated; it - might be derived from the number of an ISO publication, an ISBN - code, or an organisation code assigned according to ISO 6523. - In addition, a registration authority could be created in order - to assign registered names. The ISO council delegated this to - the American National Standards Institute (ANSI).</para> - - <para>Because the FreeBSD Project hasn't been registered the - owner string is <literal>-//FreeBSD</literal>. And as you can - see, the W3C are not a registered owner either.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><replaceable>Keyword</replaceable></term> - - <listitem> - <para>There are several keywords that indicate the type of - information in the file. Some of the most common keywords are - <literal>DTD</literal>, <literal>ELEMENT</literal>, - <literal>ENTITIES</literal>, and <literal>TEXT</literal>. - <literal>DTD</literal> is used only for DTD files, - <literal>ELEMENT</literal> is usually used for DTD fragments - that contain only entity or element declarations. - <literal>TEXT</literal> is used for SGML content (text and - tags).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><replaceable>Description</replaceable></term> - - <listitem> - <para>Any description you want to supply for the contents of this - file. This may include version numbers or any short text that - is meaningful to you and unique for the SGML system.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><replaceable>Language</replaceable></term> - - <listitem> - <para>This is an ISO two-character code that identifies the native - language for the file. <literal>EN</literal> is used for - English.</para> - </listitem> - </varlistentry> - </variablelist> - - <sect3> - <title><filename>catalog</filename> files</title> - - <para>If you use the syntax above and try and process this document - using an SGML processor, the processor will need to have some way of - turning the FPI into the name of the file on your computer that - contains the DTD.</para> - - <para>In order to do this it can use a catalog file. A catalog file - (typically called <filename>catalog</filename>) contains lines that - map FPIs to filenames. For example, if the catalog file contained - the line;</para> - - <programlisting> -PUBLIC "-//W3C//DTD HTML 4.0//EN" "4.0/strict.dtd"</programlisting> - - <para>The SGML processor would know to look up the DTD from - <filename>strict.dtd</filename> in the <filename>4.0</filename> - subdirectory of whichever directory held the - <filename>catalog</filename> file that contained that line.</para> - - <para>Look at the contents of - <filename>/usr/local/share/sgml/html/catalog</filename>. This is - the catalog file for the HTML DTDs that will have been installed as - part of the <filename>textproc/docproj</filename> port.</para> - </sect3> - - <sect3> - <title><envar>SGML_CATALOG_FILES</envar></title> - - <para>In order to locate a <filename>catalog</filename> file, your - SGML processor will need to know where to look. Many of them - feature command line parameters for specifying the path to one or - more catalogs.</para> - - <para>In addition, you can set <envar>SGML_CATALOG_FILES</envar> to - point to the files. This environment variable should consist of a - colon-separated list of catalog files (including their full - path).</para> - - <para>Typically, you will want to include the following files;</para> - - <itemizedlist> - <listitem> - <para><filename>/usr/local/share/sgml/docbook/catalog</filename></para> - </listitem> - - <listitem> - <para><filename>/usr/local/share/sgml/html/catalog</filename></para> - </listitem> - - <listitem> - <para><filename>/usr/local/share/sgml/iso8879/catalog</filename></para> - </listitem> - - <listitem> - <para><filename>/usr/local/share/sgml/jade/catalog</filename></para> - </listitem> - </itemizedlist> - - <para>You should <link linkend="sgml-primer-envars">already have done - this</link>.</para> - </sect3> - </sect2> - - <sect2 id="sgml-primer-fpi-alternatives"> - <title>Alternatives to FPIs</title> - - <para>Instead of using an FPI to indicate the DTD that the document - conforms to (and therefore, which file on the system contains the DTD) - you can explicitly specify the name of the file.</para> - - <para>The syntax for this is slightly different;</para> - - <programlisting> -<![ CDATA [<!DOCTYPE html SYSTEM "/path/to/file.dtd">]]></programlisting> - - <para>The <literal>SYSTEM</literal> keyword indicates that the SGML - processor should locate the DTD in a system specific fashion. This - typically (but not always) means the DTD will be provided as a - filename.</para> - - <para>Using FPIs is preferred for reasons of portability. You don't - want to have to ship a copy of the DTD around with your document, and - if you used the <literal>SYSTEM</literal> identifier then everyone - would need to keep their DTDs in the same place.</para> - </sect2> - </sect1> - - <sect1 id="sgml-primer-sgml-escape"> - <title>Escaping back to SGML</title> - - <para>Earlier in this primer I said that SGML is only used when writing a - DTD. This is not strictly true. There is certain SGML syntax that you - will want to be able to use within your documents. For example, - comments can be included in your document, and will be ignored by the - parser. Comments are entered using SGML syntax. Other uses for SGML - syntax in your document will be shown later too.</para> - - <para>Obviously, you need some way of indicating to the SGML processor - that the following content is not elements within the document, but is - SGML that the parser should act upon.</para> - - <para>These sections are marked by <literal><! ... ></literal> in - your document. Everything between these delimiters is SGML syntax as - you might find within a DTD.</para> - - <para>As you may just have realised, the <link - linkend="sgml-primer-doctype-declaration">DOCTYPE declaration</link> - is an example of SGML syntax that you need to include in your - document…</para> - </sect1> - - <sect1> - <title>Comments</title> - - <para>Comments are an SGML construction, and are normally only valid - inside a DTD. However, as <xref linkend="sgml-primer-sgml-escape"> - shows, it is possible to use SGML syntax within your document.</para> - - <para>The delimiter for SGML comments is the string - “<literal>--</literal>”. The first occurence of this string - opens a comment, and the second closes it.</para> - - <example> - <title>SGML generic comment</title> - - <programlisting> -<!-- test comment --></programlisting> - - <programlisting><![ CDATA [ -<!-- This is inside the comment --> - -<!-- This is another comment --> - -<!-- This is one way - of doing multiline comments --> - -<!-- This is another way of -- - -- doing multiline comments -->]]></programlisting> - </example> - - <![ %output.print; [ - <important> - <title>Use 2 dashes</title> - - <para>There is a problem with producing the Postscript and PDF versions - of this document. The above example probably shows just one hyphen - symbol, <literal>-</literal> after the <literal><!</literal> and - before the <literal>></literal>.</para> - - <para>You <emphasis>must</emphasis> use two <literal>-</literal>, - <emphasis>not</emphasis> one. The Postscript and PDF versions have - translated the two <literal>-</literal> in the original to a longer, - more professional <emphasis>em-dash</emphasis>, and broken this - example in the process.</para> - - <para>The HTML, plain text, and RTF versions of this document are not - affected.</para> - </important> - ]]> - - <para>If you have used HTML before you may have been shown different rules - for comments. In particular, you may think that the string - <literal><!--</literal> opens a comment, and it is only closed by - <literal>--></literal>.</para> - - <para>This is <emphasis>not</emphasis> the case. A lot of web browsers - have broken HTML parsers, and will accept that as valid. However, the - SGML parsers used by the Documentation Project are much stricter, and - will reject documents that make that error.</para> - - <example> - <title>Errorneous SGML comments</title> - - <programlisting><![ CDATA [ -<!-- This is in the comment -- - - THIS IS OUTSIDE THE COMMENT! - - -- back inside the comment -->]]></programlisting> - - <para>The SGML parser will treat this as though it were actually;</para> - - <programlisting> -<!THIS IS OUTSIDE THE COMMENT></programlisting> - - <para>This is not valid SGML, and may give confusing error - messages.</para> - - <programlisting> -<![ CDATA [<!--------------- This is a very bad idea --------------->]]></programlisting> - - <para>As the example suggests, <emphasis>do not</emphasis> write - comments like that.</para> - - <programlisting> -<![ CDATA [<!--===================================================-->]]></programlisting> - - <para>That is a (slightly) better approach, but it still potentially - confusing to people new to SGML.</para> - </example> - - <sect2> - <title>For you to do…</title> - - <procedure> - <step> - <para>Add some comments to <filename>example.sgml</filename>, and - check that the file still validates using &man.nsgmls.1;</para> - </step> - - <step> - <para>Add some invalid comments to - <filename>example.sgml</filename>, and see the error messages that - &man.nsgmls.1; gives when it encounters an invalid comment.</para> - </step> - </procedure> - </sect2> - </sect1> - - <sect1> - <title>Entities</title> - - <para>Entities are a mechanism for assigning names to chunks of content. - As an SGML parser processes your document, any entities it finds are - replaced by the content of the entity.</para> - - <para>This is a good way to have re-usable, easily changeable chunks of - content in your SGML documents. It is also the only way to include one - marked up file inside another using SGML.</para> - - <para>There are two types of entities which can be used in two different - situations; <emphasis>general entities</emphasis> and - <emphasis>parameter entities</emphasis>.</para> - - <sect2 id="sgml-primer-general-entities"> - <title>General Entities</title> - - <para>You can not use general entities in an SGML context (although you - define them in one). They can only be used in your document. - Contrast this with <link - linkend="sgml-primer-parameter-entities">parameter - entities</link>.</para> - - <para>Each general entity has a name. When you want to reference a - general entity (and therefore include whatever text it represents in - your document), you write - <literal>&<replaceable>entity-name</replaceable>;</literal>. For - example, suppose you had an entity called - <literal>current.version</literal> which expanded to the current - version number of your product. You could write;</para> - - <programlisting> -<![ CDATA [<para>The current version of our product is - ¤t.version;.</para>]]></programlisting> - - <para>When the version number changes you can simply change the - definition of the value of the general entity and reprocess your - document.</para> - - <para>You can also use general entities to enter characters that you - could not otherwise include in an SGML document. For example, < - and & can not normally appear in an SGML document. When the SGML - parser sees the < symbol it assumes that a tag (either a start tag - or an end tag) is about to appear, and when it sees the & symbol - it assumes the next text will be the name of an entity.</para> - - <para>Fortunately, you can use the two general entities &lt; and - &amp; whenever you need to include one or other of these </para> - - <para>A general entity can only be defined within an SGML context. - Typically, this is done immediately after the DOCTYPE - declaration.</para> - - <example> - <title>Defining general entities</title> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [ -<!ENTITY current.version "3.0-RELEASE"> -<!ENTITY last.version "2.2.7-RELEASE"> -]>]]></programlisting> - - <para>Notice how the DOCTYPE declaration has been extended by adding a - square bracket at the end of the first line. The two entities are - then defined over the next two lines, before the square bracket is - closed, and then the DOCTYPE declaration is closed.</para> - - <para>The square brackets are necessary to indicate that we are - extending the DTD indicated by the DOCTYPE declaration.</para> - </example> - </sect2> - - <sect2 id="sgml-primer-parameter-entities"> - <title>Parameter entities</title> - - <para>Like <link linkend="sgml-primer-general-entities">general - entities</link>, parameter entities are used to assign names to - reusable chunks of text. However, where as general entities can only - be used within your document, parameter entities can only be used - within an <link linkend="sgml-primer-sgml-escape">SGML - context</link>.</para> - - <para>Parameter entities are defined in a similar way to general - entities. However, instead of using - <literal>&<replaceable>entity-name</replaceable>;</literal> to - refer to them, use - <literal>%<replaceable>entity-name</replaceable>;</literal><footnote> - <para><emphasis>P</emphasis>arameter entities use the - <emphasis>P</emphasis>ercent symbol.</para> - </footnote>. The definition also includes the <literal>%</literal> - between the <literal>ENTITY</literal> keyword and the name of the - entity.</para> - - <example> - <title>Defining parameter entities</title> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [ -<!ENTITY % param.some "some"> -<!ENTITY % param.text "text"> -<!ENTITY % param.new "%param.some more %param.text"> - -<!-- %param.new now contains "some more text" --> -]>]]></programlisting> - </example> - - <para>This may not seem particularly useful. It will be.</para> - </sect2> - - <sect2> - <title>For you to do…</title> - - <procedure> - <step> - <para>Add a general entity to - <filename>example.sgml</filename>.</para> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" [ -<!ENTITY version "1.1"> -]> - -<html> - <head> - <title>An example HTML file</title> - </head> - - <!-- You might well have some comments in here as well --> - - <body> - <p>This is a paragraph containing some text.</p> - - <p>This paragraph contains some more text.</p> - - <p align="right">This paragraph might be right-justified.</p> - - <p>The current version of this document is: &version;</p> - </body> -</html>]]></programlisting> - </step> - - <step> - <para>Validate the document using &man.nsgmls.1;</para> - </step> - - <step> - <para>Load <filename>example.sgml</filename> into your web browser - (you may need to copy it to <filename>example.html</filename> - before your browser recognises it as an HTML document).</para> - - <para>Unless your browser is very advanced, you won't see the entity - reference <literal>&version;</literal> replaced with the - version number. Most web browsers have very simplistic parsers - which do not handle proper SGML<footnote> - <para>This is a shame. Imagine all the problems and hacks (such - as Server Side Includes) that could be avoided if they - did.</para> - </footnote>.</para> - </step> - - <step> - <para>The solution is to <emphasis>normalise</emphasis> your - document using an SGML normaliser. The normaliser reads in valid - SGML and outputs equally valid SGML which has been transformed in - some way. One of the ways in which the normaliser transforms the - SGML is to expand all the entity references in the document, - replacing the entities with the text that they represent.</para> - - <para>You can use &man.sgmlnorm.1; to do this.</para> - - <screen>&prompt.user; <userinput>sgmlnorm example.sgml > example.html</userinput></screen> - - <para>You should find a normalised (i.e., entity references - expanded) copy of your document in - <filename>example.html</filename>, ready to load into your web - browser.</para> - </step> - - <step> - <para>If you look at the output from &man.sgmlnorm.1; you will see - that it does not include a DOCTYPE declaration at the start. To - include this you need to use the <option>-d</option> - option;</para> - - <screen>&prompt.user; <userinput>sgmlnorm -d example.sgml > example.html</userinput></screen> - </step> - </procedure> - </sect2> - </sect1> - - <sect1> - <title>Using entities to include files</title> - - <para>Entities (both <link - linkend="sgml-primer-general-entities">general</link> and <link - linkend="sgml-primer-parameter-entities">parameter</link>) are - particularly useful when used to include one file inside another.</para> - - <sect2 id="sgml-primer-include-using-gen-entities"> - <title>Using general entities to include files</title> - - <para>Suppose you have some content for an SGML book organised into - files, one file per chapter, called - <filename>chapter1.sgml</filename>, - <filename>chapter2.sgml</filename>, and so forth, with a - <filename>book.sgml</filename> file that will contain these - chapters.</para> - - <para>In order to use the contents of these files as the values for your - entities, you declare them with the <literal>SYSTEM</literal> keyword. - This directs the SGML parser to use the contents of the named file as - the value of the entity.</para> - - <example> - <title>Using general entities to include files</title> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [ -<!ENTITY chapter.1 SYSTEM "chapter1.sgml"> -<!ENTITY chapter.2 SYSTEM "chapter2.sgml"> -<!ENTITY chapter.3 SYSTEM "chapter3.sgml"> -<!-- And so forth --> -]> - -<html> - <!-- Use the entities to load in the chapters --> - - &chapter.1; - &chapter.2; - &chapter.3; -</html>]]></programlisting> - </example> - - <warning> - <para>When using general entities to include other files within a - document, the files being included - (<filename>chapter1.sgml</filename>, - <filename>chapter2.sgml</filename>, and so on) <emphasis>must - not</emphasis> start with a DOCTYPE declaration. This is a syntax - error.</para> - </warning> - </sect2> - - <sect2> - <title>Using parameter entities to include files</title> - - <para>Recall that parameter entities can only be used inside an SGML - context. Why then would you want to include a file within an SGML - context?</para> - - <para>You can use this to ensure that you can reuse your general - entities.</para> - - <para>Suppose that you had many chapters in your document, and you - reused these chapters in two different books, each book organising the - chapters in a different fashion.</para> - - <para>You could list the entities at the top of each book, but this - quickly becomes cumbersome to manage.</para> - - <para>Instead, place the general entity definitions inside one file, - and use a parameter entity to include that file within your - document.</para> - - <example> - <title>Using parameter entities to include files</title> - - <para>First, place your entity definitions in a separate file, called - <filename>chapters.ent</filename>. This file contains the - following;</para> - - <programlisting> -<![ CDATA [<!ENTITY chapter.1 SYSTEM "chapter1.sgml"> -<!ENTITY chapter.2 SYSTEM "chapter2.sgml"> -<!ENTITY chapter.3 SYSTEM "chapter3.sgml">]]></programlisting> - - <para>Now create a parameter entity to refer to the contents of the - file. Then use the parameter entity to load the file into the - document, which will then make all the general entities available - for use. Then use the general entities as before;</para> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [ -<!-- Define a parameter entity to load in the chapter general entities --> -<!ENTITY % chapters SYSTEM "chapters.ent"> - -<!-- Now use the parameter entity to load in this file --> -%chapters; -]> - -<html> - &chapter.1; - &chapter.2; - &chapter.3; -</html>]]></programlisting> - </example> - </sect2> - - <sect2> - <title>For you to do…</title> - - <sect3> - <title>Use general entities to include files</title> - - <procedure> - <step> - <para>Create three files, <filename>para1.sgml</filename>, - <filename>para2.sgml</filename>, and - <filename>para3.sgml</filename>.</para> - - <para>Put content similar to the following in each file;</para> - - <programlisting> -<![ CDATA [<p>This is the first paragraph.</p>]]></programlisting> - </step> - - <step> - <para>Edit <filename>example.sgml</filename> so that it looks like - this;</para> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [ -<!ENTITY version "1.1"> -<!ENTITY para1 SYSTEM "para1.sgml"> -<!ENTITY para2 SYSTEM "para2.sgml"> -<!ENTITY para3 SYSTEM "para3.sgml"> -]> - -<html> - <head> - <title>An example HTML file</title> - </head> - - <body> - <p>The current version of this document is: &version;</p> - - ¶1; - ¶2; - ¶3; - </body> -</html>]]></programlisting> - </step> - - <step> - <para>Produce <filename>example.html</filename> by normalising - <filename>example.sgml</filename>.</para> - - <screen>&prompt.user; <userinput>sgmlnorm -d example.sgml > example.html</userinput></screen> - </step> - - <step> - <para>Load <filename>example.html</filename> in to your web - browser, and confirm that the - <filename>para<replaceable>n</replaceable>.sgml</filename> files - have been included in <filename>example.html</filename>.</para> - </step> - </procedure> - </sect3> - - <sect3> - <title>Use parameter entities to include files</title> - - <note> - <para>You must have taken the previous steps first.</para> - </note> - - <procedure> - <step> - <para>Edit <filename>example.sgml</filename> so that it looks like - this;</para> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [ -<!ENTITY % entities SYSTEM "entities.sgml"> %entities; -]> - -<html> - <head> - <title>An example HTML file</title> - </head> - - <body> - <p>The current version of this document is: &version;</p> - - ¶1; - ¶2; - ¶3; - </body> -</html>]]></programlisting> - </step> - - <step> - <para>Create a new file, <filename>entities.sgml</filename>, with - this content;</para> - - <programlisting> -<![ CDATA [<!ENTITY version "1.1"> -<!ENTITY para1 SYSTEM "para1.sgml"> -<!ENTITY para2 SYSTEM "para2.sgml"> -<!ENTITY para3 SYSTEM "para3.sgml">]]></programlisting> - </step> - - <step> - <para>Produce <filename>example.html</filename> by normalising - <filename>example.sgml</filename>.</para> - - <screen>&prompt.user; <userinput>sgmlnorm -d example.sgml > example.html</userinput></screen> - </step> - - <step> - <para>Load <filename>example.html</filename> in to your web - browser, and confirm that the - <filename>para<replaceable>n</replaceable>.sgml</filename> files - have been included in <filename>example.html</filename>.</para> - </step> - </procedure> - </sect3> - </sect2> - </sect1> - - <sect1 id="sgml-primer-marked-sections"> - <title>Marked sections</title> - - <para>SGML provides a mechanism to indicate that particular pieces of the - document should be processed in a special way. These are termed - “marked sections”.</para> - - <example> - <title>Structure of a marked section</title> - - <programlisting> -<![ <replaceable>KEYWORD</replaceable> [ - Contents of marked section -]]></programlisting> - </example> - - <para>As you would expect, being an SGML construct, a marked section - starts <literal><!</literal>.</para> - - <para>The first square bracket begins to delimit the marked - section.</para> - - <para><replaceable>KEYWORD</replaceable> describes how this marked - section should be processed by the parser.</para> - - <para>The second square bracket indicates that the content of the marked - section starts here.</para> - - <para>The marked section is finished by closing the two square brackets, - and then returning to the document context from the SGML context with - <literal>></literal></para> - - <sect2> - <title>Marked section keywords</title> - - <sect3> - <title><literal>CDATA</literal>, <literal>RCDATA</literal></title> - - <para>These keywords denote the marked sections <emphasis>content - model</emphasis>, and allow you to change it from the - default.</para> - - <para>When an SGML parser is processing a document it keeps track - of what is called the “content model”.</para> - - <para>Briefly, the content model describes what sort of content the - parser is expecting to see, and what it will do with it when it - finds it.</para> - - <para>The two content models you will probably find most useful are - <literal>CDATA</literal> and <literal>RCDATA</literal>.</para> - - <para><literal>CDATA</literal> is for “Character Data”. - If the parser is in this content model then it is expecting to see - characters, and characters only. In this model the < and & - symbols lose their special status, and will be treated as ordinary - characters.</para> - - <para><literal>RCDATA</literal> is for “Entity references and - character data” If the parser is in this content model then it - is expecting to see characters <emphasis>and</emphasis> entities. - < loses its special status, but & will still be treated as - starting the beginning of a general entity.</para> - - <para>This is particularly useful if you are including some verbatim - text that contains lots of < and & characters. While you - could go through the text ensuring that every < is converted to a - &lt; and every & is converted to a &amp;, it can be - easier to mark the section as only containing CDATA. When the SGML - parser encounters this it will ignore the < and & symbols - embedded in the content.</para> - - <!-- The nesting of CDATA within the next example is disgusting --> - - <example> - <title>Using a CDATA marked section</title> - - <programlisting> -<para>Here is an example of how you would include some text - that contained many &lt; and &amp; symbols. The sample - text is a fragment of HTML. The surrounding text (<para> and - <programlisting>) are from DocBook.</para> - -<programlisting> - <![ CDATA [ <![ CDATA [ - <p>This is a sample that shows you some of the elements within - HTML. Since the angle brackets are used so many times, it's - simpler to say the whole example is a CDATA marked section - than to use the entity names for the left and right angle - brackets throughout.</p> - - <ul> - <li>This is a listitem</li> - <li>This is a second listitem</li> - <li>This is a third listitem</li> - </ul> - - <p>This is the end of the example.</p>]]> - ]]> -</programlisting></programlisting> - - <para>If you look at the source for this document you will see this - technique used throughout.</para> - </example> - </sect3> - - <sect3> - <title><literal>INCLUDE</literal> and - <literal>IGNORE</literal></title> - - <para>If the keyword is <literal>INCLUDE</literal> then the contents - of the marked section will be processed. If the keyword is - <literal>IGNORE</literal> then the marked section is ignored and - will not be processed. It will not appear in the output.</para> - - <example> - <title>Using <literal>INCLUDE</literal> and - <literal>IGNORE</literal> in marked sections</title> - - <programlisting> -<![ INCLUDE [ - This text will be processed and included. -]]> - -<![ IGNORE [ - This text will not be processed or included. -]]></programlisting> - </example> - - <para>By itself, this isn't too useful. If you wanted to remove text - from your document you could cut it out, or wrap it in - comments.</para> - - <para>It becomes more useful when you realise you can use <link - linkend="sgml-primer-parameter-entities">parameter entities</link> - to control this. Remember that parameter entities can only be used - in SGML contexts, and the keyword of a marked section - <emphasis>is</emphasis> an SGML context.</para> - - <para>For example, suppose that you produced a hard-copy version of - some documentation and an electronic version. In the electronic - version you wanted to include some extra content that wasn't to - appear in the hard-copy.</para> - - <para>Create a parameter entity, and set it's value to - <literal>INCLUDE</literal>. Write your document, using marked - sections to delimit content that should only appear in the - electronic version. In these marked sections use the parameter - entity in place of the keyword.</para> - - <para>When you want to produce the hard-copy version of the document, - change the parameter entity's value to <literal>IGNORE</literal> and - reprocess the document.</para> - - <example> - <title>Using a parameter entity to control a marked - section</title> - - <programlisting> -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [ -<!ENTITY % electronic.copy "INCLUDE"> -]]> - -... - -<![ %electronic.copy [ - This content should only appear in the electronic - version of the document. -]]></programlisting> - - <para>When producing the hard-copy version, change the entity's - definition to;</para> - - <programlisting> -<!ENTITY % electronic.copy "IGNORE"></programlisting> - - <para>On reprocessing the document, the marked sections that use - <literal>%electronic.copy</literal> as their keyword will be - ignored.</para> - </example> - </sect3> - </sect2> - - <sect2> - <title>For you to do…</title> - - <procedure> - <step> - <para>Create a new file, <filename>section.sgml</filename>, that - contains the following;</para> - - <programlisting> -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [ -<!ENTITY % text.output "INCLUDE"> -]> - -<html> - <head> - <title>An example using marked sections</title> - </head> - - <body> - <p>This paragraph <![ CDATA [contains many < - characters (< < < < <) so it is easier - to wrap it in a CDATA marked section ]]></p> - - <![ IGNORE [ - <p>This paragraph will definitely not be included in the - output.</p> - ]]> - - <![ <![ CDATA [%text.output]]> [ - <p>This paragraph might appear in the output, or it - might not.</p> - - <p>Its appearance is controlled by the <![CDATA[%text.output]]> - parameter entity.</p> - ]]> - </body> -</html></programlisting> - </step> - - <step> - <para>Normalise this file using &man.sgmlnorm.1; and examine the - output. Notice which paragraphs have appeared, which have - disappeared, and what has happened to the content of the CDATA - marked section.</para> - </step> - - <step> - <para>Change the definition of the <literal>text.output</literal> - entity from <literal>INCLUDE</literal> to - <literal>IGNORE</literal>. Re-normalise the file, and examine the - output to see what has changed. </para> - </step> - </procedure> - </sect2> - </sect1> - - <sect1> - <title>Conclusion</title> - - <para>That is the conclusion of this SGML primer. For reasons of space - and complexity several things have not been covered in depth (or at - all). However, the previous sections cover enough SGML for you to be - able to follow the organisation of the FDP documentation.</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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/en_US.ISO8859-1/books/fdp-primer/structure/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/structure/chapter.sgml deleted file mode 100644 index 6b42003e89..0000000000 --- a/en_US.ISO8859-1/books/fdp-primer/structure/chapter.sgml +++ /dev/null @@ -1,287 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/structure/chapter.sgml,v 1.2 1999/09/06 06:52:42 peter Exp $ ---> - -<chapter id="structure"> - <title>Structuring documents under <filename>doc/</filename></title> - - <para>The <filename>doc/</filename> tree is organised in a particular - fashion, and the documents that are part of the FDP are in turn organised - in a particular fashion. The aim is to make it simple to add new - documentation in to the tree and;</para> - - <orderedlist> - <listitem> - <para>be easy to automate converting the document to other formats</para> - </listitem> - - <listitem> - <para>promote consistency between the different documentation - organisations, to make it easier to switch between working on - different documents</para> - </listitem> - - <listitem> - <para>make it easy to decide where in the tree new documentation should - be placed</para> - </listitem> - </orderedlist> - - <para>In addition, the documentation tree has to accommodate documentation - that could be in many different languages and in many different - encodings. It is important that the structure of the documentation tree - does not enforce any particular defaults or cultural preferences.</para> - - <sect1> - <title>The top level, <filename>doc/</filename></title> - - <para>There are two types of directory under <filename>doc/</filename>, - each with very specific directory names and meanings.</para> - - <segmentedlist> - <seglistitem> - <seg><filename>share/</filename></seg> - - <seg>Contains files that are not specific to the various translations - and encodings of the documentation. Contains subdirectories to - further categorise the information. For example, the files that - comprise the &man.make.1; infrastructure are in - <filename>share/mk</filename>, while the additional SGML support - files (such as the FreeBSD extended DocBook DTD) are in - <filename>share/sgml</filename>.</seg> - </seglistitem> - - <seglistitem> - <seg><filename><replaceable>lang</replaceable>.<replaceable>encoding</replaceable>/</filename></seg> - - <seg>One directory exists for each available translation and encoding - of the documentation, for example - <filename>en_US.ISO_8859-1/</filename> and - <filename>zh_TW.Big5/</filename>. The names are long, but by fully - specifying the language and encoding we prevent any future headaches - should a translation team want to provide the documentation in the - same language but in more than one encoding. This also completely - isolates us from any problems that might be caused by a switch to - Unicode.</seg> - </seglistitem> - </segmentedlist> - </sect1> - - <sect1> - <title>The - <filename><replaceable>lang</replaceable>.<replaceable>encoding</replaceable>/</filename> directories</title> - - <para>These directories contain the documents themselves. The - documentation is split in to up to three more categories at this - level, indicated by the different directory names.</para> - - <segmentedlist> - <seglistitem> - <seg><filename>articles</filename></seg> - - <seg>Documentation marked up as a DocBook <sgmltag>article</sgmltag> - (or equivalent). Reasonably short, and broken up in to sections. - Normally only available as one HTML file.</seg> - </seglistitem> - - <seglistitem> - <seg><filename>books</filename></seg> - - <seg>Documentation marked up as a DocBook <sgmltag>book</sgmltag> (or - equivalent). Book length, and broken up in to chapters. Normally - available as both one large HTML file (for people with fast - connections, or who want to print it easily from their browser) and - as a collection of linked, smaller files.</seg> - </seglistitem> - - <seglistitem> - <seg><filename>man</filename></seg> - - <seg>For translations of the system manual pages. This directory will - contain one or more - <filename>man<replaceable>n</replaceable></filename> directories, - corresponding to the sections that have been translated.</seg> - </seglistitem> - </segmentedlist> - - <para>Not every - <filename><replaceable>lang</replaceable>.<replaceable>encoding</replaceable></filename> directory will contain all of these directories. It depends - on much translation has been accomplished by that translation - team.</para> - </sect1> - - <sect1> - <title>Document specific information</title> - - <para>This section contains specific notes about particular documents - managed by the FDP.</para> - - <sect2> - <title>The Handbook</title> - - <subtitle><filename>books/handbook/</filename></subtitle> - - <para>The Handbook is written to comply with the FreeBSD DocBook - extended DTD.</para> - - <para>The Handbook is organised as a DocBook <sgmltag>book</sgmltag>. - It is then divided into <sgmltag>part</sgmltag>s, each of which may - contain several <sgmltag>chapter</sgmltag>s. - <sgmltag>chapter</sgmltag>s are further subdivided into sections - (<sgmltag>sect1</sgmltag>) and subsections (<sgmltag>sect2</sgmltag>, - <sgmltag>sect3</sgmltag>) and so on.</para> - - <sect3> - <title>Physical organisation</title> - - <para>There are a number of files and directories within the - <filename>handbook</filename> directory.</para> - - <note> - <para>The Handbook's organisation may change over time, and this - document may lag in detailing the organisational changes. If you - have any questions about how the Handbook is organised, please - contact the FreeBSD Documentation Project, - <email>freebsd-doc@FreeBSD.org</email>.</para> - </note> - - <sect4> - <title><filename>Makefile</filename></title> - - <para>The <filename>Makefile</filename> defines some variables that - affect how the SGML source is converted to other formats, and - lists the various source files that make up the Handbook. It then - includes the standard <filename>doc.project.mk</filename> file, to - bring in the rest of the code that handles converting documents - from one format to another.</para> - </sect4> - - <sect4> - <title><filename>book.sgml</filename></title> - - <para>This is the top level document in the Handbook. It contains - the Handbook's <link - linkend="sgml-primer-doctype-declaration">DOCTYPE - declaration</link>, as well as the elements that describe the - Handbook's structure.</para> - - <para><filename>book.sgml</filename> uses <link - linkend="sgml-primer-parameter-entities">parameter - entities</link> to load in the files with the - <filename>.ent</filename> extension. These files (described later) - then define <link linkend="sgml-primer-general-entities">general - entities</link> that are used throughout the rest of the - Handbook.</para> - </sect4> - - <sect4> - <title><filename><replaceable>directory</replaceable>/chapter.sgml</filename></title> - - <para>Each chapter in the Handbook is stored in a file called - <filename>chapter.sgml</filename> in a separate directory from the - other chapters. Each directory is named after the value of the - <literal>id</literal> attribute on the <sgmltag>chapter</sgmltag> - element.</para> - - <para>For example, if one of the chapter files contains:</para> - - <programlisting><![ CDATA [ -<chapter id="kernelconfiguration"> -... -</chapter>]]></programlisting> - - <para>then it will be called <filename>chapter.sgml</filename> in - the <filename>kernelconfiguration</filename> directory. In - general, the entire contents of the chapter will be held in this - file.</para> - - <para>When the HTML version of the Handbook is produced, this will - yield <filename>kernelconfiguration.html</filename>. This is - because of the <literal>id</literal> value, and is not related to - the name of the directory.</para> - - <para>In earlier versions of the Handbook the files were stored in - the same directory as <filename>book.sgml</filename>, and named - after the value of the <literal>id</literal> attribute on the - file's <sgmltag>chapter</sgmltag> element. Moving them in to - separate directories prepares for future plans for the Handbook. - Specifically, it will soon be possible to include images in each - chapter. It makes more sense for each image to be stored in a - directory with the text for the chapter than to try and keep the - text for all the chapters, and all the images, in one large - directory. Namespace collisions would be inevitable, and it is - easier to work with several directories with a few files in them - than it is to work with one directory that has many files in - it.</para> - - <para>A brief look will show that there are many directories with - individual <filename>chapter.sgml</filename> files, including - <filename>basics/chapter.sgml</filename>, - <filename>introduction/chapter.sgml</filename>, and - <filename>printing/chapter.sgml</filename>.</para> - - <important> - <para>Chapters and/or directories should not be named in a fashion - that reflects their ordering within the Handbook. This ordering - might change as the content within the Handbook is reorganised; - this sort of reorganistion should not (generally) include the - need to rename files (unless entire chapters are being promoted - or demoted within the hierarchy).</para> - </important> - - <para>Each <filename>chapter.sgml</filename> file will not be a - complete SGML document. In particular, they will not have their - own DOCTYPE line at the start of the file.</para> - - <para>This is unfortunate as - it makes it impossible to treat these as generic SGML - files and simply convert them to HTML, RTF, PS, and other - formats in the same way the main Handbook is generated. This - <emphasis>would</emphasis> force you to rebuild the Handbook - every time you want to see the effect a change as had on just - one chapter.</para> - </sect4> - </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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml deleted file mode 100644 index 8a014549cd..0000000000 --- a/en_US.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml +++ /dev/null @@ -1,81 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $FreeBSD$ ---> - -<chapter id="stylesheets"> - <title>* Stylesheets</title> - - <para>SGML says nothing about how a document should be displayed to the - user, or rendered on paper. To do that, various languages have been - developed to describe stylesheets, including DynaText, Panorama, SPICE, - JSSS, FOSI, CSS, and DSSSL.</para> - - <para>For DocBook, we are using stylesheets written in DSSSL. For HTML we - are using CSS.</para> - - <sect1> - <title>* DSSSL</title> - - <para>The Documentation Project uses a slightly customised version of - Norm Walsh's modular DocBook stylesheets.</para> - - <para>These can be found in - <filename>textproc/dsssl-docbook-modular</filename>.</para> - - <para>The modified stylesheets are not in the ports system. Instead they - are part of the Documentation Project source repository, and can be - found in <filename>doc/share/sgml/freebsd.dsl</filename>. It is well - commented, and pending completion of this section you are encouraged to - examine that file to see how some of the available options in the - standard stylesheets have been configured in order to customise the - output for the FreeBSD Documentation Project. That file also contains - examples showing how to extend the elements that the stylesheet - understands, which is how the FreeBSD specific elements have been - formatted.</para> - </sect1> - - <sect1> - <title>* CSS</title> - - <para></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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/en_US.ISO8859-1/books/fdp-primer/the-website/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/the-website/chapter.sgml deleted file mode 100644 index 92502c7550..0000000000 --- a/en_US.ISO8859-1/books/fdp-primer/the-website/chapter.sgml +++ /dev/null @@ -1,217 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/the-website/chapter.sgml,v 1.3 1999/09/06 06:52:43 peter Exp $ ---> - -<chapter id="the-website"> - <title>The Website</title> - - <sect1> - <title>Preparation</title> - - <para>Get 200MB free disk space. You will need the disk space for the - SGML tools, a subset of the CVS tree, temporary build space and the - installed web pages. If you aready have installed the SGML tools and - the CVS tree, you need only ~100MB free disk space.</para> - - <note> - <para>Make sure your documentation ports are up to date! When in - doubt, remove the old ports using &man.pkg.delete.1; command before - installing the port. For example, we currently depend on - jade-1.2 and if you have installed jade-1.1, please do</para> - - <screen>&prompt.root; <userinput>pkg_delete jade-1.1</userinput></screen> - </note> - - <para>Setup a CVS repository. You need the directories www, doc and - ports in the CVS tree (plus the CVSROOT of course). Please read the - CVSup introduction <ulink - url="http://www.freebsd.org/handbook/synching.html#CVSUP"> - http://www.freebsd.org/handbook/synching.html#CVSUP</ulink> how to - mirror a CVS tree or parts of a CVS tree.</para> - - <para>The essential cvsup collections are: <literal>www</literal>, - <literal>doc-all</literal>, <literal>cvs-base</literal>, and - <literal>ports-base</literal>.</para> - - <para>These collections require ~100MB free disk space.</para> - - <para>A full CVS tree - including <literal>src</literal>, - <literal>doc</literal>, <literal>www</literal>, and - <literal>ports</literal> - is currently 650MB large.</para> - </sect1> - - <sect1> - <title>Build the web pages from scratch</title> - - <procedure> - <step> - <para>Go to into a build directory with at least 60MB of free - space.</para> - - <screen>&prompt.root; <userinput>mkdir /var/tmp/webbuild</userinput> -&prompt.root; <userinput>cd /var/tmp/webuild</userinput></screen> - </step> - - <step> - <para>Checkout the SGML files from the CVS tree.</para> - - <screen>&prompt.root; <userinput>cvs -R co www doc</userinput></screen> - </step> - - <step><para>Change in to the <filename>www</filename> directory, and - run the &man.make.1; <maketarget>links</maketarget> target, to - create the necessary symbolic links.</para> - - <screen>&prompt.root; <userinput>cd www</userinput> -&prompt.root; <userinput>make links</userinput></screen> - </step> - - <step> - <para>Change in to the <filename>en</filename> directory, and run - the &man.make.1; <maketarget>all</maketarget> target, to create - the web pages.</para> - - <screen>&prompt.root; <userinput>cd en</userinput> -&prompt.root; <userinput>make all</userinput></screen> - </step> - </procedure> - </sect1> - - <sect1> - <title>Install the web pages into your web server</title> - - <procedure> - <step> - <para>If you have moved out of the <filename>en</filename> - directory, change back to it.</para> - - <screen>&prompt.root; <userinput>cd <replaceable>path</replaceable>/www/en</userinput></screen> - </step> - - <step> - <para>Run the &man.make.1; <maketarget>install</maketarget> target, - setting the <makevar>DESTDIR</makevar> variable to the name of the - directory you want to install the files to.</para> - - <screen>&prompt.root; <userinput>make DESTDIR=<replaceable>/usr/local/www</replaceable> install</userinput></screen> - </step> - - <step> - <para>If you have previously installed the web pages in to the same - directory the install process will not have deleted any old or - outdated pages. For example, if you build and install a new copy - of the site every day, this command will find and delete all - files that have not been updated in three days.</para> - - <screen>&prompt.root; <userinput>find <replaceable>/usr/local/www</replaceable> -ctime 3 -print0 | xargs -0 rm</userinput></screen> - </step> - </procedure> - </sect1> - - <sect1> - <title>Environment variables</title> - - <variablelist> - <varlistentry> - <term><envar>CVSROOT</envar></term> - - <listitem> - <para>Location of the CVS tree. Essential.</para> - - <screen><userinput>&prompt.root; CVSROOT=/home/ncvs; export CVSROOT</userinput></screen> - </listitem> - </varlistentry> - - <varlistentry> - <term><makevar>ENGLISH_ONLY</makevar></term> - - <listitem> - <para>If set and not empty, the makefiles will build and - install only the English documents. All translations will be - ignored. E.g.:</para> - - <screen>&prompt.root; <userinput>make ENGLISH_ONLY=YES all install</userinput></screen> - - <para>If you want unset the variable - <makevar>ENGLISH_ONLY</makevar> and build all pages, including - translations, set the variable <makevar>ENGLISH_ONLY</makevar> - to an empty value</para> - - <screen>&prompt.root; <userinput>make ENGLISH_ONLY="" all install clean</userinput></screen> - </listitem> - </varlistentry> - - <varlistentry> - <term><makevar>WEB_ONLY</makevar></term> - - <listitem> - <para>If set and not empty, the makefiles wil build and install - only the HTML pages from the www directory. All documents from - the doc directory (Handbook, FAQ, Tutorials) will be ignored. - E.g.:</para> - - <screen>&prompt.root; <userinput>make WEB_ONLY=YES all install</userinput></screen> - </listitem> - </varlistentry> - - <varlistentry> - <term><makevar>NOPORTSCVS</makevar></term> - - <listitem> - <para>If set, the makefiles will not checkout files from the ports - cvs repository. Instead, it will copy the files from - <filename>/usr/ports</filename> (or where the variable - <envar>PORTSBASE</envar> points to).</para> - </listitem> - </varlistentry> - </variablelist> - - <para><envar>CVSROOT</envar> is an environment variable. You must set it - on the commandline or in your dot files (~/.profile).</para> - - <para><makevar>WEB_ONLY</makevar>, <makevar>ENGLISH_ONLY</makevar> and - <makevar>NOPORTSCVS</makevar> are makefile variables. You can set the - variables in <filename>/etc/make.conf</filename>, - <filename>Makefile.inc</filename> or as environment variables on the - commandline or in your dot files.</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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/en_US.ISO8859-1/books/fdp-primer/tools/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/tools/chapter.sgml deleted file mode 100644 index b47420fdb0..0000000000 --- a/en_US.ISO8859-1/books/fdp-primer/tools/chapter.sgml +++ /dev/null @@ -1,284 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML, HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/tools/chapter.sgml,v 1.7 1999/09/06 06:52:43 peter Exp $ ---> - -<chapter id="tools"> - <title>Tools</title> - - <para>The FDP uses a number of different software tools to help - manage the FreeBSD documentation, convert it to different output - formats, and so on. You will need to use these tools yourself if - you are to work with the FreeBSD documentation.</para> - - <para>All these tools are available as FreeBSD Ports and Packages, - greatly simplifying the work you have to do to install - them.</para> - - <para>You will need to install these tools before you work through - any of the examples in later chapters. The actual usage of these - tools is covered in these later chapters.</para> - - <important> - <title>Use <filename>textproc/docproj</filename> if possible</title> - - <para>You can save yourself a lot of time if you install the - <filename>textproc/docproj</filename> port. This is a - <emphasis>meta-port</emphasis> which does not contain any software - itself. Instead, it depends on various other ports being installed - correctly. Installing this port <emphasis>should</emphasis> - automatically download and install all of the packages listed in this - chapter that you need that are missing from your system.</para> - - <para>One of the packages that you might need is the JadeTeX macro set. - In turn, this macro set requires that TeX is installed. TeX is a large - package, and you only need it if you want to produce Postscript or PDF - output.</para> - - <para>To save yourself time and space you must specify whether or not you - want JadeTeX (and therefore TeX) installed when you install this port. - Either do; - - <screen>&prompt.root; <userinput>make JADETEX=yes install</userinput></screen> - - or - - <screen>&prompt.root; <userinput>make JADETEX=no install</userinput></screen> - - as necessary.</para> - </important> - - <sect1> - <title>Mandatory tools</title> - - <sect2> - <title>Software</title> - - <para>These programs are required before you can usefully work with - the FreeBSD documentation. They are all included in - <filename>textproc/docproj</filename>.</para> - - <variablelist> - <varlistentry> - <term><application>SP</application> - (<filename>textproc/sp</filename>)</term> - - <listitem> - <para>A suite of applications, including a validating SGML parser, - and an SGML normaliser.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><application>Jade</application> - (<filename>textproc/jade</filename>)</term> - - <listitem> - <para>A DSSSL implementation. Used for converting marked up - documents to other formats, including HTML and TeX.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><application>Tidy</application> - (<filename>www/tidy</filename>)</term> - - <listitem> - <para>An HTML 'pretty printer', used to reformat some of the - automatically generated HTML so that it is easier to - follow.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><application>Lynx</application> - (<filename>www/lynx-current</filename>)</term> - - <listitem> - <para>A text-mode WWW browser, &man.lynx.1; can also convert - HTML files to plain text.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - - <sect2> - <title>DTDs and Entities</title> - - <para>These are the DTDs and entity sets used by the FDP. They need to - be installed before you can work with any of the documentation.</para> - - <variablelist> - <varlistentry> - <term>HTML DTD (<filename>textproc/html</filename>)</term> - - <listitem> - <para>HTML is the markup language of choice for the World Wide - Web, and is used throughout the FreeBSD web site.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>LinuxDoc DTD (<filename>textproc/linuxdoc</filename>)</term> - - <listitem> - <para>Some FreeBSD documentation is marked up in LinuxDoc. The - FDP is actively migrating from LinuxDoc to DocBook.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>DocBook DTD (<filename>textproc/docbook</filename>)</term> - - <listitem> - <para>DocBook is designed for marking up technical documentation, - and the FDP is migrating from LinuxDoc to DocBook. At the time - of writing, this document, and the FreeBSD Handbook are marked - up in DocBook.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>ISO 8879 entities - (<filename>textproc/iso8879</filename>)</term> - - <listitem> - <para>19 of the ISO 8879:1986 character entity sets used by many - DTDs. Includes named mathematical symbols, additional - characters in the 'latin' character set (accents, diacriticals, - and so on), and greek symbols.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - - <sect2> - <title>Stylesheets</title> - - <para>The stylesheets are used when converting and formatting the - documentation for display on screen, printing, and so on.</para> - - <variablelist> - <varlistentry> - <term>Modular DocBook Stylesheets - (<filename>textproc/dsssl-docbook-modular</filename>)</term> - - <listitem> - <para>The Modular DocBook Stylesheets are used when converting - documentation marked up in DocBook to other formats, such as - HTML, or RTF.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - </sect1> - - <sect1> - <title>Optional tools</title> - - <para>You do not need to have any of the following installed. However, - you may find it easier to work with the documentation if you do, and - they may give you more flexibility in the output formats that can be - generated.</para> - - <sect2> - <title>Software</title> - - <variablelist> - <varlistentry> - <term><application>JadeTeX</application> and - <application>teTeX</application> - (<filename>print/jadetex</filename> and - <filename>print/teTeX</filename>)</term> - - <listitem> - <para><application>Jade</application> and - <application>teTeX</application> are used to convert DocBook - documents to DVI, Postscript, and PDF formats. The - <application>JadeTeX</application> macros are needed in order to - do this.</para> - - <para>If you do not intend to convert your documentation to one of - these formats (i.e., HTML, plain text, and RTF are sufficient) - then you do not need to install - <application>JadeTeX</application> and - <application>teTeX</application>. This can be a significant - space and time saver, as <application>teTeX</application> is - over 30MB in size.</para> - - <important> - <para>If you decide to install - <application>JadeTeX</application> and - <application>teTeX</application> then you will need to - configure <application>teTeX</application> after - <application>JadeTeX</application> has been installed. - <filename>print/jadetex/pkg/MESSAGE</filename> contains - detailed instructions explaining what you need to do.</para> - </important> - </listitem> - </varlistentry> - - <varlistentry> - <term><application>Emacs</application> or - <application>xemacs</application> - (<filename>editors/emacs</filename> or - <filename>editors/xemacs</filename>)</term> - - <listitem> - <para>Both these editors include a special mode for editing - documents marked up according to an SGML DTD. This mode - includes commands to reduce the amount of typing you need, and - help reduce the possibility of errors.</para> - - <para>You do not need to use them, any text editor can be used to - edit marked up documents. You may find they make you more - efficient.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>If anyone has recommendations for other software that is useful - when manipulating SGML documents, please let Nik Clayton - (<email>nik@FreeBSD.org</email>) know, so they can be added to this - list.</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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/en_US.ISO8859-1/books/fdp-primer/translations/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/translations/chapter.sgml deleted file mode 100644 index abc80c3879..0000000000 --- a/en_US.ISO8859-1/books/fdp-primer/translations/chapter.sgml +++ /dev/null @@ -1,474 +0,0 @@ -<!-- Copyright (c) 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/translations/chapter.sgml,v 1.3 1999/09/06 06:52:44 peter Exp $ ---> - -<chapter id="translations"> - <title>Translations</title> - - <para>This is the FAQ for people translating the FreeBSD documentation - (FAQ, Handbook, tutorials, man pages, and others) to different - languages.</para> - - <para>It is <emphasis>very</emphasis> heavily based on the translation FAQ - from the FreeBSD German Documentation Project, originally written by Frank - Gründer <email>elwood@mc5sys.in-berlin.de</email> and translated back to - English by Bernd Warken <email>bwarken@mayn.de</email>.</para> - - <para>The FAQ maintainer is Nik Clayton - <email>nik@FreeBSD.org</email>.</para> - - <qandaset> - <qandaentry> - <question> - <para>Why a FAQ?</para> - </question> - - <answer> - <para>More and more people are approaching the freebsd-doc mailing - list and volunteering to translate FreeBSD documentation to other - languages. This FAQ aims to answer their questions so they can start - translating documentation as quickly as possible.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>What do <phrase>i18n</phrase> and <phrase>l10n</phrase> - mean?</para> - </question> - - <answer> - <para><phrase>i18n</phrase> means - <phrase>internationalisation</phrase> and <phrase>l10n</phrase> - means <phrase>localisation</phrase>. They are just a convenient - shorthand.</para> - - <para><phrase>i18n</phrase> can be read as “i” followed by - 18 letters, followed by “n”. Similarly, - <phrase>l10n</phrase> is “l” followed by 10 letters, - followed by “n”.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Is there a mailing list for translators?</para> - </question> - - <answer> - <para>Yes, <email>freebsd-translate@ngo.org.uk</email>. Subscribe by - sending a message to - <email>freebsd-translate-request@ngo.org.uk</email> with the word - <literal>subscribe</literal> in the body of the message.</para> - - <para>You will receive a reply asking you to confirm your subscription - (in exactly the same manner as the the FreeBSD lists at <hostid - role="domainname">FreeBSD.org</hostid>).</para> - - <para>The primary language of the mailing list is English. However, - posts in other languages will be accepted. The mailing list is not - moderated, but you need to be a member of the list before you can - post to it.</para> - - <para>The mailing list is archived, but they are not currently - searchable. Sending the message <literal>help</literal> to - <email>majordomo@ngo.org.uk</email> will send back instructions on - how to access the archive.</para> - - <para>It is expected that the mailing list will transfer to <hostid - role="domainname">FreeBSD.org</hostid> and therefore become - <emphasis>official</emphasis> in the near future.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Are more translators needed?</para> - </question> - - <answer> - <para>Yes. The more people work on translation the faster it gets - done, and the faster changes to the English documentation are - mirrored in the translated documents.</para> - - <para>You do not have to be a professional translator to be able to - help.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>What languages do I need to know?</para> - </question> - - <answer> - <para>Ideally, you will have a good knowledge of written English, and - obviously you will need to be fluent in the language you are - translating to.</para> - - <para>English is not strictly necessary. For example, you could do a - Hungarian translation of the FAQ from the Spanish - translation.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>What software do I need to know?</para> - </question> - - <answer> - <para>It is strongly recommended that you maintain a local copy of the - FreeBSD CVS repository (at least the documentation part) either - using <application>CTM</application> or - <application>CVSup</application>. The "Staying current with FreeBSD" - chapter in the Handbook explains how to use these - applications.</para> - - <para>You should be comfortable using <application>CVS</application>. - This will allow you to see what has changed between different - versions of the files that make up the documentation.</para> - - <para>[XXX To Do -- write a tutorial that shows how to use CVSup to - get just the documentation, check it out, and see what's changed - between two arbitrary revisions]</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>How do I find out who else might be translating to the same - language?</para> - </question> - - <answer> - <para>The <ulink - url="http://www.FreeBSD.org/docproj/translations.html">Documentation - Project translations page</ulink> lists the translation efforts - that are currently known about. If someone else is already working - on translating documentation to your language, please don't - duplicate their efforts. Instead, contact them to see how you can - help.</para> - - <para>If no one is listed on that page as translating for your - language then send a message to - <email>freebsd-doc@FreeBSD.org</email> in case someone else is - thinking of doing a translation, but hasn't announced it yet.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>No one else is translating to my language. What do I do?</para> - </question> - - <answer> - <para>Congratulations, you have just started the “FreeBSD - <replaceable>your-language-here</replaceable> Documentation - Translation Project”. Welcome aboard.</para> - - <para>First, decide whether or not you've got the time to spare. Since - you are the only person working on your language at the moment it is - going to be your responsibility to publicise your work and - coordinate any volunteers that might want to help you.</para> - - <para>Write an e-mail to the Documentation Project mailing list, - announcing that you are going to translate the documentation, so the - Documentation Project translations page can be maintained.</para> - - <para>You should subscribe to the - <email>freebsd-translate@ngo.org.uk</email> mailing list (as - described earlier).</para> - - <para>If there is already someone in your country providing FreeBSD - mirroring services you should contact them and ask if they can - provide some webspace for your project, and possibly an e-mail - address or mailing list services.</para> - - <para>Then pick a document and start translating. It is best to start - with something fairly small—either the FAQ, or one of the - tutorials.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I've translated some documentation, where do I send it?</para> - </question> - - <answer> - <para>That depends. If you are already working with a translation team - (such as the Japanese team, or the German team) then they will have - their own procedures for handling submitted documentation, and these - will be outlined on their web pages.</para> - - <para>If you are the only person working on a particular language (or - you are responsible for a translation project and want to submit - your changes back to the FreeBSD project) then you should send your - translation to the FreeBSD project (see the next question).</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I'm the only person working on translating to this language, how - do I submit my translation?</para> - - <para>or</para> - - <para>We're a translation team, and want to submit documentation that - our members have translated for us?</para> - </question> - - <answer> - <para>First, make sure your translation is organised properly. This - means that it should drop in to the existing documentation tree and - build straight away.</para> - - <para>Currently, the FreeBSD documentation is stored in a top level - directory called <filename>doc/</filename>. Directories below this - are named according to the language code they are written in, as - defined in ISO639 (<filename>/usr/share/misc/iso639</filename> on a - version of FreeBSD newer than 20th January 1999).</para> - - <para>If your language can be encoded in different ways (for example, - Chinese) then there should be directories below this, one for each - encoding format you have provided.</para> - - <para>Finally, you should have directories for each document.</para> - - <para>For example, a hypothetical Swedish translation might look - like</para> - - <programlisting> doc/ - sv/ - Makefile - FAQ/ - Makefile - *.sgml</programlisting> - - <para><literal>sv</literal> is the ISO639 code for Swedish. Note the - two Makefiles, which will be used to build the documentation. There - is no separate language code for Swedish, so there is no - intermittent directory between the "sv" and "FAQ" - directories<footnote> - <para>This directory structure is going to change radically quite - soon. Please see the on-going discussions on the - <email>freebsd-doc@FreeBSD.org</email> mailing list for more - information.</para> - </footnote>.</para> - - <para>Use &man.tar.1; and &man.gzip.1; to compress up your - documentation, and send it to the project.</para> - - <screen>&prompt.user; <userinput>cd doc</userinput> -&prompt.user; <userinput>tar cf swedish-docs.tar sv</userinput> -&prompt.user; <userinput>gzip -9 swedish-docs.tar</userinput></screen> - - <para>Put <filename>swedish-docs.tar.gz</filename> somewhere. If you - do not have access to your own webspace (perhaps your ISP does not - let you have any) then you can e-mail Nik Clayton - <email>nik@FreeBSD.org</email>, and arrange to e-mail the files - when it is convenient.</para> - - <para>Either way, you should use &man.send-pr.1; to submit a report - indicating that you have submitted the documentation. It would be - very helpful if you could get other people to look over your - translation and double check it first, since it is unlikely that the - person committing it will be fluent in the language.</para> - - <para>Someone (probably the Documentation Project Manager, currently - Nik Clayton <email>nik@FreeBSD.org</email>) will then take your - translation and confirm that it builds. In particular, the - following things will be looked at:</para> - - <orderedlist> - <listitem> - <para>Do all your files use RCS strings (such as "ID").</para> - </listitem> - - <listitem> - <para>Does <command>make all</command> in the - <filename>sv</filename> directory work correctly.</para> - </listitem> - - <listitem> - <para>Does <command>make install</command> work correctly.</para> - </listitem> - </orderedlist> - - <para>If there are any problems then whoever is looking at the - submission will get back to you to try and work them out.</para> - - <para>If there are no problems then your translation will be committed - as soon as possible.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Can I include language or country specific text in my - translation?</para> - </question> - - <answer> - <para>We would prefer that you did not.</para> - - <para>For example, suppose that you are translating the Handbook to - Korean, and want to include a section about retailers in Korea in - your Handbook.</para> - - <para>There's no real reason why that information should not be in the - English (or German, or Spanish, or Japanese, or …) versions - as well. It is feasible that an English speaker in Korea might try - and pick up a copy of FreeBSD whilst over there. It also helps - increase FreeBSD's perceived presence around the globe, which is not - a bad thing.</para> - - <para>If you have country specific information, please submit it as a - change to the English Handbook (using &man.send-pr.1;) and then - translate the change back to your language in the translated - Handbook.</para> - - <para>Thanks.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>How should language specific characters be included?</para> - - <para>Non-ASCII characters in the documentation should be included - using SGML entities.</para> - - <para>Briefly, these look like an ampersand (&), the name of the - entity, and a semi-colon (;).</para> - - <para>The entity names are defined in ISO8879, which is in the ports - tree as <filename>textproc/iso8879</filename>.</para> - - <para>A few examples include</para> - - <segmentedlist> - <seglistitem> - <seg>&eacute;</seg> - <seg>é</seg> - <seg>Small “e” with an acute accent</seg> - </seglistitem> - - <seglistitem> - <seg>&Eacute;</seg> - <seg>É</seg> - <seg>Large “E” with an acute accent</seg> - </seglistitem> - - <seglistitem> - <seg>&uuml;</seg> - <seg>ü</seg> - <seg>Small “u” with an umlaut</seg> - </seglistitem> - </segmentedlist> - - <para>After you have installed the iso8879 port, the files in - <filename>/usr/local/share/sgml/iso8879</filename> contain the - complete list.</para> - </question> - </qandaentry> - - <qandaentry> - <question> - <para>Addressing the reader</para> - </question> - - <answer> - <para>In the English documents, the reader is addressed as - “you”, there is no formal/informal distinction as there - is in some languages.</para> - - <para>If you are translating to a language which does distinguish, use - whichever form is typically used in other technical documentation in - your language. If in doubt, use a mildly polite form.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Do I need to include any additional information in my - translations?</para> - </question> - - <answer> - <para>Yes.</para> - - <para>The header of the English version of each document will look - something like this;</para> - - <programlisting><![ CDATA [<!-- - The FreeBSD Documentation Project - - $Id: chapter.sgml,v 1.11 1999/06/20 21:18:57 billf Exp $ --->]]></programlisting> - - <para>The exact boilerplate may change, but it will always include an - Id line and the phrase <literal>The FreeBSD Documentation - Project</literal>.</para> - - <para>Your translated documents should include their own Id line, and change the - <literal>FreeBSD Documentation Project</literal> line to - <literal>The FreeBSD <replaceable>language</replaceable> - Documentation Project</literal>.</para> - - <para>In addition, you should add a third line which indicates which - revision of the English text this is based on.</para> - - <para>So, the Spanish version of this file might start</para> - - <programlisting><![ CDATA [<!-- - The FreeBSD Spanish Documentation Project - - $Id: chapter.sgml,v 1.3 1999/06/24 19:12:32 jesusr Exp $ - Original revision: 1.11 --->]]></programlisting> - </answer> - </qandaentry> - </qandaset> -</chapter> - -<!-- - Local Variables: - mode: sgml - sgml-declaration: "../chapter.decl" - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - sgml-parent-document: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/en_US.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml b/en_US.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml deleted file mode 100644 index 69c3f6c25c..0000000000 --- a/en_US.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml +++ /dev/null @@ -1,340 +0,0 @@ -<!-- Copyright (c) 1998 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $FreeBSD: doc/en_US.ISO_8859-1/books/fdp-primer/writing-style/chapter.sgml,v 1.7 2000/01/16 22:13:09 asmodai Exp $ ---> - -<chapter id="writing-style"> - <title>Writing style</title> - - <para>In order to promote consistency between the myriad authors of the - FreeBSD documentation, some guidelines have been drawn up for authors to - follow.</para> - - <variablelist> - <varlistentry> - <term>Do not use contractions</term> - - <listitem> - <para>Do not use contractions. Always spell the phrase out in full. - “Don't use contractions” would be wrong.</para> - - <para>Avoiding contractions makes for a more formal tone, is more - precise, and is slightly easier for translators.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Use the serial comma</term> - - <listitem> - <para>In a list of items within a paragraph, separate each item from - the others with a comma. Seperate the last item from the others with - a comma and the word “and”.</para> - - <para>For example, look at the following:</para> - - <blockquote> - <para>This is a list of one, two and three items.</para> - </blockquote> - - <para>Is this a list of three items, “one”, - “two”, and “three”, or a list of two items, - “one” and “two and three”?</para> - - <para>It is better to be explicit and include a serial comma:</para> - - <blockquote> - <para>This is a list of one, two, and three items.</para> - </blockquote> - </listitem> - </varlistentry> - - <varlistentry> - <term>Avoid redundant phrases</term> - - <listitem> - <para>Try not to use redundant phrases. In particular, “the - command”, “the file”, and “man - command” are probably redundant.</para> - - <para>These two examples show this for commands. The second example - is preferred.</para> - - <informalexample> - <para>Use the command <command>cvsup</command> to update your - sources</para> - </informalexample> - - <informalexample> - <para>Use <command>cvsup</command> to update your sources</para> - </informalexample> - - <para>These two examples show this for filenames. The second example - is preferred.</para> - - <informalexample> - <para>… in the filename - <filename>/etc/rc.local</filename>…</para> - </informalexample> - - <informalexample> - <para>… in - <filename>/etc/rc.local</filename>…</para> - </informalexample> - - <para>These two examples show this for manual references. The second - example is preferred (the second example uses - <sgmltag>citerefentry</sgmltag>).</para> - - <informalexample> - <para>See <command>man csh</command> for more - information.</para> - </informalexample> - - <informalexample> - <para>See &man.csh.1;</para> - </informalexample> - </listitem> - </varlistentry> - <varlistentry> - <term>Two spaces at the end of sentences</term> - - <listitem> - <para>Always use two spaces at the end of sentences, as this - improves readability, and eases use of tools such as - <application>emacs</application>.</para> - - <para>While it may be argued that a capital letter following - a period denotes a new sentence, this is not the case, especially - in name usage. <quote>Jordan K. Hubbard</quote> is a good - example; it has a capital <literal>H</literal> following a - period and a space, and there certainly isn't a new sentence - there.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>For more information about writing style, see <ulink - url="http://www.bartleby.com/141/index.html">Elements of - Style</ulink>, by William Strunk.</para> - - <sect1> - <title>Style guide</title> - - <para>To keep the source for the Handbook consistent when many different - people are editing it, please follow these style conventions.</para> - - <sect2> - <title>Letter case</title> - - <para>Tags are entered in lower case, <literal><para></literal>, - <emphasis>not</emphasis> <literal><PARA></literal>.</para> - - <para>Text that appears in SGML contexts is generally written in upper - case, <literal><!ENTITY…></literal>, and - <literal><!DOCTYPE…></literal>, <emphasis>not</emphasis> - <literal><!entity…></literal> and - <literal><!doctype…></literal>.</para> - </sect2> - - <sect2> - <title>Indentation</title> - - <para>Each file starts with indentation set at column 0, - <emphasis>regardless</emphasis> of the indentation level of the file - which might contain this one.</para> - - <para>Every start tag increases the indentation level by 2 spaces, and - every end tag decreases the indentation level by 2 spaces. Content - within elements should be indented by two spaces if the content runs - over more than one line.</para> - - <para>For example, the source for this section looks something - like:</para> - - <programlisting> -<![ CDATA [+--- This is column 0 -V -<chapter> - <title>...</title> - - <sect1> - <title>...</title> - - <sect2> - <title>Indentation</title> - - <para>Each file starts with indentation set at column 0, - <emphasis>regardless</emphasis> of the indentation level of the file - which might contain this one.</para> - - <para>Every start tag increases the indentation level by 2 spaces, and - every end tag decreases the indentation level by 2 spaces. Content - within elements should be indented by two spaces if the content runs - over more than one line.</para> - - ... - </sect2> - </sect1> -</chapter>]]></programlisting> - - <para>If you use <application>Emacs</application> or - <application>Xemacs</application> to edit the files then - <literal>sgml-mode</literal> should be loaded automatically, and the - Emacs local variables at the bottom of each file should enforce these - styles.</para> - </sect2> - - <sect2> - <title>Tag style</title> - - <sect3> - <title>Tag spacing</title> - - <para>Tags that start at the same indent as a previous tag - should be separated by a blank line, and those that are not - at the same indent as a previous tag should not:</para> - - <informalexample> - <programlisting><![ CDATA [<article> - <artheader> - <title>NIS</title> - - <pubdate>October 1999</pubdata> - - <abstract> - <para>... - ... - ...</para> - </abstract> - </artheader> - - <sect1> - <title>...</title> - - <para>...</para> - </sect1> - - <sect1> - <title>...</title> - - <para>...</para> - </sect1> -</article>]]></programlisting> - </informalexample> - </sect3> - - <sect3> - <title>Special tags</title> - - <para>Some tags just don't follow the indenting rules of the - previous section; <sgmltag>screen</sgmltag> and - <sgmltag>programlisting</sgmltag> should always be - left-aligned.</para> - - <informalexample> - <programlisting><![ RCDATA [<informalexample> -<programlisting> -… -</programlisting> -</informalexample>]]></programlisting> - </informalexample> - - <para><sgmltag>informalexample</sgmltag> also should be - left-aligned when it wraps a <sgmltag>screen</sgmltag> or - <sgmltag>programlisting</sgmltag>.</para> - - <para>These examples should be separated from the rest of the - content by a blank line before and after.</para> - </sect3> - - <sect3> - <title>Separating tags</title> - - <para>Tags like <sgmltag>itemizedlist</sgmltag> which will - always have further tags inside them, and in fact don't take - character data themselves, are always on a line by - themselves.</para> - - <para>Tags like <sgmltag>para</sgmltag> and - <sgmltag>term</sgmltag> don't need other tags to contain - normal character data, and their contents begin immediately - after the tag, <emphasis>on the same line</emphasis>.</para> - - <para>The same applies to when these two types of tags - close.</para> - - <para>This leads to an obvious problem when mixing these - tags.</para> - - <para>When a starting tag which cannot contain character data - directly follows a tag of the type that requires other tags - within it to use character data, they are on separate lines. - The second tag should be properly indented.</para> - - <para>When a tag which can contain character data closes - directly after a tag which cannot contain character data - closes, they co-exist on the same line.</para> - </sect3> - </sect2> - - <sect2> - <title>White space changes</title> - - <para>When committing changes, <emphasis>do not commit changes to the - content at the same time as changes to the - formatting</emphasis>.</para> - - <para>This is so that the teams that convert the Handbook to other - languages can quickly see what content has actually changed in your - commit, without having to decide whether a line has changed because of - the content, or just because it has been refilled.</para> - - <para>For example, if you have added two sentences to a paragraph, such - that the line lengths on the paragraph now go over 80 columns, first - commit your change with the too-long line lengths. Then fix the line - wrapping, and commit this second change. In the commit message for - the second change, be sure to indicate that this is a whitespace-only - change, and that the translation team can ignore it.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/Makefile b/en_US.ISO8859-1/books/handbook/Makefile deleted file mode 100644 index c0b9fe15e7..0000000000 --- a/en_US.ISO8859-1/books/handbook/Makefile +++ /dev/null @@ -1,60 +0,0 @@ -# -# $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/Makefile,v 1.27 2000/03/08 11:12:10 nbm Exp $ -# -# Build the FreeBSD Handbook. -# - -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+= boot/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+= security/chapter.sgml -SRCS+= serialcomms/chapter.sgml -SRCS+= staff/chapter.sgml -SRCS+= users/chapter.sgml -SRCS+= x11/chapter.sgml -SRCS+= ports/chapter.sgml - -# Entities -SRCS+= authors.ent -SRCS+= chapters.ent -SRCS+= mailing-lists.ent - -DOC_PREFIX?= ${.CURDIR}/../../.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml b/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml deleted file mode 100644 index 5394d1c378..0000000000 --- a/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml +++ /dev/null @@ -1,1977 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/advanced-networking/chapter.sgml,v 1.26 2000/06/13 18:05:22 jim Exp $ ---> - -<chapter id="advanced-networking"> - <title>Advanced Networking</title> - - <sect1> - <title>Synopsis</title> - - <para>The following chapter will cover some of the more frequently - used network services on UNIX systems. This, of course, will - pertain to configuring said services on your FreeBSD system.</para> - </sect1> - - <sect1 id="routing"> - <title>Gateways and Routes</title> - - <para><emphasis>Contributed by &a.gryphon;. 6 October - 1995.</emphasis></para> - - <para>For one machine to be able to find another, there must be a - mechanism in place to describe how to get from one to the other. This is - called Routing. A <quote>route</quote> is a defined pair of addresses: a - <quote>destination</quote> and a <quote>gateway</quote>. The pair - indicates that if you are trying to get to this - <emphasis>destination</emphasis>, send along through this - <emphasis>gateway</emphasis>. There are three types of destinations: - individual hosts, subnets, and <quote>default</quote>. The - <quote>default route</quote> is used if none of the other routes apply. - We will talk a little bit more about default routes later on. There are - also three types of gateways: individual hosts, interfaces (also called - <quote>links</quote>), and ethernet hardware addresses.</para> - - <sect2> - <title>An example</title> - - <para>To illustrate different aspects of routing, we will use the - following example which is the output of the command <command>netstat - -r</command>:</para> - - <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> - - <para>The first two lines specify the default route (which we will cover - in the next section) and the <hostid>localhost</hostid> route.</para> - - <para>The interface (<literal>Netif</literal> column) that it specifies - to use for <literal>localhost</literal> is - <devicename>lo0</devicename>, also known as the loopback device. This - says to keep all traffic for this destination internal, rather than - sending it out over the LAN, since it will only end up back where it - started anyway.</para> - - <para>The next thing that stands out are the <hostid - role="mac">0:e0:...</hostid> addresses. These are ethernet hardware - addresses. FreeBSD will automatically identify any hosts - (<hostid>test0</hostid> in the example) on the local ethernet and add - a route for that host, directly to it over the ethernet interface, - <devicename>ed0</devicename>. There is also a timeout - (<literal>Expire</literal> column) associated with this type of route, - which is used if we fail to hear from the host in a specific amount of - time. In this case the route will be automatically deleted. These - hosts are identified using a mechanism known as RIP (Routing - Information Protocol), which figures out routes to local hosts based - upon a shortest path determination.</para> - - <para>FreeBSD will also add subnet routes for the local subnet (<hostid - role="ipaddr">10.20.30.255</hostid> is the broadcast address for the - subnet <hostid role="ipaddr">10.20.30</hostid>, and <hostid - role="domainname">foobar.com</hostid> is the domain name associated - with that subnet). The designation <literal>link#1</literal> refers - to the first ethernet card in the machine. You will notice no - additional interface is specified for those.</para> - - <para>Both of these groups (local network hosts and local subnets) have - their routes automatically configured by a daemon called - <command>routed</command>. If this is not run, then only routes which - are statically defined (ie. entered explicitly) will exist.</para> - - <para>The <literal>host1</literal> line refers to our host, which it - knows by ethernet address. Since we are the sending host, FreeBSD - knows to use the loopback interface (<devicename>lo0</devicename>) - rather than sending it out over the ethernet interface.</para> - - <para>The two <literal>host2</literal> lines are an example of what - happens when we use an ifconfig alias (see the section of ethernet for - reasons why we would do this). The <literal>=></literal> symbol - after the <devicename>lo0</devicename> interface says that not only - are we using the loopback (since this is address also refers to the - local host), but specifically it is an alias. Such routes only show - up on the host that supports the alias; all other hosts on the local - network will simply have a <literal>link#1</literal> line for - such.</para> - - <para>The final line (destination subnet <literal>224</literal>) deals - with MultiCasting, which will be covered in a another section.</para> - - <para>The other column that we should talk about are the - <literal>Flags</literal>. Each route has different attributes that - are described in the column. Below is a short table of some of these - flags and their meanings:</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <tbody> - <row> - <entry>U</entry> - <entry>Up: The route is active.</entry> - </row> - - <row> - <entry>H</entry> - <entry>Host: The route destination is a single host.</entry> - </row> - - <row> - <entry>G</entry> - <entry>Gateway: Send anything for this destination on to this - remote system, which will figure out from there where to send - it.</entry> - </row> - - <row> - <entry>S</entry> - <entry>Static: This route was configured manually, not - automatically generated by the system.</entry> - </row> - - <row> - <entry>C</entry> - <entry>Clone: Generates a new route based upon this route for - machines we connect to. This type of route is normally used - for local networks.</entry> - </row> - - <row> - <entry>W</entry> - <entry>WasCloned: Indicated a route that was auto-configured - based upon a local area network (Clone) route.</entry> - </row> - - <row> - <entry>L</entry> - <entry>Link: Route involves references to ethernet - hardware.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </sect2> - - <sect2> - <title>Default routes</title> - - <para>When the local system needs to make a connection to remote host, - it checks the routing table to determine if a known path exists. If - the remote host falls into a subnet that we know how to reach (Cloned - routes), then the system checks to see if it can connect along that - interface.</para> - - <para>If all known paths fail, the system has one last option: the - <quote>default</quote> route. This route is a special type of gateway - route (usually the only one present in the system), and is always - marked with a <literal>c</literal> in the flags field. For hosts on a - local area network, this gateway is set to whatever machine has a - direct connection to the outside world (whether via PPP link, or your - hardware device attached to a dedicated data line).</para> - - <para>If you are configuring the default route for a machine which - itself is functioning as the gateway to the outside world, then the - default route will be the gateway machine at your Internet Service - Provider's (ISP) site.</para> - - <para>Let us look at an example of default routes. This is a common - configuration:</para> - - <literallayout> -[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW] - </literallayout> - - <para>The hosts <hostid>Local1</hostid> and <hostid>Local2</hostid> are - at your site, with the formed being your PPP connection to your ISP's - Terminal Server. Your ISP has a local network at their site, which - has, among other things, the server where you connect and a hardware - device (T1-GW) attached to the ISP's Internet feed.</para> - - <para>The default routes for each of your machines will be:</para> - - <informaltable frame="none"> - <tgroup cols="3"> - <thead> - <row> - <entry>host</entry> - <entry>default gateway</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>A common question is <quote>Why (or how) would we set the T1-GW to - be the default gateway for Local1, rather than the ISP server it is - connected to?</quote>.</para> - - <para>Remember, since the PPP interface is using an address on the ISP's - local network for your side of the connection, routes for any other - machines on the ISP's local network will be automatically generated. - Hence, you will already know how to reach the T1-GW machine, so there - is no need for the intermediate step of sending traffic to the ISP - server.</para> - - <para>As a final note, it is common to use the address <hostid - role="ipaddr">...1</hostid> as the gateway address for your local - network. So (using the same example), if your local class-C address - space was <hostid role="ipaddr">10.20.30</hostid> and your ISP was - using <hostid role="ipaddr">10.9.9</hostid> then the default routes - would be:</para> - - <literallayout> -Local2 (10.20.30.2) --> Local1 (10.20.30.1) -Local1 (10.20.30.1, 10.9.9.30) --> T1-GW (10.9.9.1) - </literallayout> - </sect2> - - <sect2> - <title>Dual homed hosts</title> - - <para>There is one other type of configuration that we should cover, and - that is a host that sits on two different networks. Technically, any - machine functioning as a gateway (in the example above, using a PPP - connection) counts as a dual-homed host. But the term is really only - used to refer to a machine that sits on two local-area - networks.</para> - - <para>In one case, the machine as two ethernet cards, each having an - address on the separate subnets. Alternately, the machine may only - have one ethernet card, and be using ifconfig aliasing. The former is - used if two physically separate ethernet networks are in use, the - latter if there is one physical network segment, but two logically - separate subnets.</para> - - <para>Either way, routing tables are set up so that each subnet knows - that this machine is the defined gateway (inbound route) to the other - subnet. This configuration, with the machine acting as a Bridge - between the two subnets, is often used when we need to implement - packet filtering or firewall security in either or both - directions.</para> - </sect2> - - <sect2> - <title>Routing propagation</title> - - <para>We have already talked about how we define our routes to the - outside world, but not about how the outside world finds us.</para> - - <para>We already know that routing tables can be set up so that all - traffic for a particular address space (in our examples, a class-C - subnet) can be sent to a particular host on that network, which will - forward the packets inbound.</para> - - <para>When you get an address space assigned to your site, your service - provider will set up their routing tables so that all traffic for your - subnet will be sent down your PPP link to your site. But how do sites - across the country know to send to your ISP?</para> - - <para>There is a system (much like the distributed DNS information) that - keeps track of all assigned address-spaces, and defines their point of - connection to the Internet Backbone. The <quote>Backbone</quote> are - the main trunk lines that carry Internet traffic across the country, - and around the world. Each backbone machine has a copy of a master - set of tables, which direct traffic for a particular network to a - specific backbone carrier, and from there down the chain of service - providers until it reaches your network.</para> - - <para>It is the task of your service provider to advertise to the - backbone sites that they are the point of connection (and thus the - path inward) for your site. This is known as route - propagation.</para> - </sect2> - - <sect2> - <title>Troubleshooting</title> - - <para>Sometimes, there is a problem with routing propagation, and some - sites are unable to connect to you. Perhaps the most useful command - for trying to figure out where a routing is breaking down is the - &man.traceroute.8; command. It is equally useful if you cannot seem - to make a connection to a remote machine (i.e. &man.ping.8; - fails).</para> - - <para>The &man.traceroute.8; command is run with the name of the remote - host you are trying to connect to. It will show the gateway hosts - along the path of the attempt, eventually either reaching the target - host, or terminating because of a lack of connection.</para> - - <para>For more information, see the manual page for - &man.traceroute.8;.</para> - </sect2> - </sect1> - - <sect1 id="bridging"> - <title>Bridging</title> - - <para><emphasis>Written by Steve Peterson - <email>steve@zpfe.com</email></emphasis>.</para> - - <sect2> - <title>Introduction</title> - - <para>It is sometimes useful to divide one physical network (i.e., an - Ethernet segment) into two separate network segments, without having - to create IP subnets and use a router to connect the segments - together. A device that connects two networks together in this - fashion is called a bridge. and a FreeBSD system with two network - interface cards can act as a bridge.</para> - - <para>The bridge works by learning the MAC layer addresses (i.e., - Ethernet addresses) of the devices on each of its network interfaces. - It forwards traffic between two networks only when its source and - destination are on different networks.</para> - - <para>In many respects, a bridge is like an Ethernet switch with very - few ports.</para> - </sect2> - - <sect2> - <title>Situations where bridging is appropriate</title> - - <para>There are two common situations in which a bridge is used - today.</para> - - <sect3> - <title>High traffic on a segment</title> - - <para>Situation one is where your physical network segment is - overloaded with traffic, but you don't want for whatever reason to - subnet the network and interconnect the subnets with a - router.</para> - - <para>Let's consider an example of a newspaper where the Editorial and - Production departments are on the same subnetwork. The Editorial - users all use server A for file service, and the Production users - are on server B. An Ethernet is used to connect all users together, - and high loads on the network are slowing things down.</para> - - <para>If the Editorial users could be segregated on one network - segment and the Production users on another, the two network - segments could be connected with a bridge. Only the network traffic - destined for interfaces on the "other" side of the bridge would be - sent to the other network, reducing congestion on each network - segment.</para> - </sect3> - - <sect3> - <title>Filtering/traffic shaping firewall</title> - - <para>The second common situation is where firewall functionality is - needed without IP Masquerading (NAT).</para> - - <para>An example is a small company that is connected via DSL or ISDN - to their ISP. They have a 13 address global IP allocation for their - ISP and have 10 PCs on their network. In this situation, using a - router-based firewall is difficult because of subnetting - issues.</para> - - <para>A bridge-based firewall can be configured and dropped into the - path just downstream of their DSL/ISDN router without any IP - numbering issues.</para> - </sect3> - </sect2> - - <sect2> - <title>Configuring a bridge</title> - - <sect3> - <title>Network interface card selection</title> - - <para>A bridge requires at least two network cards to function. - Unfortunately, not all network interface cards as of FreeBSD 4.0 - support bridging. Read &man.bridge.4; for details on the cards that - are supported.</para> - - <para>Install and test the two network cards before continuing.</para> - </sect3> - - <sect3> - <title>Kernel configuration changes</title> - - <para>To enable kernel support for bridging, add the</para> - - <programlisting>option BRIDGE</programlisting> - - <para>statement to your kernel configuration file, and rebuild your - kernel.</para> - </sect3> - - <sect3> - <title>Firewall support</title> - - <para>If you are planning to use the bridge as a firewall, you will - need to add the IPFIREWALL option as well. Read <xref - linkend="firewalls"> for general information on configuring the - bridge as a firewall.</para> - - <para>If you need to allow non-IP packets (such as ARP) to flow - through the bridge, there is an undocumented firewall option that - must be set. This option is - <literal>IPFIREWALL_DEFAULT_TO_ACCEPT</literal>. Note that this - changes the default rule for the firewall to accept any packet. - Make sure you know how this changes the meaning of your ruleset - before you set it.</para> - </sect3> - - <sect3> - <title>Traffic shaping support</title> - - <para>If you want to use the bridge as a traffic shaper, you will need - to add the <literal>DUMMYNET</literal> option to your kernel - configuration. Read &man.dummynet.4; for further - information.</para> - </sect3> - </sect2> - - <sect2> - <title>Enabling the bridge</title> - - <para>Add the line</para> - - <programlisting>net.link.ether.bridge=1</programlisting> - - <para>to <filename>/etc/sysctl.conf</filename> to enable the bridge at - runtime. If you want the bridged packets to be filtered by ipfw, you - should also add</para> - - <programlisting>net.link.ether.bridge_ipfw=1</programlisting> - - <para>as well.</para> - </sect2> - - <sect2> - <title>Performance</title> - - <para>My bridge/firewall is a Pentium 90 with one 3Com 3C900B and one - 3C905B. The protected side of the network runs at 10mbps half duplex - and the connection between the bridge and my router (a Cisco 675) runs - at 100mbps full duplex. With no filtering enabled, I've found that - the bridge adds about 0.4 milliseconds of latency to pings from the - protected 10mbps network to the Cisco 675.</para> - </sect2> - - <sect2> - <title>Other information</title> - - <para>If you want to be able to telnet into the bridge from the network, - it is OK to assign one of the network cards an IP address. The - consensus is that assigning both cards an address is a bad - idea.</para> - - <para>If you have multiple bridges on your network, there cannot be more - than one path between any two workstations. Technically, this means - that there is no support for spanning tree link management.</para> - </sect2> - </sect1> - - <sect1 id="nfs"> - <title>NFS</title> - - <para><emphasis>Written by &a.unfurl;, 4 March 2000.</emphasis></para> - - <para>Among the many different file systems that FreeBSD supports is - a very unique type, the Network File System or NFS. NFS allows you - to share directories and files on one machine with one or more other - machines via the network they are attached to. Using NFS, users and - programs can access files on remote systems as if they were local - files.</para> - - <para>NFS has several benefits:</para> - - <itemizedlist> - <listitem> - <para>Local workstations dont need as much disk space because - commonly used data can be stored on a single machine and still - remain accessible to everyone on the network.</para> - </listitem> - - <listitem> - <para>There is no need for users to have unique home directories - on every machine on your network. Once they have an established - directory that is available via NFS it can be accessed from - anywhere.</para> - </listitem> - - <listitem> - <para>Storage devices such as floppies and CD-ROM drives can be - used by other machines on the network eliminating the need for - extra hardware.</para> - </listitem> - </itemizedlist> - - <sect2> - <title>How It Works</title> - - <para> NFS is composed of two sides – a client side and a - server side. Think of it as a want/have relationship. The client - <emphasis>wants</emphasis> the data that the server side - <emphasis>has</emphasis>. The server shares its data with the - client. In order for this system to function properly a few - processes have to be configured and running properly.</para> - - <para>The server has to be running the following daemons:</para> - - <itemizedlist> - <listitem> - <para><command>nfsd</command> - The NFS Daemon which services - requests from NFS clients.</para> - </listitem> - - <listitem> - <para><command>mountd</command> - The NFS Mount Daemon which - actually carries out requests that nfsd passes on to - it.</para> - </listitem> - </itemizedlist> - - <para>The client side only needs to run a single daemon:</para> - - <itemizedlist> - <listitem> - <para><command>nfsiod</command> - The NFS async I/O Daemon which - services requests from its NFS server.</para> - </listitem> - </itemizedlist> - </sect2> - - <sect2> - <title>Configuring NFS</title> - - <para>Luckily for us, on a FreeBSD system this setup is a snap. The - processes that need to be running can all be run at boot time with - a few modifications to your <filename>/etc/rc.conf</filename> - file.</para> - - <para>On the NFS server make sure you have:</para> - - <programlisting> -nfs_server_enable="YES" -nfs_server_flags="-u -t -n 4" -mountd_flags="-r"</programlisting> - - <para><command>mountd</command> is automatically run whenever the - NFS server is enabled. The <option>-u</option> and - <option>-t</option> flags to <command>nfsd</command> tell it to - serve UDP and TCP clients. The <option>-n 4</option> flag tells - <command>nfsd</command> to start 4 copies of itself.</para> - - <para>On the client, make sure you have:</para> - - <programlisting> -nfs_client_enable="YES" -nfs_client_flags="-n 4"</programlisting> - - <para>Like <command>nfsd</command>, the <option>-n 4</option> tells - <command>nfsiod</command> to start 4 copies of itself.</para> - - <para>The last configuration step requires that you create a file - called <filename>/etc/exports</filename>. The exports file - specifies which file systems on your server will be shared - (a.k.a., <quote>exported</quote>) and with what clients they will - be shared. Each line in the file specifies a file system to be - shared. There are a handful of options that can be used in this - file but I will only touch on a few of them. You can find out - about the rest in the &man.exports.5; man page.</para> - - <para>Here are a few example <filename>/etc/exports</filename> - entries:</para> - - <para>The following line exports <filename>/cdrom</filename> to - three silly machines that have the same domain name as the server - (hence the lack of a domain name for each) or have entries in your - <filename>/etc/hosts</filename> file. The <option>-ro</option> - flag makes the shared file system read-only. With this flag, the - remote system will not be able to make any changes to the the - shared file system.</para> - - <programlisting>/cdrom -ro moe larry curly</programlisting> - - <para>The following line exports <filename>/home</filename> to three - hosts by IP address. This is a useful setup if you have a - private network but do not have DNS running. The - <option>-alldirs</option> flag allows all the directories below - the specified file system to be exported as well.</para> - - <programlisting>/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4</programlisting> - - <para>The following line exports <filename>/a</filename> to two - machines that have different domain names than the server. The - <option>-maproot=0</option> flag allows - the root user on the remote system to write to the shared - file system as root. Without the -maproot=0 flag even if - someone has root access on the remote system they won't - be able to modify files on the shared file system.</para> - - <programlisting>/a -maproot=0 host.domain.com box.example.com</programlisting> - - <para>In order for a client to share an exported file system it must - have permission to do so. Make sure your client is listed in your - <filename>/etc/exports</filename> file.</para> - - <para>Now that you have made all these changes you can just reboot - and let FreeBSD start everything for you at boot time or you can - run the following commands as root:</para> - - <para>On the NFS server:</para> - - <screen>&prompt.root; <userinput>nfsd -u -t -n 4</userinput> -&prompt.root; <userinput>mountd -r</userinput></screen> - - <para>On the NFS client:</para> - - <screen>&prompt.root; <userinput>nfsiod -n 4</userinput></screen> - - <para>Now you should be ready to actually mount a remote file - system. This can be done one of two ways. In these examples the - server's name will be <literal>server</literal> and the client's - name will be <literal>client</literal>. If you just want to - temporarily mount a remote file system or just want to test out - your config you can run a command like this as root on the - client:</para> - - <screen>&prompt.root; <userinput>mount server:/home /mnt</userinput></screen> - - <para>This will mount <filename>/home</filename> on the server on - <filename>/mnt</filename> on the client. If everything is setup - correctly you should be able to go into /mnt on the client and see - all the files that are on the server.</para> - - <para>If you want to permanently (each time you reboot) mount a - remote file system you need to add it to your - <filename>/etc/fstab</filename> file. Here is an example - line:</para> - - <programlisting>server:/home /mnt nfs rw 0 0</programlisting> - - <para>Read the &man.fstab.5; man page for more options.</para> - </sect2> - - <sect2> - <title>Practical Uses</title> - - <para>There are many very cool uses for NFS. I use it quite a bit - on the LAN I admin. Here are a few ways I have found it to be - useful.</para> - - <para>I have several machines on my network but only one of them has - a CD-ROM drive. Why? Because I have that one CD-ROM drive shared - with all the others via NFS. The same can be done with floppy - drives.</para> - - <para>With so many machines on the network it gets old having your - personal files strewn all over the place. I have a central NFS - server that houses all user home directories and shares them with - the rest of the machines on the LAN, so no matter where I login I - have the same home directory.</para> - - <para>When you get to reinstalling FreeBSD on one of your machines, - NFS is the way to go. Just pop your distribution CD into your - file server and away you go.</para> - - <para>I have a common <filename>/usr/ports/distfiles</filename> - directory that all my machines share. That way when I go to - install a port that I already installed on a different machine I - do not have to download the source all over again.</para> - </sect2> - - <sect2> - <title>Problems integrating with other systems</title> - - <para><emphasis>Contributed by &a.jlind;.</emphasis></para> - - <para>Certain Ethernet adapters for ISA PC systems have limitations - which can lead to serious network problems, particularly with NFS. - This difficulty is not specific to FreeBSD, but FreeBSD systems - are affected by it.</para> - - <para>The problem nearly always occurs when (FreeBSD) PC systems are - networked with high-performance workstations, such as those made - by Silicon Graphics, Inc., and Sun Microsystems, Inc. The NFS - mount will work fine, and some operations may succeed, but - suddenly the server will seem to become unresponsive to the - client, even though requests to and from other systems continue to - be processed. This happens to the client system, whether the - client is the FreeBSD system or the workstation. On many systems, - there is no way to shut down the client gracefully once this - problem has manifested itself. The only solution is often to - reset the client, because the NFS situation cannot be - resolved.</para> - - <para>Though the <quote>correct</quote> solution is to get a higher - performance and capacity Ethernet adapter for the FreeBSD system, - there is a simple workaround that will allow satisfactory - operation. If the FreeBSD system is the - <emphasis>server</emphasis>, include the option - <option>-w=1024</option> on the mount from the client. If the - FreeBSD system is the <emphasis>client</emphasis>, then mount the - NFS file system with the option <option>-r=1024</option>. These - options may be specified using the fourth field of the - <filename>fstab</filename> entry on the client for automatic - mounts, or by using the <option>-o</option> parameter of the mount - command for manual mounts.</para> - - <para>It should be noted that there is a different problem, - sometimes mistaken for this one, when the NFS servers and clients - are on different networks. If that is the case, make - <emphasis>certain</emphasis> that your routers are routing the - necessary UDP information, or you will not get anywhere, no matter - what else you are doing.</para> - - <para>In the following examples, <hostid>fastws</hostid> is the host - (interface) name of a high-performance workstation, and - <hostid>freebox</hostid> is the host (interface) name of a FreeBSD - system with a lower-performance Ethernet adapter. Also, - <filename>/sharedfs</filename> will be the exported NFS - filesystem (see <command>man exports</command>), and - <filename>/project</filename> will be the mount point on the - client for the exported file system. In all cases, note that - additional options, such as <option>hard</option> or - <option>soft</option> and <option>bg</option> may be desirable in - your application.</para> - - <para>Examples for the FreeBSD system (<hostid>freebox</hostid>) as - the client: in <filename>/etc/fstab</filename> on freebox:</para> - - <programlisting> -fastws:/sharedfs /project nfs rw,-r=1024 0 0</programlisting> - - <para>As a manual mount command on <hostid>freebox</hostid>:</para> - - <screen>&prompt.root; <userinput>mount -t nfs -o -r=1024 fastws:/sharedfs /project</userinput></screen> - - <para>Examples for the FreeBSD system as the server: in - <filename>/etc/fstab</filename> on <hostid>fastws</hostid>:</para> - - <programlisting> -freebox:/sharedfs /project nfs rw,-w=1024 0 0</programlisting> - - <para>As a manual mount command on <hostid>fastws</hostid>:</para> - - <screen>&prompt.root; <userinput>mount -t nfs -o -w=1024 freebox:/sharedfs /project</userinput></screen> - - <para>Nearly any 16-bit Ethernet adapter will allow operation - without the above restrictions on the read or write size.</para> - - <para>For anyone who cares, here is what happens when the failure - occurs, which also explains why it is unrecoverable. NFS - typically works with a <quote>block</quote> size of 8k (though it - may do fragments of smaller sizes). Since the maximum Ethernet - packet is around 1500 bytes, the NFS <quote>block</quote> gets - split into multiple Ethernet packets, even though it is still a - single unit to the upper-level code, and must be received, - assembled, and <emphasis>acknowledged</emphasis> as a unit. The - high-performance workstations can pump out the packets which - comprise the NFS unit one right after the other, just as close - together as the standard allows. On the smaller, lower capacity - cards, the later packets overrun the earlier packets of the same - unit before they can be transferred to the host and the unit as a - whole cannot be reconstructed or acknowledged. As a result, the - workstation will time out and try again, but it will try again - with the entire 8K unit, and the process will be repeated, ad - infinitum.</para> - - <para>By keeping the unit size below the Ethernet packet size - limitation, we ensure that any complete Ethernet packet received - can be acknowledged individually, avoiding the deadlock - situation.</para> - - <para>Overruns may still occur when a high-performance workstations - is slamming data out to a PC system, but with the better cards, - such overruns are not guaranteed on NFS <quote>units</quote>. When - an overrun occurs, the units affected will be retransmitted, and - there will be a fair chance that they will be received, assembled, - and acknowledged.</para> - </sect2> - </sect1> - - <sect1 id="diskless"> - <title>Diskless Operation</title> - - <para><emphasis>Contributed by &a.martin;.</emphasis></para> - - <para><filename>netboot.com</filename>/<filename>netboot.rom</filename> - allow you to boot your FreeBSD machine over the network and run FreeBSD - without having a disk on your client. Under 2.0 it is now possible to - have local swap. Swapping over NFS is also still supported.</para> - - <para>Supported Ethernet cards include: Western Digital/SMC 8003, 8013, - 8216 and compatibles; NE1000/NE2000 and compatibles (requires - recompile)</para> - - <sect2> - <title>Setup Instructions</title> - - <procedure> - <step> - <para>Find a machine that will be your server. This machine will - require enough disk space to hold the FreeBSD 2.0 binaries and - have bootp, tftp and NFS services available. Tested - machines:</para> - - <itemizedlist> - <listitem> - <para>HP9000/8xx running HP-UX 9.04 or later (pre 9.04 doesn't - work)</para> - </listitem> - - <listitem> - <para>Sun/Solaris 2.3. (you may need to get bootp)</para> - </listitem> - </itemizedlist> - </step> - - <step> - <para>Set up a bootp server to provide the client with IP, gateway, - netmask.</para> - - <programlisting> -diskless:\ - :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>Set up a TFTP server (on same machine as bootp server) to - provide booting information to client. The name of this file is - <filename>cfg.<replaceable>X.X.X.X</replaceable></filename> (or - <filename>/tftpboot/cfg.<replaceable>X.X.X.X</replaceable></filename>, - it will try both) where <replaceable>X.X.X.X</replaceable> is the - IP address of the client. The contents of this file can be any - valid netboot commands. Under 2.0, netboot has the following - commands:</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <tbody> - <row> - <entry>help</entry> - <entry>print help list</entry> - </row> - - <row> - <entry>ip - <option><replaceable>X.X.X.X</replaceable></option></entry> - <entry>print/set client's IP address</entry> - </row> - - <row> - <entry>server - <option><replaceable>X.X.X.X</replaceable></option></entry> - <entry>print/set bootp/tftp server address</entry> - </row> - - <row> - <entry>netmask - <option><replaceable>X.X.X.X</replaceable></option></entry> - <entry>print/set netmask</entry> - </row> - - <row> - <entry>hostname <replaceable>name</replaceable></entry> - <entry>print/set hostname</entry> - </row> - - <row> - <entry>kernel - <option><replaceable>name</replaceable></option></entry> - <entry>print/set kernel name</entry> - </row> - - <row> - <entry>rootfs - <option><replaceable>ip:/fs</replaceable></option></entry> - <entry>print/set root filesystem</entry> - </row> - - <row> - <entry>swapfs - <option><replaceable>ip:/fs</replaceable></option></entry> - <entry>print/set swap filesystem</entry> - </row> - - <row> - <entry>swapsize - <option><replaceable>size</replaceable></option></entry> - <entry>set diskless swapsize in KBytes</entry> - </row> - - <row> - <entry>diskboot</entry> - <entry>boot from disk</entry> - </row> - - <row> - <entry>autoboot</entry> - <entry>continue boot process</entry> - </row> - - <row> - <entry>trans - <option>on</option>|<option>off</option></entry> - <entry>turn transceiver on|off</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>set boot flags</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>A typical completely diskless cfg file might contain:</para> - - <programlisting> -rootfs 192.1.2.3:/rootfs/myclient -swapfs 192.1.2.3:/swapfs -swapsize 20000 -hostname myclient.mydomain</programlisting> - - <para>A cfg file for a machine with local swap might contain:</para> - - <programlisting> -rootfs 192.1.2.3:/rootfs/myclient -hostname myclient.mydomain</programlisting> - </step> - - <step> - <para>Ensure that your NFS server has exported the root (and swap if - applicable) filesystems to your client, and that the client has - root access to these filesystems A typical - <filename>/etc/exports</filename> file on FreeBSD might look - like:</para> - - <programlisting> -/rootfs/myclient -maproot=0:0 myclient.mydomain -/swapfs -maproot=0:0 myclient.mydomain</programlisting> - - <para>And on HP-UX:</para> - - <programlisting> -/rootfs/myclient -root=myclient.mydomain -/swapfs -root=myclient.mydomain</programlisting> - </step> - - <step> - <para>If you are swapping over NFS (completely diskless - configuration) create a swap file for your client using - <command>dd</command>. If your <command>swapfs</command> command - has the arguments <filename>/swapfs</filename> and the size 20000 - as in the example above, the swapfile for myclient will be called - <filename>/swapfs/swap.<replaceable>X.X.X.X</replaceable></filename> - where <replaceable>X.X.X.X</replaceable> is the client's IP addr, - e.g.:</para> - - <screen>&prompt.root; <userinput>dd if=/dev/zero of=/swapfs/swap.192.1.2.4 bs=1k count=20000</userinput></screen> - - <para>Also, the client's swap space might contain sensitive - information once swapping starts, so make sure to restrict read - and write access to this file to prevent unauthorized - access:</para> - - <screen>&prompt.root; <userinput>chmod 0600 /swapfs/swap.192.1.2.4</userinput></screen> - </step> - - <step> - <para>Unpack the root filesystem in the directory the client will - use for its root filesystem (<filename>/rootfs/myclient</filename> - in the example above).</para> - - <itemizedlist> - <listitem> - <para>On HP-UX systems: The server should be running HP-UX 9.04 - or later for HP9000/800 series machines. Prior versions do not - allow the creation of device files over NFS.</para> - </listitem> - - <listitem> - <para>When extracting <filename>/dev</filename> in - <filename>/rootfs/myclient</filename>, beware that some - systems (HPUX) will not create device files that FreeBSD is - happy with. You may have to go to single user mode on the - first bootup (press control-c during the bootup phase), cd - <filename>/dev</filename> and do a <command>sh ./MAKEDEV - all</command> from the client to fix this.</para> - </listitem> - </itemizedlist> - </step> - - <step> - <para>Run <command>netboot.com</command> on the client or make an - EPROM from the <filename>netboot.rom</filename> file</para> - </step> - </procedure> - </sect2> - - <sect2> - <title>Using Shared <filename>/</filename> and <filename>/usr</filename> - filesystems</title> - - <para>At present there isn't an officially sanctioned way of doing this, - although I have been using a shared <filename>/usr</filename> - filesystem and individual <filename>/</filename> filesystems for each - client. If anyone has any suggestions on how to do this cleanly, - please let me and/or the &a.core; know.</para> - </sect2> - - <sect2> - <title>Compiling netboot for specific setups</title> - - <para>Netboot can be compiled to support NE1000/2000 cards by changing - the configuration in - <filename>/sys/i386/boot/netboot/Makefile</filename>. See the - comments at the top of this file.</para> - </sect2> - </sect1> - - <sect1 id="isdn"> - <title>ISDN</title> - - <para><emphasis>Last modified by &a.wlloyd;</emphasis>.</para> - - <para>A good resource for information on ISDN technology and hardware is - <ulink url="http://alumni.caltech.edu/~dank/isdn/">Dan Kegel's ISDN - Page</ulink>.</para> - - <para>A quick simple road map to ISDN follows:</para> - - <itemizedlist> - <listitem> - <para>If you live in Europe I suggest you investigate the ISDN card - section.</para> - </listitem> - - <listitem> - <para>If you are planning to use ISDN primarily to connect to the - Internet with an Internet Provider on a dial-up non-dedicated basis, - I suggest you look into Terminal Adapters. This will give you the - most flexibility, with the fewest problems, if you change - providers.</para> - </listitem> - - <listitem> - <para>If you are connecting two LANs together, or connecting to the - Internet with a dedicated ISDN connection, I suggest you consider - the stand alone router/bridge option.</para> - </listitem> - </itemizedlist> - - <para>Cost is a significant factor in determining what solution you will - choose. The following options are listed from least expensive to most - expensive.</para> - - <sect2> - <title>ISDN Cards</title> - - <para><emphasis>Contributed by &a.hm;.</emphasis></para> - - <para>This section is really only relevant to ISDN users in countries - where the DSS1/Q.931 ISDN standard is supported.</para> - - <para>Some growing number of PC ISDN cards are supported under FreeBSD - 2.2.x and up by the isdn4bsd driver package. It is still under - development but the reports show that it is successfully used all over - Europe.</para> - - <para>The latest isdn4bsd version is available from <ulink - url="ftp://isdn4bsd@ftp.consol.de/pub/">ftp://isdn4bsd@ftp.consol.de/pub/</ulink>, - the main isdn4bsd ftp site (you have to log in as user - <username>isdn4bsd</username> , give your mail address as the password - and change to the <filename>pub</filename> directory. Anonymous ftp - as user <username>ftp</username> or <username>anonymous</username> - will <emphasis>not</emphasis> give the desired result).</para> - - <para>Isdn4bsd allows you to connect to other ISDN routers using either - IP over raw HDLC or by using synchronous PPP. A telephone answering - machine application is also available.</para> - - <para>Many ISDN PC cards are supported, mostly the ones with a Siemens - ISDN chipset (ISAC/HSCX), support for other chipsets (from Motorola, - Cologne Chip Designs) is currently under development. For an - up-to-date list of supported cards, please have a look at the <ulink - url="ftp://isdn4bsd@ftp.consol.de/pub/README">README</ulink> - file.</para> - - <para>In case you are interested in adding support for a different ISDN - protocol, a currently unsupported ISDN PC card or otherwise enhancing - isdn4bsd, please get in touch with <email>hm@kts.org</email>.</para> - - <para>A majordomo maintained mailing list is available. To join the - list, send mail to &a.majordomo; and - specify:</para> - - <programlisting> -subscribe freebsd-isdn</programlisting> - - <para>in the body of your message.</para> - </sect2> - - <sect2> - <title>ISDN Terminal Adapters</title> - - <para>Terminal adapters(TA), are to ISDN what modems are to regular - phone lines.</para> - - <para>Most TA's use the standard hayes modem AT command set, and can be - used as a drop in replacement for a modem.</para> - - <para>A TA will operate basically the same as a modem except connection - and throughput speeds will be much faster than your old modem. You - will need to configure <link linkend="ppp">PPP</link> exactly the same - as for a modem setup. Make sure you set your serial speed as high as - possible.</para> - - <para>The main advantage of using a TA to connect to an Internet - Provider is that you can do Dynamic PPP. As IP address space becomes - more and more scarce, most providers are not willing to provide you - with a static IP anymore. Most stand-alone routers are not able to - accommodate dynamic IP allocation.</para> - - <para>TA's completely rely on the PPP daemon that you are running for - their features and stability of connection. This allows you to - upgrade easily from using a modem to ISDN on a FreeBSD machine, if you - already have PPP setup. However, at the same time any problems you - experienced with the PPP program and are going to persist.</para> - - <para>If you want maximum stability, use the kernel <link - linkend="ppp">PPP</link> option, not the user-land <link - linkend="userppp">iijPPP</link>.</para> - - <para>The following TA's are know to work with FreeBSD.</para> - - <itemizedlist> - <listitem> - <para>Motorola BitSurfer and Bitsurfer Pro</para> - </listitem> - - <listitem> - <para>Adtran</para> - </listitem> - </itemizedlist> - - <para>Most other TA's will probably work as well, TA vendors try to make - sure their product can accept most of the standard modem AT command - set.</para> - - <para>The real problem with external TA's is like modems you need a good - serial card in your computer.</para> - - <para>You should read the <link linkend="uart">serial ports</link> - section in the handbook for a detailed understanding of serial - devices, and the differences between asynchronous and synchronous - serial ports.</para> - - <para>A TA running off a standard PC serial port (asynchronous) limits - you to 115.2Kbs, even though you have a 128Kbs connection. To fully - utilize the 128Kbs that ISDN is capable of, you must move the TA to a - synchronous serial card.</para> - - <para>Do not be fooled into buying an internal TA and thinking you have - avoided the synchronous/asynchronous issue. Internal TA's simply have - a standard PC serial port chip built into them. All this will do, is - save you having to buy another serial cable, and find another empty - electrical socket.</para> - - <para>A synchronous card with a TA is at least as fast as a stand-alone - router, and with a simple 386 FreeBSD box driving it, probably more - flexible.</para> - - <para>The choice of sync/TA v.s. stand-alone router is largely a religious - issue. There has been some discussion of this in the mailing lists. - I suggest you search the <ulink - url="http://www.FreeBSD.org/search.html">archives</ulink> for the - complete discussion.</para> - </sect2> - - <sect2> - <title>Stand-alone ISDN Bridges/Routers</title> - - <para>ISDN bridges or routers are not at all specific to FreeBSD or any - other operating system. For a more complete description of routing - and bridging technology, please refer to a Networking reference - book.</para> - - <para>In the context of this page, I will use router and bridge - interchangeably.</para> - - <para>As the cost of low end ISDN routers/bridges comes down, it will - likely become a more and more popular choice. An ISDN router is a - small box that plugs directly into your local Ethernet network(or - card), and manages its own connection to the other bridge/router. It - has all the software to do PPP and other protocols built in.</para> - - <para>A router will allow you much faster throughput that a standard TA, - since it will be using a full synchronous ISDN connection.</para> - - <para>The main problem with ISDN routers and bridges is that - interoperability between manufacturers can still be a problem. If you - are planning to connect to an Internet provider, I recommend that you - discuss your needs with them.</para> - - <para>If you are planning to connect two lan segments together, ie: home - lan to the office lan, this is the simplest lowest maintenance - solution. Since you are buying the equipment for both sides of the - connection you can be assured that the link will work.</para> - - <para>For example to connect a home computer or branch office network to - a head office network the following setup could be used.</para> - - <example> - <title>Branch office or Home network</title> - - <para>Network is 10 Base T Ethernet. Connect router to network cable - with AUI/10BT transceiver, if necessary.</para> - - <!-- This should be a graphic --> - <programlisting> ----Sun workstation -| ----FreeBSD box -| ----Windows 95 (Do not admit to owning it) -| -Stand-alone router - | -ISDN BRI line</programlisting> - - <para>If your home/branch office is only one computer you can use a - twisted pair crossover cable to connect to the stand-alone router - directly.</para> - </example> - - <example> - <title>Head office or other lan</title> - - <para>Network is Twisted Pair Ethernet.</para> - - <!-- This should be a graphic --> - <programlisting> - -------Novell Server - | H | - | ---Sun - | | - | U ---FreeBSD - | | - | ---Windows 95 - | B | - |___---Stand-alone router - | - ISDN BRI line</programlisting> - </example> - - <para>One large advantage of most routers/bridges is that they allow you - to have 2 <emphasis>separate independent</emphasis> PPP connections to - 2 separate sites at the <emphasis>same</emphasis> time. This is not - supported on most TA's, except for specific(expensive) models that - have two serial ports. Do not confuse this with channel bonding, MPP - etc.</para> - - <para>This can be very useful feature, for example if you have an - dedicated ISDN connection at your office and would like to - tap into it, but don't want to get another ISDN line at work. A router - at the office location can manage a dedicated B channel connection - (64Kbs) to the internet, as well as a use the other B channel for a - separate data connection. The second B channel can be used for - dial-in, dial-out or dynamically bond(MPP etc.) with the first B channel - for more bandwidth.</para> - - <para>An Ethernet bridge will also allow you to transmit more than just - IP traffic, you can also send IPX/SPX or whatever other protocols you - use.</para> - </sect2> - </sect1> - - <sect1 id="nis"> - <title>NIS/YP</title> - - <para><emphasis>Written by &a.unfurl;, 21 January 2000.</emphasis></para> - - <sect2> - <title>What is it?</title> - - <para> NIS is an RPC-based client/server system that allows a group - of machines within an NIS domain to share a common set of - configuration files. This permits a system administrator to set - up NIS client systems with only minimal configuration data and - add, remove or modify configuration data from a single - location.</para> - </sect2> - - <sect2> - <title>How does it work?</title> - - <para>There are 3 types of hosts in an NIS environment; master - servers, slave servers, and clients. Servers act as a central - repository for host configuration information. Master servers - hold the authoritative copy of this information, while slave - servers mirror this information for redundancy. Clients rely on - the servers to provide this information to them.</para> - - <para>Information in many files can be shared in this manner. The - <filename>master.passwd</filename>, <filename>group</filename>, - and <filename>hosts</filename> files are commonly shared via NIS. - Whenever a process on a client needs information that would - normally be found in these files locally, it makes a query to the - server it is bound to, to get this information.</para> - </sect2> - - <sect2> - <title>Using NIS/YP</title> - - <sect3> - <title>Planning</title> - - <para>If you are setting up a NIS scheme for the first time, it - is a good idea to think through how you want to go about it. No - matter what the size of your network, there are a few decisions - that need to be made.</para> - - <sect4> - <title>Choosing a NIS Domain Name</title> - - <para>This might not be the <quote>domainname</quote> that you - are used to. It is more accurately called the - <quote>NIS domainname</quote>. When a client broadcasts its - requests for info, it includes the name of the NIS domain - that it is part of. This is how multiple servers on one - network can tell which server should answer which request. - Think of the NIS domainname as the name for a group of hosts - that are related in someway way.</para> - - <para>Some organizations choose to use their Internet domainname - for their NIS domainname. This is not recommended as it can - cause confusion when trying to debug network problems. The - NIS domainname should be unique within your network and it is - helpful if it describes the group of machines it represents. - For example, the Art department at Acme Inc. might be in the - "acme-art" NIS domain.</para> - </sect4> - - <sect4> - <title>Physical Server Requirements</title> - - <para>There are several things to keep in mind when choosing a - machine to use as a NIS server. One of the unfortunate things - about NIS is the level of dependency the clients have on the - server. If a client cannot contact the server for its NIS - domain, very often the machine becomes unusable. The lack of - user and group information causes most systems to temporarily - freeze up. With this in mind you should make sure to choose a - machine that won't be prone to being rebooted regularly, or - one that might be used for development. The NIS server should - ideally be a stand alone machine whose sole purpose in life is - to be an NIS server. If you have a network that is not very - heavily used, it is acceptable to put the NIS server on a - machine running other services, just keep in mind that if the - NIS server becomes unavailable, it will affect - <emphasis>all</emphasis> of your NIS clients adversely.</para> - </sect4> - </sect3> - - <sect3> - <title>NIS Servers</title> - - <para> The canonical copies of all NIS information are stored on - a single machine called the NIS master server. The databases - used to store the information are called NIS maps. In FreeBSD, - these maps are stored in - <filename>/var/yp/[domainname]</filename> where - <filename>[domainname]</filename> is the name of the NIS domain - being served. A single NIS server can support several domains - at once, therefore it is possible to have several such - directories, one for each supported domain. Each domain will - have its own independent set of maps.</para> - - <para>NIS master and slave servers handle all NIS requests with - the <command>ypserv</command> daemon. <command>Ypserv</command> - is responsible for receiving incoming requests from NIS clients, - translating the requested domain and map name to a path to the - corresponding database file and transmitting data from the - database back to the client.</para> - - <sect4> - <title>Setting up a NIS master server</title> - - <para>Setting up a master NIS server can be relatively straight - forward, depending on your needs. FreeBSD comes with a handy - script called <command>ypinit</command> that makes the initial - setup procedure very easy. A few steps are needed ahead of - time to make the setup process go smoothly.</para> - - <itemizedlist> - <listitem> - <para>Make sure your NIS domainname is set, using the - <command>domainname</command> command. You can run - <command>ypinit</command> for domains other than the one - your host is in but if <literal>domainname</literal> is - not set, now is a good time to do so.</para> - </listitem> - - <listitem> - <para>Make sure a copy of the - <filename>master.passwd</filename> file is in - <filename>/var/yp</filename>. This where NIS will get the - password entries it will share with it's clients. - <command>ypinit</command> runs with errors if this file is - not present. You can either start a new - <filename>master.passwd</filename> or copy the existing - one from <filename>/etc/master.passwd</filename>. If you - do the latter, make sure the permissions are set properly - to disallow world/group reading of the file.</para> - </listitem> - - <listitem> - <para>Start the <command>ypserv</command> daemon. - <command>ypinit</command> requires - <command>ypserv</command> to be running to answer some RPC - calls it makes. In its basic configuration - <command>ypserv</command> does not need to be run with any - flags.</para> - </listitem> - </itemizedlist> - - <para>Once you've done the above steps, run - <command>ypinit</command> with the <option>-m</option> flag. - You might want to specify the domain you are building a master - server for if it is different than what the - <literal>domainname</literal> is set to. In this example, - <filename>test-domain</filename> will be our NIS - domainname.</para> - - <screen> -# ypinit -m test-domain -Server Type: MASTER Domain: test-domain - -Creating an YP server will require that you answer a few questions. -Questions will all be asked at the beginning of the procedure. - -Do you want this procedure to quit on non-fatal errors? [y/n: n] n - -Ok, please remember to go back and redo manually whatever fails. -If you don't, something might not work. - -At this point, we have to construct a list of this domains YP servers. -master.example.com is already known as master server. -Please continue to add any slave servers, one per line. When you are -done with the list, type a <Control D>. - master server : master.example.com - next host to add: <userinput>^D</userinput> -The current list of NIS servers looks like this: - -master.example.com - -Is this correct? [y/n: y] <userinput>y</userinput> -Building /var/yp/test-domain/ypservers... -Running /var/yp/Makefile... -NIS Map update started on Fri Dec 3 16:54:12 PST 1999 for domain test-domain -Updating hosts.byname... -Creating new /var/yp/passwd file from /var/yp/master.passwd... -Updating netid.byname... -Updating hosts.byaddr... -Updating networks.byaddr... -Updating networks.byname... -Updating protocols.bynumber... -Updating protocols.byname... -Updating rpc.byname... -Updating rpc.bynumber... -Updating services.byname... -Updating group.byname... -Updating group.bygid... -Updating passwd.byname... -Updating passwd.byuid... -Updating master.passwd.byname... -Updating master.passwd.byuid... -NIS Map update completed. - -master.example.com has been setup as an YP master server without any errors.</screen> - - <para>There are a few crucial lines that need to be added to - your <filename>/etc/rc.conf</filename> in order for the NIS - server to start properly. Make sure that these lines are - included:</para> - - <programlisting> -nis_server_enable="YES" -nis_server_flags="" -nis_yppasswdd_enable="YES" -nis_yppasswdd_flags=""</programlisting> - - <para>You will most likely want to run - <command>yppasswd</command> on the NIS server. This allows - users on NIS client machines to change their passwords and - other user information remotely. </para> - </sect4> - - <sect4> - <title>Setting up a NIS slave server</title> - - <para>Setting up an NIS slave server is even more simple than - setting up the master. Again the <command>ypinit</command> - command helps out a great deal. As in the previous example - we'll use <quote>test-domain</quote> as our target NIS - domainname.</para> - - <screen> -# ypinit -s master.example.com test-domain - -Server Type: SLAVE Domain: test-domain Master: master.example.com - -Creating an YP server will require that you answer a few questions. -Questions will all be asked at the beginning of the procedure. - -Do you want this procedure to quit on non-fatal errors? [y/n: n] <userinput>n</userinput> - -Ok, please remember to go back and redo manually whatever fails. -If you don't, something might not work. -There will be no further questions. The remainder of the procedure -should take a few minutes, to copy the databases from master.example.com. -Transferring netgroup... -ypxfr: Exiting: Map successfully transferred -Transferring netgroup.byuser... -ypxfr: Exiting: Map successfully transferred -Transferring netgroup.byhost... -ypxfr: Exiting: Map successfully transferred -Transferring master.passwd.byuid... -ypxfr: Exiting: Map successfully transferred -Transferring passwd.byuid... -ypxfr: Exiting: Map successfully transferred -Transferring passwd.byname... -ypxfr: Exiting: Map successfully transferred -Transferring group.bygid... -ypxfr: Exiting: Map successfully transferred -Transferring group.byname... -ypxfr: Exiting: Map successfully transferred -Transferring services.byname... -ypxfr: Exiting: Map successfully transferred -Transferring rpc.bynumber... -ypxfr: Exiting: Map successfully transferred -Transferring rpc.byname... -ypxfr: Exiting: Map successfully transferred -Transferring protocols.byname... -ypxfr: Exiting: Map successfully transferred -Transferring master.passwd.byname... -ypxfr: Exiting: Map successfully transferred -Transferring networks.byname... -ypxfr: Exiting: Map successfully transferred -Transferring networks.byaddr... -ypxfr: Exiting: Map successfully transferred -Transferring netid.byname... -ypxfr: Exiting: Map successfully transferred -Transferring hosts.byaddr... -ypxfr: Exiting: Map successfully transferred -Transferring protocols.bynumber... -ypxfr: Exiting: Map successfully transferred -Transferring ypservers... -ypxfr: Exiting: Map successfully transferred -Transferring hosts.byname... -ypxfr: Exiting: Map successfully transferred - -slave.example.com has been setup as an YP slave server without any errors. -Don't forget to update map ypservers on master.example.com.</screen> - - <para>You should now have a directory called - <filename>/var/yp/test-domain</filename>. Copies of the NIS - master server's maps should be in this directory. You will - need to make sure that these stay updated. The following - <filename>/etc/crontab</filename> entries on your slave - servers should do the job:</para> - - <programlisting> -20 * * * * root /usr/libexec/ypxfr passwd.byname -21 * * * * root /usr/libexec/ypxfr passwd.byuid</programlisting> - - <para>These two lines force the slave to sync its maps with - the maps on the master server. Although this is - not mandatory, because the master server - tries to make sure any changes to it's NIS maps are - communicated to it's slaves, the password - information is so vital to systems that depend on the server, - that it is a good idea to force the updates. This is more - important on busy networks where map updates might not always - complete.</para> - </sect4> - </sect3> - - <sect3> - <title>NIS Clients</title> - - <para> An NIS client establishes what is called a binding to a - particular NIS server using the - <application>ypbind</application> daemon. - <application>Ypbind</application> checks the system's default - domain (as set by the <command>domainname</command> command), - and begins broadcasting RPC requests on the local network. - These requests specify the name of the domain for which - <command>ypbind</command> is attempting to establish a binding. - If a server that has been configured to serve the requested - domain receives one of the broadcasts, it will respond to - <command>ypbind</command>, which will record the server's - address. If there are several servers available (a master and - several slaves, for example), <command>ypbind</command> will - use the address of the first one to respond. From that point - on, the client system will direct all of its NIS requests to - that server. <application>Ypbind</application> will - occasionally <quote>ping</quote> the server to make sure it is - still up and running. If it fails to receive a reply to one of - its pings within a reasonable amount of time, - <command>ypbind</command> will mark the domain as unbound and - begin broadcasting again in the hopes of locating another - server.</para> - - <sect4> - <title>Setting up an NIS client</title> - - <para>Setting up a FreeBSD machine to be a NIS client is fairly - straight forward.</para> - - <itemizedlist> - <listitem> - <para>Set the host's NIS domainname with the - <command>domainname</command> command, or at boot time - with this entry in - <filename>/etc/rc.conf</filename>:</para> - - <programlisting>nisdomainname="test-domain"</programlisting> - </listitem> - - <listitem> - <para>To import all possible password entries from the NIS - server, add this line to your - <filename>/etc/master.passwd</filename> file, using - <command>vipw</command>:</para> - - <programlisting>+:::::::::</programlisting> - - <note> - <para>This line will afford anyone with a valid account in - the NIS server's password maps an account. There are - many ways to configure your NIS client by changing this - line. For more detailed reading see O'Reilly's book on - <literal>Managing NFS and NIS</literal>.</para> - </note> - </listitem> - - <listitem> - <para>To import all possible group entries from the NIS - server, add this line to your - <filename>/etc/group</filename> file:</para> - - <programlisting>+:*::</programlisting> - </listitem> - </itemizedlist> - - <para>After completing these steps, you should be able to run - <command>ypcat passwd</command> and see the NIS server's - passwd map.</para> - </sect4> - </sect3> - </sect2> - - <sect2> - <title>NIS Security</title> - - <para>In general, any remote user can issue an RPC to ypserv and - retrieve the contents of your NIS maps, provided the remote user - knows your domainname. To prevent such unauthorized transactions, - ypserv supports a feature called securenets which can be used to - restrict access to a given set of hosts. At startup, ypserv will - attempt to load the securenets information from a file called - <filename>/var/yp/securenets</filename>.</para> - - <note> - <para>This path varies depending on the path specified with the - <option>-p</option> option. This file contains entries that - consist of a network specification and a network mask separated - by white space. Lines starting with <quote>#</quote> are - considered to be comments. A sample securenets file might look - like this:</para> - </note> - - <programlisting> -# allow connections from local host -- mandatory -127.0.0.1 255.255.255.255 -# allow connections from any host -# on the 192.168.128.0 network -192.168.128.0 255.255.255.0 -# allow connections from any host -# between 10.0.0.0 to 10.0.15.255 -10.0.0.0 255.255.240.0</programlisting> - - <para>If ypserv receives a request from an address that matches one - of these rules, it will process the request normally. If the - address fails to match a rule, the request will be ignored and a - warning message will be logged. If the - <filename>/var/yp/securenets</filename> file does not exist, - ypserv will allow connections from any host.</para> - - <para>The ypserv program also has support for Wietse Venema's - <application>tcpwrapper</application> package. This allows the - administrator to use the tcpwrapper configuration files for access - control instead of <filename>/var/yp/securenets</filename>.</para> - - <note> - <para>While both of these access control mechanisms provide some - security, they, like the privileged port test, are both - vulnerable to <quote>IP spoofing</quote> attacks.</para> - </note> - </sect2> - - <sect2> - <title>NIS v1 compatibility</title> - - <para> FreeBSD's <application>ypserv</application> has some support - for serving NIS v1 clients. FreeBSD's NIS implementation only - uses the NIS v2 protocol, however other implementations include - support for the v1 protocol for backwards compatibility with older - systems. The <application>ypbind</application> daemons supplied - with these systems will try to establish a binding to an NIS v1 - server even though they may never actually need it (and they may - persist in broadcasting in search of one even after they receive a - response from a v2 server). Note that while support for normal - client calls is provided, this version of ypserv does not handle - v1 map transfer requests; consequently, it can not be used as a - master or slave in conjunction with older NIS servers that only - support the v1 protocol. Fortunately, there probably are not any - such servers still in use today.</para> - </sect2> - - <sect2> - <title>NIS servers that are also NIS clients</title> - - <para> Care must be taken when running ypserv in a multi-server - domain where the server machines are also NIS clients. It is - generally a good idea to force the servers to bind to themselves - rather than allowing them to broadcast bind requests and possibly - become bound to each other. Strange failure modes can result if - one server goes down and others are dependent upon on it. - Eventually all the clients will time out and attempt to bind to - other servers, but the delay involved can be considerable and the - failure mode is still present since the servers might bind to each - other all over again.</para> - - <para>You can force a host to bind to a particular server by running - <command>ypbind</command> with the <option>-S</option> - flag.</para> - </sect2> - - <sect2> - <title>libscrypt v.s. libdescrypt</title> - - <para>One of the most common issues that people run into when trying - to implement NIS is crypt library compatibility. If your NIS - server is using the DES crypt libraries, it will only support - clients that are using DES as well. To check which one your server - and clients are using look at the symlinks in - <filename>/usr/lib</filename>. If the machine is configured to - use the DES libraries, it will look something like this:</para> - - <screen> -&prompt.user; <userinput>ls -l /usr/lib/*crypt*</userinput> -lrwxrwxrwx 1 root wheel 13 Jul 15 08:55 /usr/lib/libcrypt.a@ -> libdescrypt.a -lrwxrwxrwx 1 root wheel 14 Jul 15 08:55 /usr/lib/libcrypt.so@ -> libdescrypt.so -lrwxrwxrwx 1 root wheel 16 Jul 15 08:55 /usr/lib/libcrypt.so.2@ -> libdescrypt.so.2 -lrwxrwxrwx 1 root wheel 15 Jul 15 08:55 /usr/lib/libcrypt_p.a@ -> libdescrypt_p.a --r--r--r-- 1 root wheel 13018 Nov 8 14:27 /usr/lib/libdescrypt.a -lrwxr-xr-x 1 root wheel 16 Nov 8 14:27 /usr/lib/libdescrypt.so@ -> libdescrypt.so.2 --r--r--r-- 1 root wheel 12965 Nov 8 14:27 /usr/lib/libdescrypt.so.2 --r--r--r-- 1 root wheel 14750 Nov 8 14:27 /usr/lib/libdescrypt_p.a</screen> - - <para>If the machine is configured to use the standard FreeBSD MD5 - crypt libraries they will look something like this:</para> - - <screen> -&prompt.user; <userinput>ls -l /usr/lib/*crypt*</userinput> -lrwxrwxrwx 1 root wheel 13 Jul 15 08:55 /usr/lib/libcrypt.a@ -> libscrypt.a -lrwxrwxrwx 1 root wheel 14 Jul 15 08:55 /usr/lib/libcrypt.so@ -> libscrypt.so -lrwxrwxrwx 1 root wheel 16 Jul 15 08:55 /usr/lib/libcrypt.so.2@ -> libscrypt.so.2 -lrwxrwxrwx 1 root wheel 15 Jul 15 08:55 /usr/lib/libcrypt_p.a@ -> libscrypt_p.a --r--r--r-- 1 root wheel 6194 Nov 8 14:27 /usr/lib/libscrypt.a -lrwxr-xr-x 1 root wheel 14 Nov 8 14:27 /usr/lib/libscrypt.so@ -> libscrypt.so.2 --r--r--r-- 1 root wheel 7579 Nov 8 14:27 /usr/lib/libscrypt.so.2 --r--r--r-- 1 root wheel 6684 Nov 8 14:27 /usr/lib/libscrypt_p.a</screen> - - <para>If you have trouble authenticating on an NIS client, this is a - pretty good place to start looking for possible problems.</para> - </sect2> - </sect1> - - <sect1 id="dhcp"> - <title>DHCP</title> - - <para><emphasis>Written by &a.gsutter;, March 2000.</emphasis></para> - - <sect2> - <title>What is DHCP?</title> - - <para>DHCP, the Dynamic Host Configuration Protocol, describes - the means by which a system can connect to a network and obtain the - necessary information for communication upon that network. FreeBSD - uses the ISC (Internet Software Consortium) DHCP implementation, so - all implementation-specific information here is for use with the ISC - distribution.</para> - </sect2> - - <sect2> - <title>What This Section Covers</title> - - <para>This handbook section attempts to describe only the parts - of the DHCP system that are integrated with FreeBSD; - consequently, the server portions are not described. The DHCP - manual pages, in addition to the references below, are useful - resources.</para> - </sect2> - - <sect2> - <title>How it Works</title> - - <para>When dhclient, the DHCP client, is executed on the client - machine, it begins broadcasting requests for configuration - information. By default, these requests are on UDP port 68. The - server replies on UDP 67, giving the client an IP address and - other relevant network information such as netmask, router, and - DNS servers. All of this information comes in the form of a DHCP - "lease" and is only valid for a certain time (configured by the - DHCP server maintainer). In this manner, stale IP addresses for - clients no longer connected to the network can be automatically - reclaimed.</para> - - <para>DHCP clients can obtain a great deal of information from - the server. An exhaustive list may be found in - &man.dhcp-options.5;.</para> - </sect2> - - <sect2> - <title>FreeBSD Integration</title> - - <para>FreeBSD fully integrates the ISC DHCP client, - <command>dhclient</command>. DHCP client support is provided - within both the installer and the base system, obviating the need - for detailed knowledge of network configurations on any network - that runs a DHCP server. <command>dhclient</command> has been - included in all FreeBSD distributions since 3.2.</para> - - <para>DHCP is supported by <application>sysinstall</application>. - When configuring a network interface within sysinstall, - the first question asked is, "Do you want to try dhcp - configuration of this interface?" Answering affirmatively will - execute dhclient, and if successful, will fill in the network - configuration information automatically.</para> - - <para>To have your system use DHCP to obtain network information - upon startup, edit your <filename>/etc/rc.conf</filename> to - include the following:</para> - - <programlisting> -ifconfig_fxp0="DHCP" - </programlisting> - - <note> - <para>Be sure to replace <literal>fxp0</literal> with the - designation for the interface that you wish to dynamically - configure.</para> - </note> - - <para>If you are using a different location for - <command>dhclient</command>, or if you wish to pass additional - flags to <command>dhclient</command>, also include the - following (editing as necessary):</para> - - <programlisting> -dhcp_program="/sbin/dhclient" -dhcp_flags="" - </programlisting> - - <para>The DHCP server, <command>dhcpd</command>, is included - as part of the <literal>isc-dhcp2</literal> port in the ports - collection. This port contains the full ISC DHCP distribution, - consisting of client, server, relay agent and documentation. - </para> - </sect2> - - <sect2> - <title>Files</title> - - <itemizedlist> - <listitem><para><filename>/etc/dhclient.conf</filename></para> - <para><command>dhclient</command> requires a configuration file, - <filename>/etc/dhclient.conf</filename>. Typically the file - contains only comments, the defaults being reasonably sane. This - configuration file is described by the &man.dhclient.conf.5; - man page.</para> - </listitem> - - <listitem><para><filename>/sbin/dhclient</filename></para> - <para><command>dhclient</command> is statically linked and - resides in <filename>/sbin</filename>. The &man.dhclient.8; - manual page gives more information about - <command>dhclient</command>.</para> - </listitem> - - <listitem><para><filename>/sbin/dhclient-script</filename></para> - <para><command>dhclient-script</command> is the FreeBSD-specific - DHCP client configuration script. It is described in - &man.dhclient-script.8;, but should not need any user - modification to function properly.</para> - </listitem> - - <listitem><para><filename>/var/db/dhclient.leases</filename></para> - <para>The DHCP client keeps a database of valid leases in this - file, which is written as a log. &man.dhclient.leases.5; - gives a slightly longer description.</para> - </listitem> - </itemizedlist> - </sect2> - - <sect2> - <title>Further Reading</title> - - <para>The DHCP protocol is fully described in - <ulink url="http://www.freesoft.org/CIE/RFC/2131/">RFC 2131</ulink>. - An informational resource has also been set up at - <ulink url="http://www.dhcp.org/">dhcp.org</ulink>.</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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/en_US.ISO8859-1/books/handbook/appendix.decl b/en_US.ISO8859-1/books/handbook/appendix.decl deleted file mode 100644 index 5b0425623d..0000000000 --- a/en_US.ISO8859-1/books/handbook/appendix.decl +++ /dev/null @@ -1 +0,0 @@ -<!DOCTYPE appendix PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN"> diff --git a/en_US.ISO8859-1/books/handbook/authors.ent b/en_US.ISO8859-1/books/handbook/authors.ent deleted file mode 100644 index 2c53160802..0000000000 --- a/en_US.ISO8859-1/books/handbook/authors.ent +++ /dev/null @@ -1,480 +0,0 @@ -<!-- - Names and email address of contributing authors and CVS committers. - Entity names for committers should be the same as their login names on - freefall.FreeBSD.org. - - Use these entities when referencing people. - - Please keep this list in alphabetical order by entity names. - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/authors.ent,v 1.90 2000/06/19 09:30:35 assar Exp $ ---> - -<!ENTITY a.abial "Andrzej Bialecki <email>abial@FreeBSD.org</email>"> - -<!ENTITY a.ache "Andrey A. Chernov <email>ache@FreeBSD.org</email>"> - -<!ENTITY a.adam "Adam David <email>adam@FreeBSD.org</email>"> - -<!ENTITY a.ade "Ade Lovett <email>ade@FreeBSD.org</email>"> - -<!ENTITY a.alc "Alan L. Cox <email>alc@FreeBSD.org</email>"> - -<!ENTITY a.alex "Alexander Langer <email>alex@FreeBSD.org</email>"> - -<!ENTITY a.alfred "Alfred Perlstein <email>alfred@FreeBSD.org</email>"> - -<!ENTITY a.amurai "Atsushi Murai <email>amurai@FreeBSD.org</email>"> - -<!ENTITY a.andreas "Andreas Klemm <email>andreas@FreeBSD.org</email>"> - -<!ENTITY a.andy "Andrey Zakhvatov <email>andy@FreeBSD.org</email>"> - -<!ENTITY a.archie "Archie Cobbs <email>archie@FreeBSD.org</email>"> - -<!ENTITY a.asami "Satoshi Asami <email>asami@FreeBSD.org</email>"> - -<!ENTITY a.asmodai "Jeroen Ruigrok/Asmodai <email>asmodai@FreeBSD.org</email>"> - -<!ENTITY a.assar "Assar Westerlund <email>assar@FreeBSD.org</email>"> - -<!ENTITY a.ats "Andreas Schulz <email>ats@FreeBSD.org</email>"> - -<!ENTITY a.awebster "Andrew Webster <email>awebster@pubnix.net</email>"> - -<!ENTITY a.bde "Bruce Evans <email>bde@FreeBSD.org</email>"> - -<!ENTITY a.billf "Bill Fumerola <email>billf@FreeBSD.org</email>"> - -<!ENTITY a.bp "Boris Popov <email>bp@FreeBSD.org</email>"> - -<!ENTITY a.brandon "Brandon Gillespie <email>brandon@FreeBSD.org</email>"> - -<!ENTITY a.brian "Brian Somers <email>brian@FreeBSD.org</email>"> - -<!ENTITY a.bsd "Brian S. Dean <email>bsd@FreeBSD.org</email>"> - -<!ENTITY a.cawimm "Charles A. Wimmer <email>cawimm@FreeBSD.org</email>"> - -<!ENTITY a.cg "Cameron Grant <email>cg@FreeBSD.org</email>"> - -<!ENTITY a.charnier "Philippe Charnier <email>charnier@FreeBSD.org</email>"> - -<!ENTITY a.chris "Chris Costello <email>chris@FreeBSD.org</email>"> - -<!ENTITY a.chuck "Chuck Robey <email>chuckr@glue.umd.edu</email>"> - -<!ENTITY a.chuckr "Chuck Robey <email>chuckr@FreeBSD.org</email>"> - -<!ENTITY a.cjh "Junho CHOI <email>cjh@FreeBSD.org</email>"> - -<!ENTITY a.cp "Chuck Paterson <email>cp@FreeBSD.org</email>"> - -<!ENTITY a.cpiazza "Chris Piazza <email>cpiazza@FreeBSD.org</email>"> - -<!ENTITY a.cracauer "Martin Cracauer <email>cracauer@FreeBSD.org</email>"> - -<!ENTITY a.csgr "Geoff Rehmet <email>csgr@FreeBSD.org</email>"> - -<!ENTITY a.cwt "Chris Timmons <email>cwt@FreeBSD.org</email>"> - -<!ENTITY a.dan "Dan Moschuk <email>dan@FreeBSD.org</email>"> - -<!ENTITY a.danny "Daniel O'Callaghan <email>danny@FreeBSD.org</email>"> - -<!ENTITY a.darrenr "Darren Reed <email>darrenr@FreeBSD.org</email>"> - -<!ENTITY a.davidn "David Nugent <email>davidn@blaze.net.au</email>"> - -<!ENTITY a.dbaker "Daniel Baker <email>dbaker@FreeBSD.org</email>"> - -<!ENTITY a.dburr "Donald Burr <email>dburr@FreeBSD.org</email>"> - -<!ENTITY a.dcs "Daniel C. Sobral <email>dcs@FreeBSD.org</email>"> - -<!ENTITY a.dec "David E. Cross <email>dec@FreeBSD.org</email>"> - -<!ENTITY a.deischen "Daniel Eischen <email>deischen@FreeBSD.org</email>"> - -<!ENTITY a.des "Dag-Erling C. Smørgrav <email>des@FreeBSD.org</email>"> - -<!ENTITY a.dfr "Doug Rabson <email>dfr@FreeBSD.org</email>"> - -<!ENTITY a.dg "David Greenman <email>dg@FreeBSD.org</email>"> - -<!ENTITY a.dick "Richard Seaman Jr. <email>dick@FreeBSD.org</email>"> - -<!ENTITY a.dillon "Matthew Dillon <email>dillon@FreeBSD.org</email>"> - -<!ENTITY a.dima "Dima Ruban <email>dima@FreeBSD.org</email>"> - -<!ENTITY a.dirk "Dirk Frömberg <email>dirk@FreeBSD.org</email>"> - -<!ENTITY a.dirkvangulik "Dirk-Willem van Gulik <email>Dirk.vanGulik@jrc.it</email>"> - -<!ENTITY a.dt "Dmitrij Tejblum <email>dt@FreeBSD.org</email>"> - -<!ENTITY a.dufault "Peter Dufault <email>dufault@FreeBSD.org</email>"> - -<!ENTITY a.dwhite "Doug White <email>dwhite@FreeBSD.org</email>"> - -<!ENTITY a.dyson "John Dyson <email>dyson@FreeBSD.org</email>"> - -<!ENTITY a.eivind "Eivind Eklund <email>eivind@FreeBSD.org</email>"> - -<!ENTITY a.ejc "Eric J. Chet <email>ejc@FreeBSD.org</email>"> - -<!ENTITY a.erich "Eric L. Hernes <email>erich@FreeBSD.org</email>"> - -<!ENTITY a.faq "FAQ Maintainer <email>faq@FreeBSD.org</email>"> - -<!ENTITY a.fenner "Bill Fenner <email>fenner@FreeBSD.org</email>"> - -<!ENTITY a.flathill "Seiichirou Hiraoka <email>flathill@FreeBSD.org</email>"> - -<!ENTITY a.foxfair "Howard F. Hu <email>foxfair@FreeBSD.org</email>"> - -<!ENTITY a.fsmp "Steve Passe <email>fsmp@FreeBSD.org</email>"> - -<!ENTITY a.gallatin "Andrew Gallatin <email>gallatin@FreeBSD.org</email>"> - -<!ENTITY a.gclarkii "Gary Clark II <email>gclarkii@FreeBSD.org</email>"> - -<!ENTITY a.gehenna "Masahide MAEKAWA <email>gehenna@FreeBSD.org</email>"> - -<!ENTITY a.gena "Gennady B. Sorokopud <email>gena@NetVision.net.il</email>"> - -<!ENTITY a.ghelmer "Guy Helmer <email>ghelmer@cs.iastate.edu</email>"> - -<!ENTITY a.gibbs "Justin T. Gibbs <email>gibbs@FreeBSD.org</email>"> - -<!ENTITY a.gioria "Sebastien Gioria <email>gioria@FreeBSD.org</email>"> - -<!ENTITY a.gj "Gary Jennejohn <email>gj@FreeBSD.org</email>"> - -<!ENTITY a.gpalmer "Gary Palmer <email>gpalmer@FreeBSD.org</email>"> - -<!ENTITY a.graichen "Thomas Graichen <email>graichen@FreeBSD.org</email>"> - -<!ENTITY a.green "Brian F. Feldman <email>green@FreeBSD.org</email>"> - -<!ENTITY a.grog "Greg Lehey <email>grog@FreeBSD.org</email>"> - -<!ENTITY a.groudier "Gerard Roudier <email>groudier@club-internet.fr</email>"> - -<!ENTITY a.gryphon "Coranth Gryphon <email>gryphon@healer.com</email>"> - -<!ENTITY a.gsutter "Gregory Sutter <email>gsutter@FreeBSD.org</email>"> - -<!ENTITY a.guido "Guido van Rooij <email>guido@FreeBSD.org</email>"> - -<!ENTITY a.hanai "Hiroyuki HANAI <email>hanai@FreeBSD.org</email>"> - -<!ENTITY a.handy "Brian N. Handy <email>handy@sxt4.physics.montana.edu</email>"> - -<!ENTITY a.roger "Roger Hardiman <email>roger@freebsd.org</email>"> - -<!ENTITY a.helbig "Wolfgang Helbig <email>helbig@FreeBSD.org</email>"> - -<!ENTITY a.hm "Hellmuth Michaelis <email>hm@FreeBSD.org</email>"> - -<!ENTITY a.hoek "Tim Vanderhoek <email>hoek@FreeBSD.org</email>"> - -<!ENTITY a.hosokawa "Tatsumi Hosokawa <email>hosokawa@FreeBSD.org</email>"> - -<!ENTITY a.hsu "Jeffrey Hsu <email>hsu@FreeBSD.org</email>"> - -<!ENTITY a.imp "Warner Losh <email>imp@FreeBSD.org</email>"> - -<!ENTITY a.imura "Ryuichiro IMURA <email>imura@FreeBSD.org</email>"> - -<!ENTITY a.itojun "Jun-ichiro Itoh <email>itojun@itojun.org</email>"> - -<!ENTITY a.iwasaki "Mitsuru IWASAKI <email>iwasaki@FreeBSD.org</email>"> - -<!ENTITY a.jake "Jake Burkholder <email>jake@FreeBSD.org</email>"> - -<!ENTITY a.jasone "Jason Evans <email>jasone@FreeBSD.org</email>"> - -<!ENTITY a.jayanth "Jayanth Vijayaraghavan <email>jayanth@FreeBSD.org</email>"> - -<!ENTITY a.jb "John Birrell <email>jb@cimlogic.com.au</email>"> - -<!ENTITY a.jdp "John Polstra <email>jdp@FreeBSD.org</email>"> - -<!ENTITY a.jedgar "Chris D. Faulhaber <email>jedgar@FreeBSD.org</email>"> - -<!ENTITY a.jehamby "Jake Hamby <email>jehamby@lightside.com</email>"> - -<!ENTITY a.jesusr "Jesus Rodriguez <email>jesusr@FreeBSD.org</email>"> - -<!ENTITY a.jfieber "John Fieber <email>jfieber@FreeBSD.org</email>"> - -<!ENTITY a.jfitz "James FitzGibbon <email>jfitz@FreeBSD.org</email>"> - -<!ENTITY a.jgreco "Joe Greco <email>jgreco@FreeBSD.org</email>"> - -<!ENTITY a.jhay "John Hay <email>jhay@FreeBSD.org</email>"> - -<!ENTITY a.jhb "John Baldwin <email>jhb@FreeBSD.org</email>"> - -<!ENTITY a.jhs "Julian Stacey <email>jhs@FreeBSD.org</email>"> - -<!ENTITY a.jim "Jim Mock <email>jim@FreeBSD.org</email>"> - -<!ENTITY a.jkh "Jordan K. Hubbard <email>jkh@FreeBSD.org</email>"> - -<!ENTITY a.jkoshy "Joseph Koshy <email>jkoshy@FreeBSD.org</email>"> - -<!ENTITY a.jlemon "Jonathan Lemon <email>jlemon@FreeBSD.org</email>"> - -<!ENTITY a.jlind "John Lind <email>john@starfire.MN.ORG</email>"> - -<!ENTITY a.jlrobin "James L. Robinson <email>jlrobin@FreeBSD.org</email>"> - -<!ENTITY a.jmacd "Joshua Peck Macdonald <email>jmacd@FreeBSD.org</email>"> - -<!ENTITY a.jmas "Jose M. Alcaide <email>jmas@FreeBSD.org</email>"> - -<!ENTITY a.jmb "Jonathan M. Bresler <email>jmb@FreeBSD.org</email>"> - -<!ENTITY a.jmg "John-Mark Gurney <email>jmg@FreeBSD.org</email>"> - -<!ENTITY a.jmz "Jean-Marc Zucconi <email>jmz@FreeBSD.org</email>"> - -<!ENTITY a.joe "Josef Karthauser <email>joe@FreeBSD.org</email>"> - -<!ENTITY a.joerg "Jörg Wunsch <email>joerg@FreeBSD.org</email>"> - -<!ENTITY a.john "John Cavanaugh <email>john@FreeBSD.org</email>"> - -<!ENTITY a.jraynard "James Raynard <email>jraynard@FreeBSD.org</email>"> - -<!ENTITY a.jseger "Justin Seger <email>jseger@FreeBSD.org</email>"> - -<!ENTITY a.julian "Julian Elischer <email>julian@FreeBSD.org</email>"> - -<!ENTITY a.jwd "John W. DeBoskey <email>jwd@FreeBSD.org</email>"> - -<!ENTITY a.jvh "Johannes Helander <email>jvh@FreeBSD.org</email>"> - -<!ENTITY a.karl "Karl Strickland <email>karl@FreeBSD.org</email>"> - -<!ENTITY a.kato "Takenori KATO <email>kato@FreeBSD.org</email>"> - -<!ENTITY a.kelly "Sean Kelly <email>kelly@ad1440.net</email>"> - -<!ENTITY a.ken "Kenneth D. Merry <email>ken@FreeBSD.org</email>"> - -<!ENTITY a.kevlo "Kevin Lo <email>kevlo@FreeBSD.org</email>"> - -<!ENTITY a.kjc "Kenjiro Cho <email>kjc@FreeBSD.org</email>"> - -<!ENTITY a.knu "Akinori MUSHA <email>knu@FreeBSD.org</email>"> - -<!ENTITY a.kris "Kris Kennaway <email>kris@FreeBSD.org</email>"> - -<!ENTITY a.kuriyama "Jun Kuriyama <email>kuriyama@FreeBSD.org</email>"> - -<!ENTITY a.lars "Lars Fredriksen <email>lars@FreeBSD.org</email>"> - -<!ENTITY a.lile "Larry Lile <email>lile@FreeBSD.org</email>"> - -<!ENTITY a.ljo "L Jonas Olsson <email>ljo@FreeBSD.org</email>"> - -<!ENTITY a.luoqi "Luoqi Chen <email>luoqi@FreeBSD.org</email>"> - -<!ENTITY a.marcel "Marcel Moolenaar <email>marcel@FreeBSD.org</email>"> - -<!ENTITY a.markm "Mark Murray <email>markm@FreeBSD.org</email>"> - -<!ENTITY a.martin "Martin Renters <email>martin@FreeBSD.org</email>"> - -<!ENTITY a.max "Masafumi NAKANE <email>max@FreeBSD.org</email>"> - -<!ENTITY a.mayo "Mark Mayo <email>mark@vmunix.com</email>"> - -<!ENTITY a.mbarkah "Ade Barkah <email>mbarkah@FreeBSD.org</email>"> - -<!ENTITY a.mckay "Stephen McKay <email>mckay@FreeBSD.org</email>"> - -<!ENTITY a.mckusick "Kirk McKusick <email>mckusick@FreeBSD.org</email>"> - -<!ENTITY a.md "Mark Dapoz <email>md@bsc.no</email>"> - -<!ENTITY a.mdodd "Matthew N. Dodd <email>winter@jurai.net</email>"> - -<!ENTITY a.mharo "Michael Haro <email>mharo@FreeBSD.org</email>"> - -<!ENTITY a.mjacob "Matthew Jacob <email>mjacob@FreeBSD.org</email>"> - -<!ENTITY a.mks "Mike Spengler <email>mks@FreeBSD.org</email>"> - -<!ENTITY a.motoyuki "Motoyuki Konno <email>motoyuki@FreeBSD.org</email>"> - -<!ENTITY a.mph "Matthew Hunt <email>mph@FreeBSD.org</email>"> - -<!ENTITY a.mpp "Mike Pritchard <email>mpp@FreeBSD.org</email>"> - -<!ENTITY a.msmith "Michael Smith <email>msmith@FreeBSD.org</email>"> - -<!ENTITY a.mtaylor "Mark J. Taylor <email>mtaylor@FreeBSD.org</email>"> - -<!ENTITY a.murray "Murray Stokely <email>murray@FreeBSD.org</email>"> - -<!ENTITY a.nakai "Yukihiro Nakai <email>nakai@FreeBSD.org</email>"> - -<!ENTITY a.nate "Nate Williams <email>nate@FreeBSD.org</email>"> - -<!ENTITY a.nbm "Neil Blakey-Milner <email>nbm@FreeBSD.org</email>"> - -<!ENTITY a.nectar "Jacques Vidrine <email>nectar@FreeBSD.org</email>"> - -<!ENTITY a.newton "Mark Newton <email>newton@FreeBSD.org</email>"> - -<!ENTITY a.nhibma "Nick Hibma <email>n_hibma@FreeBSD.org</email>"> - -<!ENTITY a.nik "Nik Clayton <email>nik@FreeBSD.org</email>"> - -<!ENTITY a.nsayer "Nick Sayer <email>nsayer@FreeBSD.org</email>"> - -<!ENTITY a.nsj "Nate Johnson <email>nsj@FreeBSD.org</email>"> - -<!ENTITY a.nyan "Yoshihiro Takahashi <email>nyan@FreeBSD.org</email>"> - -<!ENTITY a.obrien "David O'Brien <email>obrien@FreeBSD.org</email>"> - -<!ENTITY a.olah "Andras Olah <email>olah@FreeBSD.org</email>"> - -<!ENTITY a.opsys "Chris Watson <email>opsys@open-systems.net</email>"> - -<!ENTITY a.patrick "Patrick S. Gardella <email>patrick@FreeBSD.org</email>"> - -<!ENTITY a.paul "Paul Richards <email>paul@FreeBSD.org</email>"> - -<!ENTITY a.pb "Pierre Beyssac <email>pb@fasterix.freenix.org</email>"> - -<!ENTITY a.pds "Peter da Silva <email>pds@FreeBSD.org</email>"> - -<!ENTITY a.peter "Peter Wemm <email>peter@FreeBSD.org</email>"> - -<!ENTITY a.phantom "Alexey Zelkin <email>phantom@FreeBSD.org</email>"> - -<!ENTITY a.phk "Poul-Henning Kamp <email>phk@FreeBSD.org</email>"> - -<!ENTITY a.pho "Peter Holm <email>pho@FreeBSD.org</email>"> - -<!ENTITY a.piero "Piero Serini <email>piero@strider.inet.it</email>"> - -<!ENTITY a.pjc "Peter Childs <email>pjchilds@imforei.apana.org.au</email>"> - -<!ENTITY a.proven "Chris Provenzano <email>proven@FreeBSD.org</email>"> - -<!ENTITY a.ps "Paul Saab <email>ps@FreeBSD.org</email>"> - -<!ENTITY a.pst "Paul Traina <email>pst@FreeBSD.org</email>"> - -<!ENTITY a.reg "Jeremy Lea <email>reg@FreeBSD.org</email>"> - -<!ENTITY a.rgrimes "Rodney Grimes <email>rgrimes@FreeBSD.org</email>"> - -<!ENTITY a.rhuff "Robert Huff <email>rhuff@cybercom.net</email>"> - -<!ENTITY a.ricardag "Ricardo AG <email>ricardag@ag.com.br</email>"> - -<!ENTITY a.rich "Rich Murphey <email>rich@FreeBSD.org</email>"> - -<!ENTITY a.rnordier "Robert Nordier <email>rnordier@FreeBSD.org</email>"> - -<!ENTITY a.roberto "Ollivier Robert <email>roberto@FreeBSD.org</email>"> - -<!ENTITY a.rse "Ralf S. Engelschall <email>rse@FreeBSD.org</email>"> - -<!ENTITY a.ru "Ruslan Ermilov <email>ru@FreeBSD.org</email>"> - -<!ENTITY a.rwatson "Robert Watson <email>rwatson@FreeBSD.org</email>"> - -<!ENTITY a.sada "Kenji SADA <email>sada@FreeBSD.org</email>"> - -<!ENTITY a.scrappy "Marc G. Fournier <email>scrappy@FreeBSD.org</email>"> - -<!ENTITY a.se "Stefan Esser <email>se@FreeBSD.org</email>"> - -<!ENTITY a.sef "Sean Eric Fagan <email>sef@FreeBSD.org</email>"> - -<!ENTITY a.sheldonh "Sheldon Hearn <email>sheldonh@FreeBSD.org</email>"> - -<!ENTITY a.shige "Shigeyuki Fukushima <email>shige@FreeBSD.org</email>"> - -<!ENTITY a.shin "Yoshinobu Inoue <email>shin@FreeBSD.org</email>"> - -<!ENTITY a.simokawa "Hidetoshi Shimokawa <email>simokawa@FreeBSD.org</email>"> - -<!ENTITY a.smace "Scott Mace <email>smace@FreeBSD.org</email>"> - -<!ENTITY a.smpatel "Sujal Patel <email>smpatel@FreeBSD.org</email>"> - -<!ENTITY a.sobomax "Maxim Sobolev <email>sobomax@FreeBSD.org</email>"> - -<!ENTITY a.sos "Søren Schmidt <email>sos@FreeBSD.org</email>"> - -<!ENTITY a.stark "Gene Stark <email>stark@FreeBSD.org</email>"> - -<!ENTITY a.stb "Stefan Bethke <email>stb@FreeBSD.org</email>"> - -<!ENTITY a.steve "Steve Price <email>steve@FreeBSD.org</email>"> - -<!ENTITY a.sumikawa "Munechika Sumikawa <email>sumikawa@FreeBSD.org</email>"> - -<!ENTITY a.swallace "Steven Wallace <email>swallace@FreeBSD.org</email>"> - -<!ENTITY a.tanimura "Seigo Tanimura <email>tanimura@FreeBSD.org</email>"> - -<!ENTITY a.taoka "Satoshi Taoka <email>taoka@FreeBSD.org</email>"> - -<!ENTITY a.tedm "Ted Mittelstaedt <email>tedm@FreeBSD.org</email>"> - -<!ENTITY a.tegge "Tor Egge <email>tegge@FreeBSD.org</email>"> - -<!ENTITY a.tg "Thomas Gellekum <email>tg@FreeBSD.org</email>"> - -<!ENTITY a.thepish "Peter Hawkins <email>thepish@FreeBSD.org</email>"> - -<!ENTITY a.tom "Tom Hukins <email>tom@FreeBSD.org</email>"> - -<!ENTITY a.torstenb "Torsten Blum <email>torstenb@FreeBSD.org</email>"> - -<!ENTITY a.truckman "Don “Truck” Lewis <email>truckman@FreeBSD.org</email>"> - -<!ENTITY a.ugen "Ugen J.S.Antsilevich <email>ugen@FreeBSD.org</email>"> - -<!ENTITY a.uhclem "Frank Durda IV <email>uhclem@FreeBSD.org</email>"> - -<!ENTITY a.ulf "Ulf Zimmermann <email>ulf@FreeBSD.org</email>"> - -<!ENTITY a.ume "Hajimu UMEMOTO <email>ume@FreeBSD.org</email>"> - -<!ENTITY a.unfurl "Bill Swingle <email>unfurl@FreeBSD.org</email>"> - -<!ENTITY a.vanilla "Vanilla I. Shu <email>vanilla@FreeBSD.org</email>"> - -<!ENTITY a.wes "Wes Peters <email>wes@FreeBSD.org</email>"> - -<!ENTITY a.whiteside "Don Whiteside <email>whiteside@acm.org</email>"> - -<!ENTITY a.wilko "Wilko Bulte <email>wilko@FreeBSD.org</email>"> - -<!ENTITY a.will "Will Andrews <email>will@FreeBSD.org</email>"> - -<!ENTITY a.wlloyd "Bill Lloyd <email>wlloyd@mpd.ca</email>"> - -<!ENTITY a.wollman "Garrett Wollman <email>wollman@FreeBSD.org</email>"> - -<!ENTITY a.wosch "Wolfram Schneider <email>wosch@FreeBSD.org</email>"> - -<!ENTITY a.wpaul "Bill Paul <email>wpaul@FreeBSD.org</email>"> - -<!ENTITY a.wsanchez "Wilfredo Sánchez <email>wsanchez@FreeBSD.org</email>"> - -<!ENTITY a.yokota "Kazutaka YOKOTA <email>yokota@FreeBSD.org</email>"> - diff --git a/en_US.ISO8859-1/books/handbook/backups/chapter.sgml b/en_US.ISO8859-1/books/handbook/backups/chapter.sgml deleted file mode 100644 index 36eb30da9d..0000000000 --- a/en_US.ISO8859-1/books/handbook/backups/chapter.sgml +++ /dev/null @@ -1,732 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/backups/chapter.sgml,v 1.24 2000/06/13 18:05:34 jim Exp $ ---> - -<chapter id="backups"> - <title>Backups</title> - - <sect1> - <title>Synopsis</title> - - <para>The following chapter will cover methods of backing up data, and - the programs used to create those backups. If you would like to - contribute something to this section, send it to the &a.doc;.</para> - </sect1> - - <sect1 id="backups-tapebackups"> - <title>Tape Media</title> - - <para>The major tape media are the 4mm, 8mm, QIC, mini-cartridge and - DLT.</para> - - <sect2 id="backups-tapebackups-4mm"> - <title>4mm (DDS: Digital Data Storage)</title> - - <para>4mm tapes are replacing QIC as the workstation backup media of - choice. This trend accelerated greatly when Conner purchased Archive, - a leading manufacturer of QIC drives, and then stopped production of - QIC drives. 4mm drives are small and quiet but do not have the - reputation for reliability that is enjoyed by 8mm drives. The - cartridges are less expensive and smaller (3 x 2 x 0.5 inches, 76 x 51 - x 12 mm) than 8mm cartridges. 4mm, like 8mm, has comparatively short - head life for the same reason, both use helical scan.</para> - - <para>Data throughput on these drives starts ~150kB/s, peaking at ~500kB/s. - Data capacity starts at 1.3 GB and ends at 2.0 GB. Hardware - compression, available with most of these drives, approximately - doubles the capacity. Multi-drive tape library units can have 6 - drives in a single cabinet with automatic tape changing. Library - capacities reach 240 GB.</para> - - <para>The DDS-3 standard now supports tape capacities up to 12GB (or - 24GB compressed).</para> - - <para>4mm drives, like 8mm drives, use helical-scan. All the benefits - and drawbacks of helical-scan apply to both 4mm and 8mm drives.</para> - - <para>Tapes should be retired from use after 2,000 passes or 100 full - backups.</para> - </sect2> - - <sect2 id="backups-tapebackups-8mm"> - <title>8mm (Exabyte)</title> - - <para>8mm tapes are the most common SCSI tape drives; they are the best - choice of exchanging tapes. Nearly every site has an exabyte 2 GB 8mm - tape drive. 8mm drives are reliable, convenient and quiet. Cartridges - are inexpensive and small (4.8 x 3.3 x 0.6 inches; 122 x 84 x 15 mm). - One downside of 8mm tape is relatively short head and tape life due to - the high rate of relative motion of the tape across the heads.</para> - - <para>Data throughput ranges from ~250kB/s to ~500kB/s. Data sizes start - at 300 MB and go up to 7 GB. Hardware compression, available with - most of these drives, approximately doubles the capacity. These - drives are available as single units or multi-drive tape libraries - with 6 drives and 120 tapes in a single cabinet. Tapes are changed - automatically by the unit. Library capacities reach 840+ GB.</para> - - <para>The Exabyte <quote>Mammoth</quote> model supports 12GB on one tape - (24MB with compression) and costs approximately twice as much as - conventional tape drives.</para> - - <para>Data is recorded onto the tape using helical-scan, the heads are - positioned at an angle to the media (approximately 6 degrees). The - tape wraps around 270 degrees of the spool that holds the heads. The - spool spins while the tape slides over the spool. The result is a - high density of data and closely packed tracks that angle across the - tape from one edge to the other.</para> - </sect2> - - <sect2 id="backups-tapebackups-qic"> - <title>QIC</title> - - <para>QIC-150 tapes and drives are, perhaps, the most common tape drive - and media around. QIC tape drives are the least expensive "serious" - backup drives. The downside is the cost of media. QIC tapes are - expensive compared to 8mm or 4mm tapes, up to 5 times the price per GB - data storage. But, if your needs can be satisfied with a half-dozen - tapes, QIC may be the correct choice. QIC is the - <emphasis>most</emphasis> common tape drive. Every site has a QIC - drive of some density or another. Therein lies the rub, QIC has a - large number of densities on physically similar (sometimes identical) - tapes. QIC drives are not quiet. These drives audibly seek before - they begin to record data and are clearly audible whenever reading, - writing or seeking. QIC tapes measure (6 x 4 x 0.7 inches; 15.2 x - 10.2 x 1.7 mm). <link - linkend="backups-tapebackups-mini">Mini-cartridges</link>, which - also use 1/4" wide tape are discussed separately. Tape libraries and - changers are not available.</para> - - <para>Data throughput ranges from ~150kB/s to ~500kB/s. Data capacity - ranges from 40 MB to 15 GB. Hardware compression is available on many - of the newer QIC drives. QIC drives are less frequently installed; - they are being supplanted by DAT drives.</para> - - <para>Data is recorded onto the tape in tracks. The tracks run along - the long axis of the tape media from one end to the other. The number - of tracks, and therefore the width of a track, varies with the tape's - capacity. Most if not all newer drives provide backward-compatibility - at least for reading (but often also for writing). QIC has a good - reputation regarding the safety of the data (the mechanics are simpler - and more robust than for helical scan drives).</para> - - <para>Tapes should be retired from use after 5,000 backups.</para> - </sect2> - -<![ %not.published; [ - - <sect2 id="backups-tapebackups-mini"> - <title>* Mini-Cartridge</title> - - <para></para> - </sect2> - -]]> - - <sect2 id="backups-tapebackups-dlt"> - <title>DLT</title> - - <para>DLT has the fastest data transfer rate of all the drive types - listed here. The 1/2" (12.5mm) tape is contained in a single spool - cartridge (4 x 4 x 1 inches; 100 x 100 x 25 mm). The cartridge has a - swinging gate along one entire side of the cartridge. The drive - mechanism opens this gate to extract the tape leader. The tape leader - has an oval hole in it which the drive uses to "hook" the tape. The - take-up spool is located inside the tape drive. All the other tape - cartridges listed here (9 track tapes are the only exception) have - both the supply and take-up spools located inside the tape cartridge - itself.</para> - - <para>Data throughput is approximately 1.5MB/s, three times the throughput of - 4mm, 8mm, or QIC tape drives. Data capacities range from 10GB to 20GB - for a single drive. Drives are available in both multi-tape changers - and multi-tape, multi-drive tape libraries containing from 5 to 900 - tapes over 1 to 20 drives, providing from 50GB to 9TB of - storage.</para> - - <para>With compression, DLT Type IV format supports up to 70GB - capacity.</para> - - <para>Data is recorded onto the tape in tracks parallel to the direction - of travel (just like QIC tapes). Two tracks are written at once. - Read/write head lifetimes are relatively long; once the tape stops - moving, there is no relative motion between the heads and the - tape.</para> - </sect2> - - <sect2> - <title id="backups-tapebackups-ait">AIT</title> - - <para>AIT is a new format from Sony, and can hold up to 50GB (with - compression) per tape. The tapes contain memory chips which retain an - index of the tape's contents. This index can be rapidly read by the - tape drive to determine the position of files on the tape, instead of - the several minutes that would be required for other tapes. Software - such as SAMS:Alexandria can operate forty or more AIT tape libraries, - communicating directly with the tape's memory chip to display the - contents on screen, determine what files where backed up to which - tape, locate the correct tape, load it, and restore the data from the - tape.</para> - - <para>Libraries like this cost in the region of $20,000, pricing them a - little out of the hobbyist market.</para> - </sect2> - - <sect2> - <title>Using a New Tape for the First Time</title> - - <para>The first time that you try to read or write a new, completely - blank tape, the operation will fail. The console messages should be - similar to:</para> - - <screen>sa0(ncr1:4:0): NOT READY asc:4,1 -sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen> - - <para>The tape does not contain an Identifier Block (block number 0). - All QIC tape drives since the adoption of QIC-525 standard write an - Identifier Block to the tape. There are two solutions:</para> - - <para><command>mt fsf 1</command> causes the tape drive to write an - Identifier Block to the tape.</para> - - <para>Use the front panel button to eject the tape.</para> - - <para>Re-insert the tape and &man.dump.8; data to the tape.</para> - - <para>&man.dump.8; will report <literal>DUMP: End of tape - detected</literal> and the console will show: <literal>HARDWARE - FAILURE info:280 asc:80,96</literal></para> - - <para>rewind the tape using: <command>mt rewind</command></para> - - <para>Subsequent tape operations are successful.</para> - </sect2> - </sect1> - - <sect1 id="backup-programs"> - <title>Backup Programs</title> - - <para>The three major programs are - &man.dump.8;, - &man.tar.1;, - and - &man.cpio.1;.</para> - - <sect2> - <title>Dump and Restore</title> - - <para>&man.dump.8; and &man.restore.8; are the traditional Unix backup - programs. They operate on the drive as a collection of disk blocks, - below the abstractions of files, links and directories that are - created by the filesystems. &man.dump.8; backs up devices, entire - filesystems, not parts of a filesystem and not directory trees that - span more than one filesystem, using either soft links &man.ln.1; or - mounting one filesystem onto another. &man.dump.8; does not write - files and directories to tape, but rather writes the data blocks that - are the building blocks of files and directories. &man.dump.8; has - quirks that remain from its early days in Version 6 of ATT Unix (circa - 1975). The default parameters are suitable for 9-track tapes (6250 - bpi), not the high-density media available today (up to 62,182 ftpi). - These defaults must be overridden on the command line to utilize the - capacity of current tape drives.</para> - - <para>&man.rdump.8; and &man.rrestore.8; backup data across the network - to a tape drive attached to another computer. Both programs rely upon - &man.rcmd.3; and &man.ruserok.3; to access the remote tape drive. - Therefore, the user performing the backup must have - <literal>rhosts</literal> access to the remote computer. The - arguments to &man.rdump.8; and &man.rrestore.8; must suitable to use - on the remote computer. (e.g. When <command>rdump</command>'ing from - a FreeBSD computer to an Exabyte tape drive connected to a Sun called - <hostid>komodo</hostid>, use: <command>/sbin/rdump 0dsbfu 54000 13000 - 126 komodo:/dev/nrsa8 /dev/rda0a 2>&1</command>) Beware: there - are security implications to allowing <literal>rhosts</literal> - commands. Evaluate your situation carefully.</para> - </sect2> - - <sect2> - <title>Tar</title> - - <para>&man.tar.1; also dates back to Version 6 of ATT Unix (circa 1975). - &man.tar.1; operates in cooperation with the filesystem; &man.tar.1; - writes files and directories to tape. &man.tar.1; does not support the - full range of options that are available from &man.cpio.1;, but - &man.tar.1; does not require the unusual command pipeline that - &man.cpio.1; uses.</para> - - <para>Most versions of &man.tar.1; do not support backups across the - network. The GNU version of &man.tar.1;, which FreeBSD utilizes, - supports remote devices using the same syntax as &man.rdump.8;. To - &man.tar.1; to an Exabyte tape drive connected to a Sun called - <hostid>komodo</hostid>, use: <command>/usr/bin/tar cf - komodo:/dev/nrsa8 . 2>&1</command>. For versions without remote - device support, you can use a pipeline and &man.rsh.1; to send the - data to a remote tape drive.</para> - - <screen>&prompt.root; <userinput>tar cf - . | rsh <replaceable>hostname</replaceable> dd of=<replaceable>tape-device</replaceable> obs=20b</userinput></screen> - - <para>If you're worried about the security of backing over a network - you should use the &man.ssh.1; command instead of &man.rsh.1;.</para> - </sect2> - - <sect2> - <title>Cpio</title> - - <para>&man.cpio.1; is the original Unix file interchange tape program - for magnetic media. &man.cpio.1; has options (among many others) to - perform byte-swapping, write a number of different archives format, - and pipe the data to other programs. This last feature makes - &man.cpio.1; and excellent choice for installation media. - &man.cpio.1; does not know how to walk the directory tree and a list - of files must be provided through <filename>stdin</filename>.</para> - - <para>&man.cpio.1; does not support backups across the network. You can - use a pipeline and &man.rsh.1; to send the data to a remote tape - drive. (XXX add an example command)</para> - </sect2> - - <sect2> - <title>Pax</title> - - <para>&man.pax.1; is IEEE/POSIX's answer to &man.tar.1; and - &man.cpio.1;. Over the years the various versions of &man.tar.1; - and &man.cpio.1; have gotten slightly incompatible. So rather than - fight it out to fully standardize them, POSIX created a new archive - utility. &man.pax.1; attempts to read and write many of the various - &man.cpio.1; and &man.tar.1; formats, plus new formats of its own. - Its command set more resembles &man.cpio.1; than &man.tar.1;.</para> - </sect2> - - <sect2 id="backups-programs-amanda"> - <title>Amanda</title> - - <para><ulink url="../ports/misc.html#amanda-2.4.0">Amanda</ulink> - (Advanced Maryland Network Disk Archiver) is a client/server backup - system, rather than a single program. An Amanda server will backup to - a single tape drive any number of computers that have Amanda clients - and network communications with the Amanda server. A common problem - at locations with a number of large disks is the length of time - required to backup to data directly to tape exceeds the amount of time - available for the task. Amanda solves this problem. Amanda can use a - "holding disk" to backup several filesystems at the same time. Amanda - creates "archive sets": a group of tapes used over a period of time to - create full backups of all the filesystems listed in Amanda's - configuration file. The "archive set" also contains nightly - incremental (or differential) backups of all the filesystems. - Restoring a damaged filesystem requires the most recent full backup - and the incremental backups.</para> - - <para>The configuration file provides fine control backups and the - network traffic that Amanda generates. Amanda will use any of the - above backup programs to write the data to tape. Amanda is available - as either a port or a package, it is not installed by default.</para> - </sect2> - - <sect2> - <title>Do Nothing</title> - - <para><quote>Do nothing</quote> is not a computer program, but it is the - most widely used backup strategy. There are no initial costs. There - is no backup schedule to follow. Just say no. If something happens - to your data, grin and bear it!</para> - - <para>If your time and your data is worth little to nothing, then - <quote>Do nothing</quote> is the most suitable backup program for your - computer. But beware, Unix is a useful tool, you may find that within - six months you have a collection of files that are valuable to - you.</para> - - <para><quote>Do nothing</quote> is the correct backup method for - <filename>/usr/obj</filename> and other directory trees that can be - exactly recreated by your computer. An example is the files that - comprise these handbook pages-they have been generated from - <acronym>SGML</acronym> input files. Creating backups of these - <acronym>HTML</acronym> files is not necessary. The - <acronym>SGML</acronym> source files are backed up regularly.</para> - </sect2> - - <sect2> - <title>Which Backup Program is Best?</title> - - <para>&man.dump.8; <emphasis>Period.</emphasis> Elizabeth D. Zwicky - torture tested all the backup programs discussed here. The clear - choice for preserving all your data and all the peculiarities of Unix - filesystems is &man.dump.8;. Elizabeth created filesystems containing - a large variety of unusual conditions (and some not so unusual ones) - and tested each program by doing a backup and restore of that - filesystems. The peculiarities included: files with holes, files with - holes and a block of nulls, files with funny characters in their - names, unreadable and unwritable files, devices, files that change - size during the backup, files that are created/deleted during the - backup and more. She presented the results at LISA V in Oct. 1991. - See <ulink - url="http://reality.sgi.com/zwicky_neu/testdump.doc.html">torture-testing - Backup and Archive Programs</ulink>.</para> - </sect2> - - <sect2> - <title>Emergency Restore Procedure</title> - - <sect3> - <title>Before the Disaster</title> - - <para>There are only four steps that you need to perform in - preparation for any disaster that may occur.</para> - - <para>First, print the disklabel from each of your disks - (<command>e.g. disklabel da0 | lpr</command>), your filesystem table - (<filename>/etc/fstab</filename>) and all boot messages, - two copies of - each.</para> - - <para>Second, determine that the boot and fix-it floppies - (<filename>boot.flp</filename> and <filename>fixit.flp</filename>) - have all your devices. The easiest way to check is to reboot your - machine with the boot floppy in the floppy drive and check the boot - messages. If all your devices are listed and functional, skip on to - step three.</para> - - <para>Otherwise, you have to create two custom bootable floppies which - has a kernel that can mount your all of your disks and access your - tape drive. These floppies must contain: - &man.fdisk.8;, &man.disklabel.8;, &man.newfs.8;, &man.mount.8;, and - whichever backup program you use. These programs must be statically - linked. If you use &man.dump.8;, the floppy must contain - &man.restore.8;.</para> - - <para>Third, create backup tapes regularly. Any changes that you make - after your last backup may be irretrievably lost. Write-protect the - backup tapes.</para> - - <para>Fourth, test the floppies (either <filename>boot.flp</filename> - and <filename>fixit.flp</filename> or the two custom bootable - floppies you made in step two.) and backup tapes. Make notes of the - procedure. Store these notes with the bootable floppy, the - printouts and the backup tapes. You will be so distraught when - restoring that the notes may prevent you from destroying your backup - tapes (How? In place of <command>tar xvf /dev/rsa0</command>, you - might accidently type <command>tar cvf /dev/rsa0</command> and - over-write your backup tape).</para> - - <para>For an added measure of security, make bootable floppies and two - backup tapes each time. Store one of each at a remote location. A - remote location is NOT the basement of the same office building. A - number of firms in the World Trade Center learned this lesson the - hard way. A remote location should be physically separated from - your computers and disk drives by a significant distance.</para> - - <para>An example script for creating a bootable floppy:</para> - - <programlisting> -<![ CDATA [#!/bin/sh -# -# create a restore floppy -# -# format the floppy -# -PATH=/bin:/sbin:/usr/sbin:/usr/bin - -fdformat -q fd0 -if [ $? -ne 0 ] -then - echo "Bad floppy, please use a new one" - exit 1 -fi - -# place boot blocks on the floppy -# -disklabel -w -B /dev/rfd0c fd1440 - -# -# newfs the one and only partition -# -newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/rfd0a - -# -# mount the new floppy -# -mount /dev/fd0a /mnt - -# -# create required directories -# -mkdir /mnt/dev -mkdir /mnt/bin -mkdir /mnt/sbin -mkdir /mnt/etc -mkdir /mnt/root -mkdir /mnt/mnt # for the root partition -mkdir /mnt/tmp -mkdir /mnt/var - -# -# populate the directories -# -if [ ! -x /sys/compile/MINI/kernel ] -then - cat << EOM -The MINI kernel does not exist, please create one. -Here is an example config file: -# -# MINI -- A kernel to get FreeBSD on onto a disk. -# -machine "i386" -cpu "I486_CPU" -ident MINI -maxusers 5 - -options INET # needed for _tcp _icmpstat _ipstat - # _udpstat _tcpstat _udb -options FFS #Berkeley Fast File System -options FAT_CURSOR #block cursor in syscons or pccons -options SCSI_DELAY=15 #Be pessimistic about Joe SCSI device -options NCONS=2 #1 virtual consoles -options USERCONFIG #Allow user configuration with -c XXX - -config kernel root on da0 swap on da0 and da1 dumps on da0 - -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 da0 -device da1 -device da2 - -device sa0 - -pseudo-device loop # required by INET -pseudo-device gzip # Exec gzipped a.out'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 - -# -# create the devices nodes -# -cd /mnt/dev -./MAKEDEV std -./MAKEDEV da0 -./MAKEDEV da1 -./MAKEDEV da2 -./MAKEDEV sa0 -./MAKEDEV pty0 -cd / - -# -# create minimum filesystem table -# -cat > /mnt/etc/fstab <<EOM -/dev/fd0a / ufs rw 1 1 -EOM - -# -# create minimum passwd file -# -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 - -# -# umount the floppy and inform the user -# -/sbin/umount /mnt -echo "The floppy has been unmounted and is now ready."]]></programlisting> - </sect3> - - <sect3> - <title>After the Disaster</title> - - <para>The key question is: did your hardware survive? You have been - doing regular backups so there is no need to worry about the - software.</para> - - <para>If the hardware has been damaged. First, replace those parts - that have been damaged.</para> - - <para>If your hardware is okay, check your floppies. If you are using - a custom boot floppy, boot single-user (type <literal>-s</literal> - at the <prompt>boot:</prompt> prompt). Skip the following - paragraph.</para> - - <para>If you are using the <filename>boot.flp</filename> and - <filename>fixit.flp</filename> floppies, keep reading. Insert the - <filename>boot.flp</filename> floppy in the first floppy drive and - boot the computer. The original install menu will be displayed on - the screen. Select the <literal>Fixit--Repair mode with CDROM or - floppy.</literal> option. Insert the - <filename>fixit.flp</filename> when prompted. - <command>restore</command> and the other programs that you need are - located in <filename>/mnt2/stand</filename>.</para> - - <para>Recover each filesystem separately.</para> - - <para>Try to &man.mount.8; (e.g. <command>mount /dev/da0a - /mnt</command>) the root partition of your first disk. If the - disklabel was damaged, use &man.disklabel.8; to re-partition and - label the disk to match the label that your printed and saved. Use - &man.newfs.8; to re-create the filesystems. Re-mount the root - partition of the floppy read-write (<command>mount -u -o rw - /mnt</command>). Use your backup program and backup tapes to - recover the data for this filesystem (e.g. <command>restore vrf - /dev/sa0</command>). Unmount the filesystem (e.g. <command>umount - /mnt</command>) Repeat for each filesystem that was - damaged.</para> - - <para>Once your system is running, backup your data onto new tapes. - Whatever caused the crash or data loss may strike again. An another - hour spent now, may save you from further distress later.</para> - </sect3> - -<![ %not.published; [ - - <sect3> - <title>* I did not prepare for the Disaster, What Now?</title> - - <para></para> - </sect3> -]]> - - </sect2> - </sect1> - - <sect1 id="backups-floppybackups"> - <title>What about Backups to Floppies?</title> - - <sect2 id="floppies-using"> - <title>Can I use floppies for backing up my data?</title> - - <para>Floppy disks are not really a suitable media for - making backups as:</para> - - <itemizedlist> - <listitem> - <para>The media is unreliable, especially over long periods of - time</para> - </listitem> - - <listitem> - <para>Backing up and restoring is very slow</para> - </listitem> - - <listitem> - <para>They have a very limited capacity (the days of backing up - an entire hard disk onto a dozen or so floppies has long since - passed).</para> - </listitem> - </itemizedlist> - - <para>However, if you have no other method of backing up your data then - floppy disks are better than no backup at all.</para> - - <para>If you do have to use floppy disks then ensure that you use good - quality ones. Floppies that have been lying around the office for a - couple of years are a bad choice. Ideally use new ones from a - reputable manufacturer.</para> - </sect2> - - <sect2 id="floppies-creating"> - <title>So how do I backup my data to floppies?</title> - - <para>The best way to backup to floppy disk is to use - &man.tar.1; with the <option>-M</option> (multi volume) option, which - allows backups to span multiple floppies.</para> - - <para>To backup all the files in the current directory and sub-directory - use this (as root):</para> - - <screen>&prompt.root; <userinput>tar Mcvf /dev/rfd0 *</userinput></screen> - - <para>When the first floppy is full &man.tar.1; will prompt you to - insert the next volume (because &man.tar.1; is media independent it - refers to volumes. In this context it means floppy disk)</para> - - <screen>Prepare volume #2 for /dev/rfd0 and hit return:</screen> - - <para>This is repeated (with the volume number incrementing) until all - the specified files have been archived.</para> - </sect2> - - <sect2 id="floppies-compress"> - <title>Can I compress my backups?</title> - - <para>Unfortunately, &man.tar.1; will not allow the - <option>-z</option> option to be used for multi-volume archives. - You could, of course, &man.gzip.1; all the files, &man.tar.1; them to - the floppies, then &man.gunzip.1; the files again!</para> - </sect2> - - <sect2 id="floppies-restoring"> - <title>How do I restore my backups?</title> - - <para>To restore the entire archive use:</para> - - <screen>&prompt.root; <userinput>tar Mxvf /dev/rfd0</userinput></screen> - - <para>To restore only specific files you can either start with the first - floppy and use:</para> - - <screen>&prompt.root; <userinput>tar Mxvf /dev/rfd0 <replaceable>filename</replaceable></userinput></screen> - - <para>&man.tar.1; will prompt you to insert subsequent floppies until it - finds the required file.</para> - - <para>Alternatively, if you know which floppy the file is on then you - can simply insert that floppy and use the same command as above. Note - that if the first file on the floppy is a continuation from the - previous one then &man.tar.1; will warn you that it cannot restore it, - even if you have not asked it to!</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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/en_US.ISO8859-1/books/handbook/basics/chapter.sgml b/en_US.ISO8859-1/books/handbook/basics/chapter.sgml deleted file mode 100644 index 65b507e785..0000000000 --- a/en_US.ISO8859-1/books/handbook/basics/chapter.sgml +++ /dev/null @@ -1,536 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/basics/chapter.sgml,v 1.19 2000/05/19 07:35:46 murray Exp $ ---> - -<chapter id="basics"> - <title>Unix Basics</title> - - <sect1> - <title>Synopsis</title> - - <para><emphasis>Rewritten by Chris Shumway - <email>cshumway@cdrom.com</email>, 10 Mar 2000.</emphasis></para> - - <para>The following chapter will cover the basic commands and - functionality of the FreeBSD operating system. If you are new to - FreeBSD, you will definitely want to read through this chapter before - asking for help.</para> - </sect1> - - <sect1 id="permissions"> - <title>Permissions</title> - - <para>FreeBSD, having its history rooted in BSD UNIX, has its - fundamentals based on several key UNIX concepts. The first, and - most pronounced, is that FreeBSD is a multi-user operating system. - The system can handle several users all working simultaneously on - completely unrelated tasks. The system is responsible for properly - sharing and managing requests for hardware devices, peripherals, - memory, and CPU time evenly to each user.</para> - - <para>Because the system is capable of supporting multiple users, - everything the system manages has a set of permissions governing who - can read, write, and execute the resource. These permissions are - stored as an octet broken into three pieces, one for the owner of - the file, one for the group that the file belongs to, and one for - everyone else. This numerical representation works like - this:</para> - - <informaltable frame="none"> - <tgroup cols="3"> - <thead> - <row> - <entry>Value</entry> - <entry>Permission</entry> - <entry>Directory Listing</entry> - </row> - </thead> - - <tbody> - <row> - <entry>0</entry> - <entry>No read, no write, no execute</entry> - <entry><literal>---</literal></entry> - </row> - - <row> - <entry>1</entry> - <entry>No read, no write, execute</entry> - <entry><literal>--x</literal></entry> - </row> - - <row> - <entry>2</entry> - <entry>No read, write, no execute</entry> - <entry><literal>-w-</literal></entry> - </row> - - <row> - <entry>3</entry> - <entry>No read, write, execute</entry> - <entry><literal>-wx</literal></entry> - </row> - - <row> - <entry>4</entry> - <entry>Read, no write, no execute</entry> - <entry><literal>r--</literal></entry> - </row> - - <row> - <entry>5</entry> - <entry>Read, no write, execute</entry> - <entry><literal>r-x</literal></entry> - </row> - - <row> - <entry>6</entry> - <entry>Read, write, no execute</entry> - <entry><literal>rw-</literal></entry> - </row> - - <row> - <entry>7</entry> - <entry>Read, write, execute</entry> - <entry><literal>rwx</literal></entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>For the long directory listing by <command>ls -l</command>, a - column will show a file's permissions for the owner, group, and - everyone else. Here's how it is broken up:</para> - - <screen>-rw-r--r--</screen> - - <para>The first character, from left to right, is a special character - that tells if this is a regular file, a directory, a special - character or block device, a socket, or any other special - pseudo-file device. The next three characters, designated as - <literal>rw-</literal> gives the permissions for the owner of the - file. The next three characters, <literal>r--</literal> gives the - permissions for the group that the file belongs to. The final three - characters, <literal>r--</literal>, gives the permissions for the - rest of the world. A dash means that the permission is turned off. - In the case of this file, the permissions are set so the owner can - read and write to the file, the group can read the file, and the - rest of the world can only read the file. According to the table - above, the permissions for this file would be - <literal>644</literal>, where each digit represents the three parts - of the file's permission.</para> - - <para>This is all well and good, but how does the system control - permissions on devices? FreeBSD actually treats most hardware - devices as a file that programs can open, read, and write data to - just like any other file. These special device files are stored on - the <filename>/dev</filename> directory.</para> - - <para>Directories are also treated as files. They have read, write, - and execute permissions. The executable bit for a directory has a - slightly different meaning than that of files. When a directory is - marked executable, it means it can be searched into, for example, a - directory listing can be done in that directory.</para> - - <para>There are more to permissions, but they are primarily used in - special circumstances such as setuid binaries and sticky - directories. If you want more information on file permissions and - how to set them, be sure to look at the &man.chmod.1; man - page.</para> - </sect1> - - <sect1 id="dirstructure"> - <title>Directory Structures</title> - - <para>Since FreeBSD uses its file systems to determine many - fundamental system operations, the hierarchy of the file system is - extremely important. Due to the fact that the &man.hier.7; man page - provides a complete description of the directory structure, it will - not be duplicated here. Please read &man.hier.7; for more - information.</para> - - <para>Of significant importance is the root of all directories, the / - directory. This directory is the first directory mounted at boot - time and it contains the base system necessary at boot time. The - root directory also contains mount points for every other file - system that you want to mount.</para> - - <para>A mount point is a directory where additional file systems can - be grafted onto the root file system. Standard mount points include - <filename>/usr</filename>, <filename>/var</filename>, - <filename>/mnt</filename>, and <filename>/cdrom</filename>. These - directories are usually referenced to entries in the file - <filename>/etc/fstab</filename>. <filename>/etc/fstab</filename> is - a table of various file systems and mount points for reference by the - system. Most of the file systems in <filename>/etc/fstab</filename> - are mounted automatically at boot time from the script &man.rc.8; - unless they contain the <option>noauto</option> option. Consult the - &man.fstab.5; manual page for more information on the format of the - <filename>/etc/fstab</filename> file and the options it - contains.</para> - </sect1> - - <sect1 id="shells"> - <title>Shells</title> - - <para>In FreeBSD, a lot of everyday work is done in a command line - interface called a shell. A shell's main job is to take commands - from the input channel and execute them. A lot of shells also have - built in functions to help everyday tasks such a file management, - file globing, command line editing, command macros, and environment - variables. FreeBSD comes with a set of shells, such as sh, the - Bourne Shell, and csh, the C-shell. Many other shells are available - from the FreeBSD Ports Collection that have much more power, such as - tcsh and bash.</para> - - <para>Which shell do you use? It is really a matter of taste. If you - are a C programmer you might feel more comfortable with a C-like shell - such as tcsh. If you've come from Linux or are new to a UNIX - command line interface you might try bash. The point is that each - shell has unique properties that may or may not work with your - preferred working environment, and that you have a choice of what - shell to use.</para> - - <para>One common feature in a shell is file-name completion. Given - the typing of the first few letters of a command or filename, you - can usually have the shell automatically complete the rest of the - command or filename by hitting the TAB key on the keyboard. Here is - an example. I have two files called <filename>foobar</filename> and - <filename>foo.bar</filename>. I want to delete - <filename>foo.bar</filename>. So what I would type on the keyboard - is: <command>rm fo[TAB].[TAB]</command>.</para> - - <para>The shell would print out <command>rm - foo[BEEP].bar</command>.</para> - - <para>The [BEEP] is the console bell, which is the shell telling me it - was unable to totally complete the filename because there is more - than one match. Both <filename>foobar</filename> and - <filename>foo.bar</filename> start with <literal>fo</literal>, but - it was able to complete to <literal>foo</literal>. Once I typed in - <literal>.</literal>, then hit TAB again, the shell was able to fill - in the rest of the filename for me.</para> - - <para>Another function of the shell is environment variables. - Environment variables are a variable key pair stored in the shell's - environment space. This space can be read by any program invoked by - the shell, and thus contains a lot of program configuration. Here - is a list of common environment variables and what they mean:</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Variable</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><envar>USER</envar></entry> - <entry>Current logged in user's name.</entry> - </row> - - <row> - <entry><envar>PATH</envar></entry> - <entry>Colon separated list of directories to search for - binaries.</entry> - </row> - - <row> - <entry><envar>DISPLAY</envar></entry> - <entry>Network name of the X11 display to connect to, if - available.</entry> - </row> - - <row> - <entry><envar>SHELL</envar></entry> - <entry>The current shell.</entry> - </row> - - <row> - <entry><envar>TERM</envar></entry> - <entry>The name of the user's terminal. Used to determine the - capabilities of the terminal.</entry> - </row> - - <row> - <entry><envar>TERMCAP</envar></entry> - <entry>Database entry of the terminal escape codes to perform - various terminal functions.</entry> - </row> - - <row> - <entry><envar>OSTYPE</envar></entry> - <entry>Type of operating system. E.g., FreeBSD.</entry> - </row> - - <row> - <entry><envar>MACHTYPE</envar></entry> - <entry>The CPU architecture that the system is running - on.</entry> - </row> - - <row> - <entry><envar>EDITOR</envar></entry> - <entry>The user's preferred text editor.</entry> - </row> - - <row> - <entry><envar>PAGER</envar></entry> - <entry>The user's preferred text pager.</entry> - </row> - - <row> - <entry><envar>MANPATH</envar></entry> - <entry>Colon separated list of directories to search for - manual pages.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>To view or set an environment variable differs somewhat from - shell to shell. For example, in the C-Style shells such as tcsh - and csh, you would use <command>setenv</command> to set and view - environment variables. Under Bourne shells such as sh and bash, you - would use <command>set</command> and <command>export</command> to - view and set your current environment variables. For example, to - set or modify the <envar>EDITOR</envar> environment variable, under - csh or tcsh a command like this would set <envar>EDITOR</envar> to - <filename>/usr/local/bin/emacs</filename>:</para> - - <para><command>setenv EDITOR /usr/local/bin/emacs</command></para> - - <para>Under Bourne shells:</para> - - <para><command>export EDITOR="/usr/local/bin/emacs"</command></para> - - <para>You can also make most shells expand the environment variable by - placing a <literal>$</literal> character in front of it on the - command line. For example, <command>echo $TERM</command> would - print out whatever <envar>$TERM</envar> is set to, because the shell - expands <envar>$TERM</envar> and passes it on to echo.</para> - - <para>Shells treat a lot of special characters, called meta-characters - as special representations of data. The most common one is the - <literal>*</literal> character, which represents any number of - characters in a filename. These special meta-characters can be used - to do file name globing. For example, typing in - <command>echo *</command> is almost the same as typing in - <command>ls</command> because the shell takes all the files that - match <command>*</command> and puts them on the command line for - echo to see.</para> - - <para>To prevent the shell from interpreting these special characters, - they can be escaped from the shell by putting a backslash - (<literal>\</literal>) character in front of them. <command>echo - $TERM</command> prints whatever your terminal is set to. - <command>echo \$TERM</command> prints <envar>$TERM</envar> as - is.</para> - - <sect2 id="changing-shells"> - <title>Changing your shell</title> - - <para>The easiest way to change your shell is to use the - <command>chsh</command> command. Running <command>chsh</command> will - place you into the editor that is in your <envar>EDITOR</envar> - environment variable; if it is not set, you will be placed in - <command>vi</command>. Change the <quote>Shell:</quote> line - accordingly.</para> - - <para>You can also give <command>chsh</command> the - <option>-s</option> option; this will set your shell for you, - without requiring you to enter an editor. - For example, if you wanted to - change your shell to bash, the following should do the - trick:</para> - - <screen>&prompt.user; <userinput>chsh -s /usr/local/bin/bash</userinput></screen> - - <para>Running <command>chsh</command> with no parameters and editing - the shell from there would work also.</para> - - <note> - <para>The shell that you wish to use <emphasis>must</emphasis> be - present in the <filename>/etc/shells</filename> file. If you - have installed a shell from the <link linkend="ports">ports - collection</link>, then this should have been done for you - already. If you installed the shell by hand, you must do - this.</para> - - <para>For example, if you installed <command>bash</command> by hand - and placed it into <filename>/usr/local/bin</filename>, you would - want to:</para> - - <screen>&prompt.root; <userinput>echo "/usr/local/bin/bash" >> /etc/shells</userinput></screen> - - <para>Then rerun <command>chsh</command>.</para> - </note> - </sect2> - </sect1> - - <sect1 id="editors"> - <title>Text Editors</title> - - <para>A lot of configuration in FreeBSD is done by editing a text - file. Because of this, it would be a good idea to become familiar - with a text editor. FreeBSD comes with a few as part of the base - system, and many more are available in the ports collection.</para> - - <para>The easiest and simplest editor to learn is an editor called - <application>ee</application>, which stands for easy editor. To - start <application>ee</application>, one would type at the command - line <command>ee filename</command> where - <literal>filename</literal> is the name of the file to be edited. - For example, to edit <filename>/etc/rc.conf</filename>, type in - <command>ee /etc/rc.conf</command>. Once inside of ee, all of the - commands for manipulating the editor's functions are listed at the - top of the display. The caret <literal>^</literal> character means - the control key on the keyboard, so ^e expands to pressing the - control key plus the letter <literal>e</literal>. To leave - <application>ee</application>, hit the escape key, then choose leave - editor. The editor will prompt you to save any changes if the file - has been modified.</para> - - <para>FreeBSD also comes with more powerful text editors such as - <application>vi</application> as part of the base system, and - <application>emacs</application> and <application>vim</application> - as part of the FreeBSD ports collection. These editors offer much - more functionality and power at the expense of being a little more - complicated to learn. However if you plan on doing a lot of text - editing, learning a more powerful editor such as - <application>vim</application> or <application>emacs</application> - will save you much more time in the long run.</para> - </sect1> - - <sect1> - <title>For more information...</title> - - <sect2 id="basics-man"> - <title>Manual pages</title> - - <para>The most comprehensive documentation on FreeBSD is in the form - of man pages. Nearly every program on the system comes with a - short reference manual explaining the basic operation and various - arguments. These manuals can be viewed with the man command. Use - of the man command is simple:</para> - - <para><command>&prompt.user; man command</command></para> - - <para><literal>command</literal> is the name of the command you - wish to learn about. For example, to learn more about - <command>ls</command> command type:</para> - - <para><command>&prompt.user; man ls</command></para> - - <para>The online manual is divided up into numbered sections:</para> - - <orderedlist> - <listitem> - <para>User commands.</para> - </listitem> - - <listitem> - <para>System calls and error numbers.</para> - </listitem> - - <listitem> - <para>Functions in the C libraries.</para> - </listitem> - - <listitem> - <para>Device drivers.</para> - </listitem> - - <listitem> - <para>File formats.</para> - </listitem> - - <listitem> - <para>Games and other diversions.</para> - </listitem> - - <listitem> - <para>Miscellaneous information.</para> - </listitem> - - <listitem> - <para>System maintenance and operation commands.</para> - </listitem> - - <listitem> - <para>Kernel developers.</para> - </listitem> - </orderedlist> - - <para>In some cases, the same topic may appear in more than one - section of the online manual. For example, there is a chmod user - command and a <literal>chmod()</literal> system call. In this - case, you can tell the man command which one you want by - specifying the section:</para> - - <para><command>&prompt.user; man 1 chmod</command></para> - - <para>This will display the manual page for the user command - <command>chmod</command>. References to a particular section of - the online manual are traditionally placed in parenthesis in - written documentation, so &man.chmod.1; refers to the - <command>chmod</command> user command and &man.chmod.2; refers to - the system call.</para> - - <para>This is fine if you know the name of the command and simply - wish to know how to use it, but what if you cannot recall the - command name? You can use man to search for keywords in the - command descriptions by using the <option>-k</option> - switch:</para> - - <para><command>&prompt.user; man -k mail</command></para> - - <para>With this command you will be presented with a list of - commands that have the keyword <quote>mail</quote> in their - descriptions. This is actually functionally equivalent to using - the apropos command.</para> - - <para>So, you are looking at all those fancy commands in - <filename>/usr/bin</filename> but do not have the faintest idea - what most of them actually do? Simply do a - <command>&prompt.user; cd /usr/bin; man -f *</command> or - <command>&prompt.user; cd /usr/bin; whatis *</command> which - does the same thing.</para> - </sect2> - - <sect2 id="basics-info"> - <title>GNU Info Files</title> - - <para>FreeBSD includes many applications and utilities produced by - the Free Software Foundation (FSF). In addition to man pages, - these programs come with more extensive hypertext documents called - <literal>info</literal> files which can be viewed with the - <command>info</command> command or, if you installed - <application>emacs</application>, the info mode of - <application>emacs</application>.</para> - - <para>To use the &man.info.1; command, simply type:</para> - - <para><command>&prompt.user; info</command></para> - - <para>For a brief introduction, type <literal>h</literal>. For a - quick command reference, type <literal>?</literal>.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/bibliography/chapter.sgml b/en_US.ISO8859-1/books/handbook/bibliography/chapter.sgml deleted file mode 100644 index 5b730c1e5b..0000000000 --- a/en_US.ISO8859-1/books/handbook/bibliography/chapter.sgml +++ /dev/null @@ -1,478 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/bibliography/chapter.sgml,v 1.22 2000/06/08 01:56:01 jim Exp $ ---> - -<appendix id="bibliography"> - <title>Bibliography</title> - - <para>While the manual pages provide the definitive reference for individual - pieces of the FreeBSD operating system, they are notorious for not - illustrating how to put the pieces together to make the whole operating - system run smoothly. For this, there is no substitute for a good book on - UNIX system administration and a good users' manual.</para> - - <sect1 id="bibliography-freebsd"> - <title>Books & Magazines Specific to FreeBSD</title> - - <para><emphasis>International books & - Magazines:</emphasis></para> - - <itemizedlist> - <listitem> - <para><ulink - url="http://freebsd.csie.nctu.edu.tw/~jdli/book.html">Using - FreeBSD</ulink> (in Chinese).</para> - </listitem> - - <listitem> - <para>FreeBSD for PC 98'ers (in Japanese), published by SHUWA System - Co, LTD. ISBN 4-87966-468-5 C3055 P2900E.</para> - </listitem> - - <listitem> - <para>FreeBSD (in Japanese), published by 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">Complete Introduction to FreeBSD</ulink> (in Japanese), published by <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">Personal UNIX Starter Kit FreeBSD</ulink> (in Japanese), published by <ulink url="http://www.ascii.co.jp/">ASCII</ulink>. ISBN 4-7561-1733-3 P3000E.</para> - </listitem> - - <listitem> - <para>FreeBSD Handbook (Japanese translation), published by <ulink - url="http://www.ascii.co.jp/">ASCII</ulink>. ISBN 4-7561-1580-2 - P3800E.</para> - </listitem> - - <listitem> - <para>FreeBSD mit Methode (in German), published by Computer und - Literatur Verlag/Vertrieb Hanser, 1998. ISBN 3-932311-31-0.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.pc.mycom.co.jp/FreeBSD/install-manual.html">FreeBSD Install and Utilization Manual</ulink> (in Japanese), published by <ulink url="http://www.pc.mycom.co.jp/">Mainichi Communications Inc.</ulink>.</para> - </listitem> - </itemizedlist> - - <para><emphasis>English language books & Magazines:</emphasis></para> - - <itemizedlist> - <listitem> - <para><ulink - url="http://www.cdrom.com/titles/freebsd/bsdcomp_bkx.phtml"> - The Complete FreeBSD</ulink>, published by <ulink - url="http://www.cdrom.com/">Walnut Creek CDROM</ulink>.</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1 id="bibliography-userguides"> - <title>Users' Guides</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/">Ohio State - University</ulink> has written a <ulink - url="http://www-wks.acs.ohio-state.edu/unix_course/unix.html">UNIX - Introductory Course</ulink> which is available online in HTML and - postscript format.</para> - </listitem> - - <listitem> - <para><ulink url="http://www.jp.FreeBSD.org/">Jpman Project, Japan - FreeBSD Users Group</ulink>. <ulink - url="http://www.pc.mycom.co.jp/FreeBSD/urm.html">FreeBSD User's - Reference Manual</ulink> (Japanese translation). <ulink - url="http://www.pc.mycom.co.jp/">Mainichi Communications - Inc.</ulink>, 1998. ISBN4-8399-0088-4 P3800E.</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1 id="bibliography-adminguides"> - <title>Administrators' Guides</title> - - <itemizedlist> - <listitem> - <para>Albitz, Paul and Liu, Cricket. <emphasis>DNS and - BIND</emphasis>, 3nd Ed. O'Reilly & Associates, Inc., 1998. - ISBN 1-56592-512-2</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</para> - </listitem> - - <listitem> - <para>Hunt, Craig. <emphasis>TCP/IP Network - Administration</emphasis>, 2nd Ed. O'Reilly & Associates, Inc., 1997. - ISBN 1-56592-322-7</para> - </listitem> - - <listitem> - <para>Nemeth, Evi. <emphasis>UNIX System Administration - Handbook</emphasis>. 3nd Ed. Prentice Hall, 2000. ISBN - 0-13-020601-6</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, Japan - FreeBSD Users Group</ulink>. <ulink - url="http://www.pc.mycom.co.jp/FreeBSD/sam.html">FreeBSD System - Administrator's Manual</ulink> (Japanese translation). <ulink - url="http://www.pc.mycom.co.jp/">Mainichi Communications - Inc.</ulink>, 1998. ISBN4-8399-0109-0 P3300E.</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1 id="bibliography-programmers"> - <title>Programmers' Guides</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. <quote>Writing Serial Drivers for UNIX</quote>. - <emphasis>Dr. Dobb's Journal</emphasis>. 19(15), December 1994. - pp68-71, 97-99.</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1 id="bibliography-osinternals"> - <title>Operating System Internals</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. <quote>Porting UNIX to the 386</quote>. - <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 id="bibliography-security"> - <title>Security Reference</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 id="bibliography-hardware"> - <title>Hardware Reference</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 publishes documentation on their CPUs, - chipsets and standards on their <ulink - url="http://developer.intel.com/">developer web site</ulink>, - usually as PDF files.</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 id="bibliography-history"> - <title>UNIX History</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 Dictionary, 3rd - edition</emphasis>. MIT Press, 1996. ISBN - 0-262-68092-0. Also known as the <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> or <ulink url="file:/usr/share/misc/bsd-family-tree">local</ulink> on a FreeBSD-current machine.</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>Old BSD releases from the Computer Systems Research - group (CSRG)</emphasis>. <ulink - url="http://www.mckusick.com/csrg/">http://www.mckusick.com/csrg/</ulink>: - The 4CD set covers all BSD versions from 1BSD to 4.4BSD and - 4.4BSD-Lite2 (but not 2.11BSD, unfortunately). As well, the last - disk holds the final sources plus the SCCS files.</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1 id="bibliography-journals"> - <title>Magazines and Journals</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> -</appendix> - -<!-- - Local Variables: - mode: sgml - sgml-declaration: "../appendix.decl" - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - sgml-parent-document: ("../book.sgml" "part" "appendix") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/book.sgml b/en_US.ISO8859-1/books/handbook/book.sgml deleted file mode 100644 index e1189bf984..0000000000 --- a/en_US.ISO8859-1/books/handbook/book.sgml +++ /dev/null @@ -1,137 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/book.sgml,v 1.88 2000/03/21 19:56:11 jim Exp $ ---> - -<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> -%man; - -<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//EN"> -%bookinfo; - -<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters; -<!ENTITY % authors SYSTEM "authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "mailing-lists.ent"> %mailing-lists; -<!ENTITY % newsgroups SYSTEM "newsgroups.ent"> %newsgroups; -<!ENTITY % not.published "INCLUDE"> - -<!-- The currently released version of FreeBSD. This value is used to - create some links on web sites and such, so do NOT change it until - it's really release time --> -<!ENTITY rel.current CDATA "4.0"> -]> - -<book> - <bookinfo> - <title>FreeBSD Handbook</title> - - <authorgroup> - <author> - <surname>The FreeBSD Documentation Project</surname> - <affiliation> - <address> - <email>doc@FreeBSD.org</email> - </address> - </affiliation> - </author> - </authorgroup> - - <pubdate>February 1999</pubdate> - - <copyright> - <year>1995</year> - <year>1996</year> - <year>1997</year> - <year>1998</year> - <year>1999</year> - <year>2000</year> - <holder>The FreeBSD Documentation Project</holder> - </copyright> - - &bookinfo.legalnotice; - - <abstract> - <para>Welcome to FreeBSD! This handbook covers the installation and day - to day use of <emphasis>FreeBSD Release &rel.current;</emphasis>. - This manual is a <emphasis>work in progress</emphasis> and is the work - of many individuals. Many sections do not yet exist and some of those - that do exist need to be updated. If you are interested in helping - with this project, send email to the &a.doc;. The latest version of - this document is always available from the <ulink - URL="http://www.FreeBSD.org/">FreeBSD World Wide Web server</ulink>. - It may also be downloaded in a variety of formats and compression - options from the <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc">FreeBSD FTP - server</ulink> or one of the numerous <link - linkend="mirrors-ftp">mirror sites</link>. You may also want to - <ulink URL="http://www.FreeBSD.org/search.html">Search the - Handbook</ulink>.</para> - </abstract> - </bookinfo> - - <part> - <title>Getting Started</title> - - &chap.introduction; - &chap.install; - &chap.basics; - &chap.ports; - </part> - - <part> - <title>System Administration</title> - - &chap.boot; - &chap.users; - &chap.kernelconfig; - &chap.security; - &chap.printing; - &chap.disks; - &chap.backups; - &chap.x11; - &chap.l10n; - </part> - - <part> - <title>Network Communications</title> - - &chap.serialcomms; - &chap.ppp-and-slip; - &chap.advanced-networking; - &chap.mail; - </part> - - <part> - <title>Advanced topics</title> - - &chap.cutting-edge; - &chap.contrib; - &chap.policies; - &chap.kernelopts; - &chap.kerneldebug; - &chap.linuxemu; - &chap.internals; - </part> - - <part> - <title>Appendices</title> - - &chap.mirrors; - &chap.bibliography; - &chap.eresources; - &chap.staff; - &chap.pgpkeys; - &chap.hw; - </part> -</book> - -<!-- - Local Variables: - mode: sgml - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - End: ---> diff --git a/en_US.ISO8859-1/books/handbook/boot/chapter.sgml b/en_US.ISO8859-1/books/handbook/boot/chapter.sgml deleted file mode 100644 index f87beacb07..0000000000 --- a/en_US.ISO8859-1/books/handbook/boot/chapter.sgml +++ /dev/null @@ -1,549 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/boot/chapter.sgml,v 1.7 2000/04/07 21:26:56 jim Exp $ ---> - -<chapter id="boot"> - <title>The FreeBSD Booting Process</title> - - <sect1 id="boot-synopsis"> - <title>Synopsis</title> - - <para>FreeBSD uses a three-stage bootstrap by default, which - basically entails three programs which call each - other in order (two <link linkend="boot-blocks">boot - blocks</link>, and the <link - linkend="boot-loader">loader</link>). Each of these three build on the - previous program's understanding and provide increasing amounts - of sophistication.</para> - - <para>The kernel is then started, which will then probe for devices - and initialize them for use. Once the kernel boot - process is finished, the kernel passes control to the user process - &man.init.8;, which then makes sure the disks are in a usable state. - &man.init.8; then starts the user-level resource configuration which - then mounts filesystems, sets up network cards to act on the - network, and generally starts all the processes that usually - are run on a FreeBSD system at startup.</para> - </sect1> - - <sect1 id="boot-blocks"> - <title>The Boot Blocks: Bootstrap Stages 1 and 2</title> - - <para><firstterm>Bootstrapping</firstterm> is the process - whereby a computer probes and initializes its devices, and - works out what programs it is supposed to run.</para> - - <para>This involves the use of special Read Only Memory chips, - which determine what further operations to do, and these - usually pass control to other chips that do consistency and - memory tests, configure devices, and provide a mechanism for - programs to determine what configuration details were - determined.</para> - - <para>In standard personal computers, this involves the BIOS - (which oversees the bootstrap), and CMOS (which stores - configuration). BIOS and CMOS understand disks, and also - understand where on the disk to find a program that will know - how to load up an operating system.</para> - - <para>This chapter will not deal with this first part of the - bootstrap process. Instead it will focus on what happens after control - is passed to the program on the disk.</para> - - <para>The boot blocks are responsible for finding (usually) the - loader, and running it, and thus need to understand how to - find that program on the filesystem, how to run the program, - and also allow minor configuration of how they work.</para> - - <sect2 id="boot-boot0"> - <title>boot0</title> - - <para>There is actually a preceding bootblock, named boot0, - which lives on the <firstterm>Master Boot - Record</firstterm>, the special part of the disk that the - system bootstrap looks for and runs, and it simply shows a - list of possible slices to boot from.</para> - - <para>boot0 is very simple, since the program in the - <abbrev>MBR</abbrev> can only be 512 bytes in size.</para> - - <para>It displays something like this:</para> - - <example id="boot-boot0-example"> - <title>boot0 screenshot</title> - - <screen> -F1 DOS -F2 FreeBSD -F3 Linux -F4 ?? -F5 Drive 1 - -Default: F2</screen> - </example> - </sect2> - - <sect2 id="boot-boot1"> - <title>boot1</title> - - <para>boot1 is found on the boot sector of the boot slice, - which is where <link linkend="boot-boot0">boot0</link>, or - any other program on the <abbrev>MBR</abbrev> expects to - find the program to run to continue the boot process.</para> - - <para>boot1 is very simple, since it too can only be 512 bytes - in size, and knows just enough about the FreeBSD - <firstterm>disklabel</firstterm>, which stores information - about the slice, to find and execute <link - linkend="boot-boot2">boot2</link>.</para> - </sect2> - - <sect2 id="boot-boot2"> - <title>boot2</title> - - <para>boot2 is slightly more sophisticated, and understands - the FreeBSD filesystem enough to find files on it, and can - provide a simple interface to choose the kernel or loader to - run.</para> - - <para>Since the <link linkend="boot-loader">loader</link> is - much more sophisticated, and provides a nice easy-to-use - boot configuration, boot2 usually runs it, but previously it - was tasked to run the kernel directly.</para> - - <example id="boot-boot2-example"> - <title>boot2 screenshot</title> - - <screen>>> FreeBSD/i386 BOOT -Default: 0:wd(0,a)/kernel -boot:</screen> - </example> - </sect2> - </sect1> - - <sect1 id="boot-loader"> - <title>Loader: Bootstrap Stage Three</title> - - <para>The loader is the final stage of the three-stage - bootstrap, and is located on the filesystem, usually as - <filename>/boot/loader</filename>.</para> - - <note> - <para>While <filename>/boot/boot0</filename>, - <filename>/boot/boot1</filename>, and - <filename>/boot/boot2</filename> are files there, they are - not the actual copies in the <abbrev>MBR</abbrev>, the boot - sector, or the disklabel respectively.</para> - </note> - - <para>The loader is intended as a user-friendly method for - configuration, using an easy-to-use built-in command set, - backed up by a more powerful interpreter, with a more complex - command set.</para> - - <sect2 id="boot-loader-flow"> - <title>Loader Program Flow</title> - - <para>During initialization, the loader will probe for a - console and for disks, and figure out what disk it is - booting from. It will set variables accordingly, and then - the interpreter is started, and the easy-to-use commands are - explained to it.</para> - - <para>loader will then read - <filename>/boot/loader.rc</filename>, which by default reads - in <filename>/boot/defaults/loader.conf</filename> which - sets reasonable defaults for variables and reads - <filename>/boot/loader.conf</filename> for local changes to - those variables. <filename>loader.rc</filename> then acts - on these variables, loading whichever modules and kernel are - selected.</para> - - <para>Finally, by default, the loader issues a 10 second wait - for keypresses, and boots the kernel if it is interrupted. - If interrupted, the user is presented with a prompt which - understands the easy-to-use command set, where the user may - adjust variables, unload all modules, load modules, and then - finally boot or reboot.</para> - - <para>A more technical discussion of the process is available - in &man.loader.8;</para> - </sect2> - - <sect2 id="boot-loader-commands"> - <title>Loader Built-In Commands</title> - - <para>The easy-to-use command set comprises of:</para> - - <variablelist> - <varlistentry> - <term>autoboot <replaceable>seconds</replaceable></term> - - <listitem> - <para>Proceeds to boot the kernel if not interrupted - within the time span given, in seconds. It displays a - countdown, and the default timespan is 10 - seconds.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>boot - <optional><replaceable>-options</replaceable></optional> - <optional><replaceable>kernelname</replaceable></optional></term> - - <listitem> - <para>Immediately proceeds to boot the kernel, with the - given options, if any, and with the kernel name given, - if it is.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>boot-conf</term> - - <listitem> - <para>Goes through the same automatic configuration of - modules based on variables as what happens at boot. - This only makes sense if you use - <command>unload</command> first, and change some - variables, most commonly <envar>kernel</envar>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>help - <optional><replaceable>topic</replaceable></optional></term> - - <listitem> - <para>Shows help messages read from - <filename>/boot/loader.help</filename>. If the topic - given is <literal>index</literal>, then the list of - available topics is given.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>include <replaceable>filename</replaceable> - …</term> - - <listitem> - <para>Processes the file with the given filename. The - file is read in, and interpreted line by line. An - error immediately stops the include command.</para> - </listitem> - </varlistentry> - <varlistentry> - <term>load <optional><option>-t</option> - <replaceable>type</replaceable></optional> - <replaceable>filename</replaceable></term> - - <listitem> - <para>Loads the kernel, kernel module, or file of the - type given, with the filename given. Any arguments - after filename are passed to the file.</para> - </listitem> - </varlistentry> - <varlistentry> - <term>ls <optional><option>-l</option></optional> - <optional><replaceable>path</replaceable></optional></term> - - <listitem> - <para>Displays a listing of files in the given path, or - the root directory, if the path is not specified. If - <option>-l</option> is specified, file sizes will be - shown too.</para> - </listitem> - </varlistentry> - <varlistentry> - <term>lsdev <optional><option>-v</option></optional></term> - - <listitem> - <para>Lists all of the devices from which it may be - possible to load modules. If <option>-v</option> is - specified, more details are printed.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>lsmod <optional><option>-v</option></optional></term> - - <listitem> - <para>Displays loaded modules. If <option>-v</option> is - specified, more details are shown.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>more <replaceable>filename</replaceable></term> - - <listitem> - <para>Display the files specified, with a pause at each - <varname>LINES</varname> displayed.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>reboot</term> - - <listitem> - <para>Immediately reboots the system.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>set <replaceable>variable</replaceable></term> - <term>set - <replaceable>variable</replaceable>=<replaceable>value</replaceable></term> - - <listitem> - <para>Set loader's environment variables.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>unload</term> - - <listitem> - <para>Removes all loaded modules.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - - <sect2 id="boot-loader-examples"> - <title>Loader Examples</title> - - <para>Here are some practical examples of loader usage.</para> - - <itemizedlist> - <listitem> - <para>To simply boot your usual kernel, but in single-user - mode:</para> - - <screen><userinput>boot -s</userinput></screen> - </listitem> - - <listitem> - <para>To unload your usual kernel and modules, and then - load just your old (or another) kernel:</para> - - <screen><userinput>unload</userinput> - <userinput>load <replaceable>kernel.old</replaceable></userinput></screen> - - <para>You can use <filename>kernel.GENERIC</filename> to - refer to the generic kernel that comes on the install - disk, or <filename>kernel.old</filename> to refer to - your previously installed kernel (when you've upgraded - or configured your own kernel, for example).</para> - - <note> - <para>Use the following to load your usual modules with - another kernel:</para> - - <screen><userinput>unload</userinput> -<userinput>set kernel="<replaceable>kernel.old</replaceable>"</userinput> -<userinput>boot-conf</userinput></screen> - </note> - </listitem> - - <listitem> - <para>To load a kernel configuration script (an automated - script which does the things you'd normally do in the - kernel boot-time configurator):</para> - - <screen><userinput>load -t userconfig_script - <replaceable>/boot/kernel.conf</replaceable></userinput></screen> - </listitem> - </itemizedlist> - </sect2> - </sect1> - - <sect1 id="boot-kernel"> - <title>Kernel Interaction During Boot</title> - - <para>Once the kernel is loaded by either <link - linkend="boot-loader">loader</link> (as usual) or <link - linkend="boot-boot2">boot2</link> (bypassing the loader), it - examines its boot flags, if any, and adjusts its behavior as - necessary.</para> - - <sect2 id="boot-kernel-bootflags"> - <title>Kernel Boot Flags</title> - - <para>Here are the more common boot flags:</para> - - <variablelist id="boot-kernel-bootflags-list"> - <varlistentry> - <term><option>-a</option></term> - - <listitem> - <para>during kernel initialization, ask for the device - to mount as as the root file system.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-C</option></term> - - <listitem> - <para>boot from CDROM.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-c</option></term> - - <listitem> - <para>run UserConfig, the boot-time kernel - configurator</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-s</option></term> - - <listitem> - <para>boot into single-user mode</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-v</option></term> - - <listitem> - <para>be more verbose during kernel startup</para> - </listitem> - </varlistentry> - </variablelist> - - <note> - <para>There are other boot flags, read &man.boot.8; for more - information on them.</para> - </note> - </sect2> - -<!-- <sect2 id="boot-kernel-userconfig"> - <title>UserConfig: The boot-time kernel configurator</title> - - <para> </para> - </sect2> --> - </sect1> - - <sect1 id="boot-init"> - <title>Init: Process Control Initialization</title> - - <para>Once the kernel has finished booting, it passes control to - the user process <command>init</command>, which is located at - <filename>/sbin/init</filename>, or the program path specified - in the <envar>init_path</envar> variable in - <command>loader</command>.</para> - - <sect2 id="boot-autoreboot"> - <title>Automatic Reboot Sequence</title> - - <para>The automatic reboot sequence makes sure that the - filesystems available on the system are consistent. If they - are not, and <command>fsck</command> can not fix the - inconsistencies, <command>init</command> drops the system - into <link linkend="boot-singleuser">single-user mode</link> - for the system administrator to take care of the problems - directly.</para> - </sect2> - - <sect2 id="boot-singleuser"> - <title>Single-User Mode</title> - - <para>This mode can be reached through the <link - linkend="boot-autoreboot">automatic reboot - sequence</link>, or by the user booting with the - <option>-s</option> or setting the - <envar>boot_single</envar> variable in - <command>loader</command>.</para> - - <para>It can also be reached by calling - <command>shutdown</command> without the reboot - (<option>-r</option>) or halt (<option>-h</option>) options, - from <link linkend="boot-multiuser">multi-user - mode</link>.</para> - - <para>If the system console <literal>console</literal> is set - to <literal>insecure</literal> in - <filename>/etc/ttys</filename>, then the system prompts for - the root password before initiating single-user mode.</para> - - <example id="boot-insecure-console"> - <title>An insecure console in /etc/ttys</title> - - <programlisting># name getty type status comments -# -# This entry needed for asking password when init goes to single-user mode -# If you want to be asked for password, change "secure" to "insecure" here -console none unknown off insecure</programlisting> - </example> - - <note> - <para>An <literal>insecure</literal> console means that you - consider your physical security to the console to be - insecure, and want to make sure only someone who knows the - root password may use single-user mode, and it does not - mean that you want to run your console insecurely. Thus, - if you want security, choose <literal>insecure</literal>, - not <literal>secure</literal>.</para> - </note> - </sect2> - - <sect2 id="boot-multiuser"> - <title>Multi-User Mode</title> - - <para>If <command>init</command> finds your filesystems to be - in order, or once the user has finished in <link - linkend="boot-singleuser">single-user mode</link>, the - system enters multi-user mode, in which it starts the - resource configuration of the system.</para> - - <sect3 id="boot-rc"> - <title>Resource Configuration (rc)</title> - - <para>The resource configuration system reads in - configuration defaults from - <filename>/etc/defaults/rc.conf</filename>, and - system-specific details from - <filename>/etc/rc.conf</filename>, and then proceeds to - mount the system filesystems mentioned in - <filename>/etc/fstab</filename>, start up networking - services, starts up miscellaneous system daemons, and - finally runs the startup scripts of locally installed - packages.</para> - - <para>&man.rc.8; is a good reference to the resource - configuration system, as is examining the scripts - themselves.</para> - </sect3> - </sect2> - </sect1> - - <sect1 id="boot-shutdown"> - <title>Shutdown Sequence</title> - - <para>Upon controlled shutdown, via <command>shutdown</command>, - <command>init</command> will attempt to run the script - <filename>/etc/rc.shutdown</filename>, and then proceed to send - all processes the terminate signal, and subsequently the kill - signal to any that don't terminate timely.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/chapter.decl b/en_US.ISO8859-1/books/handbook/chapter.decl deleted file mode 100644 index ce0a7ed16a..0000000000 --- a/en_US.ISO8859-1/books/handbook/chapter.decl +++ /dev/null @@ -1 +0,0 @@ -<!DOCTYPE chapter PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN"> diff --git a/en_US.ISO8859-1/books/handbook/chapters.ent b/en_US.ISO8859-1/books/handbook/chapters.ent deleted file mode 100644 index 990f8a51b3..0000000000 --- a/en_US.ISO8859-1/books/handbook/chapters.ent +++ /dev/null @@ -1,50 +0,0 @@ -<!-- - 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. - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/chapters.ent,v 1.7 2000/03/17 10:44:01 nbm Exp $ ---> - -<!-- 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.boot SYSTEM "boot/chapter.sgml"> -<!ENTITY chap.users SYSTEM "users/chapter.sgml"> -<!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.x11 SYSTEM "x11/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"> -<!ENTITY chap.hw SYSTEM "hw/chapter.sgml"> diff --git a/en_US.ISO8859-1/books/handbook/contrib/chapter.sgml b/en_US.ISO8859-1/books/handbook/contrib/chapter.sgml deleted file mode 100644 index a9326bee0e..0000000000 --- a/en_US.ISO8859-1/books/handbook/contrib/chapter.sgml +++ /dev/null @@ -1,6011 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/contrib/chapter.sgml,v 1.229 2000/06/19 09:30:36 assar Exp $ ---> - -<chapter id="contrib"> - <title>Contributing to FreeBSD</title> - - <para><emphasis>Contributed by &a.jkh;.</emphasis></para> - - <para>So you want to contribute something to FreeBSD? That is great! We can - always use the help, and FreeBSD is one of those systems that - <emphasis>relies</emphasis> on the contributions of its user base in order - to survive. Your contributions are not only appreciated, they are vital - to FreeBSD's continued growth!</para> - - <para>Contrary to what some people might also have you believe, you do not - need to be a hot-shot programmer or a close personal friend of the FreeBSD - core team in order to have your contributions accepted. The FreeBSD - Project's development is done by a large and growing number of - international contributors whose ages and areas of technical expertise - vary greatly, and there is always more work to be done than there are - people available to do it.</para> - - <para>Since the FreeBSD project is responsible for an entire operating - system environment (and its installation) rather than just a kernel or a - few scattered utilities, our <filename>TODO</filename> list also spans a - very wide range of tasks, from documentation, beta testing and - presentation to highly specialized types of kernel development. No matter - what your skill level, there is almost certainly something you can do to - help the project!</para> - - <para>Commercial entities engaged in FreeBSD-related enterprises are also - encouraged to contact us. Need a special extension to make your product - work? You will find us receptive to your requests, given that they are not - too outlandish. Working on a value-added product? Please let us know! We - may be able to work cooperatively on some aspect of it. The free software - world is challenging a lot of existing assumptions about how software is - developed, sold, and maintained throughout its life cycle, and we urge you - to at least give it a second look.</para> - - <sect1 id="contrib-what"> - <title>What is Needed</title> - - <para>The following list of tasks and sub-projects represents something of - an amalgam of the various core team <filename>TODO</filename> lists and - user requests we have collected over the last couple of months. Where - possible, tasks have been ranked by degree of urgency. If you are - interested in working on one of the tasks you see here, send mail to the - coordinator listed by clicking on their names. If no coordinator has - been appointed, maybe you would like to volunteer?</para> - - <sect2> - <title>High priority tasks</title> - - <para>The following tasks are considered to be urgent, usually because - they represent something that is badly broken or sorely needed:</para> - - <orderedlist> - <listitem> - <para>3-stage boot issues. Overall coordination: &a.hackers;</para> - - <itemizedlist> - <listitem> - <para>Do WinNT compatible drive tagging so that the 3rd stage - can provide an accurate mapping of BIOS geometries for - disks.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Filesystem problems. Overall coordination: &a.fs;</para> - - <itemizedlist> - <listitem> - <para>Clean up and document the nullfs filesystem code. - Coordinator: &a.eivind;</para> - </listitem> - - <listitem> - <para>Fix the union file system. Coordinator: &a.dg;</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Implement Int13 vm86 disk driver. Coordinator: - &a.hackers;</para> - </listitem> - - <listitem> - <para>New bus architecture. Coordinator: &a.newbus;</para> - - <itemizedlist> - <listitem> - <para>Port existing ISA drivers to new architecture.</para> - </listitem> - - <listitem> - <para>Move all interrupt-management code to appropriate parts of - the bus drivers.</para> - </listitem> - - <listitem> - <para>Port PCI subsystem to new architecture. Coordinator: - &a.dfr;</para> - </listitem> - - <listitem> - <para>Figure out the right way to handle removable devices and - then use that as a substrate on which PC-Card and CardBus - support can be implemented.</para> - </listitem> - - <listitem> - <para>Resolve the probe/attach priority issue once and for - all.</para> - </listitem> - - <listitem> - <para>Move any remaining buses over to the new - architecture.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Kernel issues. Overall coordination: &a.hackers;</para> - </listitem> - - <listitem> - <para>Add more pro-active security infrastructure. Overall - coordination: &a.security;</para> - - <itemizedlist> - <listitem> - <para>Build something like Tripwire(TM) into the kernel, with a - remote and local part. There are a number of cryptographic - issues to getting this right; contact the coordinator for - details. Coordinator: &a.eivind;</para> - </listitem> - - <listitem> - <para>Make the entire kernel use <literal>suser()</literal> - instead of comparing to 0. It is presently using about half - of each. Coordinator: &a.eivind;</para> - </listitem> - - <listitem> - <para>Split securelevels into different parts, to allow an - administrator to throw away those privileges he can throw - away. Setting the overall securelevel needs to have the same - effect as now, obviously. Coordinator: &a.eivind;</para> - </listitem> - - <listitem> - <para>Make it possible to upload a list of <quote>allowed - program</quote> to BPF, and then block BPF from accepting other - programs. This would allow BPF to be used e.g. for DHCP, - without allowing an attacker to start snooping the local - network.</para> - </listitem> - - <listitem> - <para>Update the security checker script. We should at least - grab all the checks from the other BSD derivatives, and add - checks that a system with securelevel increased also have - reasonable flags on the relevant parts. Coordinator: - &a.eivind;</para> - </listitem> - - <listitem> - <para>Add authorization infrastructure to the kernel, to allow - different authorization policies. Part of this could be done - by modifying <literal>suser()</literal>. Coordinator: - &a.eivind;</para> - </listitem> - - <listitem> - <para>Add code to the NFS layer so that you cannot - <literal>chdir("..")</literal> out of an NFS partition. E.g., - <filename>/usr</filename> is a UFS partition with - <filename>/usr/src</filename> NFS exported. Now it is - possible to use the NFS filehandle for - <filename>/usr/src</filename> to get access to - <filename>/usr</filename>.</para> - </listitem> - </itemizedlist> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Medium priority tasks</title> - - <para>The following tasks need to be done, but not with any particular - urgency:</para> - - <orderedlist> - <listitem> - <para>Full KLD based driver support/Configuration Manager.</para> - - <itemizedlist> - <listitem> - <para>Write a configuration manager (in the 3rd stage boot?) - that probes your hardware in a sane manner, keeps only the - KLDs required for your hardware, etc.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>PCMCIA/PCCARD. Coordinators: &a.msmith; and &a.imp;</para> - - <itemizedlist> - <listitem> - <para>Documentation!</para> - </listitem> - - <listitem> - <para>Reliable operation of the pcic driver (needs - testing).</para> - </listitem> - - <listitem> - <para>Recognizer and handler for <filename>sio.c</filename> - (mostly done).</para> - </listitem> - - <listitem> - <para>Recognizer and handler for <filename>ed.c</filename> - (mostly done).</para> - </listitem> - - <listitem> - <para>Recognizer and handler for <filename>ep.c</filename> - (mostly done).</para> - </listitem> - - <listitem> - <para>User-mode recognizer and handler (partially done).</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Advanced Power Management. Coordinators: &a.msmith; and - &a.phk;</para> - - <itemizedlist> - <listitem> - <para>APM sub-driver (mostly done).</para> - </listitem> - - <listitem> - <para>IDE/ATA disk sub-driver (partially done).</para> - </listitem> - - <listitem> - <para>syscons/pcvt sub-driver.</para> - </listitem> - - <listitem> - <para>Integration with the PCMCIA/PCCARD drivers - (suspend/resume).</para> - </listitem> - </itemizedlist> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Low priority tasks</title> - - <para>The following tasks are purely cosmetic or represent such an - investment of work that it is not likely that anyone will get them - done anytime soon:</para> - - <para>The first N items are from Terry Lambert - <email>terry@lambert.org</email></para> - - <orderedlist> - <listitem> - <para>NetWare Server (protected mode ODI driver) loader and - sub-services to allow the use of ODI card drivers supplied with - network cards. The same thing for NDIS drivers and NetWare SCSI - drivers.</para> - </listitem> - - <listitem> - <para>An "upgrade system" option that works on Linux boxes instead - of just previous rev FreeBSD boxes.</para> - </listitem> - - <listitem> - <para>Symmetric Multiprocessing with kernel preemption (requires - kernel preemption).</para> - </listitem> - - <listitem> - <para>A concerted effort at support for portable computers. This is - somewhat handled by changing PCMCIA bridging rules and power - management event handling. But there are things like detecting - internal v.s.. external display and picking a different screen - resolution based on that fact, not spinning down the disk if the - machine is in dock, and allowing dock-based cards to disappear - without affecting the machines ability to boot (same issue for - PCMCIA).</para> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Smaller tasks</title> - - <para>Most of the tasks listed in the previous sections require either a - considerable investment of time or an in-depth knowledge of the - FreeBSD kernel (or both). However, there are also many useful tasks - which are suitable for "weekend hackers", or people without - programming skills.</para> - - <orderedlist> - <listitem> - <para>If you run FreeBSD-current and have a good Internet - connection, there is a machine <hostid - role="fqdn">current.FreeBSD.org</hostid> which builds a full - release once a day — every now and again, try and install - the latest release from it and report any failures in the - process.</para> - </listitem> - - <listitem> - <para>Read the freebsd-bugs mailing list. There might be a - problem you can comment constructively on or with patches you - can test. Or you could even try to fix one of the problems - yourself.</para> - </listitem> - - <listitem> - <para>Read through the FAQ and Handbook periodically. If anything - is badly explained, out of date or even just completely wrong, let - us know. Even better, send us a fix (SGML is not difficult to - learn, but there is no objection to ASCII submissions).</para> - </listitem> - - <listitem> - <para>Help translate FreeBSD documentation into your native language - (if not already available) — just send an email to &a.doc; - asking if anyone is working on it. Note that you are not - committing yourself to translating every single FreeBSD document - by doing this — in fact, the documentation most in need of - translation is the installation instructions.</para> - </listitem> - - <listitem> - <para>Read the freebsd-questions mailing list and &ng.misc - occasionally (or even regularly). It can be very satisfying to - share your expertise and help people solve their problems; - sometimes you may even learn something new yourself! These forums - can also be a source of ideas for things to work on.</para> - </listitem> - - <listitem> - <para>If you know of any bug fixes which have been successfully - applied to -current but have not been merged into -stable after a - decent interval (normally a couple of weeks), send the committer a - polite reminder.</para> - </listitem> - - <listitem> - <para>Move contributed software to <filename>src/contrib</filename> - in the source tree.</para> - </listitem> - - <listitem> - <para>Make sure code in <filename>src/contrib</filename> is up to - date.</para> - </listitem> - - <listitem> - <para>Look for year 2000 bugs (and fix any you find!)</para> - </listitem> - - <listitem> - <para>Build the source tree (or just part of it) with extra warnings - enabled and clean up the warnings.</para> - </listitem> - - <listitem> - <para>Fix warnings for ports which do deprecated things like using - gets() or including malloc.h.</para> - </listitem> - - <listitem> - <para>If you have contributed any ports, send your patches back to - the original author (this will make your life easier when they - bring out the next version)</para> - </listitem> - - <listitem> - <para>Suggest further tasks for this list!</para> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Work through the PR database</title> - - <para>The <ulink - url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">FreeBSD PR - list</ulink> shows all the current active problem reports and - requests for enhancement that have been submitted by FreeBSD users. - Look through the open PRs, and see if anything there takes your - interest. Some of these might be very simple tasks, that just need an - extra pair of eyes to look over them and confirm that the fix in the - PR is a good one. Others might be much more complex.</para> - - <para>Start with the PRs that have not been assigned to anyone else, but - if one them is assigned to someone else, but it looks like something - you can handle, e-mail the person it is assigned to and ask if you can - work on it—they might already have a patch ready to be tested, - or further ideas that you can discuss with them.</para> - </sect2> - </sect1> - - <sect1 id="contrib-how"> - <title>How to Contribute</title> - - <para>Contributions to the system generally fall into one or more of the - following 6 categories:</para> - - <sect2 id="contrib-general"> - <title>Bug reports and general commentary</title> - - <para>An idea or suggestion of <emphasis>general</emphasis> technical - interest should be mailed to the &a.hackers;. Likewise, people with - an interest in such things (and a tolerance for a - <emphasis>high</emphasis> volume of mail!) may subscribe to the - hackers mailing list by sending mail to &a.majordomo;. See <link - linkend="eresources-mail">mailing lists</link> for more information - about this and other mailing lists.</para> - - <para>If you find a bug or are submitting a specific change, please - report it using the &man.send-pr.1; program or its <ulink - url="http://www.FreeBSD.org/send-pr.html">WEB-based - equivalent</ulink>. Try to fill-in each field of the bug report. - Unless they exceed 65KB, include any patches directly in the report. - When including patches, <emphasis>do not</emphasis> use cut-and-paste - because cut-and-paste turns tabs into spaces and makes them unusable. - Consider compressing patches and using &man.uuencode.1; if they exceed - 20KB. Upload very large submissions to <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming/">ftp.FreeBSD.org:/pub/FreeBSD/incoming/</ulink>.</para> - - <para>After filing a report, you should receive confirmation along with - a tracking number. Keep this tracking number so that you can update - us with details about the problem by sending mail to - <email>bug-followup@FreeBSD.org</email>. Use the number as the - message subject, e.g. <literal>"Re: kern/3377"</literal>. Additional - information for any bug report should be submitted this way.</para> - - <para>If you do not receive confirmation in a timely fashion (3 days to - a week, depending on your email connection) or are, for some reason, - unable to use the &man.send-pr.1; command, then you may ask - someone to file it for you by sending mail to the &a.bugs;.</para> - </sect2> - - <sect2> - <title>Changes to the documentation</title> - - <para>Changes to the documentation are overseen by the &a.doc;. Send - submissions and changes (even small ones are welcome!) using - <command>send-pr</command> as described in <link - linkend="contrib-general">Bug Reports and General - Commentary</link>.</para> - </sect2> - - <sect2> - <title>Changes to existing source code</title> - - <para>An addition or change to the existing source code is a somewhat - trickier affair and depends a lot on how far out of date you are with - the current state of the core FreeBSD development. There is a special - on-going release of FreeBSD known as <quote>FreeBSD-current</quote> - which is made available in a variety of ways for the convenience of - developers working actively on the system. See <link - linkend="current">Staying current with FreeBSD</link> for more - information about getting and using FreeBSD-current.</para> - - <para>Working from older sources unfortunately means that your changes - may sometimes be too obsolete or too divergent for easy re-integration - into FreeBSD. Chances of this can be minimized somewhat by - subscribing to the &a.announce; and the &a.current; lists, where - discussions on the current state of the system take place.</para> - - <para>Assuming that you can manage to secure fairly up-to-date sources - to base your changes on, the next step is to produce a set of diffs to - send to the FreeBSD maintainers. This is done with the &man.diff.1; - command, with the <quote>context diff</quote> form - being preferred. For example:</para> - - <para> - <screen>&prompt.user; <userinput>diff -c oldfile newfile</userinput></screen> - - or - - <screen>&prompt.user; <userinput>diff -c -r olddir newdir</userinput></screen> - - would generate such a set of context diffs for the given source file - or directory hierarchy. See the man page for &man.diff.1; for more - details.</para> - - <para>Once you have a set of diffs (which you may test with the - &man.patch.1; command), you should submit them for inclusion with - FreeBSD. Use the &man.send-pr.1; program as described in <link - linkend="contrib-general">Bug Reports and General Commentary</link>. - <emphasis>Do not</emphasis> just send the diffs to the &a.hackers; or - they will get lost! We greatly appreciate your submission (this is a - volunteer project!); because we are busy, we may not be able to - address it immediately, but it will remain in the pr database until we - do.</para> - - <para>If you feel it appropriate (e.g. you have added, deleted, or - renamed files), bundle your changes into a <command>tar</command> file - and run the &man.uuencode.1; program on it. Shar archives are also - welcome.</para> - - <para>If your change is of a potentially sensitive nature, e.g. you are - unsure of copyright issues governing its further distribution or you - are simply not ready to release it without a tighter review first, - then you should send it to &a.core; directly rather than submitting it - with &man.send-pr.1;. The core mailing list reaches a much smaller - group of people who do much of the day-to-day work on FreeBSD. Note - that this group is also <emphasis>very busy</emphasis> and so you - should only send mail to them where it is truly necessary.</para> - - <para>Please refer to <command>man 9 intro</command> and <command>man 9 - style</command> for some information on coding style. We would - appreciate it if you were at least aware of this information before - submitting code.</para> - </sect2> - - <sect2> - <title>New code or major value-added packages</title> - - <para>In the rare case of a significant contribution of a large body - work, or the addition of an important new feature to FreeBSD, it - becomes almost always necessary to either send changes as uuencoded - tar files or upload them to our ftp site <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming/">ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming/</ulink>.</para> - - <para>When working with large amounts of code, the touchy subject of - copyrights also invariably comes up. Acceptable copyrights for code - included in FreeBSD are:</para> - - <orderedlist> - <listitem> - <para>The BSD copyright. This copyright is most preferred due to - its <quote>no strings attached</quote> nature and general - attractiveness to commercial enterprises. Far from discouraging - such commercial use, the FreeBSD Project actively encourages such - participation by commercial interests who might eventually be - inclined to invest something of their own into FreeBSD.</para> - </listitem> - - <listitem> - <para>The GNU Public License, or <quote>GPL</quote>. This license is - not quite as popular with us due to the amount of extra effort - demanded of anyone using the code for commercial purposes, but - given the sheer quantity of GPL'd code we currently require - (compiler, assembler, text formatter, etc) it would be silly to - refuse additional contributions under this license. Code under - the GPL also goes into a different part of the tree, that being - <filename>/sys/gnu</filename> or - <filename>/usr/src/gnu</filename>, and is therefore easily - identifiable to anyone for whom the GPL presents a problem.</para> - </listitem> - </orderedlist> - - <para>Contributions coming under any other type of copyright must be - carefully reviewed before their inclusion into FreeBSD will be - considered. Contributions for which particularly restrictive - commercial copyrights apply are generally rejected, though the authors - are always encouraged to make such changes available through their own - channels.</para> - - <para>To place a <quote>BSD-style</quote> copyright on your work, include - the following text at the very beginning of every source code file you - wish to protect, replacing the text between the <literal>%%</literal> - with the appropriate information.</para> - - <programlisting> -Copyright (c) %%proper_years_here%% - %%your_name_here%%, %%your_state%% %%your_zip%%. - All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer as - the first lines of this file unmodified. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY %%your_name_here%% ``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 %%your_name_here%% 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 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - $Id$</programlisting> - - <para>For your convenience, a copy of this text can be found in - <filename>/usr/share/examples/etc/bsd-style-copyright</filename>.</para> - </sect2> - - <sect2> - <title>Money, Hardware or Internet access</title> - - <para>We are always very happy to accept donations to further the cause - of the FreeBSD Project and, in a volunteer effort like ours, a little - can go a long way! Donations of hardware are also very important to - expanding our list of supported peripherals since we generally lack - the funds to buy such items ourselves.</para> - - <sect3> - <title><anchor id="donations">Donating funds</title> - - <para>While the FreeBSD Project is not a 501(c)(3) (charitable) - corporation and hence cannot offer special tax incentives for any - donations made, any such donations will be gratefully accepted on - behalf of the project by FreeBSD, Inc.</para> - - <para>FreeBSD, Inc. was founded in early 1995 by &a.jkh; and &a.dg; - with the goal of furthering the aims of the FreeBSD Project and - giving it a minimal corporate presence. Any and all funds donated - (as well as any profits that may eventually be realized by FreeBSD, - Inc.) will be used exclusively to further the project's - goals.</para> - - <para>Please make any checks payable to FreeBSD, Inc., sent in care of - the following address:</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>(currently using the Walnut Creek CDROM address until a PO box - can be opened)</para> - - <para>Wire transfers may also be sent directly to:</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>Routing #: 121-000-358</otheraddr> - <otheraddr>Account #: 01411-07441 (FreeBSD, Inc.)</otheraddr> - </address> - - <para>Any correspondence related to donations should be sent to &a.jkh, - either via email or to the FreeBSD, Inc. postal address given above. - </para> - - <para>If you do not wish to be listed in our <link - linkend="donors">donors</link> section, please specify this when - making your donation. Thanks!</para> - </sect3> - - <sect3> - <title>Donating hardware</title> - - <para>Donations of hardware in any of the 3 following categories are - also gladly accepted by the FreeBSD Project:</para> - - <itemizedlist> - <listitem> - <para>General purpose hardware such as disk drives, memory or - complete systems should be sent to the FreeBSD, Inc. address - listed in the <emphasis>donating funds</emphasis> - section.</para> - </listitem> - - <listitem> - <para>Hardware for which ongoing compliance testing is desired. - We are currently trying to put together a testing lab of all - components that FreeBSD supports so that proper regression - testing can be done with each new release. We are still lacking - many important pieces (network cards, motherboards, etc) and if - you would like to make such a donation, please contact &a.dg; - for information on which items are still required.</para> - </listitem> - - <listitem> - <para>Hardware currently unsupported by FreeBSD for which you - would like to see such support added. Please contact the - &a.core; before sending such items as we will need to find a - developer willing to take on the task before we can accept - delivery of new hardware.</para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>Donating Internet access</title> - - <para>We can always use new mirror sites for FTP, WWW or - <command>cvsup</command>. If you would like to be such a mirror, - please contact the FreeBSD project administrators - <email>hubs@FreeBSD.org</email> for more information.</para> - </sect3> - </sect2> - </sect1> - - <sect1 id="donors"> - <title>Donors Gallery</title> - - <para>The FreeBSD Project is indebted to the following donors and would - like to publicly thank them here!</para> - - <itemizedlist> - <listitem> - <para><emphasis>Contributors to the central server - project:</emphasis></para> - - <para>The following individuals and businesses made it possible for - the FreeBSD Project to build a new central server machine to - eventually replace <hostid role="fqdn">freefall.FreeBSD.org</hostid> - by donating the following items:</para> - - <itemizedlist> - <listitem> - <para>&a.mbarkah and his employer, <ulink url="http://www.hemi.com/"> - Hemisphere Online</ulink>, donated a <emphasis>Pentium Pro - (P6) 200Mhz CPU</emphasis></para> - </listitem> - - <listitem> - <para><ulink url="http://www.asacomputers.com/">ASA - Computers</ulink> donated a <emphasis>Tyan 1662 - motherboard</emphasis>.</para> - </listitem> - - <listitem> - <para>Joe McGuckin <email>joe@via.net</email> of <ulink - url="http://www.via.net/">ViaNet Communications</ulink> donated - a <emphasis>Kingston ethernet controller.</emphasis></para> - </listitem> - - <listitem> - <para>Jack O'Neill <email>jack@diamond.xtalwind.net</email> - donated an <emphasis>NCR 53C875 SCSI controller - card</emphasis>.</para> - </listitem> - - <listitem> - <para>Ulf Zimmermann <email>ulf@Alameda.net</email> of <ulink - url="http://www.Alameda.net/">Alameda Networks</ulink> donated - <emphasis>128MB of memory</emphasis>, a <emphasis>4 Gb disk - drive and the case.</emphasis></para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para><emphasis>Direct funding:</emphasis></para> - - <para>The following individuals and businesses have generously - contributed direct funding to the project:</para> - - <itemizedlist> - <listitem> - <para>Annelise Anderson - <email>ANDRSN@HOOVER.STANFORD.EDU</email></para> - </listitem> - - <listitem> - <para>&a.dillon</para> - </listitem> - - <listitem> - <para><ulink url="http://www.bluemountain.com/">Blue Mountain - Arts</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.epilogue.com/">Epilogue Technology - Corporation</ulink></para> - </listitem> - - <listitem> - <para>&a.sef</para> - </listitem> - - <listitem> - <para><ulink url="http://www.gta.com/">Global Technology - Associates, Inc</ulink></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>&a.chuckr</para> - </listitem> - - <listitem> - <para>Kenneth P. Stox <email>ken@stox.sa.enteract.com</email> of - <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> of Japan - (a portion of the profits from sales of their various FreeBSD - CDROMs).</para> - </listitem> - - <listitem> - <para><ulink url="http://www.mmjp.or.jp/fuki/">Fuki Shuppan - Publishing Co.</ulink> donated a portion of their profits from - <emphasis>Hajimete no FreeBSD</emphasis> (FreeBSD, Getting - started) to the FreeBSD and XFree86 projects.</para> - </listitem> - - <listitem> - <para><ulink url="http://www.ascii.co.jp/">ASCII Corp.</ulink> - donated a portion of their profits from several FreeBSD-related - books to the FreeBSD project.</para> - </listitem> - - <listitem> - <para><ulink url="http://www.yokogawa.co.jp/">Yokogawa Electric - Corp</ulink> has generously donated significant funding to the - FreeBSD project.</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> - - <listitem> - <para><ulink url="http://www.siemens.de/">Siemens AG</ulink> - via <ulink url="mailto:andre.albsmeier@mchp.siemens.de">Andre - Albsmeier</ulink></para> - </listitem> - - <listitem> - <para><ulink url="mailto:ras@interaccess.com">Chris Silva</ulink> - </para> - </listitem> - - </itemizedlist> - </listitem> - - <listitem> - <para><emphasis>Hardware contributors:</emphasis></para> - - <para>The following individuals and businesses have generously - contributed hardware for testing and device driver - development/support:</para> - - <itemizedlist> - <listitem> - <para>Walnut Creek CDROM for providing the Pentium P5-90 and - 486/DX2-66 EISA/VL systems that are being used for our - development work, to say nothing of the network access and other - donations of hardware resources.</para> - </listitem> - - <listitem> - <para>TRW Financial Systems, Inc. provided 130 PCs, three 68 GB - fileservers, twelve Ethernets, two routers and an ATM switch for - debugging the diskless code.</para> - </listitem> - - <listitem> - <para>Dermot McDonnell donated the Toshiba XM3401B CDROM drive - currently used in freefall.</para> - </listitem> - - <listitem> - <para>&a.chuck; contributed his floppy tape streamer for - experimental work.</para> - </listitem> - - <listitem> - <para>Larry Altneu <email>larry@ALR.COM</email>, and &a.wilko;, - provided Wangtek and Archive QIC-02 tape drives in order to - improve the <devicename>wt</devicename> driver.</para> - </listitem> - - <listitem> - <para>Ernst Winter <email>ewinter@lobo.muc.de</email> contributed - a 2.88 MB floppy drive to the project. This will hopefully - increase the pressure for rewriting the floppy disk driver. - <!-- smiley -->;-)</para> - </listitem> - - <listitem> - <para><ulink url="http://www.tekram.com/">Tekram - Technologies</ulink> sent one each of their DC-390, DC-390U - and DC-390F FAST and ULTRA SCSI host adapter cards for - regression testing of the NCR and AMD drivers with their cards. - They are also to be applauded for making driver sources for free - operating systems available from their FTP server <ulink - url="ftp://ftp.tekram.com/scsi/FreeBSD/">ftp://ftp.tekram.com/scsi/FreeBSD/</ulink>.</para> - </listitem> - - <listitem> - <para>Larry M. Augustin contributed not only a - Symbios Sym8751S SCSI card, but also a set of data books, - including one about the forthcoming Sym53c895 chip with Ultra-2 - and LVD support, and the latest programming manual with - information on how to safely use the advanced features of the - latest Symbios SCSI chips. Thanks a lot!</para> - </listitem> - - <listitem> - <para>Christoph Kukulies <email>kuku@FreeBSD.org</email> donated - an FX120 12 speed Mitsumi CDROM drive for IDE CDROM driver - development.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para><emphasis>Special contributors:</emphasis></para> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.cdrom.com/">Walnut Creek CDROM</ulink> - has donated almost more than we can say (see the <link - linkend="history">history</link> document for more details). - In particular, we would like to thank them for the original - hardware used for <hostid - role="fqdn">freefall.FreeBSD.org</hostid>, our primary - development machine, and for <hostid - role="fqdn">thud.FreeBSD.org</hostid>, a testing and build - box. We are also indebted to them for funding various - contributors over the years and providing us with unrestricted - use of their T1 connection to the Internet.</para> - </listitem> - - <listitem> - <para>The <ulink url="http://www.interface-business.de/">interface - business GmbH, Dresden</ulink> has been patiently supporting - &a.joerg; who has often preferred FreeBSD work over paid work, and - used to fall back to their (quite expensive) EUnet Internet - connection whenever his private connection became too slow or - flaky to work with it...</para> - </listitem> - - <listitem> - <para><ulink url="http://www.bsdi.com/">Berkeley Software Design, - Inc.</ulink> has contributed their DOS emulator code to the - remaining BSD world, which is used in the - <emphasis>doscmd</emphasis> command.</para> - </listitem> - </itemizedlist> - </listitem> - </itemizedlist> - </sect1> - - <sect1 id="contrib-corealumni"> - <title>Core Team Alumni</title> - - <para>The following people were members of the FreeBSD core team during - the periods indicated. We thank them for their past efforts in the - service of the FreeBSD project.</para> - - <para><emphasis>In rough chronological order:</emphasis></para> - - <itemizedlist> - <listitem> - <para>&a.jdp (1997 - 2000)</para> - </listitem> - - <listitem> - <para>&a.guido (1995 - 1999)</para> - </listitem> - - <listitem> - <para>&a.dyson (1993 - 1998)</para> - </listitem> - - <listitem> - <para>&a.nate (1992 - 1996)</para> - </listitem> - - <listitem> - <para>&a.rgrimes (1992 - 1995)</para> - </listitem> - - <listitem> - <para>Andreas Schulz (1992 - 1995)</para> - </listitem> - - <listitem> - <para>&a.csgr (1993 - 1995)</para> - </listitem> - - <listitem> - <para>&a.paul (1992 - 1995)</para> - </listitem> - - <listitem> - <para>&a.smace (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-derived"> - <title>Derived Software Contributors</title> - - <para>This software was originally derived from William F. Jolitz's 386BSD - release 0.1, though almost none of the original 386BSD specific code - remains. This software has been essentially re-implemented from the - 4.4BSD-Lite release provided by the Computer Science Research Group - (CSRG) at the University of California, Berkeley and associated academic - contributors.</para> - - <para>There are also portions of NetBSD and OpenBSD that have been - integrated into FreeBSD as well, and we would therefore like to thank - all the contributors to NetBSD and OpenBSD for their work.</para> - </sect1> - - <sect1 id="contrib-additional"> - <title>Additional FreeBSD Contributors</title> - - <para>(in alphabetical order by first name):</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@mutex.org</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>Adam Strohl <email>troll@digitalspark.net</email></para> - </listitem> - - <listitem> - <para>Adoal Xu <email>adoal@iname.com</email></para> - </listitem> - - <listitem> - <para>Adrian Chadd <email>adrian@FreeBSD.org</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>Alec Wolman <email>wolman@cs.washington.edu</email></para> - </listitem> - - <listitem> - <para>Aled Morris <email>aledm@routers.co.uk</email></para> - </listitem> - - <listitem> - <para>Aleksandr A Babaylov <email>.@babolo.ru</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>Alex Perel <email>veers@disturbed.net</email></para> - </listitem> - - <listitem> - <para>Alex Varju <email>varju@webct.com</email></para> - </listitem> - - <listitem> - <para>Alexander B. Povolotsky <email>tarkhil@mgt.msk.ru</email></para> - </listitem> - - <listitem> - <para>Alexander Gelfenbain <email>mail@gelf.com</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 Bowhill <email>bowhill@bowhill.vservers.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>anders@fix.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 Boothman <email>andrew@cream.org</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 L. Neporada <email>andrew@chg.ru</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 Novikov <email>andrey@novikov.com</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>Anton N. Bruesov <email>antonz@library.ntu-kpi.kiev.ua</email></para> - </listitem> - - <listitem> - <para>Antti Kaipila <email>anttik@iki.fi</email></para> - </listitem> - - <listitem> - <para>arci <email>vega@sophia.inria.fr</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>Arindum Mukerji <email>rmukerji@execpc.com</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>Arun Sharma <email>adsharma@sharmas.dhs.org</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>Benno Rice <email>benno@netizen.com.au</email></para> - </listitem> - - <listitem> - <para>Berend de Boer <email>berend@pobox.com</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 Wilcox <email>bob@obiwan.uucp</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 Faulkner <email>faulkner@mpd.tandem.com</email></para> - </listitem> - - <listitem> - <para>Boyd R. Faulkner <email>faulkner@asgard.bga.com</email></para> - </listitem> - - <listitem> - <para>Brad Hendrickse <email>bradh@uunet.co.za</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 Fosdick <email>bfoz@glue.umd.edu</email></para> - </listitem> - - <listitem> - <para>Brandon Gillespie <email>brandon@roguetrader.com</email></para> - </listitem> - - <listitem> - <para>&a.wlloyd</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.runet.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 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>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@scientech.com</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>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 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@mips.inka.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>Cliff Rowley <email>dozprompt@onsea.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>Dai Ishijima <email>ishijima@tri.pref.osaka.jp</email></para> - </listitem> - - <listitem> - <para>Daisuke Watanabe <email>NU7D-WTNB@asahi-net.or.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 Papasian <email>bugg@bugg.strangled.net</email></para> - </listitem> - - <listitem> - <para>Dan Piponi <email>wmtop@tanelorn.demon.co.uk</email></para> - </listitem> - - <listitem> - <para>Dan Walters <email>hannibal@cyberstation.net</email></para> - </listitem> - - <listitem> - <para>Daniel Hagan - <email>dhagan@cs.vt.edu</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 Harris - <email>dannyboy@dannyboy.eyep.net</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>unknown</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>der Mouse <email>mouse@Collatz.McRCIM.McGill.EDU</email></para> - </listitem> - - <listitem> - <para>Derek Inksetter <email>derek@saidev.com</email></para> - </listitem> - - <listitem> - <para>DI. Christian Gusenbauer - <email>cg@scotty.edvz.uni-linz.ac.at</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>Dominik Brettnacher <email>domi@saargate.de</email></para> - </listitem> - - <listitem> - <para>Dominik Rother <email>dr@domix.de</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>Doug@gorean.org</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 Chuang <email>edwardc@firebird.org.tw</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>Edwin Mons <email>e@ik.nu</email></para> - </listitem> - - <listitem> - <para>Ege Rekk <email>aagero@aage.priv.no</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>Eoin Lawless <email>eoin@maths.tcd.ie</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 H. Bakke <email>erikhb@bgnett.no</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>Espen Skoglund <email>esk@ira.uka.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>Eugeny Kuzakov <email>CoreDumped@lab321.ru</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 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>Frank Volf <email>volf@oasis.IAEhv.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>G. Adam Stanislav<email>adam@whizkidtech.net</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>Gianlorenzo Masini <email>masini@uniroma3.it</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>Giles Lean <email>giles@nemeton.com.au</email></para> - </listitem> - - <listitem> - <para>Ginga Kawaguti - <email>ginga@amalthea.phys.s.u-tokyo.ac.jp</email></para> - </listitem> - - <listitem> - <para>Giorgos Keramidas <email>keramida@ceid.upatras.gr</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>Gordon Greeff <email>gvg@uunet.co.za</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 Robinson <email>greg@rosevale.com.au</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>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>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>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>HONDA Yasuhiro - <email>honda@kashio.info.mie-u.ac.jp</email></para> - </listitem> - - <listitem> - <para>Horance Chou - <email>horance@freedom.ie.cycu.edu.tw</email></para> - </listitem> - - <listitem> - <para>Horihiro Kumagai <email>kuma@jp.FreeBSD.org</email></para> - </listitem> - - <listitem> - <para>HOSOBUCHI Noriyuki <email>hoso@buchi.tama.or.jp</email></para> - </listitem> - - <listitem> - <para>HOTARU-YA <email>hotaru@tail.net</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>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>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>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>IWASHITA Yoji <email>shuna@pop16.odn.ne.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@photino.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 da Silva <email>jds@cs.umd.edu</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>Jamie Heckford <email>jamie@jamiesdomain.co.uk</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 Brown <email>jabrown@caida.org</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>Jeff Palmer <email>jeff@isni.net</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@noc.dfn.d</email></para> - </listitem> - - <listitem> - <para>Jeremy Allison <email>jallison@whistle.com</email></para> - </listitem> - - <listitem> - <para>Jeremy Chadwick <email>yoshi@parodius.com</email></para> - </listitem> - - <listitem> - <para>Jeremy Chatfield <email>jdc@xinside.com</email></para> - </listitem> - - <listitem> - <para>Jeremy Prior <email>unknown</email></para> - </listitem> - - <listitem> - <para>Jeremy Shaffner <email>jeremy@external.org</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 Bloom <email>bloom@acm.org</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 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>jsutton@bbcon.com.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 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 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>Jose Marques <email>jose@nobody.org</email></para> - </listitem> - - <listitem> - <para>Josef Grosch - <email>jgrosch@superior.mooseriver.com</email></para> - </listitem> - - <listitem> - <para>Joseph Stein <email>joes@wstein.com</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>&a.jhs</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>Justas <email>justas@mbank.lv</email></para> - </listitem> - - <listitem> - <para>K.Higashino <email>a00303@cc.hc.keio.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 Tsuguru <email>tkato@prontomail.ne.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>Kelly Yancey <email>kbyanc@posi.net</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 Lo<email>kevlo@hello.com.tw</email></para> - </listitem> - - <listitem> - <para>Kevin Meltzer <email>perlguy@perlguy.com</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>Kiril Mitev <email>kiril@ideaglobal.com</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>Kris Dow <email>kris@vilnya.demon.co.uk</email></para> - </listitem> - - <listitem> - <para>KUNISHIMA Takeo <email>kunishi@c.oka-pu.ac.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>Larry Altneu <email>larry@ALR.COM</email></para> - </listitem> - - <listitem> - <para>Lars Köller - <email>Lars.Koeller@Uni-Bielefeld.DE</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>Lowell Gilbert <email>lowell@world.std.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.ab.ca</email></para> - </listitem> - - <listitem> - <para>M.C. Wong <email>unknown</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>MANTANI Nobutaka <email>nobutaka@nobutaka.com</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>Marc van Woerkom <email>van.woerkom@netcologne.de</email></para> - </listitem> - - <listitem> - <para>Marcin Cieslak <email>saper@system.pl</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 Ovens - <email>mark@dogma.freebsd-uk.eu.org</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>Markus Holmberg <email>saska@acc.umu.se</email></para> - </listitem> - - <listitem> - <para>Martin Birgmeier</para> - </listitem> - - <listitem> - <para>Martin Blapp <email>blapp@attic.ch</email></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 Minkus <email>diskiller@cnbinc.com</email></para> - </listitem> - - <listitem> - <para>Martin Renters <email>martin@tdc.on.ca</email></para> - </listitem> - - <listitem> - <para>Martti Kuparinen - <email>martti.kuparinen@ericsson.com</email></para> - </listitem> - - <listitem> - <para>Mas.TAKEMURA <email>unknown</email></para> - </listitem> - - <listitem> - <para>Masachika ISHIZUKA - <email>ishizuka@isis.min.ntt.jp</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@ARGV.AC</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 Heckaman <email>matt@LUCIDA.QC.CA</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 Stein <email>matt@bdd.net</email></para> - </listitem> - - <listitem> - <para>Matthew West <email>mwest@uct.ac.za</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 Lucas <email>mwlucas@blackhelicopters.org</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 Sardo <email>jaeger16@yahoo.com</email></para> - </listitem> - - <listitem> - <para>Michael Searle <email>searle@longacre.demon.co.uk</email></para> - </listitem> - - <listitem> - <para>Michael Urban <email>murban@tznet.com</email></para> - </listitem> - - <listitem> - <para>Michael Vasilenko <email>acid@stu.cn.ua</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>MIHIRA Sanpei Yoshiro <email>sanpei@sanpei.org</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 Barcroft <email>mike@q9media.com</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 Harding <email>mvh@ix.netcom.com</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 Sherwood <email>mike@fate.com</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>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>Mitsuru Yoshida <email>mitsuru@riken.go.jp</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>MOROHOSHI Akihiko <email>moro@race.u-tokyo.ac.jp</email></para> - </listitem> - - <listitem> - <para>Mostyn Lewis <email>mostyn@mrl.com</email></para> - </listitem> - - <listitem> - <para>Motomichi Matsuzaki <email>mzaki@e-mail.ne.jp</email></para> - </listitem> - - <listitem> - <para>Motoyuki Kasahara <email>m-kasahr@sra.co.jp</email></para> - </listitem> - - <listitem> - <para>N.G.Smith <email>ngs@sesame.hensa.ac.uk</email></para> - </listitem> - - <listitem> - <para>Nadav Eiron <email>nadav@barcode.co.il</email></para> - </listitem> - - <listitem> - <para>NAGAO Tadaaki <email>nagao@cs.titech.ac.jp</email></para> - </listitem> - - <listitem> - <para>NAKAJI Hiroyuki - <email>nakaji@tutrp.tut.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>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 Ahlstrom <email>nrahlstr@winternet.com</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>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 Johnson <email>freebsd@spatula.net</email></para> - </listitem> - - <listitem> - <para>&a.nsayer;</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>NIIMI Satoshi <email>sa2c@and.or.jp</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>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>frf@xocolatl.com</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>No Name <email>ZW6T-KND@j.asahi-net.or.jp</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>NOKUBI Hirotaka <email>h-nokubi@yyy.or.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>Oh Junseon <email>hollywar@mail.holywar.net</email></para> - </listitem> - - <listitem> - <para>Olaf Wagner <email>wagner@luthien.in-berlin.de</email></para> - </listitem> - - <listitem> - <para>Oleg Semyonov <email>os@altavista.net</email></para> - </listitem> - - <listitem> - <para>Oleg Sharoiko <email>os@rsu.ru</email></para> - </listitem> - - <listitem> - <para>Oleg V. Volkov <email>rover@lglobus.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 Hausen <email>unknown</email></para> - </listitem> - - <listitem> - <para>Patrick Seal <email>patseal@hyperhost.net</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 M. Lambert <email>plambert@plambert.net</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 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>Priit Järv <email>priit@cc.ttu.ee</email></para> - </listitem> - - <listitem> - <para>R Joseph Wright <email>rjoseph@mammalia.org</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>Riccardo Veraldi <email>veraldi@cs.unibo.it</email></para> - </listitem> - - <listitem> - <para>Rich Wood <email>rich@FreeBSD.org.uk</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 Kiss <email>richard@homemail.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 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>Roman Shterenzon <email>roman@xpert.com</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>cejkar@dcse.fee.vutbr.cz</email></para> - </listitem> - - <listitem> - <para>Ruslan Belkin <email>rus@home2.UA.net</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>Sakai Hiroaki <email>sakai@miya.ee.kagu.sut.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>Samuel Tardieu <email>sam@inf.enst.fr</email></para> - </listitem> - - <listitem> - <para>Samuele Zannoli <email>zannoli@cs.unibo.it</email></para> - </listitem> - - <listitem> - <para>Sander Janssen <email>janssen@rendo.dekooi.nl</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>SANETO Takanori <email>sanewo@strg.sony.co.jp</email></para> - </listitem> - - <listitem> - <para>SASAKI Shunsuke <email>ele@pop17.odn.ne.jp</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>SAWADA Mizuki <email>miz@qb3.so-net.ne.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 A. Moberly <email>smoberly@xavier.dyndns.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 Mitchel <email>scott@uk.FreeBSD.org</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>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 Kosyakov <email>ks@itp.ac.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>Shigio Yamaguchi <email>shigio@tamacom.com</email></para> - </listitem> - - <listitem> - <para>Shinya Esu <email>esu@yk.rim.or.jp</email></para> - </listitem> - - <listitem> - <para>Shuichi Tanaka <email>stanaka@bb.mbn.or.jp</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 Coltrin <email>spcoltri@unm.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>Stijn Hoop <email>stijn@win.tue.nl</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>Sugimoto Sadahiro <email>ixtl@komaba.utmc.or.jp</email></para> - </listitem> - - <listitem> - <para>SUGIMURA Takashi <email>sugimura@jp.FreeBSD.org</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>SURANYI Peter - <email>suranyip@jks.is.tsukuba.ac.jp</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>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>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>mellon@isc.org</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 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 Quinot <email>thomas@cuivre.fr.eu.org</email></para> - </listitem> - - <listitem> - <para>Thomas A. Stephens <email>tas@stephens.org</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>Timothy Jensen <email>toast@blackened.com</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 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>Tony Maher <email>Tony.Maher@eBioinformatics.com</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>Trevor Johnson <email>trevor@jpj.net</email></para> - </listitem> - - <listitem> - <para>Udo Schweigert <email>ust@cert.siemens.de</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>URATA Shuichiro <email>s-urata@nmit.tmg.nec.co.jp</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>Valentin Nechayev <email>netch@lucky.net</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>Vince Valenti <email>vince@blue-box.net</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>Walt M. Shandruk <email>walt@erudition.net</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>Wiljo Heinen <email>wiljo@freeside.ki.open.de</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>Yasuhiro Fukama <email>yasuf@big.or.jp</email></para> - </listitem> - - <listitem> - <para>Yasuhito FUTATSUKI <email>futatuki@fureai.or.jp</email></para> - </listitem> - - <listitem> - <para>Yen-Ming Lee <email>leeym@bsd.ce.ntu.edu.tw</email></para> - </listitem> - - <listitem> - <para>Yen-Shuo Su <email>yssu@CCCA.NCTU.edu.tw</email></para> - </listitem> - - <listitem> - <para>Yin-Jieh Chen <email>yinjieh@Crazyman.Dorm13.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>Yoichi Asai <email>yatt@msc.biglobe.ne.jp</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>Yu-Shun Wang <email>yushunwa@isi.edu</email></para> - </listitem> - - <listitem> - <para>Yusuke Nawano <email>azuki@azkey.org</email></para> - </listitem> - - <listitem> - <para>Yuu Yashiki <email>s974123@cc.matsuyama-u.ac.jp</email></para> - </listitem> - - <listitem> - <para>Yuuichi Narahara <email>aconitum@po.teleway.ne.jp</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>Zach Zurflu <email>zach@pabst.bendnet.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> - </itemizedlist> - </sect1> - - <sect1 id="contrib-386bsd"> - <title>386BSD Patch Kit Patch Contributors</title> - - <para>(in alphabetical order by first name):</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>Rod Taylor <email>rod@idiotswitch.org</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>Yuuki SAWADA <email>mami@whale.cc.muroran-it.ac.jp</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-always-quote-attributes: t - sgml-parent-document: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml b/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml deleted file mode 100644 index 19d9f17a21..0000000000 --- a/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml +++ /dev/null @@ -1,1885 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/cutting-edge/chapter.sgml,v 1.50 2000/06/16 19:52:36 jim Exp $ ---> - -<chapter id="cutting-edge"> - <title>The Cutting Edge</title> - - <para><emphasis>Restructured, reorganized, and parts updated by &a.jim; - March 2000. Original work by &a.jkh;, &a.phk;, &a.jdp;, and &a.nik; - with feedback from various others.</emphasis></para> - - <sect1> - <title>Synopsis</title> - - <para>FreeBSD is under constant development between releases. For - people who want to be on the cutting edge, there are several easy - mechanisms for keeping your system in sync with the latest - developments. Be warned—the cutting edge is not for everyone! - This chapter will help you decide if you want to track the - development system, or stick with one of the released - versions.</para> - </sect1> - - <sect1 id="current-stable"> - <title>-CURRENT v.s.. -STABLE</title> - - <para>There are two development branches to FreeBSD; -CURRENT and - -STABLE. This section will explain a bit about each and describe - how to keep your system up-to-date with each respective tree. - -CURRENT will be discussed first, then -STABLE.</para> - - <sect2 id="current"> - <title>Staying Current with FreeBSD</title> - - <para>As you are reading this, keep in mind that -CURRENT is the - <quote>bleeding edge</quote> of FreeBSD development and that if you - are new to FreeBSD, you are most likely going to want to think - twice about running it.</para> - - <sect3> - <title>What is FreeBSD-CURRENT?</title> - - <para>FreeBSD-CURRENT is, quite literally, nothing more than a - daily snapshot of the working sources for FreeBSD. These - include work in progress, experimental changes and transitional - mechanisms that may or may not be present in the next official - release of the software. While many of us compile almost daily - from FreeBSD-CURRENT sources, there are periods of time when the - sources are literally un-compilable. These problems are - generally resolved as expeditiously as possible, but whether or - not FreeBSD-CURRENT sources bring disaster or greatly desired - functionality can literally be a matter of which part of any - given 24 hour period you grabbed them in!</para> - </sect3> - - <sect3> - <title>Who needs FreeBSD-CURRENT?</title> - - <para>FreeBSD-CURRENT is made generally available for 3 primary - interest groups:</para> - - <orderedlist> - <listitem> - <para>Members of the FreeBSD group who are actively working on - some part of the source tree and for whom keeping - <quote>current</quote> is an absolute requirement.</para> - </listitem> - - <listitem> - <para>Members of the FreeBSD group who are active testers, - willing to spend time working through problems in order to - ensure that FreeBSD-CURRENT remains as sane as possible. - These are also people who wish to make topical suggestions - on changes and the general direction of FreeBSD.</para> - </listitem> - - <listitem> - <para>Peripheral members of the FreeBSD (or some other) group - who merely wish to keep an eye on things and use the current - sources for reference purposes (e.g. for - <emphasis>reading</emphasis>, not running). These people - also make the occasional comment or contribute code.</para> - </listitem> - </orderedlist> - </sect3> - - <sect3> - <title>What is FreeBSD-CURRENT <emphasis>not</emphasis>?</title> - - <orderedlist> - <listitem> - <para>A fast-track to getting pre-release bits because you - heard there is some cool new feature in there and you want - to be the first on your block to have it.</para> - </listitem> - - <listitem> - <para>A quick way of getting bug fixes.</para> - </listitem> - - <listitem> - <para>In any way <quote>officially supported</quote> by us. - We do our best to help people genuinely in one of the 3 - <quote>legitimate</quote> FreeBSD-CURRENT categories, but we - simply <emphasis>do not have the time</emphasis> to provide - tech support for it. This is not because we are mean and - nasty people who do not like helping people out (we would - not even be doing FreeBSD if we were), it is literally - because we cannot answer 400 messages a day - <emphasis>and</emphasis> actually work on FreeBSD! I am - sure that, if given the choice between having us answer lots - of questions or continuing to improve FreeBSD, most of you - would vote for us improving it.</para> - </listitem> - </orderedlist> - </sect3> - - <sect3> - <title>Using FreeBSD-CURRENT</title> - - <orderedlist> - <listitem> - <para>Join the &a.current; and the &a.cvsall; . This is not - just a good idea, it is <emphasis>essential</emphasis>. If - you are not on the <emphasis>FreeBSD-CURRENT</emphasis> - mailing list, you will not see the comments that people are - making about the current state of the system and thus will - probably end up stumbling over a lot of problems that others - have already found and solved. Even more importantly, you - will miss out on important bulletins which may be critical - to your system's continued health.</para> - - <para>The &a.cvsall; mailing list will allow you to see the - commit log entry for each change as it is made along with - any pertinent information on possible side-effects.</para> - - <para>To join these lists, send mail to &a.majordomo; and - specify the following in the body of your message:</para> - - <programlisting> -subscribe freebsd-current -subscribe cvs-all</programlisting> - - <para>Optionally, you can also say <literal>help</literal> - and Majordomo will send you full help on how to subscribe - and unsubscribe to the various other mailing lists we - support.</para> - </listitem> - - <listitem> - <para>Grab the sources from <hostid - role="fqdn">ftp.FreeBSD.org</hostid>. You can do this in - one of three ways:</para> - - <orderedlist> - <listitem> - <para>Use the <application><link - linkend="ctm">CTM</link></application> facility. Unless - you have a good TCP/IP connection at a flat rate, this - is the way to do it.</para> - </listitem> - - <listitem> - <para>Use the <link linkend="mirrors-cvsup">cvsup</link> program - with <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/share/examples/cvsup/standard-supfile">this - supfile</ulink>. This is the second most recommended - method, since it allows you to grab the entire - collection once and then only what has changed from then - on. Many people run cvsup from cron and keep their - sources up-to-date automatically. For a fairly easy - interface to this, simply type:</para> - - <blockquote><screen>&prompt.root; <userinput>pkg_add -f \ -ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/cvsupit.tgz</userinput></screen></blockquote> - </listitem> - - <listitem> - <para>Use <command>ftp</command>. The source tree for - FreeBSD-CURRENT is always <quote>exported</quote> on: - <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/">ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/</ulink>. - We also use <command>wu-ftpd</command> which allows - compressed/tarred grabbing of whole trees. e.g. you - see:</para> - - <screen>usr.bin/lex</screen> - - <para>You can do the following to get the whole directory - as a tar file:</para> - - <screen><prompt>ftp></prompt> <userinput>cd usr.bin</userinput> -<prompt>ftp></prompt> <userinput>get lex.tar</userinput></screen> - </listitem> - </orderedlist> - </listitem> - - <listitem> - <para>Essentially, if you need rapid on-demand access to the - source and communications bandwidth is not a consideration, - use <command>cvsup</command> or <command>ftp</command>. - Otherwise, use <application>CTM</application>.</para> - - <para>If you are grabbing the sources to run, and not just - look at, then grab <emphasis>all</emphasis> of current, not - just selected portions. The reason for this is that various - parts of the source depend on updates elsewhere, and trying - to compile just a subset is almost guaranteed to get you - into trouble.</para> - - <para>Before compiling current, read the - <filename>Makefile</filename>in <filename>/usr/src</filename> - carefully. You should at least run a <link - linkend="makeworld">make world</link> the first time through - as part of the upgrading process. Reading the &a.current; - will keep you up-to-date on other bootstrapping procedures - that sometimes become necessary as we move towards the next - release.</para> - </listitem> - - <listitem> - <para>Be active! If you are running FreeBSD-CURRENT, we want - to know what you have to say about it, especially if you - have suggestions for enhancements or bug fixes. Suggestions - with accompanying code are received most - enthusiastically!</para> - </listitem> - </orderedlist> - </sect3> - </sect2> - - <sect2 id="stable"> - <title>Staying Stable with FreeBSD</title> - - <para>If you are using FreeBSD in a production environment and want - to make sure you have the latest fixes from the -CURRENT branch, - you want to be running -STABLE. This is the tree that -RELEASEs - are branched from when we are putting together a new release. For - example, if you have a copy of 3.4-RELEASE, that is really just a - <quote>snapshot</quote> from the -STABLE branch that we put on - CDROM. In order to get any changes merged into -STABLE after the - -RELEASE, you need to <quote>track</quote> the -STABLE - branch.</para> - - <sect3> - <title>What is FreeBSD-STABLE?</title> - - <para>FreeBSD-STABLE is our development branch for a more low-key - and conservative set of changes intended for our next mainstream - release. Changes of an experimental or untested nature do not - go into this branch (see <link - linkend="current">FreeBSD-CURRENT</link>).</para> - </sect3> - - <sect3> - <title>Who needs FreeBSD-STABLE?</title> - - <para>If you are a commercial user or someone who puts maximum - stability of their FreeBSD system before all other concerns, you - should consider tracking <emphasis>stable</emphasis>. This is - especially true if you have installed the most recent release - (<ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/&rel.current;-RELEASE/">&rel.current;-RELEASE</ulink> - at the time of this writing) since the - <emphasis>stable</emphasis> branch is effectively a bug-fix - stream relative to the previous release.</para> - - <warning> - <para>The <emphasis>stable</emphasis> tree endeavors, above all, - to be fully compilable and stable at all times, but we do - occasionally make mistakes (these are still active sources - with quickly-transmitted updates, after all). We also do our - best to thoroughly test fixes in <emphasis>current</emphasis> - before bringing them into <emphasis>stable</emphasis>, but - sometimes our tests fail to catch every case. If something - breaks for you in <emphasis>stable</emphasis>, please let us - know <emphasis>immediately!</emphasis> (see next - section).</para> - </warning> - </sect3> - - <sect3> - <title>Using FreeBSD-STABLE</title> - - <orderedlist> - <listitem> - <para>Join the &a.stable;. This will keep you informed of - build-dependencies that may appear in - <emphasis>stable</emphasis> or any other issues requiring - special attention. Developers will also make announcements - in this mailing list when they are contemplating some - controversial fix or update, giving the users a chance to - respond if they have any issues to raise concerning the - proposed change.</para> - - <para>The &a.cvsall; mailing list will allow you to see the - commit log entry for each change as it is made along with - any pertinent information on possible side-effects.</para> - - <para>To join these lists, send mail to &a.majordomo; and - specify the following in the body of your message:</para> - - <programlisting> -subscribe freebsd-stable -subscribe cvs-all</programlisting> - - <para>Optionally, you can also say <literal>help</literal> - and Majordomo will send you full help on how to subscribe - and unsubscribe to the various other mailing lists we - support.</para> - </listitem> - - <listitem> - <para>If you are installing a new system and want it to be as - stable as possible, you can simply grab the latest dated - branch snapshot from <ulink - url="ftp://releng4.FreeBSD.org/pub/FreeBSD/">ftp://releng4.FreeBSD.org/pub/FreeBSD/</ulink> - and install it like any other release.</para> - - <para>If you are already running a previous release of FreeBSD - and wish to upgrade via sources then you can easily do so - from <hostid role="fqdn">ftp.FreeBSD.org</hostid>. This can - be done in one of three ways:</para> - - <orderedlist> - <listitem> - <para>Use the <application><link - linkend="ctm">CTM</link></application> facility. Unless - you have a good TCP/IP connection at a flat rate, this - is the way to do it.</para> - </listitem> - - <listitem> - <para>Use the <link linkend="mirrors-cvsup">cvsup</link> program - with <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/share/examples/cvsup/stable-supfile">this - supfile</ulink>. This is the second most recommended - method, since it allows you to grab the entire - collection once and then only what has changed from then - on. Many people run cvsup from cron to keep their - sources up-to-date automatically. For a fairly easy - interface to this, simply type:</para> - - <blockquote><screen>&prompt.root; <userinput>pkg_add -f \ -ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/cvsupit.tgz</userinput></screen></blockquote> - </listitem> - - <listitem> - <para>Use <command>ftp</command>. The source tree for - FreeBSD-STABLE is always <quote>exported</quote> on: - <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-stable/">ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-stable/</ulink></para> - - <para>We also use <command>wu-ftpd</command> which allows - compressed/tarred grabbing of whole trees. e.g. you - see:</para> - - <screen>usr.bin/lex</screen> - - <para>You can do the following to get the whole directory - for you as a tar file:</para> - - <screen><prompt>ftp></prompt> <userinput>cd usr.bin</userinput> -<prompt>ftp></prompt> <userinput>get lex.tar</userinput></screen> - </listitem> - </orderedlist> - </listitem> - - <listitem> - <para>Essentially, if you need rapid on-demand access to the - source and communications bandwidth is not a consideration, - use <command>cvsup</command> or <command>ftp</command>. - Otherwise, use <application>CTM</application>.</para> - </listitem> - - <listitem> - <para>Before compiling stable, read the - <filename>Makefile</filename> in <filename>/usr/src</filename> - carefully. You should at least run a <link - linkend="makeworld">make world</link> the first time through - as part of the upgrading process. Reading the &a.stable; will - keep you up-to-date on other bootstrapping procedures that - sometimes become necessary as we move towards the next - release.</para> - </listitem> - </orderedlist> - </sect3> - </sect2> - </sect1> - - <sect1 id="synching"> - <title>Synchronizing Your Source</title> - - <para>There are various ways of using an Internet (or email) - connection to stay up-to-date with any given area of the FreeBSD - project sources, or all areas, depending on what interests you. The - primary services we offer are <link linkend="anoncvs">Anonymous - CVS</link>, <link linkend="mirrors-cvsup">CVSup</link>, and <link - linkend="ctm">CTM</link>.</para> - - <para><application>Anonymous CVS</application> and - <application>CVSup</application> use the <emphasis>pull</emphasis> - model of updating sources. In the case of - <application>CVSup</application> the user (or a cron script) invokes - the <command>cvsup</command> program, and it interacts with a - <command>cvsupd</command> server somewhere to bring your files - up-to-date. The updates you receive are up-to-the-minute and you - get them when, and only when, you want them. You can easily - restrict your updates to the specific files or directories that are - of interest to you. Updates are generated on the fly by the server, - according to what you have and what you want to have. - <application>Anonymous CVS</application> is quite a bit more - simplistic than CVSup in that it's just an extension to - <application>CVS</application> which allows it to pull changes - directly from a remote CVS repository. - <application>CVSup</application> can do this far more efficiently, - but <application>Anonymous CVS</application> is easier to - use.</para> - - <para><application>CTM</application>, on the other hand, does not - interactively compare the sources you have with those on the master - archive or otherwise pull them across.. Instead, a script which - identifies changes in files since its previous run is executed - several times a day on the master CTM machine, any detected changes - being compressed, stamped with a sequence-number and encoded for - transmission over email (in printable ASCII only). Once received, - these <quote>CTM deltas</quote> can then be handed to the - &man.ctm.rmail.1; utility which will automatically decode, verify - and apply the changes to the user's copy of the sources. This - process is far more efficient than <application>CVSup</application>, - and places less strain on our server resources since it is a - <emphasis>push</emphasis> rather than a <emphasis>pull</emphasis> - model.</para> - - <para>There are other trade-offs, of course. If you inadvertently - wipe out portions of your archive, <application>CVSup</application> - will detect and rebuild the damaged portions for you. - <application>CTM</application> won't do this, and if you wipe some - portion of your source tree out (and don't have it backed up) then - you will have to start from scratch (from the most recent CVS - <quote>base delta</quote>) and rebuild it all with CTM or, with - anoncvs, simply delete the bad bits and resync.</para> - - <para>More information about <application>Anonymous CVS</application>, - <application>CTM</application>, and - <application>CVSup</application> is available further down in this - section.</para> - - <sect2 id="anoncvs"> - <title>Anonymous CVS</title> - - <sect3> - <title><anchor id="anoncvs-intro">Introduction</title> - - <para>Anonymous CVS (or, as it is otherwise known, - <emphasis>anoncvs</emphasis>) is a feature provided by the CVS - utilities bundled with FreeBSD for synchronizing with a remote - CVS repository. Among other things, it allows users of FreeBSD - to perform, with no special privileges, read-only CVS operations - against one of the FreeBSD project's official anoncvs servers. - To use it, one simply sets the <envar>CVSROOT</envar> - environment variable to point at the appropriate anoncvs server, - provides the well-known password <quote>anoncvs</quote> with the - <command>cvs login</command> command, and then uses the - &man.cvs.1; command to access it like any local - repository.</para> - - <para>While it can also be said that the <link - linkend="mirrors-cvsup">CVSup</link> and <emphasis>anoncvs</emphasis> - services both perform essentially the same function, there are - various trade-offs which can influence the user's choice of - synchronization methods. In a nutshell, - <application>CVSup</application> is much more efficient in its - usage of network resources and is by far the most technically - sophisticated of the two, but at a price. To use - <application>CVSup</application>, a special client must first be - installed and configured before any bits can be grabbed, and - then only in the fairly large chunks which - <application>CVSup</application> calls - <emphasis>collections</emphasis>.</para> - - <para><application>Anoncvs</application>, by contrast, can be used - to examine anything from an individual file to a specific - program (like <command>ls</command> or <command>grep</command>) - by referencing the CVS module name. Of course, - <application>anoncvs</application> is also only good for - read-only operations on the CVS repository, so if it's your - intention to support local development in one repository shared - with the FreeBSD project bits then - <application>CVSup</application> is really your only - option.</para> - </sect3> - - <sect3> - <title><anchor id="anoncvs-usage">Using Anonymous CVS</title> - - <para>Configuring &man.cvs.1; to use an Anonymous CVS repository - is a simple matter of setting the <envar>CVSROOT</envar> - environment variable to point to one of the FreeBSD project's - <emphasis>anoncvs</emphasis> servers. At the time of this - writing, the following servers are available:</para> - - <itemizedlist> - <listitem> - <para><emphasis>USA</emphasis>: - :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs - (Use <command>cvs login</command> and enter the password - <quote>anoncvs</quote> when prompted.)</para> - </listitem> - </itemizedlist> - - <para>Since CVS allows one to <quote>check out</quote> virtually - any version of the FreeBSD sources that ever existed (or, in - some cases, will exist <!-- smiley -->:-), you need to be - familiar with the revision (<option>-r</option>) flag to - &man.cvs.1; and what some of the permissible values for it in - the FreeBSD Project repository are.</para> - - <para>There are two kinds of tags, revision tags and branch tags. - A revision tag refers to a specific revision. Its meaning stays - the same from day to day. A branch tag, on the other hand, - refers to the latest revision on a given line of development, at - any given time. Because a branch tag does not refer to a - specific revision, it may mean something different tomorrow than - it means today.</para> - - <para>Here are the branch tags that users might be interested - in (keep in mind that the only tags valid for the <link - linkend="ports">ports collection</link> is - <literal>HEAD</literal>).</para> - - <variablelist> - <varlistentry> - <term>HEAD</term> - - <listitem> - <para>Symbolic name for the main line, or FreeBSD-CURRENT. - Also the default when no revision is specified.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_4</term> - - <listitem> - <para>The line of development for FreeBSD-4.X, also known - as FreeBSD-STABLE.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_3</term> - - <listitem> - <para>The line of development for FreeBSD-3.X, also known - as 3.X-STABLE.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_2_2</term> - - <listitem> - <para>The line of development for FreeBSD-2.2.X, also known - as 2.2-STABLE. This branch is mostly obsolete.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Here are the revision tags that users might be interested - in. Again, none of these are valid for the ports collection - since the ports collection does not have multiple - revisions.</para> - - <variablelist> - <varlistentry> - <term>RELENG_4_0_0_RELEASE</term> - - <listitem> - <para>FreeBSD 4.0.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_3_4_0_RELEASE</term> - - <listitem> - <para>FreeBSD-3.4.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_3_3_0_RELEASE</term> - - <listitem> - <para>FreeBSD-3.3.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_3_2_0_RELEASE</term> - - <listitem> - <para>FreeBSD-3.2.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_3_1_0_RELEASE</term> - - <listitem> - <para>FreeBSD-3.1.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_3_0_0_RELEASE</term> - - <listitem> - <para>FreeBSD-3.0.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_2_2_8_RELEASE</term> - - <listitem> - <para>FreeBSD-2.2.8.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_2_2_7_RELEASE</term> - - <listitem> - <para>FreeBSD-2.2.7.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_2_2_6_RELEASE</term> - - <listitem> - <para>FreeBSD-2.2.6.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_2_2_5_RELEASE</term> - - <listitem> - <para>FreeBSD-2.2.5.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_2_2_2_RELEASE</term> - - <listitem> - <para>FreeBSD-2.2.2.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_2_2_1_RELEASE</term> - - <listitem> - <para>FreeBSD-2.2.1.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_2_2_0_RELEASE</term> - - <listitem> - <para>FreeBSD-2.2.0.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>When you specify a branch tag, you normally receive the - latest versions of the files on that line of development. If - you wish to receive some past version, you can do so by - specifying a date with the <option>-D date</option> flag. - See the &man.cvs.1; man page for more details.</para> - </sect3> - - <sect3> - <title>Examples</title> - - <para>While it really is recommended that you read the manual page - for &man.cvs.1; thoroughly before doing anything, here are some - quick examples which essentially show how to use Anonymous - CVS:</para> - - <example> - <title>Checking out something from -CURRENT (&man.ls.1;) and - deleting it again:</title> - - <screen> -&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput> -&prompt.user; <userinput>cvs login</userinput> -<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>. -&prompt.user; <userinput>cvs co ls</userinput> -&prompt.user; <userinput>cvs release -d ls</userinput> -&prompt.user; <userinput>cvs logout</userinput> - </screen> - </example> - - <example> - <title>Checking out the version of &man.ls.1; in the 3.X-STABLE - branch:</title> - - <screen> -&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput> -&prompt.user; <userinput>cvs login</userinput> -<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>. -&prompt.user; <userinput>cvs co -rRELENG_3 ls</userinput> -&prompt.user; <userinput>cvs release -d ls</userinput> -&prompt.user; <userinput>cvs logout</userinput> - </screen> - </example> - - <example> - <title>Creating a list of changes (as unified diffs) to &man.ls.1;</title> - - <screen> -&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput> -&prompt.user; <userinput>cvs login</userinput> -<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>. -&prompt.user; <userinput>cvs rdiff -u -rRELENG_3_0_0_RELEASE -rRELENG_3_4_0_RELEASE ls</userinput> -&prompt.user; <userinput>cvs logout</userinput> - </screen> - </example> - - <example> - <title>Finding out what other module names can be used:</title> - - <screen> -&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput> -&prompt.user; <userinput>cvs login</userinput> -<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>. -&prompt.user; <userinput>cvs co modules</userinput> -&prompt.user; <userinput>more modules/modules</userinput> -&prompt.user; <userinput>cvs release -d modules</userinput> -&prompt.user; <userinput>cvs logout</userinput> - </screen> - </example> - </sect3> - - <sect3> - <title>Other Resources</title> - - <para>The following additional resources may be helpful in learning - CVS:</para> - - <itemizedlist> - <listitem> - <para><ulink - url="http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/">CVS Tutorial</ulink> from Cal Poly.</para> - </listitem> - - <listitem> - <para><ulink url="http://www.cyclic.com/">Cyclic Software</ulink>, - commercial maintainers of CVS.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVSWeb</ulink> is - the FreeBSD Project web interface for CVS.</para> - </listitem> - </itemizedlist> - </sect3> - </sect2> - - </sect1> - - <sect1 id="makeworld"> - <title>Using <command>make world</command></title> - - <para>Once you have synchronized your local source tree against a - particular version of FreeBSD (<literal>stable</literal>, - <literal>current</literal> and so on) you must then use the source - tree to rebuild the system.</para> - - <warning> - <title>Take a backup</title> - - <para>I cannot stress highly enough how important it is to take a - backup of your system <emphasis>before</emphasis> you do this. - While remaking the world is (as long as you follow these - instructions) an easy task to do, there will inevitably be times - when you make mistakes, or when mistakes made by others in the - source tree render your system unbootable.</para> - - <para>Make sure you have taken a backup. And have a fix-it floppy to - hand. I have never needed to use them, and, touch wood, I never - will, but it is always better to be safe than sorry.</para> - </warning> - - <warning> - <title>Subscribe to the right mailing list</title> - - <para>The -STABLE and -CURRENT FreeBSD code branches are, by their - nature, <emphasis>in development</emphasis>. People that - contribute to FreeBSD are human, and mistakes occasionally - happen.</para> - - <para>Sometimes these mistakes can be quite harmless, just causing - your system to print a new diagnostic warning. Or the change may - be catastrophic, and render your system unbootable or destroy your - filesystems (or worse).</para> - - <para>If problems like these occur, a <quote>heads up</quote> is - posted to the appropriate mailing list, explaining the nature of - the problem and which systems it affects. And an <quote>all - clear</quote> announcement is posted when the problem has been - solved.</para> - - <para>If you try and track -STABLE or -CURRENT and do not read the - <email>stable@FreeBSD.org</email> or - <email>current@FreeBSD.org</email> mailing lists then you are - asking for trouble.</para> - </warning> - - <sect2> - <title>Read <filename>/usr/src/UPDATING</filename></title> - - <para>Before you do anything else, read - <filename>/usr/src/UPDATING</filename> (or the equivalent file - wherever you have a copy of the source code). This file should - contain important information about problems you might encounter, or - specify the order in which you might have to run certain commands. - If <filename>UPDATING</filename> contradicts something you read here, - <filename>UPDATING</filename> takes precedence.</para> - - <important> - <para>Reading <filename>UPDATING</filename> is not an acceptable - substitute for subscribing to the correct mailing list, as described - previously. The two requirements are complementary, not - exclusive.</para> - </important> - </sect2> - - <sect2> - <title>Check <filename>/etc/make.conf</filename></title> - - <para>Examine the files - <filename>/etc/defaults/make.conf</filename> and - <filename>/etc/make.conf</filename>. The first contains some - default defines – most of which are commented out. To - make use of them when you rebuild your system from source, add - them to <filename>/etc/make.conf</filename>. Keep in mind that - anything to add to <filename>/etc/make.conf</filename> is also - used every time you run <command>make</command>, so it is a good - idea to set them to something sensible for your system. As a - typical user (not a FreeBSD developer), you will probably want - to add the <makevar>CFLAGS</makevar> and - <makevar>NOPROFILE</makevar> lines found in - <filename>/etc/defaults/make.conf</filename>.</para> - - <para>Everything is, by default, commented out. Uncomment those - entries that look useful. For a typical user (not a developer), - you will probably want to uncomment the CFLAGS and NOPROFILE - definitions.</para> - - <note> - <title/Version 2.1.7 and below/ - - <para>If your machine has a floating point unit (386DX, 486DX, - Pentium and up class machines) then you can also uncomment the - HAVE_FPU line.</para> - - <para>This definition was removed for version 2.2.2 and up of - FreeBSD.</para> - </note> - - <para>Examine the other definitions (COPTFLAGS, NOPORTDOCS and so - on) and decide if they are relevant to you.</para> - </sect2> - - <sect2> - <title>Update <filename>/etc/group</filename></title> - - <para>The <filename>/etc</filename> directory contains a large part - of your system's configuration information, as well as scripts - that are run at system startup. Some of these scripts change from - version to version of FreeBSD.</para> - - <para>Some of the configuration files are also used in the day to - day running of the system. In particular, - <filename>/etc/group</filename>.</para> - - <para>There have been occasions when the installation part of - <quote>make world</quote> has expected certain usernames or groups - to exist. When performing an upgrade it is likely that these - groups did not exist. This caused problems when upgrading.</para> - - <para>The most recent example of this is when the <quote/ppp/ group - (later renamed <quote/network/) was added. Users had the - installation process fail for them when parts of the - <filename>ppp</filename> subsystem were installed using a - non-existent (for them) group name.</para> - - <para>The solution is to examine - <filename>/usr/src/etc/group</filename> and compare its list of - groups with your own. If they are any groups in the new file that - are not in your file then copy them over. Similarly, you should - rename any groups in <filename>/etc/group</filename> which have - the same GID but a different name to those in - <filename>/usr/src/etc/group</filename>.</para> - - <tip> - <para>If you are feeling particularly paranoid, you can check your - system to see which files are owned by the group you are - renaming or deleting.</para> - - <screen>&prompt.root; <userinput>find / -group <replaceable>GID</replaceable> -print</userinput></screen> - - <para>will show all files owned by group - <replaceable>GID</replaceable> (which can be either a group name - or a numeric group ID).</para> - </tip> - </sect2> - - <sect2> - <title/Drop to single user mode/ - - <para>You may want to compile the system in single user mode. Apart - from the obvious benefit of making things go slightly faster, - reinstalling the system will touch a lot of important system - files, all the standard system binaries, libraries, include files - and so on. Changing these on a running system (particularly if - you have active users on their at the time) is asking for - trouble.</para> - - <para>That said, if you are confident, you can omit this - step.</para> - - <note> - <title>Version 2.2.5 and above</title> - - <para>As described in more detail below, versions 2.2.5 and above - of FreeBSD have separated the building process from the - installing process. You can therefore - <emphasis>build</emphasis> the new system in multi-user mode, - and then drop to single user mode to do the installation.</para> - </note> - - <para>As the superuser, you can execute</para> - - <screen>&prompt.root; <userinput/shutdown now/</screen> - - <para>from a running system, which will drop it to single user - mode.</para> - - <para>Alternatively, reboot the system, and at the boot prompt, - enter the <option>-s</option> flag. The system will then boot - single user. At the shell prompt you should then run:</para> - - <screen>&prompt.root; <userinput>fsck -p</userinput> -&prompt.root; <userinput>mount -u /</userinput> -&prompt.root; <userinput>mount -a -t ufs</userinput> -&prompt.root; <userinput>swapon -a</userinput></screen> - - <para>This checks the filesystems, remounts <filename>/</filename> - read/write, mounts all the other UFS filesystems referenced in - <filename>/etc/fstab</filename> and then turns swapping on.</para> - </sect2> - - <sect2> - <title>Remove <filename>/usr/obj</filename></title> - - <para>As parts of the system are rebuilt they are placed in - directories which (by default) go under - <filename>/usr/obj</filename>. The directories shadow those under - <filename>/usr/src</filename>.</para> - - <para>You can speed up the <quote>make world</quote> process, and - possibly save yourself some dependency headaches by removing this - directory as well.</para> - - <para>Some files below <filename>/usr/obj</filename> will have the - immutable flag set (see &man.chflags.1; for more information) - which must be removed first.</para> - - <screen>&prompt.root; <userinput>cd /usr/obj</userinput> -&prompt.root; <userinput>chflags -R noschg *</userinput> -&prompt.root; <userinput>rm -rf *</userinput></screen> - </sect2> - - <sect2> - <title/Recompile the source and install the new system/ - - <sect3> - <title>All versions</title> - - <para>You must be in the <filename>/usr/src</filename> - directory...</para> - - <screen>&prompt.root; <userinput>cd /usr/src</userinput></screen> - - <para>(unless, of course, your source code is elsewhere, in which - case change to that directory instead).</para> - - <para>To rebuild the world you use the &man.make.1; command. This - command reads instructions from the - <filename>Makefile</filename> which describes how the programs - that comprise FreeBSD should be rebuilt, the order they should - be built in, and so on.</para> - - <para>The general format of the command line you will type is as - follows:</para> - - <screen>&prompt.root; <userinput>make <option>-<replaceable/x/</option> <option>-D<replaceable>VARIABLE</replaceable></option> <replaceable>target</replaceable></userinput></screen> - - <para>In this example, <option>-<replaceable>x</replaceable></option> - is an option that you would pass to &man.make.1;. See the - &man.make.1; manual page for an example of the options you can - pass.</para> - - <para><option>-D<replaceable>VARIABLE</replaceable></option> - passes a variable to the <filename>Makefile</filename>. The - behavior of the <filename>Makefile</filename> is controlled by - these variables. These are the same variables as are set in - <filename>/etc/make.conf</filename>, and this provides another - way of setting them.</para> - - <screen>&prompt.root; <userinput>make -DNOPROFILE=true <replaceable>target</replaceable></userinput></screen> - - <para>is another way of specifying that profiled libraries should - not be built, and corresponds with the</para> - - <programlisting>NOPROFILE= true -# Avoid compiling profiled libraries</programlisting> - - <para>lines in <filename>/etc/make.conf</filename>.</para> - - <para><replaceable>target</replaceable> tells &man.make.1; what - you want to do. Each <filename>Makefile</filename> defines a - number of different <quote>targets</quote>, and your choice of - target determines what happens.</para> - - <para>Some targets are listed in the - <filename>Makefile</filename>, but are not meant for you to run. - Instead, they are used by the build process to break out the - steps necessary to rebuild the system into a number of - sub-steps.</para> - - <para>Most of the time you won't need to pass any parameters to - &man.make.1;, and so your command like will look like - this:</para> - - <screen>&prompt.root; <userinput>make <replaceable>target</replaceable></userinput></screen> - </sect3> - - <sect3> - <title>Saving the output</title> - - <para>It's a good idea to save the output you get from running - &man.make.1; to another file. If something goes wrong you will - have a copy of the error message, and a complete list of where - the process had got to. While this might not help you in - diagnosing what has gone wrong, it can help others if you post - your problem to one of the FreeBSD mailing lists.</para> - - <para>The easiest way to do this is to use the &man.script.1; - command, with a parameter that specifies the name of the file to - save all output to. You would do this immediately before - remaking the world, and then type <userinput>exit</userinput> - when the process has finished.</para> - - <screen>&prompt.root; <userinput>script /var/tmp/mw.out</userinput> -Script started, output file is /var/tmp/mw.out -&prompt.root; <userinput>make world</userinput> -<emphasis>… compile, compile, compile …</emphasis> -&prompt.root; <userinput>exit</userinput> -Script done, …</screen> - - <para>If you do this, <emphasis>do not</emphasis> save the output - in <filename>/tmp</filename>. This directory may be cleared - next time you reboot. A better place to store it is in - <filename>/var/tmp</filename> (as in the previous example) or - in <username>root</username>'s home directory.</para> - </sect3> - - <sect3> - <title>Version 2.2.2 and below</title> - - <para><filename>/usr/src/Makefile</filename> contains the - <maketarget>world</maketarget> target, which will rebuild the - entire system and then install it.</para> - - <para>Use it like this:</para> - - <screen>&prompt.root; <userinput>make world</userinput></screen> - </sect3> - - <sect3> - <title>Version 2.2.5 and above</title> - - <para>Beginning with version 2.2.5 of FreeBSD (actually, it was - first created on the -CURRENT branch, and then retrofitted to - -STABLE midway between 2.2.2 and 2.2.5) the - <maketarget>world</maketarget> target has been split in - two. <maketarget>buildworld</maketarget> and - <maketarget>installworld</maketarget>.</para> - - <para>As the names imply, <maketarget>buildworld</maketarget> - builds a complete new tree under <filename>/usr/obj</filename>, - and <maketarget>installworld</maketarget> installs this tree on - the current machine.</para> - - <para>This is very useful for 2 reasons. First, it allows you to do - the build safe in the knowledge that no components of your running - system will be affected. The build is <quote>self hosted</quote>. - Because of this, you can safely run - <maketarget>buildworld</maketarget> on a machine running in - multi-user mode with no fear of ill-effects. I still recommend you - run the <maketarget>installworld</maketarget> part in single user - mode though.</para> - - <para>Secondly, it allows you to use NFS mounts to upgrade - multiple machines on your network. If you have three machines, - A, B and C that you want to upgrade, run <command>make - buildworld</command> and <command>make installworld</command> on - A. B and C should then NFS mount <filename>/usr/src</filename> - and <filename>/usr/obj</filename> from A, and you can then run - <command>make installworld</command> to install the results of - the build on B and C.</para> - - <para>The <maketarget>world</maketarget> target still exists, and - you can use it exactly as shown for version 2.2.2. - <command>make world</command> runs <command>make - buildworld</command> followed by <command>make - installworld</command>.</para> - - <note> - <para>If you do the <command>make buildworld</command> and - <command>make installworld</command> commands separately, you - must pass the same parameters to &man.make.1; each - time.</para> - - <para>If you run:</para> - - <screen>&prompt.root; <userinput>make -DNOPROFILE=true buildworld</userinput></screen> - - <para>you must install the results with:</para> - - <screen>&prompt.root; <userinput>make -DNOPROFILE=true installworld</userinput></screen> - - <para>otherwise it would try and install profiled libraries that - had not been built during the <command>make buildworld</command> - phase.</para> - </note> - </sect3> - - <sect3> - <title>-CURRENT and above</title> - - <para>If you are tracking -CURRENT you can also pass the - <option>-j</option> option to <command>make</command>. This lets - <command>make</command> spawn several simultaneous processes.</para> - - <para>This is most useful on true multi-CPU machines. However, since - much of the compiling process is IO bound rather than CPU bound it is - also useful on single CPU machines.</para> - - <para>On a typical single-CPU machine you would run:</para> - - <screen>&prompt.root; <userinput>make -j4 <replaceable>target</replaceable></userinput></screen> - - <para>&man.make.1; will then have up to 4 processes running at any one - time. Empirical evidence posted to the mailing lists shows this - generally gives the best performance benefit.</para> - - <para>If you have a multi-CPU machine and you are using an SMP - configured kernel try values between 6 and 10 and see how they speed - things up.</para> - - <para>Be aware that (at the time of writing) this is still - experimental, and commits to the source tree may occasionally break - this feature. If the world fails to compile using this parameter - try again without it before you report any problems.</para> - </sect3> - - <sect3> - <title>Timings</title> - - <para>Assuming everything goes well you have anywhere between an hour - and a half and a day or so to wait.</para> - - <para>As a general rule of thumb, a 200MHz P6 with more than 32MB of - RAM and reasonable SCSI disks will complete <command>make - world</command> in about an hour and a half. A 32MB P133 will - take 5 or 6 hours. Revise these figures down if your machines are - slower…</para> - </sect3> - </sect2> - - <sect2> - <title>Update <filename>/etc</filename></title> - - <para>Remaking the world will not update certain directories (in - particular, <filename>/etc</filename>, <filename>/var</filename> and - <filename>/usr</filename>) with new or changed configuration files. - This is something you have to do by hand, eyeball, and judicious use - of &man.diff.1;.</para> - - <para>You cannot just copy over the files from - <filename>/usr/src/etc</filename> to <filename>/etc</filename> and - have it work. Some of these files must be <quote>installed</quote> - first. This is because the <filename>/usr/src/etc</filename> - directory <emphasis>is not</emphasis> a copy of what your - <filename>/etc</filename> directory should look like. In addition, - there are files that should be in <filename>/etc</filename> that are - not in <filename>/usr/src/etc</filename>.</para> - - <para>The simplest way to do this is to install the files into a new - directory, and then work through them looking for differences.</para> - - <warning> - <title>Backup your existing <filename>/etc</filename></title> - - <para>Although, in theory, nothing is going to touch this directory - automatically, it is always better to be sure. So copy your - existing <filename>/etc</filename> directory somewhere safe. - Something like:</para> - - <screen>&prompt.root; <userinput>cp -Rp /etc /etc.old</userinput></screen> - - <para><option>-R</option> does a recursive copy, <option>-p</option> - preserves times, ownerships on files and suchlike.</para> - </warning> - - <para>You need to build a dummy set of directories to install the new - <filename>/etc</filename> and other files into. I generally choose to - put this dummy directory in <filename>/var/tmp/root</filename>, and - there are a number of subdirectories required under this as - well.</para> - - <screen>&prompt.root; <userinput>mkdir /var/tmp/root</userinput> -&prompt.root; <userinput>cd /usr/src/etc</userinput> -&prompt.root; <userinput>make DESTDIR=/var/tmp/root distrib-dirs distribution</userinput></screen> - - <para>This will build the necessary directory structure and install the - files. A lot of the subdirectories that have been created under - <filename>/var/tmp/root</filename> are empty and should be deleted. - The simplest way to do this is to:</para> - - <screen>&prompt.root; <userinput>cd /var/tmp/root</userinput> -&prompt.root; <userinput>find -d . -type d | /usr/bin/perl -lne \ - 'opendir(D,$_);@f=readdir(D);rmdir if $#f == 1;closedir(D);'</userinput></screen> - - <para>This does a depth first search, examines each directory, and if - the number of files in that directory is 2 (<quote/1/ is not a typo in - the script) i.e., <quote/<filename/.// and <quote/<filename/..// then - it removes the directory.</para> - - <para><filename>/var/tmp/root</filename> now contains all the files that - should be placed in appropriate locations below - <filename>/</filename>. You now have to go through each of these - files, determining how they differ with your existing files.</para> - - <para>Note that some of the files that will have been installed in - <filename>/var/tmp/root</filename> have a leading <quote/./. At the - time of writing the only files like this are shell startup files in - <filename>/var/tmp/root/</filename> and - <filename>/var/tmp/root/root/</filename>, although there may be others - (depending on when you are reading this. Make sure you use - <command/ls -a/ to catch them.</para> - - <para>The simplest way to do this is to use &man.diff.1; to compare the - two files.</para> - - <screen>&prompt.root; <userinput>diff /etc/shells /var/tmp/root/etc/shells</userinput></screen> - - <para>This will show you the differences between your - <filename>/etc/shells</filename> file and the new - <filename>/etc/shells</filename> file. Use these to decide whether to - merge in changes that you have made or whether to copy over your old - file.</para> - - <tip> - <title>Name the new root directory - (<filename>/var/tmp/root</filename>)with a time stamp, so you can - easily compare differences between versions</title> - - <para>Frequently remaking the world means that you have to update - <filename>/etc</filename> frequently as well, which can be a bit of - a chore.</para> - - <para>You can speed this process up by keeping a copy of the last set - of changed files that you merged into <filename>/etc</filename>. - The following procedure gives one idea of how to do this.</para> - - <procedure> - <step> - <para>Make the world as normal. When you want to update - <filename>/etc</filename> and the other directories, give the - target directory a name based on the current date. If you were - doing this on the 14th of February 1998 you could do the - following.</para> - - <screen>&prompt.root; <userinput>mkdir /var/tmp/root-19980214</userinput> -&prompt.root; <userinput>cd /usr/src/etc</userinput> -&prompt.root; <userinput>make DESTDIR=/var/tmp/root-19980214 \ - distrib-dirs distribution</userinput></screen> - </step> - - <step> - <para>Merge in the changes from this directory as outlined - above.</para> - - <para><emphasis>Do not</emphasis> remove the - <filename>/var/tmp/root-19980214</filename> directory when you - have finished.</para> - </step> - - <step> - <para>When you have downloaded the latest version of the source - and remade it, follow step 1. This will give you a new - directory, which might be called - <filename>/var/tmp/root-19980221</filename> (if you wait a week - between doing updates).</para> - </step> - - <step> - <para>You can now see the differences that have been made in the - intervening week using &man.diff.1; to create a recursive diff - between the two directories.</para> - - <screen>&prompt.root; <userinput>cd /var/tmp</userinput> -&prompt.root; <userinput>diff -r root-19980214 root-19980221</userinput></screen> - - <para>Typically, this will be a much smaller set of differences - than those between - <filename>/var/tmp/root-19980221/etc</filename> and - <filename>/etc</filename>. Because the set of differences is - smaller, it is easier to migrate those changes across into your - <filename>/etc</filename> directory.</para> - </step> - - <step> - <para>You can now remove the older of the two - <filename>/var/tmp/root-*</filename> directories.</para> - - <screen>&prompt.root; <userinput>rm -rf /var/tmp/root-19980214</userinput></screen> - </step> - - <step> - <para>Repeat this process every time you need to merge in changes - to <filename>/etc</filename>.</para> - </step> - </procedure> - - <para>You can use &man.date.1; to automate the generation of the - directory names.</para> - - <screen>&prompt.root; <userinput>mkdir /var/tmp/root-`date "+%Y%m%d"`</userinput></screen> - </tip> - </sect2> - - <sect2> - <title>Update <filename>/dev</filename></title> - - <note> - <title>DEVFS</title> - - <para>If you are using DEVFS then this is probably unnecessary.</para> - </note> - - <para>For safety's sake, this is a multi-step process.</para> - - <procedure> - <step> - <para>Copy <filename>/var/tmp/root/dev/MAKEDEV</filename> to - <filename>/dev</filename>.</para> - - <screen>&prompt.root; <userinput>cp /var/tmp/root/dev/MAKEDEV /dev</userinput></screen> - </step> - - <step> - <para>Now, take a snapshot of your current - <filename>/dev</filename>. This snapshot needs to contain the - permissions, ownerships, major and minor numbers of each filename, - but it should not contain the time stamps. The easiest way to do - this is to use &man.awk.1; to strip out some of the - information.</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.out</userinput></screen> - </step> - - <step> - <para>Remake all the devices.</para> - - <screen>&prompt.root; <userinput/sh MAKEDEV all/</screen> - </step> - - <step> - <para>Write another snapshot of the directory, this time to - <filename>/var/tmp/dev2.out</filename>. Now look through these - two files for any devices that you missed creating. There should - not be any, but it is better to be safe than sorry.</para> - - <screen>&prompt.root; <userinput>diff /var/tmp/dev.out /var/tmp/dev2.out</userinput></screen> - - <para>You are most likely to notice disk slice discrepancies which - will involve commands such as - - <screen>&prompt.root; <userinput>sh MAKEDEV sd0s1</userinput></screen> - - to recreate the slice entries. Your precise circumstances may - vary.</para> - </step> - </procedure> - </sect2> - - <sect2> - <title>Update <filename>/stand</filename></title> - - <note> - <para>This step is included only for completeness. It can safely be - omitted.</para> - </note> - - <para>For the sake of completeness, you may want to update the files in - <filename>/stand</filename> as well. These files consist of hard - links to the <filename>/stand/sysinstall</filename> binary. This - binary should be statically linked, so that it can work when no other - filesystems (and in particular <filename>/usr</filename>) have been - mounted.</para> - - <screen>&prompt.root; <userinput>cd /usr/src/release/sysinstall</userinput> -&prompt.root; <userinput>make all install</userinput></screen> - - <note> - <title>Source older than 2 April 1998</title> - - <para>If your source code is older than 2nd April 1998, or the - <filename>Makefile</filename> version is not 1.68 or higher (for - FreeBSD current and 3.X systems) or 1.48.2.21 or higher (for 2.2.X - systems) you will need to add the - <userinput>NOSHARED=yes</userinput> option, like so;</para> - - <screen>&prompt.root; <userinput>make NOSHARED=yes all install</userinput></screen> - </note> - </sect2> - - <sect2> - <title>Compile and install a new kernel</title> - - <para>To take full advantage of your new system you should recompile the - kernel. This is practically a necessity, as certain memory structures - may have changed, and programs like &man.ps.1; and &man.top.1; will - fail to work until the kernel and source code versions are the - same.</para> - - <para>Follow the handbook instructions for compiling a new kernel. If - you have previously built a custom kernel then carefully examine the - <filename>LINT</filename> config file to see if there are any new - options which you should take advantage of.</para> - - <para>A previous version of this document suggested rebooting before - rebuilding the kernel. This is wrong because:</para> - - <itemizedlist> - <listitem> - <para>Commands like &man.ps.1;, &man.ifconfig.8;, and &man.sysctl.8; - may fail. This could leave your machine unable to connect to the - network.</para> - </listitem> - - <listitem> - <para>Basic utilities like &man.mount.8; could fail, - making it impossible to mount <filename>/</filename>, - <filename>/usr</filename> and so on. This is unlikely if you are - tracking a -STABLE candidate, but more likely if you are tracking - -CURRENT during a large merge.</para> - </listitem> - - <listitem> - <para>Loadable kernel modules (LKMs on pre-3.X systems, KLDs on 3.X - systems and above) built as part of the <quote>world</quote> may - crash an older kernel.</para> - </listitem> - </itemizedlist> - - <para>For these reasons, it is always best to rebuild and install a - new kernel before rebooting.</para> - - <para>You should build your new kernel after you have completed - <userinput>make world</userinput> (or <userinput>make - installworld</userinput>). If you do not want to do this (perhaps - you want to confirm that the kernel builds before updating your - system) you may have problems. These may be because your - &man.config.8; command is out of date with respect to your kernel - sources.</para> - - <para>In this case you could build your kernel with the new version of &man.config.8;</para> - - <screen>&prompt.root; <userinput>/usr/obj/usr/src/usr.sbin/config/config <replaceable>KERNELNAME</replaceable></userinput></screen> - - <para>This may not work in all cases. It is recommended that you - complete <userinput>make world</userinput> (or <userinput>make - installworld</userinput>) before compiling a new kernel.</para> - </sect2> - - <sect2> - <title/Rebooting/ - - <para>You are now done. After you have verified that everything appears - to be in the right place you can reboot the system. A simple - &man.fastboot.8; should do it.</para> - - <screen>&prompt.root; <userinput>fastboot</userinput></screen> - </sect2> - - <sect2> - <title>Finished</title> - - <para>You should now have successfully upgraded your FreeBSD system. - Congratulations.</para> - - <para>You may notice small problems due to things that you have missed. - For example, I once deleted <filename>/etc/magic</filename> as part of - the upgrade and merge to <filename>/etc</filename>, and the - <command>file</command> command stopped working. A moment's thought - meant that - - <screen>&prompt.root; <userinput>cd /usr/src/usr.bin/file</userinput> -&prompt.root; <userinput/make all install/</screen> - - was sufficient to fix that one.</para> - </sect2> - - <sect2> - <title/Questions?/ - - <qandaset> - <qandaentry> - <question> - <para>Do I need to re-make the world for every change?</para> - </question> - - <answer> - <para>There is no easy answer to this one, as it depends on the - nature of the change. For example, I have just run CVSup, and - it has shown the following files as being updated since I last - ran it;</para> - - <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> - - <para>There is nothing in there that I would re-make the world - for. I would go to the appropriate sub-directories and - <command>make all install</command>, and that's about it. But - if something major changed, for example - <filename>src/lib/libc/stdlib</filename> then I would either - re-make the world, or at least those parts of it that are - statically linked (as well as anything else I might have added - that is statically linked).</para> - - <para>At the end of the day, it is your call. You might be happy - re-making the world every fortnight say, and let changes - accumulate over that fortnight. Or you might want to re-make - just those things that have changed, and are confident you can - spot all the dependencies.</para> - - <para>And, of course, this all depends on how often you want to - upgrade, and whether you are tracking -STABLE or - -CURRENT.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>My compile failed with lots of signal 12 (or other signal - number) errors. What has happened?</para> - </question> - - <answer> - <para>This is normally indicative of hardware problems. - (Re)making the world is an effective way to stress test your - hardware, and will frequently throw up memory problems. These - normally manifest themselves as the compiler mysteriously dying - on receipt of strange signals.</para> - - <para>A sure indicator of this is if you can restart the make and - it dies at a different point in the process.</para> - - <para>In this instance there is little you can do except start - swapping around the components in your machine to determine - which one is failing.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Can I remove <filename>/usr/obj</filename> when I have - finished?</para> - </question> - - <answer> - <para>That depends on how you want to make the world on future - occasions.</para> - - <para><filename>/usr/obj</filename> contains all the object files - that were produced during the compilation phase. Normally, one - of the first steps in the <quote/make world/ process is to - remove this directory and start afresh. In this case, keeping - <filename>/usr/obj</filename> around after you have finished - makes little sense, and will free up a large chunk of disk space - (currently about 150MB).</para> - - <para>However, if you know what you are doing you can have - <quote/make world/ skip this step. This will make subsequent - builds run much faster, since most of sources will not need to - be recompiled. The flip side of this is that subtle dependency - problems can creep in, causing your build to fail in odd ways. - This frequently generates noise on the FreeBSD mailing lists, - when one person complains that their build has failed, not - realising that it is because they have tried to cut - corners.</para> - - <para>If you want to live dangerously then make the world, passing - the <makevar>NOCLEAN</makevar> definition to make, like - this:</para> - - <screen>&prompt.root; <userinput>make -DNOCLEAN world</userinput></screen> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Can interrupted builds be resumed?</para> - </question> - - <answer> - <para>This depends on how far through the process you got before - you found a problem.</para> - - <para><emphasis>In general</emphasis> (and this is not a hard and - fast rule) the <quote>make world</quote> process builds new - copies of essential tools (such as &man.gcc.1;, and - &man.make.1;>) and the system libraries. These tools and - libraries are then installed. The new tools and libraries are - then used to rebuild themselves, and are installed again. The - entire system (now including regular user programs, such as - &man.ls.1; or &man.grep.1;) is then rebuilt with the new - system files.</para> - - <para>If you are at the last state, and you know it (because you - have looked through the output that you were storing) then you - can (fairly safely) do</para> - - <screen><emphasis>… fix the problem …</emphasis> -&prompt.root; <userinput>cd /usr/src</userinput> -&prompt.root; <userinput>make -DNOCLEAN all</userinput></screen> - - <para>This will not undo the work of the previous - <quote>make world</quote>.</para> - - <para>If you see the message - - <screen>-------------------------------------------------------------- -Building everything.. ---------------------------------------------------------------</screen> - - in the <quote>make world</quote> output then it is - probably fairly safe to do so.</para> - - <para>If you do not see that message, or you are not sure, then it - is always better to be safe than sorry, and restart the build - from scratch.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Can I use one machine as a <emphasis/master/ to upgrade lots - of machines (NFS)?</para> - </question> - - <answer> - <para>People often ask on the FreeBSD mailing lists whether they - can do all the compiling on one machine, and then use the - results of that compile to <command>make install</command> on to - other machines around the network.</para> - - <para>This is not something I have done, so the suggestions below - are either from other people, or deduced from the - Makefiles.</para> - - <para>The precise approach to take depends on your version of - FreeBSD</para> - - <para>You must still upgrade <filename>/etc</filename> and - <filename>/dev</filename> on the target machines after doing - this.</para> - - <para>For 2.1.7 and below, Antonio Bemfica - suggested the following approach:</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 asked: - -> Has anybody got a good method for upgrading machines on a network - -First make world, etc. on your main machine -Second, mount / and /usr from the remote machine: - -main_machine% mount remote_machine:/ /mnt -main_machine% mount remote_machine:/usr /mnt/usr - -Third, do a 'make install' with /mnt as the destination: - -main_machine% make install DESTDIR=/mnt - -Repeat for every other remote machine on your network. It works fine -for me. - -Antonio</screen> - - <para>This mechanism will only work (to the best of my knowledge) - if you can write to <filename>/usr/src</filename> on the NFS - server, as the <maketarget>install</maketarget> target in 2.1.7 - and below needed to do this.</para> - - <para>Midway between 2.1.7 and 2.2.0 the <quote>reinstall</quote> - target was committed. You can use the approach exactly as - outlined above for 2.1.7, but use <quote>reinstall</quote> - instead of <quote>install</quote>.</para> - - <para>This approach <emphasis>does not</emphasis> require write - access to the <filename>/usr/src</filename> directory on the NFS - server.</para> - - <para>There was a bug introduced in this target between versions - 1.68 and 1.107 of the Makefile, which meant that write access to - the NFS server <emphasis>was</emphasis> required. This bug was - fixed before version 2.2.0 of FreeBSD was released, but may be an - issue of you have an old server still running -STABLE from this - era.</para> - - <para>For version 2.2.5 and above, you can use the - <quote>buildworld</quote> and <quote>installworld</quote> - targets. Use them to build a source tree on one machine, and - then NFS mount <filename>/usr/src</filename> and - <filename>/usr/obj</filename> on the remote machine and install - it there.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>How can I speed up making the world?</para> - - <itemizedlist> - <listitem> - <para>Run in single user mode.</para> - </listitem> - - <listitem> - <para>Put the <filename>/usr/src</filename> and - <filename>/usr/obj</filename> directories on separate - filesystems held on separate disks. If possible, put these - disks on separate disk controllers.</para> - </listitem> - - <listitem> - <para>Better still, put these filesystems across separate - disks using the <quote>ccd</quote> (concatenated disk - driver) device.</para> - </listitem> - - <listitem> - <para>Turn off profiling (set <quote>NOPROFILE=true</quote> in - <filename>/etc/make.conf</filename>). You almost certainly - do not need it.</para> - </listitem> - - <listitem> - <para>Also in <filename>/etc/make.conf</filename>, set - <quote>CFLAGS</quote> to something like <quote>-O - -pipe</quote>. The optimization <quote>-O2</quote> is much - slower, and the optimization difference between - <quote>-O</quote> and <quote>-O2</quote> is normally - negligible. <quote>-pipe</quote> lets the compiler use - pipes rather than temporary files for communication, which - saves disk access (at the expense of memory).</para> - </listitem> - - <listitem> - <para>Pass the <option>-j<n></option> option to make (if - you are running a sufficiently recent version of FreeBSD) to - run multiple processes in parallel. This helps regardless - of whether you have a single or a multi processor - machine.</para> - </listitem> - - <listitem><para>The filesystem holding - <filename>/usr/src</filename> can be mounted (or remounted) - with the <quote>noatime</quote> option. This stops the time - files in the filesystem were last accessed from being - written to the disk. You probably do not need this - information anyway. - - <note> - <para><quote>noatime</quote> is in version 2.2.0 and - above.</para> - </note> - - <screen>&prompt.root; <userinput>mount -u -o noatime /usr/src</userinput></screen> - - <warning> - <para>The example assumes <filename>/usr/src</filename> is - on its own filesystem. If it is not (if it is a part of - <filename>/usr</filename> for example) then you will - need to use that filesystem mount point, and not - <filename>/usr/src</filename>.</para> - </warning> - </para> - </listitem> - - <listitem> - <para>The filesystem holding <filename>/usr/obj</filename> can - be mounted (or remounted) with the <quote>async</quote> - option. This causes disk writes to happen asynchronously. - In other words, the write completes immediately, and the - data is written to the disk a few seconds later. This - allows writes to be clustered together, and can be a - dramatic performance boost.</para> - - <warning> - <para>Keep in mind that this option makes your filesystem - more fragile. With this option there is an increased - chance that, should power fail, the filesystem will be in - an unrecoverable state when the machine restarts.</para> - - <para>If <filename>/usr/obj</filename> is the only thing on - this filesystem then it is not a problem. If you have - other, valuable data on the same filesystem then ensure - your backups are fresh before you enable this - option.</para> - </warning> - - <screen>&prompt.root; <userinput>mount -u -o async /usr/obj</userinput></screen> - - <warning> - <para>As above, if <filename>/usr/obj</filename> is not on - its own filesystem, replace it in the example with the - name of the appropriate mount point.</para> - </warning> - </listitem> - </itemizedlist> - </question> - </qandaentry> - </qandaset> - </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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/disks/chapter.sgml b/en_US.ISO8859-1/books/handbook/disks/chapter.sgml deleted file mode 100644 index 8c7fbe0e3c..0000000000 --- a/en_US.ISO8859-1/books/handbook/disks/chapter.sgml +++ /dev/null @@ -1,883 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/disks/chapter.sgml,v 1.20 2000/06/13 18:05:39 jim Exp $ ---> - -<chapter id="disks"> - <title>Disks</title> - - <sect1 id="disks-synopsis"> - <title>Synopsis</title> - - <para>This chapter covers how to use disks, whether physical, - memory, or networked, on FreeBSD.</para> - </sect1> - - <sect1 id="disks-bios-numbering"> - <title>BIOS Drive Numbering</title> - - <para>Before you install and configure FreeBSD on your system, there is an - important subject that you should be aware of if, especially if you have - multiple hard drives.</para> - - <para>In a PC running DOS or any of the BIOS-dependent operating systems - (WINxxx), the BIOS is able to abstract the normal disk drive order, and - the operating system goes along with the change. This allows the user - to boot from a disk drive other than the so-called <quote>primary - master</quote>. This is especially convenient for some users who have - found that the simplest and cheapest way to keep a system backup is to - buy an identical second hard drive, and perform routine copies of the - first drive to the second drive using Ghost or XCOPY. Then, if the - first drive fails, or is attacked by a virus, or is scribbled upon by an - operating system defect, he can easily recover by instructing the BIOS - to logically swap the drives. It's like switching the cables on the - drives, but without having to open the case.</para> - - <para>More expensive systems with SCSI controllers often include BIOS - extensions which allow the SCSI drives to be re-ordered in a similar - fashion for up to seven drives.</para> - - <para>A user who is accustomed to taking advantage of these features may - become surprised when the results with FreeBSD are not as expected. - FreeBSD does not use the BIOS, and does not know the <quote>logical BIOS - drive mapping</quote>. This can lead to very perplexing situations, - especially when drives are physically identical in geometry, and have - also been made as data clones of one another.</para> - - <para>When using FreeBSD, always restore the BIOS to natural drive - numbering before installing FreeBSD, and then leave it that way. If you - need to switch drives around, then do so, but do it the hard way, and - open the case and move the jumpers and cables.</para> - - <sidebar> - <title>An illustration from the files of Bill and Fred's Exceptional - Adventures:</title> - - <para>Bill breaks-down an older Wintel box to make another FreeBSD box - for Fred. Bill installs a single SCSI drive as SCSI unit zero, and - installs FreeBSD on it.</para> - - <para>Fred begins using the system, but after several days notices that - the older SCSI drive is reporting numerous soft errors, and reports - this fact to Bill.</para> - - <para>After several more days, Bill decides it's time to address the - situation, so he grabs an identical SCSI drive from the disk drive - "archive" in the back room. An initial surface scan indicates that - this drive is functioning well, so Bill installs this drive as SCSI - unit four, and makes an image copy from drive zero to drive four. Now - that the new drive is installed and functioning nicely, Bill decides - that it's a good idea to start using it, so he uses features in the - SCSI BIOS to re-order the disk drives so that the system boots from - SCSI unit four. FreeBSD boots and runs just fine.</para> - - <para>Fred continues his work for several days, and soon Bill and Fred - decide that it's time for a new adventure -- time to upgrade to a - newer version of FreeBSD. Bill removes SCSI unit zero because it was - a bit flaky, and replaces it with another identical disk drive from - the "archive." Bill then installs the new version of FreeBSD onto the - new SCSI unit zero using Fred's magic internet FTP floppies. The - installation goes well.</para> - - <para>Fred uses the new version of FreeBSD for a few days, and certifies - that it is good enough for use in the engineering department...it's - time to copy all of his work from the old version. So Fred mounts - SCSI unit four (the latest copy of the older FreeBSD version). Fred - is dismayed to find that none of his precious work is present on SCSI - unit four.</para> - - <para>Where did the data go?</para> - - <para>When Bill made an image copy of the original SCSI unit zero onto - SCSI unit four, unit four became the "new clone," When Bill - re-ordered the SCSI BIOS so that he could boot from SCSI unit four, he - was only fooling himself. FreeBSD was still running on SCSI unit zero. - Making this kind of BIOS change will cause some or all of the Boot and - Loader code to be fetched from the selected BIOS drive, but when the - FreeBSD kernel drivers take-over, the BIOS drive numbering will be - ignored, and FreeBSD will transition back to normal drive numbering. - In the illustration at hand, the system continued to operate on the - original SCSI unit zero, and all of Fred's data was there, not on SCSI - unit four. The fact that the system appeared to be running on SCSI - unit four was simply an artifact of human expectations.</para> - - <para>We are delighted to mention that no data bytes were killed or - harmed in any way by our discovery of this phenomenon. The older SCSI - unit zero was retrieved from the bone pile, and all of Fred's work was - returned to him, (and now Bill knows that he can count as high as - zero).</para> - - <para>Although SCSI drives were used in this illustration, the concepts - apply equally to IDE drives.</para> - </sidebar> - </sect1> - - <sect1 id="disks-naming"> - <title>Disk Naming</title> - - <para>Physical drives come in two main flavors, - <acronym>IDE</acronym>, or <acronym>SCSI</acronym>; but there - are also drives backed by RAID controllers, flash memory, and so - forth. Since these behave quite differently, they have their - own drivers and devices.</para> - - <table id="disk-naming-physical-table"> - <title>Physical Disk Naming Conventions</title> - - <tgroup cols="2"> - <thead> - <row> - <entry>Drive type</entry> - <entry>Drive device name</entry> - </row> - </thead> - <tbody> - <row> - <entry>IDE hard drives</entry> - <entry><literal>ad</literal> in 4.0-RELEASE, - <literal>wd</literal> before 4.0-RELEASE.</entry> - </row> - <row> - <entry>IDE CDROM drives</entry> - <entry><literal>acd</literal> in 3.1-RELEASE, - <literal>wcd</literal> before 4.0-RELEASE.</entry> - </row> - <row> - <entry>SCSI hard drives</entry> - <entry><literal>da</literal> from 3.0-RELEASE, - <literal>sd</literal> before 3.0-RELEASE.</entry> - </row> - <row> - <entry>SCSI CDROM drives</entry> - <entry><literal>cd</literal></entry> - </row> - <row> - <entry>Assorted non-standard CDROM drives</entry> - <entry><literal>mcd</literal> for Mitsumi CD-ROM, - <literal>scd</literal> for Sony CD-ROM, - <literal>matcd</literal> for Matsushita/Panasonic CD-ROM - </entry> - </row> - <row> - <entry>Floppy drives</entry> - <entry><literal>fd</literal></entry> - </row> - <row> - <entry>SCSI tape drives</entry> - <entry><literal>sa</literal> from 3.0-RELEASE, - <literal>st</literal> before 3.0-RELEASE.</entry> - </row> - <row> - <entry>IDE tape drives</entry> - <entry><literal>ast</literal> from 4.0-RELEASE, - <literal>wst</literal> before 4.0-RELEASE.</entry> - </row> - <row> - <entry>Flash drives</entry> - <entry><literal>fla</literal> for DiskOnChip Flash device - from 3.3-RELEASE.</entry> - </row> - <row> - <entry>RAID drives</entry> - <entry><literal>myxd</literal> for Mylex, and - <literal>amrd</literal> for AMI MegaRAID, - <literal>idad</literal> for Compaq Smart RAID. - from 4.0-RELEASE. <literal>id</literal> between - 3.2-RELEASE and 4.0-RELEASE.</entry> - </row> - </tbody> - </tgroup> - </table> - - <sect2> - <title>Slices and Partitions</title> - - <para>Physical disks usually contain - <firstterm>slices</firstterm>, unless they are - <quote>dangerously dedicated</quote>. Slice numbers follow - the device name, prefixed with an <literal>s</literal>: - <quote>da0<emphasis>s1</emphasis></quote>.</para> - - <para>Slices, <quote>dangerously dedicated</quote> physical - drives, and other drives contain - <firstterm>partitions</firstterm>, which represented as - letters from <literal>a</literal> to <literal>h</literal>. - <literal>b</literal> is reserved for swap partitions, and - <literal>c</literal> is an unused partition the size of the - entire slice or drive. This is explained in <xref - linkend="disks-adding" />.</para> - </sect2> - </sect1> - - <sect1 id="disks-mounting"> - <title>Mounting and Unmounting Filesystems</title> - - <para>The filesystem is best visualized as a tree, - rooted, as it were, at <filename>/</filename>. - <filename>/dev</filename>, <filename>/usr</filename>, and the - other directories in the root directory are branches, which may - have their own branches, such as - <filename>/usr/local</filename>, and so on.</para> - - <para>There are various reasons to house certain of these - directories on separate filesystems. <filename>/var</filename> - contains log, spool, and various types of temporary files, and - as such, may get filled up. Filling up the root filesystem - isn't a good idea, so splitting <filename>/var</filename> from - <filename>/</filename> is often a good idea.</para> - - <para>Another common reason to contain certain directory trees on - other filesystems is if they are to be housed on separate - physical disks, or are separate virtual disks, such as <link - linkend="nfs">Network File System</link> mounts, or CDROM - drives.</para> - - <sect2 id="disks-fstab"> - <title>The fstab File</title> - - <para>During the <link linkend="boot">boot process</link>, - filesystems listed in <filename>/etc/fstab</filename> are - automatically mounted (unless they are listed with - <option>noauto</option>).</para> - - <para>The <filename>/etc/fstab</filename> file contains a list - of lines of the following format:</para> - - <programlisting><replaceable>device</replaceable> <replaceable>/mount-point</replaceable> <replaceable>fstype</replaceable> <replaceable>options</replaceable> <replaceable>dumpfreq</replaceable> <replaceable>passno</replaceable></programlisting> - - <para><literal>device</literal> is a device name (which should - exist), as explained in the <link linkend="disks-naming">Disk - naming conventions</link> above.</para> - - <para><literal>mount-point</literal> is a directory (which - should exist), on which to mount the filesystem.</para> - - <para><literal>fstype</literal> is the filesystem type to pass - to &man.mount.8;. The default FreeBSD filesystem is - <literal>ufs</literal>.</para> - - <para><literal>options</literal> is either <option>rw</option> - for read-write filesystems, or <option>ro</option> for - read-only filesystems, followed by any other options that may - be needed. A common option is <option>noauto</option> for - filesystems not normally mounted during the boot sequence. - Other options in the &man.mount.8; manual page.</para> - - <para><literal>dumpfreq</literal> is the number of days the - filesystem should be dumped, and <literal>passno</literal> is - the pass number during which the filesystem is mounted during - the boot sequence.</para> - </sect2> - - <sect2 id="disks-mount"> - <title>The mount Command</title> - - <para>The &man.mount.8; command is what is ultimately used to - mount filesystems.</para> - - <para>In its most basic form, you use:</para> - - <informalexample> - <screen>&prompt.root; <userinput>mount <replaceable>device</replaceable> <replaceable>mountpoint</replaceable></userinput></screen> - </informalexample> - - <para>There are plenty of options, as mentioned in the - &man.mount.8; manual page, but the most common are:</para> - - <variablelist> - <title>mount options</title> - - <varlistentry> - <term><option>-a</option></term> - - <listitem> - <para>Mount all filesystems in - <filename>/etc/fstab</filename>, as modified by - <option>-t</option>, if given.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-d</option></term> - - <listitem> - <para>Do everything but actually mount the - filesystem.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-f</option></term> - - <listitem> - <para>Force the mounting the filesystem.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-r</option></term> - - <listitem> - <para>Mount the filesystem read-only.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-t</option> - <replaceable>fstype</replaceable></term> - - <listitem> - <para>Mount the given filesystem as the given filesystem - type, or mount only filesystems of the given type, if - given the <option>-a</option> option.</para> - - <para><quote>ufs</quote> is the default filesystem - type.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-u</option></term> - - <listitem> - <para>Update mount options on the filesystem.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-v</option></term> - - <listitem> - <para>Be verbose.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-w</option></term> - - <listitem> - <para>Mount the filesystem read-write.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>The <option>-o</option> takes a comma-separated list of - the options, including the following:</para> - - <variablelist> - <varlistentry> - <term>nodev</term> - - <listitem> - <para>Do not interpret special devices on the - filesystem. Useful security option.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>noexec</term> - - <listitem> - <para>Do not allow execution of binaries on this - filesystem. Useful security option.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>nosuid</term> - - <listitem> - <para>Do not interpret setuid or setgid flags on the - filesystem. Useful security option.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - - <sect2 id="disks-umount"> - <title>The umount Command</title> - - <para>The umount command takes, as a parameter, one of a - mountpoint, a device name, or the <option>-a</option> or - <option>-A</option> option.</para> - - <para>All forms take <option>-f</option> to force unmounting, - and <option>-v</option> for verbosity.</para> - - <para><option>-a</option> and <option>-A</option> are used to - unmount all mounted filesystems, possibly modified by the - filesystem types listed after <option>-t</option>. - <option>-A</option>, however, doesn't attempt to unmount the - root filesystem.</para> - </sect2> - </sect1> - - <sect1 id="disks-adding"> - <title>Adding Disks</title> - - <para><emphasis>Originally contributed by &a.obrien; 26 April - 1998</emphasis></para> - - <para>Lets say we want to add a new SCSI disk to a machine that currently - only has a single drive. First turn off the computer and install the - drive in the computer following the instructions of the computer, - controller, and drive manufacturer. Due the wide variations of procedures - to do this, the details are beyond the scope of this document.</para> - - <para>Login as user <username>root</username>. After you've installed the - drive, inspect <filename>/var/run/dmesg.boot</filename> to ensure the new - disk was found. Continuing with our example, the newly added drive will - be <filename>da1</filename> and we want to mount it on - <filename>/1</filename> (if you are adding an IDE drive, it will - be <filename>wd1</filename> in pre-4.0 systems, or - <filename>ad1</filename> in most 4.X systems).</para> - - <para>Because FreeBSD runs on IBM-PC compatible computers, it must take into - account the PC BIOS partitions. These are different from the traditional - BSD partitions. A PC disk has up to four BIOS partition entries. If the - disk is going to be truly dedicated to FreeBSD, you can use the - <emphasis>dedicated</emphasis> mode. Otherwise, FreeBSD will have to live - with in one of the PC BIOS partitions. FreeBSD calls the PC BIOS - partitions, <emphasis>slices</emphasis> so as not to confuse them with - traditional BSD partitions. You may also use slices on a disk that is - dedicated to FreeBSD, but used in a computer that also has another - operating system installed. This is to not confuse the - <command>fdisk</command> utility of the other operating system.</para> - - <para>In the slice case the drive will be added as - <filename>/dev/da1s1e</filename>. This is read as: SCSI disk, unit number - 1 (second SCSI disk), slice 1 (PC BIOS partition 1), and - <filename>e</filename> BSD partition. In the dedicated case, the drive - will be added simply as <filename>/dev/da1e</filename>.</para> - - <sect2> - <title>Using sysinstall</title> - - <para>You may use <command>/stand/sysinstall</command> to partition and - label a new disk using its easy to use menus. Either login as user - <username>root</username> or use the <command>su</command> command. Run - <command>/stand/sysinstall</command> and enter the - <literal>Configure</literal> menu. With in the <literal>FreeBSD - Configuration Menu</literal>, scroll down and select the - <literal>Partition</literal> item. Next you should be presented with a - list of hard drives installed in your system. If you do not see - <literal>da1</literal> listed, you need to recheck your physical - installation and <command>dmesg</command> output in the file - <filename>/var/run/dmesg.boot</filename>.</para> - - <para>Select <literal>da1</literal> to enter the <literal>FDISK Partition - Editor</literal>. Choose <literal>A</literal> to use the entire disk - for FreeBSD. When asked if you want to <quote>remain cooperative with - any future possible operating systems</quote>, answer - <literal>YES</literal>. Write the changes to the disk using - <command>W</command>. Now exit the FDISK editor using - <command>q</command>. Next you will be asked about the Master Boot - Record. Since you are adding a disk to an already running system, - choose <literal>None</literal>.</para> - - <para>Next enter the <literal>Disk Label Editor</literal>. This is where - you will create the traditional BSD partitions. A disk can have up to - eight partitions, labeled a-h. A few of the partition labels have - special uses. The <literal>a</literal> partition is used for the root - partition (<filename>/</filename>). Thus only your system disk (e.g, - the disk you boot from) should have an <literal>a</literal> partition. - The <literal>b</literal> partition is used for swap partitions, and you - may have many disks with swap partitions. The <literal>c</literal> - partition addresses the entire disk in dedicated mode, or the entire - FreeBSD slice in slice mode. The other partitions are for general - use.</para> - - <para>Sysinstall's Label editor favors the <literal>e</literal> partition - for non-root, non-swap partitions. With in the Label editor, create a - single file system using <command>C</command>. When prompted if this - will be a FS (file system) or swap, choose <literal>FS</literal> and - give a mount point (e.g, <filename>/mnt</filename>). When adding a disk - in post-install mode, Sysinstall will not create entries in - <filename>/etc/fstab</filename> for you, so the mount point you specify - isn't important.</para> - - <para>You are now ready to write the new label to the disk and create a - file system on it. Do this by hitting <command>W</command>. Ignore any - errors from Sysinstall that it could not mount the new partition. Exit - the Label Editor and Sysinstall completely.</para> - - <para>The last step is to edit <filename>/etc/fstab</filename> to add an - entry for your new disk.</para> - </sect2> - - <sect2> - <title>Using Command Line Utilities</title> - - <sect3> - <title>* Using Slices</title> - - <para></para> - </sect3> - - <sect3> - <title>Dedicated</title> - - <para>If you will not be sharing the new drive with another operating - system, you may use the <literal>dedicated</literal> mode. Remember - this mode can confuse Microsoft operating systems; however, no damage - will be done by them. IBM's OS/2 however, will - <quote>appropriate</quote> any partition it finds which it doesn't - understand.</para> - - <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda1 bs=1k count=1</userinput> -&prompt.root; <userinput>disklabel -Brw da1 auto</userinput> -&prompt.root; <userinput>disklabel -e da1</userinput> # create the `e' partition -&prompt.root; <userinput>newfs -d0 /dev/rda1e</userinput> -&prompt.root; <userinput>mkdir -p /1</userinput> -&prompt.root; <userinput>vi /etc/fstab</userinput> # add an entry for /dev/da1e -&prompt.root; <userinput>mount /1</userinput></screen> - - <para>An alternate method is:</para> - - <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda1 count=2</userinput> -&prompt.root; <userinput>disklabel /dev/rda1 | disklabel -BrR da1 /dev/stdin</userinput> -&prompt.root; <userinput>newfs /dev/rda1e</userinput> -&prompt.root; <userinput>mkdir -p /1</userinput> -&prompt.root; <userinput>vi /etc/fstab</userinput> # add an entry for /dev/da1e -&prompt.root; <userinput>mount /1</userinput></screen> - </sect3> - </sect2> - </sect1> - - <sect1 id="disks-virtual"> - <title>Virtual Disks: Network, Memory, and File-Based Filesystems</title> - - <para>Besides the disks you physically insert into your computer; - floppies, CDs, hard drives, and so forth, other forms of disks - are understood by FreeBSD - the <firstterm>virtual - disks</firstterm>.</para> - - <para>These include network filesystems such as the <link - linkend="nfs">Network Filesystem</link> and Coda, memory-based - filesystems such as <link linkend="disks-md">md</link> and - file-backed filesystems created by <link - linkend="disks-vnconfig">vnconfig</link>.</para> - - <sect2 id="disks-vnconfig"> - <title>vnconfig: file-backed filesystem</title> - - <para>&man.vnconfig.8; configures and enables vnode pseudo disk - devices. A <firstterm>vnode</firstterm> is a representation - of a file, and is the focus of file activity. This means that - &man.vnconfig.8; uses files to create and operate a - filesystem. One possible use is the mounting of floppy or CD - images kept in files.</para> - - <para>To mount an existing filesystem image:</para> - - <example> - <title>Using vnconfig to mount an existing filesystem - image</title> - - <screen>&prompt.root; <userinput>vnconfig vn<replaceable>0</replaceable> <replaceable>diskimage</replaceable></userinput> -&prompt.root; <userinput>mount /dev/vn<replaceable>0</replaceable>c <replaceable>/mnt</replaceable></userinput></screen> - </example> - - <para>To create a new filesystem image with vnconfig:</para> - - <example> - <title>Creating a New File-Backed Disk with vnconfig</title> - - <screen>&prompt.root; <userinput>dd if=/dev/zero of=<replaceable>newimage</replaceable> bs=1k count=<replaceable>5</replaceable>k</userinput> -5120+0 records in -5120+0 records out -&prompt.root; <userinput>vnconfig -s labels -c vn<replaceable>0</replaceable> <replaceable>newimage</replaceable></userinput> -&prompt.root; <userinput>disklabel -r -w vn<replaceable>0</replaceable> auto</userinput> -&prompt.root; <userinput>newfs vn<replaceable>0</replaceable>c</userinput> -Warning: 2048 sector(s) in last cylinder unallocated -/dev/rvn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors - 5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g) -super-block backups (for fsck -b #) at: - 32 -&prompt.root; <userinput>mount /dev/vn<replaceable>0</replaceable>c <replaceable>/mnt</replaceable></userinput> -&prompt.root; <userinput>df <replaceable>/mnt</replaceable></userinput> -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/vn0c 4927 1 4532 0% /mnt</screen> - </example> - </sect2> - - <sect2 id="disks-md"> - <title>md: Memory Filesystem</title> - - <para>md is a simple, efficient means to do memory - filesystems.</para> - - <para>Simply take a filesystem you've prepared with, for - example, &man.vnconfig.8;, and:</para> - - <example> - <title>md memory disk</title> - - <screen>&prompt.root; <userinput>dd if=<replaceable>newimage</replaceable> of=/dev/md<replaceable>0</replaceable></userinput> -5120+0 records in -5120+0 records out -&prompt.root; <userinput>mount /dev/md<replaceable>0c</replaceable> <replaceable>/mnt</replaceable></userinput> -&prompt.root; <userinput>df <replaceable>/mnt</replaceable></userinput> -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/md0c 4927 1 4532 0% /mnt</screen> - </example> - </sect2> - </sect1> - - <sect1 id="quotas"> - <title>Disk Quotas</title> - - <para>Quotas are an optional feature of the operating system that - allow you to limit the amount of disk space and/or the number of - files a user, or members of a group, may allocate on a per-file - system basis. This is used most often on timesharing systems where - it is desirable to limit the amount of resources any one user or - group of users may allocate. This will prevent one user from - consuming all of the available disk space.</para> - - <sect2> - <title>Configuring Your System to Enable Disk Quotas</title> - - <para>Before attempting to use disk quotas it is necessary to make - sure that quotas are configured in your kernel. This is done by - adding the following line to your kernel configuration - file:</para> - - <programlisting> -options QUOTA</programlisting> - - <para>The stock <filename>GENERIC</filename> kernel does not have - this enabled by default, so you will have to configure, build and - install a custom kernel in order to use disk quotas. Please refer - to the <link linkend="kernelconfig">Configuring the FreeBSD - Kernel</link> section for more information on kernel - configuration.</para> - - <para>Next you will need to enable disk quotas in - <filename>/etc/rc.conf</filename>. This is done by adding the - line:</para> - - <programlisting> -enable_quotas=<quote>YES</quote></programlisting> - - <para>For finer control over your quota startup, there is an - additional configuration variable available. Normally on bootup, - the quota integrity of each file system is checked by the - <command>quotacheck</command> program. The - <command>quotacheck</command> facility insures that the data in - the quota database properly reflects the data on the file system. - This is a very time consuming process that will significantly - affect the time your system takes to boot. If you would like to - skip this step, a variable is made available for the - purpose:</para> - - <programlisting> -check_quotas=<quote>NO</quote></programlisting> - - <para>If you are running FreeBSD prior to 3.2-RELEASE, the - configuration is simpler, and consists of only one variable. Set - the following in your <filename>/etc/rc.conf</filename>:</para> - - <programlisting> -check_quotas=<quote>YES</quote></programlisting> - - <para>Finally you will need to edit <filename>/etc/fstab</filename> - to enable disk quotas on a per-file system basis. This is where - you can either enable user or group quotas or both for all of your - file systems.</para> - - <para>To enable per-user quotas on a file system, add the - <literal>userquota</literal> option to the options field in the - <filename>/etc/fstab</filename> entry for the file system you want - to to enable quotas on. For example:</para> - - <programlisting> -/dev/da1s2g /home ufs rw,userquota 1 2</programlisting> - - <para>Similarly, to enable group quotas, use the - <literal>groupquota</literal> option instead of the - <literal>userquota</literal> keyword. To enable both user and - group quotas, change the entry as follows:</para> - - <programlisting> -/dev/da1s2g /home ufs rw,userquota,groupquota 1 2</programlisting> - - <para>By default the quota files are stored in the root directory of - the file system with the names <filename>quota.user</filename> and - <filename>quota.group</filename> for user and group quotas - respectively. See <command>man fstab</command> for more - information. Even though that man page says that you can specify - an alternate location for the quota files, this is not recommended - because the various quota utilities do not seem to handle this - properly.</para> - - <para>At this point you should reboot your system with your new - kernel. <filename>/etc/rc</filename> will automatically run the - appropriate commands to create the initial quota files for all of - the quotas you enabled in <filename>/etc/fstab</filename>, so - there is no need to manually create any zero length quota - files.</para> - - <para>In the normal course of operations you should not be required - to run the <command>quotacheck</command>, - <command>quotaon</command>, or <command>quotaoff</command> - commands manually. However, you may want to read their man pages - just to be familiar with their operation.</para> - </sect2> - - <sect2> - <title>Setting Quota Limits</title> - - <para>Once you have configured your system to enable quotas, verify - that they really are enabled. An easy way to do this is to - run:</para> - - <screen>&prompt.root; <userinput>quota -v</userinput></screen> - - <para>You should see a one line summary of disk usage and current - quota limits for each file system that quotas are enabled - on.</para> - - <para>You are now ready to start assigning quota limits with the - <command>edquota</command> command.</para> - - <para>You have several options on how to enforce limits on the - amount of disk space a user or group may allocate, and how many - files they may create. You may limit allocations based on disk - space (block quotas) or number of files (inode quotas) or a - combination of both. Each of these limits are further broken down - into two categories; hard and soft limits.</para> - - <para>A hard limit may not be exceeded. Once a user reaches their - hard limit they may not make any further allocations on the file - system in question. For example, if the user has a hard limit of - 500 blocks on a file system and is currently using 490 blocks, the - user can only allocate an additional 10 blocks. Attempting to - allocate an additional 11 blocks will fail.</para> - - <para>Soft limits on the other hand can be exceeded for a limited - amount of time. This period of time is known as the grace period, - which is one week by default. If a user stays over his or her - soft limit longer than their grace period, the soft limit will - turn into a hard limit and no further allocations will be allowed. - When the user drops back below the soft limit, the grace period - will be reset.</para> - - <para>The following is an example of what you might see when you run - the <command>edquota</command> command. When the - <command>edquota</command> command is invoked, you are placed into - the editor specified by the <envar>EDITOR</envar> environment - variable, or in the <command>vi</command> editor if the - <envar>EDITOR</envar> variable is not set, to allow you to edit - the quota limits.</para> - - <screen>&prompt.root; <userinput>edquota -u test</userinput></screen> - - <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>You will normally see two lines for each file system that has - quotas enabled. One line for the block limits, and one line for - inode limits. Simply change the value you want updated to modify - the quota limit. For example, to raise this users block limit - from a soft limit of 50 and a hard limit of 75 to a soft limit of - 500 and a hard limit of 600, change:</para> - - <programlisting>/usr: blocks in use: 65, limits (soft = 50, hard = 75)</programlisting> - - <para>to:</para> - - <programlisting> /usr: blocks in use: 65, limits (soft = 500, hard = 600)</programlisting> - - <para>The new quota limits will be in place when you exit the - editor.</para> - - <para>Sometimes it is desirable to set quota limits on a range of - uids. This can be done by use of the <option>-p</option> option - on the <command>edquota</command> command. First, assign the - desired quota limit to a user, and then run - <command>edquota -p protouser startuid-enduid</command>. For - example, if user <username>test</username> has the desired quota - limits, the following command can be used to duplicate those quota - limits for uids 10,000 through 19,999:</para> - - <screen>&prompt.root; <userinput>edquota -p test 10000-19999</userinput></screen> - - <para>See <command>man edquota</command> for more detailed - information.</para> - </sect2> - - <sect2> - <title>Checking Quota Limits and Disk Usage</title> - - <para>You can use either the <command>quota</command> or the - <command>repquota</command> commands to check quota limits and - disk usage. The <command>quota</command> command can be used to - check individual user and group quotas and disk usage. Only the - super-user may examine quotas and usage for other users, or for - groups that they are not a member of. The - <command>repquota</command> command can be used to get a summary - of all quotas and disk usage for file systems with quotas - enabled.</para> - - <para>The following is some sample output from the - <command>quota -v</command> command for a user that has quota - limits on two file systems.</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>On the <filename>/usr</filename> file system in the above - example this user is currently 15 blocks over their soft limit of - 50 blocks and has 5 days of their grace period left. Note the - asterisk <literal>*</literal> which indicates that the user is - currently over their quota limit.</para> - - <para>Normally file systems that the user is not using any disk - space on will not show up in the output from the - <command>quota</command> command, even if they have a quota limit - assigned for that file system. The <option>-v</option> option - will display those file systems, such as the - <filename>/usr/var</filename> file system in the above - example.</para> - </sect2> - - <sect2> - <title>Quotas over NFS</title> - - <para>Quotas are enforced by the quota subsystem on the NFS server. - The &man.rpc.rquotad.8; daemon makes quota information available - to the &man.quota.1; command on NFS clients, allowing users on - those machines to see their quota statistics.</para> - - <para>Enable <command>rpc.rquotad</command> in - <filename>/etc/inetd.conf</filename> like so:</para> - - <programlisting> -rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad</programlisting> - - <para>Now restart <command>inetd</command>:</para> - - <screen>&prompt.root; <userinput>kill -HUP `cat /var/run/inetd.pid`</userinput></screen> - </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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/en_US.ISO8859-1/books/handbook/eresources/chapter.sgml b/en_US.ISO8859-1/books/handbook/eresources/chapter.sgml deleted file mode 100644 index 739d6adc18..0000000000 --- a/en_US.ISO8859-1/books/handbook/eresources/chapter.sgml +++ /dev/null @@ -1,1454 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/eresources/chapter.sgml,v 1.44 2000/06/08 01:56:07 jim Exp $ ---> - -<appendix id="eresources"> - <title>Resources on the Internet</title> - - <para><emphasis>Contributed by &a.jkh;.</emphasis></para> - - <para>The rapid pace of FreeBSD progress makes print media impractical as a - means of following the latest developments. Electronic resources are the - best, if not often the only, way stay informed of the latest advances. - Since FreeBSD is a volunteer effort, the user community itself also - generally serves as a <quote>technical support department</quote> of sorts, - with electronic mail and USENET news being the most effective way of - reaching that community.</para> - - <para>The most important points of contact with the FreeBSD user community - are outlined below. If you are aware of other resources not mentioned - here, please send them to the &a.doc;so that they may also be - included.</para> - - <sect1 id="eresources-mail"> - <title>Mailing Lists</title> - - <para>Though many of the FreeBSD development members read USENET, we - cannot always guarantee that we will get to your questions in a timely - fashion (or at all) if you post them only to one of the - <literal>comp.unix.bsd.freebsd.*</literal> groups. By addressing your - questions to the appropriate mailing list you will reach both us and a - concentrated FreeBSD audience, invariably assuring a better (or at least - faster) response.</para> - - <para>The charters for the various lists are given at the bottom of this - document. <emphasis>Please read the charter before joining or sending - mail to any list</emphasis>. Most of our list subscribers now receive - many hundreds of FreeBSD related messages every day, and by setting down - charters and rules for proper use we are striving to keep the - signal-to-noise ratio of the lists high. To do less would see the - mailing lists ultimately fail as an effective communications medium for - the project.</para> - - <para>Archives are kept for all of the mailing lists and can be searched - using the <ulink url="http://www.FreeBSD.org/search.html">FreeBSD World - Wide Web server</ulink>. The keyword searchable archive offers an - excellent way of finding answers to frequently asked questions and - should be consulted before posting a question.</para> - - <sect2 id="eresources-summary"> - <title>List Summary</title> - - <para><emphasis>General lists:</emphasis> The following are general - lists which anyone is free (and encouraged) to join:</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>List</entry> - <entry>Purpose</entry> - </row> - </thead> - - <tbody> - <row> - <entry>freebsd-advocacy</entry> - <entry>FreeBSD Evangelism</entry> - </row> - - <row> - <entry>freebsd-announce</entry> - <entry>Important events and project milestones</entry> - </row> - - <row> - <entry>freebsd-arch</entry> - <entry>Architecture and design discussions</entry> - </row> - - <row> - <entry>freebsd-bugs</entry> - <entry>Bug reports</entry> - </row> - - <row> - <entry>freebsd-chat</entry> - <entry>Non-technical items related to the FreeBSD - community</entry> - </row> - - <row> - <entry>freebsd-current</entry> - <entry>Discussion concerning the use of - FreeBSD-current</entry> - </row> - - <row> - <entry>freebsd-isp</entry> - <entry>Issues for Internet Service Providers using - FreeBSD</entry> - </row> - - <row> - <entry>freebsd-jobs</entry> - <entry>FreeBSD employment and consulting - opportunities</entry> - </row> - - <row> - <entry>freebsd-newbies</entry> - <entry>New FreeBSD users activities and discussions</entry> - </row> - - <row> - <entry>freebsd-policy</entry> - <entry>FreeBSD Core team policy decisions. Low volume, and - read-only</entry> - </row> - - <row> - <entry>freebsd-questions</entry> - <entry>User questions and technical support</entry> - </row> - - <row> - <entry>freebsd-stable</entry> - <entry>Discussion concerning the use of - FreeBSD-stable</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para><emphasis>Technical lists:</emphasis> The following lists are for - technical discussion. You should read the charter for each list - carefully before joining or sending mail to one as there are firm - guidelines for their use and content.</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>List</entry> - <entry>Purpose</entry> - </row> - </thead> - - <tbody> - <row> - <entry>freebsd-afs</entry> - <entry>Porting AFS to FreeBSD</entry> - </row> - - <row> - <entry>freebsd-alpha</entry> - <entry>Porting FreeBSD to the Alpha</entry> - </row> - - <row> - <entry>freebsd-database</entry> - <entry>Discussing database use and development under - FreeBSD</entry> - </row> - - <row> - <entry>freebsd-doc</entry> - <entry>Creating FreeBSD related documents</entry> - </row> - - <row> - <entry>freebsd-emulation</entry> - <entry>Emulation of other systems such as - Linux/DOS/Windows</entry> - </row> - - <row> - <entry>freebsd-fs</entry> - <entry>Filesystems</entry> - </row> - - <row> - <entry>freebsd-hackers</entry> - <entry>General technical discussion</entry> - </row> - - <row> - <entry>freebsd-hardware</entry> - <entry>General discussion of hardware for running - FreeBSD</entry> - </row> - - <row> - <entry>freebsd-i18n</entry> - <entry>FreeBSD Internationalization</entry> - </row> - - <row> - <entry>freebsd-ipfw</entry> - <entry>Technical discussion concerning the redesign of the IP - firewall code</entry> - </row> - - <row> - <entry>freebsd-isdn</entry> - <entry>ISDN developers</entry> - </row> - - <row> - <entry>freebsd-java</entry> - <entry>Java developers and people porting JDKs to - FreeBSD</entry> - </row> - - <row> - <entry>freebsd-mobile</entry> - <entry>Discussions about mobile computing</entry> - </row> - - <row> - <entry>freebsd-mozilla</entry> - <entry>Porting mozilla to FreeBSD</entry> - </row> - - <row> - <entry>freebsd-net</entry> - <entry>Networking discussion and TCP/IP/source code</entry> - </row> - - <row> - <entry>freebsd-platforms</entry> - <entry>Concerning ports to non-Intel architecture - platforms</entry> - </row> - - <row> - <entry>freebsd-ports</entry> - <entry>Discussion of the ports collection</entry> - </row> - - <row> - <entry>freebsd-ppc</entry> - <entry>Porting FreeBSD to the PowerPC</entry> - </row> - - <row> - <entry>freebsd-scsi</entry> - <entry>The SCSI subsystem</entry> - </row> - - <row> - <entry>freebsd-security</entry> - <entry>Security issues</entry> - </row> - - <row> - <entry>freebsd-security-notifications</entry> - <entry>Security notifications</entry> - </row> - - <row> - <entry>freebsd-small</entry> - <entry>Using FreeBSD in embedded applications</entry> - </row> - - <row> - <entry>freebsd-smp</entry> - <entry>Design discussions for [A]Symmetric - MultiProcessing</entry> - </row> - - <row> - <entry>freebsd-sparc</entry> - <entry>Porting FreeBSD to Sparc systems</entry> - </row> - - <row> - <entry>freebsd-tokenring</entry> - <entry>Support Token Ring in FreeBSD</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para><emphasis>Limited lists:</emphasis> The following lists are for - more specialized (and demanding) audiences and are probably not of - interest to the general public. It is also a good idea to establish a - presence in the technical lists before joining one of these limited - lists so that you'll understand the communications etiquette involved.</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>List</entry> - <entry>Purpose</entry> - </row> - </thead> - - <tbody> - <row> - <entry>freebsd-core</entry> - <entry>FreeBSD core team</entry> - </row> - - <row> - <entry>freebsd-hubs</entry> - <entry>People running mirror sites (infrastructural - support)</entry> - </row> - - <row> - <entry>freebsd-install</entry> - <entry>Installation development</entry> - </row> - - <row> - <entry>freebsd-user-groups</entry> - <entry>User group coordination</entry> - </row> - - <row> - <entry>freebsd-www</entry> - <entry>Maintainers of <ulink url="http://www.FreeBSD.org">www.freebsd.org</ulink></entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para><emphasis>CVS lists:</emphasis> The following lists are for people - interested in seeing the log messages for changes to various areas of - the source tree. They are <emphasis>Read-Only</emphasis> lists and - should not have mail sent to them.</para> - - <informaltable frame="none"> - <tgroup cols="3"> - <thead> - <row> - <entry>List</entry> - <entry>Source area</entry> - <entry>Area Description (source for)</entry> - </row> - </thead> - - <tbody> - <row> - <entry>cvs-all</entry> - <entry>/usr/src</entry> - <entry>All changes to the tree (superset)</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </sect2> - - <sect2 id="eresources-subscribe"> - <title>How to Subscribe</title> - - <para>All mailing lists live on <hostid - role="fqdn">FreeBSD.org</hostid>, so to post to a given list you - simply mail to - <<replaceable>listname</replaceable>@FreeBSD.org>. It will then - be redistributed to mailing list members world-wide.</para> - - <para>To subscribe to a list, send mail to &a.majordomo; and include - - <programlisting> -subscribe <listname> [<optional address>]</programlisting> - - in the body of your message. For example, to subscribe yourself to - <literal>freebsd-announce</literal>, you'd do:</para> - - <screen>&prompt.user; <userinput>mail majordomo@FreeBSD.org</userinput> -subscribe freebsd-announce -^D</screen> - - <para>If you want to subscribe yourself under a different name, or - submit a subscription request for a local mailing list (this is more - efficient if you have several interested parties at one site, and - highly appreciated by us!), you would do something like:</para> - - <screen>&prompt.user; <userinput>mail majordomo@FreeBSD.org</userinput> -subscribe freebsd-announce local-announce@somesite.com -^D</screen> - - <para>Finally, it is also possible to unsubscribe yourself from a list, - get a list of other list members or see the list of mailing lists - again by sending other types of control messages to majordomo. For a - complete list of available commands, do this:</para> - - <screen>&prompt.user; <userinput>mail majordomo@FreeBSD.org</userinput> -help -^D</screen> - - <para>Again, we would like to request that you keep discussion in the - technical mailing lists on a technical track. If you are only - interested in important announcements then it is suggested that - you join freebsd-announce, which is intended only for infrequent - traffic.</para> - </sect2> - - <sect2 id="eresources-charters"> - <title>List Charters</title> - - <para><emphasis>All</emphasis> FreeBSD mailing lists have certain basic - rules which must be adhered to by anyone using them. Failure to comply - with these guidelines will result in two (2) written warnings from the - FreeBSD Postmaster <email>postmaster@FreeBSD.org</email>, after which, - on a third offense, the poster will removed from all FreeBSD mailing - lists and filtered from further posting to them. We regret that such - rules and measures are necessary at all, but today's Internet is a - pretty harsh environment, it would seem, and many fail to appreciate - just how fragile some of its mechanisms are.</para> - - <para>Rules of the road:</para> - - <itemizedlist> - <listitem> - <para>The topic of any posting should adhere to the basic charter of - the list it is posted to, e.g. if the list is about technical - issues then your posting should contain technical discussion. - Ongoing irrelevant chatter or flaming only detracts from the value - of the mailing list for everyone on it and will not be tolerated. - For free-form discussion on no particular topic, the freebsd-chat - <email>freebsd-chat@FreeBSD.org</email> mailing list is freely - available and should be used instead.</para> - </listitem> - - <listitem> - <para>No posting should be made to more than 2 mailing lists, and - only to 2 when a clear and obvious need to post to both lists - exists. For most lists, there is already a great deal of - subscriber overlap and except for the most esoteric mixes (say - "-stable & -scsi"), there really is no reason to post to more - than one list at a time. If a message is sent to you in such a - way that multiple mailing lists appear on the Cc line then the Cc - line should also be trimmed before sending it out again. - <emphasis>You are <emphasis>still</emphasis> responsible for your - own cross-postings, no matter who the originator might have - been.</emphasis></para> - </listitem> - - <listitem> - <para>Personal attacks and profanity (in the context of an argument) - are not allowed, and that includes users and developers alike. - Gross breaches of netiquette, like excerpting or reposting private - mail when permission to do so was not and would not be - forthcoming, are frowned upon but not specifically enforced. - <emphasis>However</emphasis>, there are also very few cases where - such content would fit within the charter of a list and it would - therefore probably rate a warning (or ban) on that basis - alone.</para> - </listitem> - - <listitem> - <para>Advertising of non-FreeBSD related products or services is - strictly prohibited and will result in an immediate ban if it is - clear that the offender is advertising by spam.</para> - </listitem> - </itemizedlist> - - <para><emphasis>Individual list charters:</emphasis></para> - - <variablelist> - <varlistentry> - <term>FREEBSD-AFS</term> - - <listitem> - <para><emphasis>Andrew File System</emphasis></para> - - <para>This list is for discussion on porting and using AFS from - CMU/Transarc</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-ANNOUNCE</term> - - <listitem> - <para><emphasis>Important events / milestones</emphasis></para> - - <para>This is the mailing list for people interested only in - occasional announcements of significant FreeBSD events. This - includes announcements about snapshots and other releases. It - contains announcements of new FreeBSD capabilities. It may - contain calls for volunteers etc. This is a low volume, strictly - moderated mailing list.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-ARCH</term> - - <listitem> - <para><emphasis>Architecture and design - discussions</emphasis></para> - - <para>This is a moderated list for discussion of FreeBSD - architecture. Messages will mostly be kept technical in nature, - with (rare) exceptions for other messages the moderator deems - need to reach all the subscribers of the list. Examples of - suitable topics;</para> - - <itemizedlist> - <listitem> - <para>How to re-vamp the build system to have several - customized builds running at the same time.</para> - </listitem> - - <listitem> - <para>What needs to be fixed with VFS to make Heidemann layers - work.</para> - </listitem> - - <listitem> - <para>How do we change the device driver interface to be able - to use the ame drivers cleanly on many buses and - architectures?</para> - </listitem> - - <listitem> - <para>How do I write a network driver?</para> - </listitem> - </itemizedlist> - - <para>The moderator reserves the right to do minor editing - (spell-checking, grammar correction, trimming) of messages that - are posted to the list. The volume of the list will be kept - low, which may involve having to delay topics until an active - discussion has been resolved.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-BUGS</term> - - <listitem> - <para><emphasis>Bug reports</emphasis></para> - - <para>This is the mailing list for reporting bugs in FreeBSD - Whenever possible, bugs should be submitted using the - &man.send-pr.1; - command or the <ulink - url="http://www.FreeBSD.org/send-pr.html">WEB - interface</ulink> to it.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-CHAT</term> - - <listitem> - <para><emphasis>Non technical items related to the FreeBSD - community</emphasis></para> - - <para>This list contains the overflow from the other lists about - non-technical, social information. It includes discussion about - whether Jordan looks like a toon ferret or not, whether or not - to type in capitals, who is drinking too much coffee, where the - best beer is brewed, who is brewing beer in their basement, and - so on. Occasional announcements of important events (such as - upcoming parties, weddings, births, new jobs, etc) can be made - to the technical lists, but the follow ups should be directed to - this -chat list.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-CORE</term> - - <listitem> - <para><emphasis>FreeBSD core team</emphasis></para> - - <para>This is an internal mailing list for use by the core - members. Messages can be sent to it when a serious - FreeBSD-related matter requires arbitration or high-level - scrutiny.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-CURRENT</term> - - <listitem> - <para><emphasis>Discussions about the use of - FreeBSD-current</emphasis></para> - - <para>This is the mailing list for users of freebsd-current. It - includes warnings about new features coming out in -current that - will affect the users, and instructions on steps that must be - taken to remain -current. Anyone running <quote>current</quote> - must subscribe to this list. This is a technical mailing list - for which strictly technical content is expected.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-CURRENT-DIGEST</term> - - <listitem> - <para><emphasis>Discussions about the use of - FreeBSD-current</emphasis></para> - - <para>This is the digest version of the freebsd-current mailing - list. The digest consists of all messages sent to - freebsd-current bundled together and mailed out as a single - message. The average digest size is about 40kB. This list is - <emphasis>Read-Only</emphasis> and should not be posted - to.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-DOC</term> - - <listitem> - <para><emphasis>Documentation project</emphasis></para> - - <para>This mailing list is for the discussion of issues and - projects related to the creation of documentation for FreeBSD. - The members of this mailing list are collectively referred to as - <quote>The FreeBSD Documentation Project</quote>. It is an open - list; feel free to join and contribute!</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-FS</term> - - <listitem> - <para><emphasis>Filesystems</emphasis></para> - - <para>Discussions concerning FreeBSD filesystems. This is a - technical mailing list for which strictly technical content is - expected.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-IPFW</term> - - <listitem> - <para>IP Firewall</para> - - <para>This is the forum for technical discussions concerning the - redesign of the IP firewall code in FreeBSD. This is a - technical mailing list for which strictly technical content is - expected.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-ISDN</term> - - <listitem> - <para><emphasis>ISDN Communications</emphasis></para> - - <para>This is the mailing list for people discussing the - development of ISDN support for FreeBSD.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-JAVA</term> - - <listitem> - <para><emphasis>Java Development</emphasis></para> - - <para>This is the mailing list for people discussing the - development of significant Java applications for FreeBSD and the - porting and maintenance of JDKs.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-HACKERS</term> - - <listitem> - <para><emphasis>Technical discussions</emphasis></para> - - <para>This is a forum for technical discussions related to - FreeBSD. This is the primary technical mailing list. It is for - individuals actively working on FreeBSD, to bring up problems or - discuss alternative solutions. Individuals interested in - following the technical discussion are also welcome. This is a - technical mailing list for which strictly technical content is - expected.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-HACKERS-DIGEST</term> - - <listitem> - <para><emphasis>Technical discussions</emphasis></para> - - <para>This is the digest version of the freebsd-hackers mailing - list. The digest consists of all messages sent to - freebsd-hackers bundled together and mailed out as a single - message. The average digest size is about 40kB. This list is - <emphasis>Read-Only</emphasis> and should not be posted - to.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-HARDWARE</term> - - <listitem> - <para><emphasis>General discussion of FreeBSD - hardware</emphasis></para> - - <para>General discussion about the types of hardware that FreeBSD - runs on, various problems and suggestions concerning what to buy - or avoid.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-HUBS</term> - - <listitem> - <para><emphasis>Mirror sites</emphasis></para> - - <para>Announcements and discussion for people who run FreeBSD - mirror sites.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-INSTALL</term> - - <listitem> - <para><emphasis>Installation discussion</emphasis></para> - - <para>This mailing list is for discussing FreeBSD installation - development for the future releases.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-ISP</term> - - <listitem> - <para><emphasis>Issues for Internet Service - Providers</emphasis></para> - - <para>This mailing list is for discussing topics relevant to - Internet Service Providers (ISPs) using FreeBSD. This is a - technical mailing list for which strictly technical content is - expected.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-NEWBIES</term> - - <listitem> - <para><emphasis>Newbies activities discussion</emphasis></para> - - <para>We cover any of the activities of newbies that are not - already dealt with elsewhere, including: independent learning - and problem solving techniques, finding and using resources and - asking for help elsewhere, how to use mailing lists and which - lists to use, general chat, making mistakes, boasting, sharing - ideas, stories, moral (but not technical) support, and taking an - active part in the FreeBSD community. We take our problems and - support questions to freebsd-questions, and use freebsd-newbies - to meet others who are doing the same things that we do as - newbies.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-PLATFORMS</term> - - <listitem> - <para><emphasis>Porting to Non-Intel platforms</emphasis></para> - - <para>Cross-platform FreeBSD issues, general discussion and - proposals for non-Intel FreeBSD ports. This is a technical - mailing list for which strictly technical content is - expected.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-POLICY</term> - - <listitem> - <para>Core team policy decisions</para> - - <para>This is a low volume, read-only mailing list for FreeBSD - Core Team Policy decisions.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-PORTS</term> - - <listitem> - <para><emphasis>Discussion of - <quote>ports</quote></emphasis></para> - - <para>Discussions concerning FreeBSD's <quote>ports - collection</quote> (<filename>/usr/ports</filename>), proposed - ports, modifications to ports collection infrastructure and - general coordination efforts. This is a technical mailing list - for which strictly technical content is expected.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-QUESTIONS</term> - - <listitem> - <para><emphasis>User questions</emphasis></para> - - <para>This is the mailing list for questions about FreeBSD. You - should not send <quote>how to</quote> questions to the technical - lists unless you consider the question to be pretty - technical.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-QUESTIONS-DIGEST</term> - - <listitem> - <para><emphasis>User questions</emphasis></para> - - <para>This is the digest version of the freebsd-questions mailing - list. The digest consists of all messages sent to - freebsd-questions bundled together and mailed out as a single - message. The average digest size is about 40kB.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-SCSI</term> - - <listitem> - <para><emphasis>SCSI subsystem</emphasis></para> - - <para>This is the mailing list for people working on the scsi - subsystem for FreeBSD. This is a technical mailing list for - which strictly technical content is expected.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-SECURITY</term> - - <listitem> - <para><emphasis>Security issues</emphasis></para> - - <para>FreeBSD computer security issues (DES, Kerberos, known - security holes and fixes, etc). This is a technical mailing - list for which strictly technical content is expected.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-SECURITY-NOTIFICATIONS</term> - - <listitem> - <para><emphasis>Security Notifications</emphasis> - Notifications of FreeBSD security problems and fixes. This is - not a discussion list. The discussion list is - FreeBSD-security.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-SMALL</term> - - <listitem> - <para>This list discusses topics related to unusually small and - embedded FreeBSD installations. This is a technical mailing - list for which strictly technical content is expected.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-STABLE</term> - - <listitem> - <para><emphasis>Discussions about the use of - FreeBSD-stable</emphasis></para> - - <para>This is the mailing list for users of freebsd-stable. It - includes warnings about new features coming out in -stable that - will affect the users, and instructions on steps that must be - taken to remain -stable. Anyone running <quote>stable</quote> - should subscribe to this list. This is a technical mailing list - for which strictly technical content is expected.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FREEBSD-USER-GROUPS</term> - - <listitem> - <para><emphasis>User Group Coordination List</emphasis></para> - - <para>This is the mailing list for the coordinators from each of - the local area Users Groups to discuss matters with each other - and a designated individual from the Core Team. This mail list - should be limited to meeting synopsis and coordination of - projects that span User Groups.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - </sect1> - - <sect1 id="eresources-news"> - <title>Usenet Newsgroups</title> - - <para>In addition to two FreeBSD specific newsgroups, there are many - others in which FreeBSD is discussed or are otherwise relevant to - FreeBSD users. <ulink - url="http://minnie.cs.adfa.edu.au/BSD-info/bsdnews_search.html">Keyword - searchable archives</ulink> are available for some of these newsgroups - from courtesy of Warren Toomey <email>wkt@cs.adfa.edu.au</email>.</para> - - <sect2> - <title>BSD Specific Newsgroups</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>Other Unix Newsgroups of Interest</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>X Window System</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>World Wide Web Servers</title> - - <itemizedlist> - <listitem> - <para><ulink - url="http://www.FreeBSD.org/">http://www.FreeBSD.org/</ulink> - — Central Server.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.au.FreeBSD.org/">http://www.au.FreeBSD.org/</ulink> — Australia/1.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www2.au.FreeBSD.org/">http://www2.au.FreeBSD.org/</ulink> — Australia/2.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www3.au.FreeBSD.org/">http://www3.au.FreeBSD.org/</ulink> — Australia/3.</para> - </listitem> - - <listitem> - <para><ulink - url="http://freebsd.itworks.com.au/">http://freebsd.itworks.com.au/</ulink> — Australia/4.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.br.FreeBSD.org/www.freebsd.org/">http://www.br.FreeBSD.org/www.freebsd.org/</ulink> — Brazil/1.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www2.br.FreeBSD.org/www.freebsd.org/">http://www2.br.FreeBSD.org/www.freebsd.org/</ulink> — Brazil/2.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www3.br.FreeBSD.org/">http://www3.br.FreeBSD.org/</ulink> — Brazil/3.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.bg.FreeBSD.org/">http://www.bg.FreeBSD.org/</ulink> — Bulgaria.</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://www2.ca.FreeBSD.org/">http://www2.ca.FreeBSD.org/</ulink> — Canada/2.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www3.ca.FreeBSD.org/">http://www3.ca.FreeBSD.org/</ulink> — Canada/3.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.cn.FreeBSD.org/">http://www.cn.FreeBSD.org/</ulink> — China.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.cz.FreeBSD.org/">http://www.cz.FreeBSD.org/</ulink> — Czech Republic/1.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www2.cz.FreeBSD.org/">http://www2.cz.FreeBSD.org/</ulink> — Czech Republic/2.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.dk.FreeBSD.org/">http://www.dk.FreeBSD.org/</ulink> — Denmark.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.ee.FreeBSD.org/">http://www.ee.FreeBSD.org/</ulink> — Estonia.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.fi.FreeBSD.org/">http://www.fi.FreeBSD.org/</ulink> — Finland.</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.de.FreeBSD.org/">http://www.de.FreeBSD.org/</ulink> — Germany/1.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www1.de.FreeBSD.org/">http://www1.de.FreeBSD.org/</ulink> — Germany/2.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www2.de.FreeBSD.org/">http://www2.de.FreeBSD.org/</ulink> — Germany/3.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.gr.FreeBSD.org/">http://www.gr.FreeBSD.org/</ulink> — Greece.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.hu.FreeBSD.org/">http://www.hu.FreeBSD.org/</ulink> — Hungary.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.is.FreeBSD.org/">http://www.is.FreeBSD.org/</ulink> — Iceland.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.ie.FreeBSD.org/">http://www.ie.FreeBSD.org/</ulink> — Ireland.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.jp.FreeBSD.org/www.FreeBSD.org/">http://www.jp.FreeBSD.org/www.FreeBSD.org/</ulink> — Japan.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.kr.FreeBSD.org/">http://www.kr.FreeBSD.org/</ulink> — Korea/1.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www2.kr.FreeBSD.org/">http://www2.kr.FreeBSD.org/</ulink> — Korea/2.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.lv.FreeBSD.org/">http://www.lv.FreeBSD.org/</ulink> — Latvia.</para> - </listitem> - - <listitem> - <para><ulink - url="http://rama.asiapac.net/freebsd/">http://rama.asiapac.net/freebsd/</ulink> — Malaysia.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.nl.FreeBSD.org/">http://www.nl.FreeBSD.org/</ulink> — Netherlands/1.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www2.nl.FreeBSD.org/">http://www2.nl.FreeBSD.org/</ulink> — Netherlands/2.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.no.FreeBSD.org/">http://www.no.FreeBSD.org/</ulink> — Norway.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.nz.FreeBSD.org/">http://www.nz.FreeBSD.org/</ulink> — New Zealand.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.pl.FreeBSD.org/">http://www.pl.FreeBSD.org/</ulink> — Poland/1.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www2.pl.FreeBSD.org/">http://www2.pl.FreeBSD.org/</ulink> — Poland/2.</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.ro.FreeBSD.org/">http://www.ro.FreeBSD.org/</ulink> — Romania.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.ru.FreeBSD.org/">http://www.ru.FreeBSD.org/</ulink> — Russia/1.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www2.ru.FreeBSD.org/">http://www2.ru.FreeBSD.org/</ulink> — Russia/2.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www3.ru.FreeBSD.org/">http://www3.ru.FreeBSD.org/</ulink> — Russia/3.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www4.ru.FreeBSD.org/">http://www4.ru.FreeBSD.org/</ulink> — Russia/4.</para> - </listitem> - - <listitem> - <para><ulink - url="http://freebsd.s1web.com/">http://freebsd.s1web.com/</ulink> — Singapore.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.sk.FreeBSD.org/">http://www.sk.FreeBSD.org/</ulink> — Slovak Republic.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.si.FreeBSD.org/">http://www.si.FreeBSD.org/</ulink> — Slovenia.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.es.FreeBSD.org/">http://www.es.FreeBSD.org/</ulink> — Spain.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.za.FreeBSD.org/">http://www.za.FreeBSD.org/</ulink> — South Africa/1.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www2.za.FreeBSD.org/">http://www2.za.FreeBSD.org/</ulink> — South Africa/2.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.se.FreeBSD.org/">http://www.se.FreeBSD.org/</ulink> — Sweden.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.ch.FreeBSD.org/">http://www.ch.FreeBSD.org/</ulink> — Switzerland.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.tw.FreeBSD.org/www.freebsd.org/data/">http://www.tw.FreeBSD.org/www.freebsd.org/data/</ulink> — Taiwan.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.tr.FreeBSD.org/">http://www.tr.FreeBSD.org/</ulink> — Turkey.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.ua.FreeBSD.org/www.freebsd.org/">http://www.ua.FreeBSD.org/www.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> - - <listitem> - <para><ulink - url="http://www4.ua.FreeBSD.org/">http://www4.ua.FreeBSD.org/</ulink> — Ukraine/Crimea.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.uk.FreeBSD.org/">http://www.uk.FreeBSD.org/</ulink> — United Kingdom.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www6.FreeBSD.org/">http://www6.FreeBSD.org/</ulink> — USA/Oregon.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www2.FreeBSD.org/">http://www2.FreeBSD.org/</ulink> — USA/Texas.</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1 id="eresources-email"> - <title>Email Addresses</title> - - <para>The following user groups provide FreeBSD related email addresses - for their members. The listed administrator reserves the right to - revoke the address if it is abused in any way.</para> - - <informaltable> - <tgroup cols="3"> - <thead> - <row> - <entry>Domain</entry> - <entry>Facilities</entry> - <entry>User Group</entry> - <entry>Administrator</entry> - </row> - </thead> - - <tbody> - <row> - <entry>ukug.uk.FreeBSD.org</entry> - <entry>Forwarding only</entry> - <entry><email>freebsd-users@uk.FreeBSD.org</email></entry> - <entry>Lee Johnston - <email>lee@uk.FreeBSD.org</email></entry> - </row> - </tbody> - </tgroup> - </informaltable> - </sect1> - - <sect1 id="eresources-shell"> - <title>Shell Accounts</title> - - <para>The following user groups provide shell accounts for people who are - actively supporting the FreeBSD project. The listed administrator - reserves the right to cancel the account if it is abused in any - way.</para> - - <informaltable> - <tgroup cols="4"> - <thead> - <row> - <entry>Host</entry> - <entry>Access</entry> - <entry>Facilities</entry> - <entry>Administrator</entry> - </row> - </thead> - - <tbody> - <row> - <entry>storm.uk.FreeBSD.org</entry> - <entry>SSH only</entry> - <entry>Read-only cvs, personal web space, email</entry> - <entry>&a.brian</entry> - </row> - - <row> - <entry>dogma.freebsd-uk.eu.org</entry> - <entry>Telnet/FTP/SSH</entry> - <entry>E-Mail, Web space, Anonymous FTP</entry> - <entry>Lee Johnston - <email>lee@uk.FreeBSD.org</email></entry> - </row> - </tbody> - </tgroup> - </informaltable> - </sect1> -</appendix> - -<!-- - Local Variables: - mode: sgml - sgml-declaration: "../appendix.decl" - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - sgml-parent-document: ("../book.sgml" "part" "appendix") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/hw/chapter.sgml b/en_US.ISO8859-1/books/handbook/hw/chapter.sgml deleted file mode 100644 index 06c7ea9e2e..0000000000 --- a/en_US.ISO8859-1/books/handbook/hw/chapter.sgml +++ /dev/null @@ -1,5872 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/hw/chapter.sgml,v 1.32 2000/06/08 01:56:07 jim Exp $ ---> - -<appendix id="hw"> - <title>PC Hardware compatibility</title> - - <para>Issues of hardware compatibility are among the most troublesome in the - computer industry today and FreeBSD is by no means immune to trouble. In - this respect, FreeBSD's advantage of being able to run on inexpensive - commodity PC hardware is also its liability when it comes to support for - the amazing variety of components on the market. While it would be - impossible to provide a exhaustive listing of hardware that FreeBSD - supports, this section serves as a catalog of the device drivers included - with FreeBSD and the hardware each drivers supports. Where possible and - appropriate, notes about specific products are included. You may also - want to refer to <link linkend="kernelconfig-config">the kernel - configuration file</link> section in this handbook for a list of - supported devices.</para> - - <para>As FreeBSD is a volunteer project without a funded testing department, - we depend on you, the user, for much of the information contained in this - catalog. If you have direct experience of hardware that does or does not - work with FreeBSD, please let us know by sending e-mail to the &a.doc;. - Questions about supported hardware should be directed to the &a.questions; - (see <link linkend="eresources-mail">Mailing Lists</link> for more - information). When submitting information or asking a question, please - remember to specify exactly what version of FreeBSD you are using and - include as many details of your hardware as possible.</para> - - <sect1> - <title>Resources on the Internet</title> - - <para>The following links have proven useful in selecting hardware. Though - some of what you see won't necessarily be specific (or even applicable) - to FreeBSD, most of the hardware information out there is OS - independent. Please check with the FreeBSD hardware guide to make sure - that your chosen configuration is supported before making any - purchases.</para> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.tomshardware.com/">The Pentium Systems - Hardware Performance Guide</ulink></para> - </listitem> - </itemizedlist> - </sect1> - - <sect1 id="hw-configs"> - <title>Sample Configurations</title> - - <para>The following list of sample hardware configurations by no means - constitutes an endorsement of a given hardware vendor or product by - <emphasis>The FreeBSD Project</emphasis>. This information is provided - only as a public service and merely catalogs some of the experiences - that various individuals have had with different hardware combinations. - Your mileage may vary. Slippery when wet. Beware of dog.</para> - - <sect2 id="hw-jordans-picks"> - <title>Jordan's Picks</title> - - <para>I have had fairly good luck building workstation and server - configurations with the following components. I can't guarantee that - you will too, nor that any of the companies here will remain - <quote>best buys</quote> forever. I will try, when I can, to keep this - list up-to-date but cannot obviously guarantee that it will be at any - given time.</para> - - <sect3 id="hw-mb"> - <title>Motherboards</title> - - <para>For Pentium Pro (P6) systems, I'm quite fond of the <ulink - url="http://www.tyan.com/html/products.html">Tyan</ulink> S1668 - dual-processor motherboard as well as the Intel PR440FX motherboard - with on-board SCSI WIDE and 100/10MB Intel EtherExpress NIC. You - can build a dandy little single or dual processor system (which is - supported in FreeBSD 3.0) for very little cost now that the Pentium - Pro 180/256K chips have fallen so greatly in price, but no telling - how much longer this will last.</para> - - <para>For the Pentium II, I'm rather partial to the <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> - motherboard with the on-board Adaptec SCSI WIDE controller.</para> - - <para>For Pentium machines, the ASUS <ulink - url="http://www.asus.com.tw/Products/Motherboard/Pentium/P55tp4/index.html">P55T2P4</ulink> - motherboard appears to be a good choice for mid-to-high range - Pentium server and workstation systems.</para> - - <para>Those wishing to build more fault-tolerant systems should also - be sure to use Parity memory or, for truly 24/7 applications, ECC - memory.</para> - - <note> - <para>ECC memory does involve a slight performance trade-off (which - may or may not be noticeable depending on your application) but - buys you significantly increased fault-tolerance to memory - errors.</para> - </note> - </sect3> - - <sect3> - <title>Disk Controllers</title> - - <para>This one is a bit trickier, and while I used to recommend the - <ulink url="http://www.buslogic.com/">Buslogic</ulink> controllers - unilaterally for everything from ISA to PCI, now I tend to lean - towards the <ulink url="http://www.adaptec.com/">Adaptec</ulink> - 1542CF for ISA, Buslogic Bt747c for EISA and Adaptec 2940UW for - PCI.</para> - - <para>The NCR/Symbios cards for PCI have also worked well for me, - though you need to make sure that your motherboard supports the - BIOS-less model if you're using one of those (if your card has - nothing which looks even vaguely like a ROM chip on it, you've - probably got one which expects its BIOS to be on your - motherboard).</para> - - <para>If you should find that you need more than one SCSI controller - in a PCI machine, you may wish to consider conserving your scarce - PCI bus resources by buying the Adaptec 3940 card, which puts two - SCSI controllers (and internal busses) in a single slot.</para> - - <note> - <para>There are two types of 3940 on the market—the older - model with AIC 7880 chips on it, and the newer one with AIC 7895 - chips. The newer model requires <ulink - url="http://www.FreeBSD.org/pub/FreeBSD/development/cam/">CAM</ulink> - support which is not yet part of FreeBSD—you have to add it, - or install from one of the CAM binary snapshot release.</para> - </note> - </sect3> - - <sect3 id="hw-disks"> - <title>Disk drives</title> - - <para>In this particular game of Russian roulette, I'll make few - specific recommendations except to say <quote>SCSI over IDE whenever - you can afford it.</quote> Even in small desktop configurations, SCSI - often makes more sense since it allows you to easily migrate drives - from server to desktop as falling drive prices make it economical to - do so. If you have more than one machine to administer then think - of it not simply as storage, think of it as a food chain! For a - serious server configuration, there's not even any - argument—use SCSI equipment and good cables.</para> - </sect3> - - <sect3 id="hw-jordans-picks-cdrom"> - <title>CDROM drives</title> - - <para>My SCSI preferences extend to SCSI CDROM drives as well, and - while the <ulink url="http://www.toshiba.com/">Toshiba</ulink> drives - have always been favorites of mine (in whatever speed is hot that - week), I'm still fond of my good old <ulink - url="http://www.plextor.com/">Plextor</ulink> PX-12CS drive. It's - only a 12 speed, but it's offered excellent performance and - reliability.</para> - - <para>Generally speaking, most SCSI CDROM drives I've seen have been - of pretty solid construction and you probably won't go wrong with an - HP or NEC SCSI CDROM drive either. SCSI CDROM prices also appear to - have dropped considerably in the last few months and are now quite - competitive with IDE CDROMs while remaining a technically superior - solution. I now see no reason whatsoever to settle for an IDE CDROM - drive if given a choice between the two.</para> - </sect3> - - <sect3 id="hw-worm"> - <title>CD Recordable (WORM) drives</title> - - <para>At the time of this writing, FreeBSD supports 3 types of CDR - drives (though I believe they all ultimately come from Phillips - anyway): The Phillips CDD 522 (Acts like a Plasmon), the PLASMON - RF4100 and the HP 6020i. I myself use the HP 6020i for burning - CDROMs (in 2.2 and alter releases—it does not work with - earlier releases of the SCSI code) and it works very well. See - <ulink - url="file:/usr/share/examples/worm">/usr/share/examples/worm</ulink> - on your 2.2 system for example scripts used to created ISO9660 - filesystem images (with RockRidge extensions) and burn them onto an - HP6020i CDR.</para> - </sect3> - - <sect3 id="hw-tape"> - <title>Tape drives</title> - - <para>I've had pretty good luck with both <ulink - url="http://www.Exabyte.COM:80/Products/8mm/8505XL/Rfeatures.html">8mm - drives</ulink> from <ulink - url="http://www.exabyte.com/">Exabyte</ulink> and <ulink - url="http://www-dmo.external.hp.com:80/tape/_cpb0001.htm">4mm - (DAT)</ulink> drives from <ulink - url="http://www.hp.com/">HP</ulink>.</para> - - <para>For backup purposes, I'd have to give the higher recommendation - to the Exabyte due to the more robust nature (and higher storage - capacity) of 8mm tape.</para> - </sect3> - - <sect3 id="hw-video"> - <title>Video Cards</title> - - <para>If you can also afford to buy a commercial X server for - US$99 from <ulink url="http://www.xig.com/">Xi Graphics, Inc. - (formerly X Inside, Inc)</ulink> then I can heartily recommend the - <ulink url="http://www.matrox.com/">Matrox</ulink> <ulink - url="http://www.matrox.com/mgaweb/brochure.htm">Millenium - II</ulink> card. Note that support for this card is also - excellent with the <ulink - url="http://www.xfree86.org/">XFree86</ulink> server, which is now - at version 3.3.2.</para> - - <para>You also certainly can't go wrong with one of <ulink - url="http://www.nine.com/">Number 9's</ulink> cards — their - S3 Vision 868 and 968 based cards (the 9FX series) also being quite - fast and very well supported by XFree86's S3 server. You can also - pick up their Revolution 3D cards very cheaply these days, - especially if you require a lot of video memory.</para> - </sect3> - - <sect3 id="hw-monitors"> - <title>Monitors</title> - - <para>I have had very good luck with the <ulink - url="http://cons3.sel.sony.com/SEL/ccpg/display/ms17se2.html">Sony - Multiscan 17seII monitors</ulink>, as have I with the Viewsonic - offering in the same (Trinitron) tube. For larger than 17", all I - can recommend at the time of this writing is to not spend any less - than U.S. $2,000 for a 21" monitor or $1,700 for a 20" - monitor if that's what you really need. There are good monitors - available in the >=20" range and there are also cheap monitors in - the >=20" range. Unfortunately, very few are both cheap and - good!</para> - </sect3> - - <sect3 id="hw-networking"> - <title>Networking</title> - - <para>I can recommend the Intel EtherExpress Pro/100B card first and - foremost, followed by the <ulink - url="http://www.smc.com/">SMC</ulink> Ultra 16 controller for any - ISA application and the SMC EtherPower or Compex ENET32 cards for - slightly cheaper PCI based networking. In general, any PCI NIC - based around DEC's DC21041 Ethernet controller chip, such as the - Znyx ZX342 or DEC DE435/450, will generally work quite well and can - frequently be found in 2-port and 4-port version (useful for - firewalls and routers), though the Pro/100MB card has the edge when - it comes to providing the best performance with lower - overhead.</para> - - <para>If what you're looking for is the cheapest possible solution - then almost any NE2000 clone will do a fine job for very little - cost.</para> - </sect3> - - <sect3 id="hw-serial"> - <title>Serial</title> - - <para>If you're looking for high-speed serial networking solutions, - then <ulink url="http://www.dgii.com/">Digi International</ulink> - makes the <ulink - url="http://www.dgii.com/prodprofiles/profiles-prices/digiprofiles/digispecs/sync570.html">SYNC/570</ulink> - series, with drivers now in FreeBSD-CURRENT. <ulink - url="http://www.etinc.com/">Emerging Technologies</ulink> also - manufactures a board with T1/E1 capabilities, using software they - provide. I have no direct experience using either product, - however.</para> - - <para>multiport card options are somewhat more numerous, though it has - to be said that FreeBSD's support for <ulink - url="http://www.cyclades.com/">Cyclades</ulink>'s products is - probably the tightest, primarily as a result of that company's - commitment to making sure that we are adequately supplied with - evaluation boards and technical specs. I've heard that the - Cyclom-16Ye offers the best price/performance, though I've not - checked the prices lately. Other multiport cards I've heard good - things about are the BOCA and AST cards, and <ulink - url="http://www.stallion.com/">Stallion Technologies</ulink> - apparently offers an unofficial driver for their cards at <ulink - url="ftp://ftp.stallion.com/drivers/unsupported/freebsd/stalbsd-0.0.4.tar.gz">this</ulink> - location.</para> - </sect3> - - <sect3 id="hw-audio"> - <title>Audio</title> - - <para>I currently use a <ulink url="http://www.creaf.com/">Creative - Labs</ulink> AWE32 though just about anything from Creative Labs - will generally work these days. This is not to say that other types - of sound cards don't also work, simply that I have little experience - with them (I was a former GUS fan, but Gravis's sound card situation - has been dire for some time).</para> - </sect3> - - <sect3 id="hw-vgrabbers"> - <title>Video</title> - - <para>For video capture, there are two good choices — any card - based on the Brooktree BT848 chip, such as the Hauppage or WinTV - boards, will work very nicely with FreeBSD. Another board which - works for me is the <ulink - url="http://www.matrox.com/">Matrox</ulink> <ulink - url="http://www.matrox.com/imgweb/meteor.htm">Meteor</ulink> card. - FreeBSD also supports the older video spigot card from Creative - Labs, but those are getting somewhat difficult to find. Note that - the Meteor frame grabber card <emphasis>will not work</emphasis> - with motherboards based on the 440FX chipset! See the <link - linkend="hw-mb">motherboard reference</link> section for details. - In such cases, it's better to go with a BT848 based board.</para> - </sect3> - </sect2> - </sect1> - - <sect1 id="hw-core"> - <title>Core/Processing</title> - - <sect2> - <title>Motherboards, busses, and chipsets</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>Contributed by &a.obrien; from postings by - &a.rgrimes;. 25 April 1995.</emphasis></para> - - <para><emphasis>Continuing updates by &a.jkh;.</emphasis> Last - update on <emphasis>26 August 1996.</emphasis></para> - - <para>Of the Intel PCI chip sets, the following list describes various - types of known-brokenness and the degree of breakage, listed from - worst to best.</para> - - <variablelist> - <varlistentry> - <term>Mercury:</term> - - <listitem> - <para>Cache coherency problems, especially if there are ISA bus - masters behind the ISA to PCI bridge chip. Hardware flaw, only - known work around is to turn the cache off.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Saturn-I <emphasis>(ie, 82424ZX at rev 0, 1 or - 2)</emphasis>:</term> - - <listitem> - <para>Write back cache coherency problems. Hardware flaw, only - known work around is to set the external cache to - write-through mode. Upgrade to Saturn-II.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Saturn-II <emphasis>(ie, 82424ZX at rev 3 or - 4)</emphasis>:</term> - - <listitem> - <para>Works fine, but many MB manufactures leave out the - external dirty bit SRAM needed for write back operation. - You can work around this either by running it in write - through mode, or get the dirty bit SRAM installed (I - have these for the ASUS PCI/I-486SP3G rev 1.6 and later - boards).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Neptune:</term> - - <listitem> - <para>Can not run more than 2 bus master devices. Admitted Intel - design flaw. Workarounds include do not run more than 2 bus - masters, special hardware design to replace the PCI bus - arbiter (appears on Intel Altair board and several other Intel - server group MB's). And of course Intel's official answer, - move to the Triton chip set, we <quote>fixed it - there</quote>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Triton <emphasis>(ie, 430FX)</emphasis>:</term> - - <listitem> - <para>No known cache coherency or bus master problems, chip set - does not implement parity checking. Workaround for parity - issue. Use Triton-II based motherboards if you have the - choice.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Triton-II <emphasis>(ie, 430HX)</emphasis>:</term> - - <listitem> - <para>All reports on motherboards using this chipset have been - favorable so far. No known problems.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Orion:</term> - - <listitem> - <para>Early versions of this chipset suffered from a PCI - write-posting bug which can cause noticeable performance - degradation in applications where large amounts of PCI bus - traffic is involved. B0 stepping or later revisions of the - chipset fixed this problem.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><ulink - url="http://developer.intel.com/design/pcisets/desktop.htm#440FX">440FX</ulink>:</term> - - <listitem> - <para>This <ulink - url="http://www.intel.com/procs/ppro/index.htm">Pentium - Pro</ulink> support chipset seems to work well, and does not - suffer from any of the early Orion chipset problems. It also - supports a wider variety of memory, including ECC and parity. - The only known problem with it is that the Matrox Meteor frame - grabber card doesn't like it.</para> - </listitem> - </varlistentry> - </variablelist> - </sect3> - </sect2> - - <sect2> - <title>CPUs/FPUs</title> - - <para><emphasis>Contributed by &a.asami;. 26 December - 1997.</emphasis></para> - - <sect3> - <title>P6 class (Pentium Pro/Pentium II)</title> - - <para>Both the Pentium Pro and Pentium II work fine with FreeBSD. In - fact, our main FTP site <ulink - url="ftp://ftp.FreeBSD.org/">ftp.FreeBSD.org</ulink> (also known - as "<filename>ftp.cdrom.com</filename>", world's largest ftp site) - runs FreeBSD on a Pentium Pro. <ulink - url="ftp://ftp.cdrom.com/archive-info/wcarchive.txt">Configurations - details</ulink> are available for interested parties.</para> - </sect3> - - <sect3> - <title>Pentium class</title> - - <para>The Intel Pentium (P54C), Pentium MMX (P55C), AMD K6 and - Cyrix/IBM 6x86MX processors are all reported to work with FreeBSD. - I will not go into details of which processor is faster than what, - there are millions of web sites on the Internet that tells you one - way or another. <!-- smiley --><emphasis>:)</emphasis></para> - - <note> - <para>Various CPUs have different voltage/cooling requirements. Make - sure your motherboard can supply the exact voltage needed by the - CPU. For instance, many recent MMX chips require split voltage - (e.g., 2.9V core, 3.3V I/O). Also, some AMD and Cyrix/IBM chips - run hotter than Intel chips. In that case, make sure you have - good heatsink/fans (you can get the list of certified parts from - their web pages).</para> - </note> - - <sect4> - <title>Clock speeds</title> - - <para><emphasis>Contributed by &a.rgrimes;. 1 October - 1996.</emphasis></para> - - <para><emphasis>Updated by &a.asami;. 27 December - 1997.</emphasis></para> - - <para>Pentium class machines use different clock speeds for the - various parts of the system. These being the speed of the CPU, - external memory bus, and the PCI bus. It is not always true that - a <quote>faster</quote> processor will make a system faster than a - <quote>slower</quote> one, due to the various clock speeds used. - Below is a table showing the differences:</para> - - <informaltable frame="none"> - <tgroup cols="4"> - <thead> - <row> - <entry>Rated CPU MHz</entry> - <entry>External Clock and Memory Bus MHz</entry> - <entry>External to Internal Clock Multiplier</entry> - <entry>PCI Bus Clock 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</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> - - <note> - <para>66MHz may actually be 66.667MHz, but don't assume so.</para> - - <para>The Pentium 100 can be run at either 50MHz external clock - with a multiplier of 2 or at 66MHz and a multiplier of - 1.5.</para> - </note> - - <para>As can be seen the best parts to be using are the 100, 133, - 166, 200 and 233, with the exception that at a multiplier of 3 or - more the CPU starves for memory.</para> - </sect4> - - <sect4> - <title>The AMD K6 Bug</title> - - <para>In 1997, there have been reports of the AMD K6 seg faulting - during heavy compilation. That problem has been fixed in 3Q '97. - According to reports, K6 chips with date mark <quote>9733</quote> - or larger (i.e., manufactured in the 33rd week of '97 or later) do - not have this bug.</para> - </sect4> - </sect3> - - <sect3> - <title>* 486 class</title> - - <para></para> - </sect3> - - <sect3> - <title>* 386 class</title> - - <para></para> - </sect3> - - <sect3> - <title>286 class</title> - - <para>Sorry, FreeBSD does not run on 80286 machines. It is nearly - impossible to run today's large full-featured unices on such - hardware.</para> - </sect3> - </sect2> - - <sect2> - <title>* Memory</title> - - <para>The minimum amount of memory you must have to install FreeBSD is 5 - MB. Once your system is up and running you can <link - linkend="kernelconfig-building">build a custom kernel</link> that - will use less memory. If you use the <filename>boot4.flp</filename> - you can get away with having only 4 MB.</para> - </sect2> - - <sect2> - <title>* BIOS</title> - - <para></para> - </sect2> - </sect1> - - <sect1 id="hw-io"> - <title>Input/Output Devices</title> - - <sect2> - <title>* Video cards</title> - - <para></para> - </sect2> - - <sect2> - <title>* Sound cards</title> - - <para></para> - </sect2> - - <sect2> - <title>Serial ports and multiport cards</title> - - <sect3 id="uart"> - <title>The UART: What it is and how it works</title> - - <para><emphasis>Copyright © 1996 &a.uhclem;, All Rights - Reserved. 13 January 1996.</emphasis></para> - - <para>The Universal Asynchronous Receiver/Transmitter (UART) - controller is the key component of the serial communications - subsystem of a computer. The UART takes bytes of data and transmits - the individual bits in a sequential fashion. At the destination, a - second UART re-assembles the bits into complete bytes.</para> - - <para>Serial transmission is commonly used with modems and for - non-networked communication between computers, terminals and other - devices.</para> - - <para>There are two primary forms of serial transmission: Synchronous - and Asynchronous. Depending on the modes that are supported by the - hardware, the name of the communication sub-system will usually - include a <literal>A</literal> if it supports Asynchronous - communications, and a <literal>S</literal> if it supports - Synchronous communications. Both forms are described below.</para> - - <para>Some common acronyms are: - - <blockquote> - <para>UART Universal Asynchronous - Receiver/Transmitter</para> - </blockquote> - - <blockquote> - <para>USART Universal Synchronous-Asynchronous - Receiver/Transmitter</para> - </blockquote></para> - - <sect4> - <title>Synchronous Serial Transmission</title> - - <para>Synchronous serial transmission requires that the sender and - receiver share a clock with one another, or that the sender - provide a strobe or other timing signal so that the receiver knows - when to <quote>read</quote> the next bit of the data. In most - forms of serial Synchronous communication, if there is no data - available at a given instant to transmit, a fill character must be - sent instead so that data is always being transmitted. - Synchronous communication is usually more efficient because only - data bits are transmitted between sender and receiver, and - synchronous communication can be more more costly if extra wiring - and circuits are required to share a clock signal between the - sender and receiver.</para> - - <para>A form of Synchronous transmission is used with printers and - fixed disk devices in that the data is sent on one set of wires - while a clock or strobe is sent on a different wire. Printers and - fixed disk devices are not normally serial devices because most - fixed disk interface standards send an entire word of data for - each clock or strobe signal by using a separate wire for each bit - of the word. In the PC industry, these are known as Parallel - devices.</para> - - <para>The standard serial communications hardware in the PC does not - support Synchronous operations. This mode is described here for - comparison purposes only.</para> - </sect4> - - <sect4> - <title>Asynchronous Serial Transmission</title> - - <para>Asynchronous transmission allows data to be transmitted - without the sender having to send a clock signal to the receiver. - Instead, the sender and receiver must agree on timing parameters - in advance and special bits are added to each word which are used - to synchronize the sending and receiving units.</para> - - <para>When a word is given to the UART for Asynchronous - transmissions, a bit called the "Start Bit" is added to the - beginning of each word that is to be transmitted. The Start Bit - is used to alert the receiver that a word of data is about to be - sent, and to force the clock in the receiver into synchronization - with the clock in the transmitter. These two clocks must be - accurate enough to not have the frequency drift by more than 10% - during the transmission of the remaining bits in the word. (This - requirement was set in the days of mechanical teleprinters and is - easily met by modern electronic equipment.)</para> - - <para>After the Start Bit, the individual bits of the word of data - are sent, with the Least Significant Bit (LSB) being sent first. - Each bit in the transmission is transmitted for exactly the same - amount of time as all of the other bits, and the receiver - <quote>looks</quote> at the wire at approximately halfway through - the period assigned to each bit to determine if the bit is a - <literal>1</literal> or a <literal>0</literal>. For example, if - it takes two seconds to send each bit, the receiver will examine - the signal to determine if it is a <literal>1</literal> or a - <literal>0</literal> after one second has passed, then it will - wait two seconds and then examine the value of the next bit, and - so on.</para> - - <para>The sender does not know when the receiver has - <quote>looked</quote> at the value of the bit. The sender only - knows when the clock says to begin transmitting the next bit of - the word.</para> - - <para>When the entire data word has been sent, the transmitter may - add a Parity Bit that the transmitter generates. The Parity Bit - may be used by the receiver to perform simple error checking. - Then at least one Stop Bit is sent by the transmitter.</para> - - <para>When the receiver has received all of the bits in the data - word, it may check for the Parity Bits (both sender and receiver - must agree on whether a Parity Bit is to be used), and then the - receiver looks for a Stop Bit. If the Stop Bit does not appear - when it is supposed to, the UART considers the entire word to be - garbled and will report a Framing Error to the host processor when - the data word is read. The usual cause of a Framing Error is that - the sender and receiver clocks were not running at the same speed, - or that the signal was interrupted.</para> - - <para>Regardless of whether the data was received correctly or not, - the UART automatically discards the Start, Parity and Stop bits. - If the sender and receiver are configured identically, these bits - are not passed to the host.</para> - - <para>If another word is ready for transmission, the Start Bit for - the new word can be sent as soon as the Stop Bit for the previous - word has been sent.</para> - - <para>Because asynchronous data is <quote>self synchronizing</quote>, - if there is no data to transmit, the transmission line can be - idle.</para> - </sect4> - - <sect4> - <title>Other UART Functions</title> - - <para>In addition to the basic job of converting data from parallel - to serial for transmission and from serial to parallel on - reception, a UART will usually provide additional circuits for - signals that can be used to indicate the state of the transmission - media, and to regulate the flow of data in the event that the - remote device is not prepared to accept more data. For example, - when the device connected to the UART is a modem, the modem may - report the presence of a carrier on the phone line while the - computer may be able to instruct the modem to reset itself or to - not take calls by asserting or disasserting one more more of these - extra signals. The function of each of these additional signals is - defined in the EIA RS232-C standard.</para> - </sect4> - - <sect4> - <title>The RS232-C and V.24 Standards</title> - - <para>In most computer systems, the UART is connected to circuitry - that generates signals that comply with the EIA RS232-C - specification. There is also a CCITT standard named V.24 that - mirrors the specifications included in RS232-C.</para> - - <sect5> - <title>RS232-C Bit Assignments (Marks and Spaces)</title> - - <para>In RS232-C, a value of <literal>1</literal> is called a - <literal>Mark</literal> and a value of <literal>0</literal> is - called a <literal>Space</literal>. When a communication line is - idle, the line is said to be <quote>Marking</quote>, or - transmitting continuous <literal>1</literal> values.</para> - - <para>The Start bit always has a value of <literal>0</literal> (a - Space). The Stop Bit always has a value of <literal>1</literal> - (a Mark). This means that there will always be a Mark (1) to - Space (0) transition on the line at the start of every word, - even when multiple word are transmitted back to back. This - guarantees that sender and receiver can resynchronize their - clocks regardless of the content of the data bits that are being - transmitted.</para> - - <para>The idle time between Stop and Start bits does not have to - be an exact multiple (including zero) of the bit rate of the - communication link, but most UARTs are designed this way for - simplicity.</para> - - <para>In RS232-C, the "Marking" signal (a <literal>1</literal>) is - represented by a voltage between -2 VDC and -12 VDC, and a - "Spacing" signal (a <literal>0</literal>) is represented by a - voltage between 0 and +12 VDC. The transmitter is supposed to - send +12 VDC or -12 VDC, and the receiver is supposed to allow - for some voltage loss in long cables. Some transmitters in low - power devices (like portable computers) sometimes use only +5 - VDC and -5 VDC, but these values are still acceptable to a - RS232-C receiver, provided that the cable lengths are - short.</para> - </sect5> - - <sect5> - <title>RS232-C Break Signal</title> - - <para>RS232-C also specifies a signal called a - <literal>Break</literal>, which is caused by sending continuous - Spacing values (no Start or Stop bits). When there is no - electricity present on the data circuit, the line is considered - to be sending <literal>Break</literal>.</para> - - <para>The <literal>Break</literal> signal must be of a duration - longer than the time it takes to send a complete byte plus - Start, Stop and Parity bits. Most UARTs can distinguish between - a Framing Error and a Break, but if the UART cannot do this, the - Framing Error detection can be used to identify Breaks.</para> - - <para>In the days of teleprinters, when numerous printers around - the country were wired in series (such as news services), any - unit could cause a <literal>Break</literal> by temporarily - opening the entire circuit so that no current flowed. This was - used to allow a location with urgent news to interrupt some - other location that was currently sending information.</para> - - <para>In modern systems there are two types of Break signals. If - the Break is longer than 1.6 seconds, it is considered a "Modem - Break", and some modems can be programmed to terminate the - conversation and go on-hook or enter the modems' command mode - when the modem detects this signal. If the Break is smaller - than 1.6 seconds, it signifies a Data Break and it is up to the - remote computer to respond to this signal. Sometimes this form - of Break is used as an Attention or Interrupt signal and - sometimes is accepted as a substitute for the ASCII CONTROL-C - character.</para> - - <para>Marks and Spaces are also equivalent to <quote>Holes</quote> - and <quote>No Holes</quote> in paper tape systems.</para> - - <note> - <para>Breaks cannot be generated from paper tape or from any - other byte value, since bytes are always sent with Start and - Stop bit. The UART is usually capable of generating the - continuous Spacing signal in response to a special command - from the host processor.</para> - </note> - </sect5> - - <sect5> - <title>RS232-C DTE and DCE Devices</title> - - <para>The RS232-C specification defines two types of equipment: - the Data Terminal Equipment (DTE) and the Data Carrier Equipment - (DCE). Usually, the DTE device is the terminal (or computer), - and the DCE is a modem. Across the phone line at the other end - of a conversation, the receiving modem is also a DCE device and - the computer that is connected to that modem is a DTE device. - The DCE device receives signals on the pins that the DTE device - transmits on, and vice versa.</para> - - <para>When two devices that are both DTE or both DCE must be - connected together without a modem or a similar media translater - between them, a NULL modem must be used. The NULL modem - electrically re-arranges the cabling so that the transmitter - output is connected to the receiver input on the other device, - and vice versa. Similar translations are performed on all of - the control signals so that each device will see what it thinks - are DCE (or DTE) signals from the other device.</para> - - <para>The number of signals generated by the DTE and DCE devices - are not symmetrical. The DTE device generates fewer signals for - the DCE device than the DTE device receives from the DCE.</para> - </sect5> - - <sect5> - <title>RS232-C Pin Assignments</title> - - <para>The EIA RS232-C specification (and the ITU equivalent, V.24) - calls for a twenty-five pin connector (usually a DB25) and - defines the purpose of most of the pins in that - connector.</para> - - <para>In the IBM Personal Computer and similar systems, a subset - of RS232-C signals are provided via nine pin connectors (DB9). - The signals that are not included on the PC connector deal - mainly with synchronous operation, and this transmission mode is - not supported by the UART that IBM selected for use in the IBM - PC.</para> - - <para>Depending on the computer manufacturer, a DB25, a DB9, or - both types of connector may be used for RS232-C communications. - (The IBM PC also uses a DB25 connector for the parallel printer - interface which causes some confusion.)</para> - - <para>Below is a table of the RS232-C signal assignments in the - DB25 and DB9 connectors.</para> - - <informaltable frame="none"> - <tgroup cols="7"> - <thead> - <row> - <entry>DB25 RS232-C Pin</entry> - <entry>DB9 IBM PC Pin</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>Transmit Data</entry> - </row> - - <row> - <entry>3</entry> - <entry>2</entry> - <entry>BB</entry> - <entry>104</entry> - <entry>RD</entry> - <entry>DCE</entry> - <entry>Receive Data</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 and Symbols</title> - - <para>Baud is a measurement of transmission speed in asynchronous - communication. Because of advances in modem communication - technology, this term is frequently misused when describing the - data rates in newer devices.</para> - - <para>Traditionally, a Baud Rate represents the number of bits that - are actually being sent over the media, not the amount of data - that is actually moved from one DTE device to the other. The Baud - count includes the overhead bits Start, Stop and Parity that are - generated by the sending UART and removed by the receiving UART. - This means that seven-bit words of data actually take 10 bits to - be completely transmitted. Therefore, a modem capable of moving - 300 bits per second from one place to another can normally only - move 30 7-bit words if Parity is used and one Start and Stop bit - are present.</para> - - <para>If 8-bit data words are used and Parity bits are also used, - the data rate falls to 27.27 words per second, because it now - takes 11 bits to send the eight-bit words, and the modem still - only sends 300 bits per second.</para> - - <para>The formula for converting bytes per second into a baud rate - and vice versa was simple until error-correcting modems came - along. These modems receive the serial stream of bits from the - UART in the host computer (even when internal modems are used the - data is still frequently serialized) and converts the bits back - into bytes. These bytes are then combined into packets and sent - over the phone line using a Synchronous transmission method. This - means that the Stop, Start, and Parity bits added by the UART in - the DTE (the computer) were removed by the modem before - transmission by the sending modem. When these bytes are received - by the remote modem, the remote modem adds Start, Stop and Parity - bits to the words, converts them to a serial format and then sends - them to the receiving UART in the remote computer, who then strips - the Start, Stop and Parity bits.</para> - - <para>The reason all these extra conversions are done is so that the - two modems can perform error correction, which means that the - receiving modem is able to ask the sending modem to resend a block - of data that was not received with the correct checksum. This - checking is handled by the modems, and the DTE devices are usually - unaware that the process is occurring.</para> - - <para>By striping the Start, Stop and Parity bits, the additional - bits of data that the two modems must share between themselves to - perform error-correction are mostly concealed from the effective - transmission rate seen by the sending and receiving DTE equipment. - For example, if a modem sends ten 7-bit words to another modem - without including the Start, Stop and Parity bits, the sending - modem will be able to add 30 bits of its own information that the - receiving modem can use to do error-correction without impacting - the transmission speed of the real data.</para> - - <para>The use of the term Baud is further confused by modems that - perform compression. A single 8-bit word passed over the - telephone line might represent a dozen words that were transmitted - to the sending modem. The receiving modem will expand the data - back to its original content and pass that data to the receiving - DTE.</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> - - <!-- This should really be a graphic --> - <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 <quote>clean</quote> 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 <quote>industrial</quote> 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 - <quote>megacell</quote>) 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 - <quote>16550A</quote> 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 MS-DOS 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 <quote>dumb</quote> 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>Configuring the <devicename>sio</devicename> driver</title> - - <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 call-out 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> - - <sect4> - <title>Support for Cheap Multi-UART Cards</title> - - <para><emphasis>Contributed by Helge Oldach - <email>hmo@sep.hamburg.com</email>, September - 1999</emphasis></para> - - <para>Ever wondered about FreeBSD support for your 20$ multi-I/O - card with two (or more) COM ports, sharing IRQs? Here's - how:</para> - - <para>Usually the only option to support these kind of boards is to - use a distinct IRQ for each port. For example, if your CPU board - has an on-board <devicename>COM1</devicename> port (aka - <devicename>sio0</devicename>–I/O address 0x3F8 and IRQ 4) - and you have an extension board with two UARTs, you will commonly - need to configure them as <devicename>COM2</devicename> (aka - <devicename>sio1</devicename>–I/O address 0x2F8 and IRQ 3), - and the third port (aka <devicename>sio2</devicename>) as I/O - 0x3E8 and IRQ 5. Obviously this is a waste of IRQ resources, as - it should be basically possible to run both extension board ports - using a single IRQ with the <literal>COM_MULTIPORT</literal> - configuration described in the previous sections.</para> - - <para>Such cheap I/O boards commonly have a 4 by 3 jumper matrix for - the COM ports, similar to the following:</para> - -<programlisting> o o o * -Port A | - o * o * -Port B | - o * o o -IRQ 2 3 4 5</programlisting> - - <para>Shown here is port A wired for IRQ 5 and port B wired for IRQ - 3. The IRQ columns on your specific board may vary—other - boards may supply jumpers for IRQs 3, 4, 5, and 7 instead.</para> - - <para>One could conclude that wiring both ports for IRQ 3 using a - handcrafted wire-made jumper covering all three connection points - in the IRQ 3 column would solve the issue, but no. You cannot - duplicate IRQ 3 because the output drivers of each UART are wired - in a <quote>totem pole</quote> fashion, so if one of the UARTs - drives IRQ 3, the output signal will not be what you would expect. - Depending on the implementation of the extension board or your - motherboard, the IRQ 3 line will continuously stay up, or always - stay low.</para> - - <para>You need to decouple the IRQ drivers for the two UARTs, so - that the IRQ line of the board only goes up if (and only if) one - of the UARTs asserts a IRQ, and stays low otherwise. The solution - was proposed by Joerg Wunsch - <email>j@ida.interface-business.de</email>: To solder up a - wired-or consisting of two diodes (Germanium or Schottky-types - strongly preferred) and a 1 kOhm resistor. Here is the schematic, - starting from the 4 by 3 jumper field above:</para> - -<programlisting> Diode - +---------->|-------+ - / | - o * o o | 1 kOhm -Port A +----|######|-------+ - o * o o | | -Port B `-------------------+ ==+== - o * o o | Ground - \ | - +--------->|-------+ -IRQ 2 3 4 5 Diode</programlisting> - - <para>The cathodes of the diodes are connected to a common point, - together with a 1 kOhm pull-down resistor. It is essential to - connect the resistor to ground to avoid floating of the IRQ line - on the bus.</para> - - <para>Now we are ready to configure a kernel. Staying with this - example, we would configure:</para> - - <programlisting># standard on-board COM1 port -device sio0 at isa? port "IO_COM1" tty flags 0x10 -# patched-up multi-I/O extension board -options COM_MULTIPORT -device sio1 at isa? port "IO_COM2" tty flags 0x205 -device sio2 at isa? port "IO_COM3" tty flags 0x205 irq 3</programlisting> - - <para>Note that the <literal>flags</literal> setting for - <devicename>sio1</devicename> and <devicename>sio2</devicename> is - truly essential; refer to - &man.sio.4; for details. (Generally, the <literal>2</literal> in - the "flags" attribute refers to <devicename>sio</devicename>2 - which holds the IRQ, and you surely want a <literal>5</literal> - low nibble.) With kernel verbose mode turned on this should yield - something similar to this:</para> - - <screen>sio0: irq maps: 0x1 0x11 0x1 0x1 -sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa -sio0: type 16550A -sio1: irq maps: 0x1 0x9 0x1 0x1 -sio1 at 0x2f8-0x2ff flags 0x205 on isa -sio1: type 16550A (multiport) -sio2: irq maps: 0x1 0x9 0x1 0x1 -sio2 at 0x3e8-0x3ef irq 3 flags 0x205 on isa -sio2: type 16550A (multiport master)</screen> - - <para>Though <filename>/sys/i386/isa/sio.c</filename> is somewhat - cryptic with its use of the <quote>irq maps</quote> array above, - the basic idea is that you observe <literal>0x1</literal> in the - first, third, and fourth place. This means that the corresponding - IRQ was set upon output and cleared after, which is just what we - would expect. If your kernel does not display this behavior, most - likely there is something wrong with your wiring.</para> - </sect4> - </sect3> - - <sect3 id="cy"> - <title>Configuring the <devicename>cy</devicename> driver</title> - - <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> - - <sect3> - <title>Configuring the <devicename>si</devicename> driver</title> - - <para><emphasis>Contributed by &a.nsayer;. 25 March - 1998.</emphasis></para> - - <para>The Specialix SI/XIO and SX multiport cards use the - <devicename>si</devicename> driver. A single machine can - have up to 4 host cards. The following host cards - are supported:</para> - - <itemizedlist> - <listitem><para>ISA SI/XIO host card (2 versions)</para></listitem> - <listitem><para>EISA SI/XIO host card</para></listitem> - <listitem><para>PCI SI/XIO host card</para></listitem> - <listitem><para>ISA SX host card</para></listitem> - <listitem><para>PCI SX host card</para></listitem> - </itemizedlist> - - <para>Although the SX and SI/XIO host cards look markedly different, - their functionality are basically the same. The host cards do not - use I/O locations, but instead require a 32K chunk of memory. The - factory configuration for ISA cards places this at - <literal>0xd0000-0xd7fff</literal>. - They also require an IRQ. PCI cards will, of course, auto-configure - themselves.</para> - - <para>You can attach up to 4 external modules to each host card. The - external modules contain either 4 or 8 serial ports. They come in - the following varieties:</para> - - <itemizedlist> - <listitem><para>SI 4 or 8 port modules. Up to 57600 bps on each port - supported.</para></listitem> - - <listitem><para>XIO 8 port modules. Up to 115200 bps on each port - supported. One type of XIO module has 7 serial and 1 parallel - port.</para></listitem> - - <listitem><para>SXDC 8 port modules. Up to 921600 bps on each port - supported. Like XIO, a module is available with one parallel - port as well.</para></listitem> - </itemizedlist> - - <para>To configure an ISA host card, add the following line to your - <link linkend="kernelconfig-config">kernel configuration - file</link>, changing the numbers as appropriate:</para> - - <programlisting> -device si0 at isa? tty iomem 0xd0000 irq 11</programlisting> - - <para>Valid IRQ numbers are 9, 10, 11, 12 and 15 for SX ISA host cards - and 11, 12 and 15 for SI/XIO ISA host cards.</para> - - <para>To configure an EISA or PCI host card, use this line:</para> - - <programlisting> -device si0</programlisting> - - <para>After adding the configuration entry, <link - linkend="kernelconfig-building"> rebuild and install</link> your - new kernel.</para> - - <para>After rebooting with the new kernel, you need to make the <link - linkend="kernelconfig-nodes"> device nodes</link> in /dev. The - <filename>MAKEDEV</filename> script will take care of this for you. - Count how many total ports you have and type:</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>./MAKEDEV ttyA<replaceable>nn</replaceable> cuaA<replaceable>nn</replaceable></userinput></screen> - - <para>(where <replaceable>nn</replaceable> is the number of - ports)</para> - - <para>If you want login prompts to appear on these ports, you will - need to add lines like this to <link - linkend="dialup"><filename>/etc/ttys</filename></link>:</para> - - <programlisting> -ttyA01 "/usr/libexec/getty std.9600" vt100 on insecure - </programlisting> - - <para>Change the terminal type as appropriate. For modems, - <userinput>dialup</userinput> or <userinput>unknown</userinput> is - fine.</para> - </sect3> - </sect2> - - <sect2> - <title>* Parallel ports</title> - - <para></para> - </sect2> - - <sect2> - <title>* Modems</title> - - <para></para> - </sect2> - - <sect2> - <title>* Network cards</title> - - <para></para> - </sect2> - - <sect2> - <title>* Keyboards</title> - - <para></para> - </sect2> - - <sect2> - <title>Mice</title> - - <para><emphasis>Contributed by Joel Sutton - <email>jsutton@bbcon.com.au</email> January 2000</emphasis></para> - - <para>FreeBSD supports a variety of different mice via the PS/2, serial - and USB ports. Most users choose to use the mouse daemon to handle - their mouse because it allows interaction in both X and on the system - console. For more information on the mouse daemon refer to - &man.moused.8;. The examples throughout this section assume that - the mouse daemon is being used.</para> - - <note> - <para>This section contains the names of specific products that the - author has confirmed will work with FreeBSD. Other similar devices - not listed may also be supported.</para> - </note> - - <sect3> - <title>PS/2</title> - - <sect4> - <title>System Configuration</title> - - <para>To ensure that your PS/2 mouse functions correctly with the - mouse daemon you will need to include the following text in - <filename>/etc/rc.conf</filename></para> - - <programlisting>moused_enable="YES" -moused_type="ps/2" -moused_port="/dev/psm0"</programlisting> - </sect4> - - <sect4> - <title>Known Compatible Devices</title> - - <itemizedlist> - <listitem> - <para>Logitech First Mouse - Three Button</para> - </listitem> - - <listitem> - <para>Microsoft Serial - PS/2 Compatible Mouse</para> - </listitem> - </itemizedlist> - </sect4> - </sect3> - - <sect3> - <title>Serial</title> - - <sect4> - <title>System Configuration</title> - - <para>To ensure that your serial mouse functions correctly with the - mouse daemon you will need to include the following text in - <filename>/etc/rc.conf</filename>. This example assumes that the - mouse is connected to <devicename>COM1:</devicename> and can be - automatically recognized by the mouse daemon.</para> - - <programlisting>moused_enable="YES" -moused_type="auto" -moused_port="/dev/cuaa0"</programlisting> - - <para>See the &man.moused.8; manual page for a detailed description - of how to configure the mouse daemon to work with specific types - of serial mice.</para> - </sect4> - - <sect4> - <title>Known Compatible Devices</title> - - <itemizedlist> - <listitem> - <para>Generic Microsoft Compatible Mice</para> - </listitem> - - <listitem> - <para>Logitech First Mouse - Three Button</para> - </listitem> - - <listitem> - <para>Microsoft Serial - PS/2 Compatible Mouse</para> - </listitem> - </itemizedlist> - </sect4> - </sect3> - - <sect3> - <title>USB</title> - - <sect4> - <title>System Configuration</title> - - <para>The USB device drivers are a relatively new addition to - FreeBSD and have not yet been included in the GENERIC kernel. The - following procedure is an example of how to setup the relevant - drivers on a typical system.</para> - - <procedure> - <step> - <para>Add the <devicename>ums</devicename> device to the usb - section of your <link linkend="kernelconfig-config">kernel - configuration</link>. For example: - </para> - - <programlisting>controller usb0 controller uhci0 device ums0</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 - node</link> by typing:</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>sh MAKEDEV ums0</userinput></screen> - </step> - - <step> - <para>Include the following text in - <filename>/etc/rc.conf</filename> to ensure correct operation - of the mouse daemon:</para> - - <programlisting>moused_enable="YES" -moused_type="auto" -moused_port="/dev/ums0"</programlisting> - </step> - - <step> - <para>Reboot the system.</para> - <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen> - </step> - </procedure> - </sect4> - - <sect4> - <title>Known Compatible Devices</title> - - <itemizedlist> - <listitem> - <para>Logitech TrackMan - Marble Wheel</para> - </listitem> - </itemizedlist> - </sect4> - </sect3> - </sect2> - -<![ %not.published; [ - - <sect2> - <title>* Other</title> - - <para></para> - </sect2> - </sect1> - -]]> - - <sect1 id="hw-storage"> - <title>Storage Devices</title> - - <sect2 id="esdi"> - <title>Using ESDI hard disks</title> - - <para><emphasis>Copyright © 1995, &a.wilko;. 24 - September 1995.</emphasis></para> - - <para>ESDI is an acronym that means Enhanced Small Device Interface. It - is loosely based on the good old ST506/412 interface originally - devised by Seagate Technology, the makers of the first affordable - 5.25" winchester disk.</para> - - <para>The acronym says Enhanced, and rightly so. In the first place the - speed of the interface is higher, 10 or 15 Mbits/second instead of the - 5 Mbits/second of ST412 interfaced drives. Secondly some higher level - commands are added, making the ESDI interface somewhat 'smarter' to - the operating system driver writers. It is by no means as smart as - SCSI by the way. ESDI is standardized by ANSI.</para> - - <para>Capacities of the drives are boosted by putting more sectors on - each track. Typical is 35 sectors per track, high capacity drives I - have seen were up to 54 sectors/track.</para> - - <para>Although ESDI has been largely obsoleted by IDE and SCSI - interfaces, the availability of free or cheap surplus drives makes - them ideal for low (or now) budget systems.</para> - - <sect3> - <title>Concepts of ESDI</title> - - <sect4> - <title>Physical connections</title> - - <para>The ESDI interface uses two cables connected to each drive. - One cable is a 34 pin flat cable edge connector that carries the - command and status signals from the controller to the drive and - vice-versa. The command cable is daisy chained between all the - drives. So, it forms a bus onto which all drives are - connected.</para> - - <para>The second cable is a 20 pin flat cable edge connector that - carries the data to and from the drive. This cable is radially - connected, so each drive has its own direct connection to the - controller.</para> - - <para>To the best of my knowledge PC ESDI controllers are limited to - using a maximum of 2 drives per controller. This is compatibility - feature(?) left over from the WD1003 standard that reserves only a - single bit for device addressing.</para> - </sect4> - - <sect4> - <title>Device addressing</title> - - <para>On each command cable a maximum of 7 devices and 1 controller - can be present. To enable the controller to uniquely identify - which drive it addresses, each ESDI device is equipped with - jumpers or switches to select the devices address.</para> - - <para>On PC type controllers the first drive is set to address 0, - the second disk to address 1. <emphasis>Always make - sure</emphasis> you set each disk to an unique address! So, on a - PC with its two drives/controller maximum the first drive is drive - 0, the second is drive 1.</para> - </sect4> - - <sect4> - <title>Termination</title> - - <para>The daisy chained command cable (the 34 pin cable remember?) - needs to be terminated at the last drive on the chain. For this - purpose ESDI drives come with a termination resistor network that - can be removed or disabled by a jumper when it is not used.</para> - - <para>So, one and <emphasis>only</emphasis> one drive, the one at - the farthest end of the command cable has its terminator - installed/enabled. The controller automatically terminates the - other end of the cable. Please note that this implies that the - controller must be at one end of the cable and - <emphasis>not</emphasis> in the middle.</para> - </sect4> - </sect3> - - <sect3> - <title>Using ESDI disks with FreeBSD</title> - - <para>Why is ESDI such a pain to get working in the first - place?</para> - - <para>People who tried ESDI disks with FreeBSD are known to have - developed a profound sense of frustration. A combination of factors - works against you to produce effects that are hard to understand - when you have never seen them before.</para> - - <para>This has also led to the popular legend ESDI and FreeBSD is a - plain NO-GO. The following sections try to list all the pitfalls - and solutions.</para> - - <sect4> - <title>ESDI speed variants</title> - - <para>As briefly mentioned before, ESDI comes in two speed flavors. - The older drives and controllers use a 10 Mbits/second data - transfer rate. Newer stuff uses 15 Mbits/second.</para> - - <para>It is not hard to imagine that 15 Mbits/second drive cause - problems on controllers laid out for 10 Mbits/second. As always, - consult your controller <emphasis>and</emphasis> drive - documentation to see if things match.</para> - </sect4> - - <sect4> - <title>Stay on track</title> - - <para>Mainstream ESDI drives use 34 to 36 sectors per track. Most - (older) controllers cannot handle more than this number of - sectors. Newer, higher capacity, drives use higher numbers of - sectors per track. For instance, I own a 670 MB drive that has 54 - sectors per track.</para> - - <para>In my case, the controller could not handle this number of - sectors. It proved to work well except that it only used 35 - sectors on each track. This meant losing a lot of disk - space.</para> - - <para>Once again, check the documentation of your hardware for more - info. Going out-of-spec like in the example might or might not - work. Give it a try or get another more capable - controller.</para> - </sect4> - - <sect4> - <title>Hard or soft sectoring</title> - - <para>Most ESDI drives allow hard or soft sectoring to be selected - using a jumper. Hard sectoring means that the drive will produce - a sector pulse on the start of each new sector. The controller - uses this pulse to tell when it should start to write or - read.</para> - - <para>Hard sectoring allows a selection of sector size (normally - 256, 512 or 1024 bytes per formatted sector). FreeBSD uses 512 - byte sectors. The number of sectors per track also varies while - still using the same number of bytes per formatted sector. The - number of <emphasis>unformatted</emphasis> bytes per sector - varies, dependent on your controller it needs more or less - overhead bytes to work correctly. Pushing more sectors on a - track of course gives you more usable space, but might give - problems if your controller needs more bytes than the drive - offers.</para> - - <para>In case of soft sectoring, the controller itself determines - where to start/stop reading or writing. For ESDI hard sectoring - is the default (at least on everything I came across). I never - felt the urge to try soft sectoring.</para> - - <para>In general, experiment with sector settings before you install - FreeBSD because you need to re-run the low-level format after each - change.</para> - </sect4> - - <sect4> - <title>Low level formatting</title> - - <para>ESDI drives need to be low level formatted before they are - usable. A reformat is needed whenever you figgle with the number - of sectors/track jumpers or the physical orientation of the drive - (horizontal, vertical). So, first think, then format. The format - time must not be underestimated, for big disks it can take - hours.</para> - - <para>After a low level format, a surface scan is done to find and - flag bad sectors. Most disks have a manufacturer bad block list - listed on a piece of paper or adhesive sticker. In addition, on - most disks the list is also written onto the disk. Please use the - manufacturer's list. It is much easier to remap a defect now than - after FreeBSD is installed.</para> - - <para>Stay away from low-level formatters that mark all sectors of a - track as bad as soon as they find one bad sector. Not only does - this waste space, it also and more importantly causes you grief - with bad144 (see the section on bad144).</para> - </sect4> - - <sect4> - <title>Translations</title> - - <para>Translations, although not exclusively a ESDI-only problem, - might give you real trouble. Translations come in multiple - flavors. Most of them have in common that they attempt to work - around the limitations posed upon disk geometries by the original - IBM PC/AT design (thanks IBM!).</para> - - <para>First of all there is the (in)famous 1024 cylinder limit. For - a system to be able to boot, the stuff (whatever operating system) - must be in the first 1024 cylinders of a disk. Only 10 bits are - available to encode the cylinder number. For the number of - sectors the limit is 64 (0-63). When you combine the 1024 - cylinder limit with the 16 head limit (also a design feature) you - max out at fairly limited disk sizes.</para> - - <para>To work around this problem, the manufacturers of ESDI PC - controllers added a BIOS prom extension on their boards. This - BIOS extension handles disk I/O for booting (and for some - operating systems <emphasis>all</emphasis> disk I/O) by using - translation. For instance, a big drive might be presented to the - system as having 32 heads and 64 sectors/track. The result is - that the number of cylinders is reduced to something below 1024 - and is therefore usable by the system without problems. It is - noteworthy to know that FreeBSD does not use the BIOS after its - kernel has started. More on this later.</para> - - <para>A second reason for translations is the fact that most older - system BIOSes could only handle drives with 17 sectors per track - (the old ST412 standard). Newer system BIOSes usually have a - user-defined drive type (in most cases this is drive type - 47).</para> - - <warning> - <para>Whatever you do to translations after reading this document, - keep in mind that if you have multiple operating systems on the - same disk, all must use the same translation</para> - </warning> - - <para>While on the subject of translations, I have seen one - controller type (but there are probably more like this) offer the - option to logically split a drive in multiple partitions as a BIOS - option. I had select 1 drive == 1 partition because this - controller wrote this info onto the disk. On power-up it read the - info and presented itself to the system based on the info from the - disk.</para> - </sect4> - - <sect4> - <title>Spare sectoring</title> - - <para>Most ESDI controllers offer the possibility to remap bad - sectors. During/after the low-level format of the disk bad - sectors are marked as such, and a replacement sector is put in - place (logically of course) of the bad one.</para> - - <para>In most cases the remapping is done by using N-1 sectors on - each track for actual data storage, and sector N itself is the - spare sector. N is the total number of sectors physically - available on the track. The idea behind this is that the - operating system sees a 'perfect' disk without bad sectors. In - the case of FreeBSD this concept is not usable.</para> - - <para>The problem is that the translation from - <emphasis>bad</emphasis> to <emphasis>good</emphasis> is performed - by the BIOS of the ESDI controller. FreeBSD, being a true 32 bit - operating system, does not use the BIOS after it has been booted. - Instead, it has device drivers that talk directly to the - hardware.</para> - - <para><emphasis>So: don't use spare sectoring, bad block remapping - or whatever it may be called by the controller manufacturer when - you want to use the disk for FreeBSD.</emphasis></para> - </sect4> - - <sect4> - <title>Bad block handling</title> - - <para>The preceding section leaves us with a problem. The - controller's bad block handling is not usable and still FreeBSD's - filesystems assume perfect media without any flaws. To solve this - problem, FreeBSD use the <command>bad144</command> tool. Bad144 - (named after a Digital Equipment standard for bad block handling) - scans a FreeBSD slice for bad blocks. Having found these bad - blocks, it writes a table with the offending block numbers to the - end of the FreeBSD slice.</para> - - <para>When the disk is in operation, the disk accesses are checked - against the table read from the disk. Whenever a block number is - requested that is in the <command>bad144</command> list, a - replacement block (also from the end of the FreeBSD slice) is - used. In this way, the <command>bad144</command> replacement - scheme presents 'perfect' media to the FreeBSD filesystems.</para> - - <para>There are a number of potential pitfalls associated with the - use of <command>bad144</command>. First of all, the slice cannot - have more than 126 bad sectors. If your drive has a high number - of bad sectors, you might need to divide it into multiple FreeBSD - slices each containing less than 126 bad sectors. Stay away from - low-level format programs that mark <emphasis>every</emphasis> - sector of a track as bad when they find a flaw on the track. As - you can imagine, the 126 limit is quickly reached when the - low-level format is done this way.</para> - - <para>Second, if the slice contains the root filesystem, the slice - should be within the 1024 cylinder BIOS limit. During the boot - process the bad144 list is read using the BIOS and this only - succeeds when the list is within the 1024 cylinder limit.</para> - - <note> - <para>The restriction is not that only the root - <emphasis>filesystem</emphasis> must be within the 1024 cylinder - limit, but rather the entire <emphasis>slice</emphasis> that - contains the root filesystem.</para> - </note> - </sect4> - - <sect4> - <title>Kernel configuration</title> - - <para>ESDI disks are handled by the same <literal>wd</literal>driver - as IDE and ST412 MFM disks. The <literal>wd</literal> driver - should work for all WD1003 compatible interfaces.</para> - - <para>Most hardware is jumperable for one of two different I/O - address ranges and IRQ lines. This allows you to have two wd - type controllers in one system.</para> - - <para>When your hardware allows non-standard strappings, you can use - these with FreeBSD as long as you enter the correct info into the - kernel config file. An example from the kernel config file (they - live in <filename>/sys/i386/conf</filename> BTW).</para> - - <programlisting> -# First WD compatible controller -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 WD compatible controller -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>Particulars on ESDI hardware</title> - - <sect4> - <title>Adaptec 2320 controllers</title> - - <para>I successfully installed FreeBSD onto a ESDI disk controlled - by a ACB-2320. No other operating system was present on the - disk.</para> - - <para>To do so I low level formatted the disk using - <command>NEFMT.EXE</command> (<command>ftp</command>able from - <hostid role="fqdn">www.adaptec.com</hostid>) and answered NO to - the question whether the disk should be formatted with a spare - sector on each track. The BIOS on the ACD-2320 was disabled. I - used the <literal>free configurable</literal> option in the system - BIOS to allow the BIOS to boot it.</para> - - <para>Before using <command>NEFMT.EXE</command> I tried to format - the disk using the ACB-2320 BIOS built-in formatter. This proved - to be a show stopper, because it did not give me an option to - disable spare sectoring. With spare sectoring enabled the FreeBSD - installation process broke down on the <command>bad144</command> - run.</para> - - <para>Please check carefully which - ACB-232<replaceable>xy</replaceable> variant you have. The - <replaceable>x</replaceable> is either <literal>0</literal> or - <literal>2</literal>, indicating a controller without or with a - floppy controller on board.</para> - - <para>The <literal>y</literal> is more interesting. It can either - be a blank, a <literal>A-8</literal> or a <literal>D</literal>. A - blank indicates a plain 10 Mbits/second controller. An - <literal>A-8</literal> indicates a 15 Mbits/second controller - capable of handling 52 sectors/track. A <literal>D</literal> - means a 15 Mbits/second controller that can also handle drives - with > 36 sectors/track (also 52 ?).</para> - - <para>All variations should be capable of using 1:1 interleaving. - Use 1:1, FreeBSD is fast enough to handle it.</para> - </sect4> - - <sect4> - <title>Western Digital WD1007 controllers</title> - - <para>I successfully installed FreeBSD onto a ESDI disk controlled - by a WD1007 controller. To be precise, it was a WD1007-WA2. - Other variations of the WD1007 do exist.</para> - - <para>To get it to work, I had to disable the sector translation and - the WD1007's onboard BIOS. This implied I could not use the - low-level formatter built into this BIOS. Instead, I grabbed - <command>WDFMT.EXE</command> from <hostid - role="fqdn">www.wdc.com</hostid> Running this formatted my drive - just fine.</para> - </sect4> - - <sect4> - <title>Ultrastor U14F controllers</title> - - <para>According to multiple reports from the net, Ultrastor ESDI - boards work OK with FreeBSD. I lack any further info on - particular settings.</para> - </sect4> - </sect3> - - <sect3 id="esdi-further-reading"> - <title>Further reading</title> - - <para>If you intend to do some serious ESDI hacking, you might want to - have the official standard at hand:</para> - - <para>The latest ANSI X3T10 committee document is: Enhanced Small - Device Interface (ESDI) [X3.170-1990/X3.170a-1991] [X3T10/792D - Rev 11]</para> - - <para>On Usenet the newsgroup <ulink - url="news:comp.periphs">comp.periphs</ulink> is a noteworthy place - to look for more info.</para> - - <para>The World Wide Web (WWW) also proves to be a very handy info - source: For info on Adaptec ESDI controllers see <ulink - url="http://www.adaptec.com/">http://www.adaptec.com/</ulink>. For - info on Western Digital controllers see <ulink - url="http://www.wdc.com/">http://www.wdc.com/</ulink>.</para> - </sect3> - - <sect3> - <title>Thanks to...</title> - - <para>Andrew Gordon for sending me an Adaptec 2320 controller and ESDI - disk for testing.</para> - </sect3> - </sect2> - - <sect2 id="scsi"> - <title>What is SCSI?</title> - - <para><emphasis>Copyright © 1995, &a.wilko;. July 6, - 1996.</emphasis></para> - - <para>SCSI is an acronym for Small Computer Systems Interface. It is an - ANSI standard that has become one of the leading I/O buses in the - computer industry. The foundation of the SCSI standard was laid by - Shugart Associates (the same guys that gave the world the first mini - floppy disks) when they introduced the SASI bus (Shugart Associates - Standard Interface).</para> - - <para>After some time an industry effort was started to come to a more - strict standard allowing devices from different vendors to work - together. This effort was recognized in the ANSI SCSI-1 standard. - The SCSI-1 standard (approximately 1985) is rapidly becoming obsolete. The - current standard is SCSI-2 (see <link - linkend="scsi-further-reading">Further reading</link>), with SCSI-3 - on the drawing boards.</para> - - <para>In addition to a physical interconnection standard, SCSI defines a - logical (command set) standard to which disk devices must adhere. - This standard is called the Common Command Set (CCS) and was developed - more or less in parallel with ANSI SCSI-1. SCSI-2 includes the - (revised) CCS as part of the standard itself. The commands are - dependent on the type of device at hand. It does not make much sense - of course to define a Write command for a scanner.</para> - - <para>The SCSI bus is a parallel bus, which comes in a number of - variants. The oldest and most used is an 8 bit wide bus, with - single-ended signals, carried on 50 wires. (If you do not know what - single-ended means, do not worry, that is what this document is all - about.) Modern designs also use 16 bit wide buses, with differential - signals. This allows transfer speeds of 20Mbytes/second, on cables - lengths of up to 25 meters. SCSI-2 allows a maximum bus width of 32 - bits, using an additional cable. Quickly emerging are Ultra SCSI (also - called Fast-20) and Ultra2 (also called Fast-40). Fast-20 is 20 - million transfers per second (20 Mbytes/sec on a 8 bit bus), Fast-40 - is 40 million transfers per second (40 Mbytes/sec on a 8 bit bus). - Most hard drives sold today are single-ended Ultra SCSI (8 or 16 - bits).</para> - - <para>Of course the SCSI bus not only has data lines, but also a number - of control signals. A very elaborate protocol is part of the standard - to allow multiple devices to share the bus in an efficient manner. In - SCSI-2, the data is always checked using a separate parity line. In - pre-SCSI-2 designs parity was optional.</para> - - <para>In SCSI-3 even faster bus types are introduced, along with a - serial SCSI busses that reduces the cabling overhead and allows a - higher maximum bus length. You might see names like SSA and - fibre channel in this context. None of the serial buses are currently - in widespread use (especially not in the typical FreeBSD environment). - For this reason the serial bus types are not discussed any - further.</para> - - <para>As you could have guessed from the description above, SCSI devices - are intelligent. They have to be to adhere to the SCSI standard - (which is over 2 inches thick BTW). So, for a hard disk drive for - instance you do not specify a head/cylinder/sector to address a - particular block, but simply the number of the block you want. - Elaborate caching schemes, automatic bad block replacement etc are all - made possible by this 'intelligent device' approach.</para> - - <para>On a SCSI bus, each possible pair of devices can communicate. - Whether their function allows this is another matter, but the standard - does not restrict it. To avoid signal contention, the 2 devices have - to arbitrate for the bus before using it.</para> - - <para>The philosophy of SCSI is to have a standard that allows - older-standard devices to work with newer-standard ones. So, an old - SCSI-1 device should normally work on a SCSI-2 bus. I say Normally, - because it is not absolutely sure that the implementation of an old - device follows the (old) standard closely enough to be acceptable on a - new bus. Modern devices are usually more well-behaved, because the - standardization has become more strict and is better adhered to by the - device manufacturers.</para> - - <para>Generally speaking, the chances of getting a working set of - devices on a single bus is better when all the devices are SCSI-2 or - newer. This implies that you do not have to dump all your old stuff - when you get that shiny 2GB disk: I own a system on which a pre-SCSI-1 - disk, a SCSI-2 QIC tape unit, a SCSI-1 helical scan tape unit and 2 - SCSI-1 disks work together quite happily. From a performance - standpoint you might want to separate your older and newer (=faster) - devices however.</para> - - <sect3> - <title>Components of SCSI</title> - - <para>As said before, SCSI devices are smart. The idea is to put the - knowledge about intimate hardware details onto the SCSI device - itself. In this way, the host system does not have to worry about - things like how many heads are hard disks has, or how many tracks - there are on a specific tape device. If you are curious, the - standard specifies commands with which you can query your devices on - their hardware particulars. FreeBSD uses this capability during - boot to check out what devices are connected and whether they need - any special treatment.</para> - - <para>The advantage of intelligent devices is obvious: the device - drivers on the host can be made in a much more generic fashion, - there is no longer a need to change (and qualify!) drivers for every - odd new device that is introduced.</para> - - <para>For cabling and connectors there is a golden rule: get good - stuff. With bus speeds going up all the time you will save yourself - a lot of grief by using good material.</para> - - <para>So, gold plated connectors, shielded cabling, sturdy connector - hoods with strain reliefs etc are the way to go. Second golden rule: - do no use cables longer than necessary. I once spent 3 days hunting - down a problem with a flaky machine only to discover that shortening - the SCSI bus by 1 meter solved the problem. And the original bus - length was well within the SCSI specification.</para> - </sect3> - - <sect3> - <title>SCSI bus types</title> - - <para>From an electrical point of view, there are two incompatible bus - types: single-ended and differential. This means that there are two - different main groups of SCSI devices and controllers, which cannot - be mixed on the same bus. It is possible however to use special - converter hardware to transform a single-ended bus into a - differential one (and vice versa). The differences between the bus - types are explained in the next sections.</para> - - <para>In lots of SCSI related documentation there is a sort of jargon - in use to abbreviate the different bus types. A small list:</para> - - <itemizedlist> - <listitem> - <para>FWD: Fast Wide Differential</para> - </listitem> - - <listitem> - <para>FND: Fast Narrow Differential</para> - </listitem> - - <listitem> - <para>SE: Single Ended</para> - </listitem> - - <listitem> - <para>FN: Fast Narrow</para> - </listitem> - - <listitem> - <para>etc.</para> - </listitem> - </itemizedlist> - - - <para>With a minor amount of imagination one can usually imagine what - is meant.</para> - - <para>Wide is a bit ambiguous, it can indicate 16 or 32 bit buses. As - far as I know, the 32 bit variant is not (yet) in use, so wide - normally means 16 bit.</para> - - <para>Fast means that the timing on the bus is somewhat different, so - that on a narrow (8 bit) bus 10 Mbytes/sec are possible instead of 5 - Mbytes/sec for 'slow' SCSI. As discussed before, bus speeds of 20 - and 40 million transfers/second are also emerging (Fast-20 == Ultra - SCSI and Fast-40 == Ultra2 SCSI).</para> - - <note> - <para>The data lines > 8 are only used for data transfers and - device addressing. The transfers of commands and status messages - etc are only performed on the lowest 8 data lines. The standard - allows narrow devices to operate on a wide bus. The usable bus - width is negotiated between the devices. You have to watch your - device addressing closely when mixing wide and narrow.</para> - </note> - - <sect4> - <title>Single ended buses</title> - - <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 <quote>potential</quote> 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 - enabled or disabled 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 CDROM 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 <quote>Murphy's law</quote>).</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>Using SCSI with FreeBSD</title> - - <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 <quote>lying</quote> 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), CDROMs (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 CDROM 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 <quote>first shot</quote> at the unit - numbers so the first non <quote>wired down</quote> device, is - allocated the unit number one greater than the highest - <quote>wired down</quote> 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 <quote>wired down</quote>. <quote>Wired - down</quote> 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 CDROM] -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 - <quote>wired down</quote>. If there are no <quote>wired - down</quote> 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 e.g., <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, CDROM 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 CDROM 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 <quote>rogue</quote> 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 CDROM 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 queuing</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 optimize 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 <quote>tag</quote> - (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 <quote>not quite - right</quote> 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 - hang-ups, 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>Tracking down problems</title> - - <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 host adapter 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>Further reading</title> - - <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><quote>SCSI: Understanding the Small Computer System - Interface</quote>, 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><quote>Basics of SCSI</quote>, 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><quote>SCSI Interconnection Guide Book</quote>, 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><quote>Fast Track to SCSI</quote>, 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><quote>The SCSI Bench Reference</quote>, <quote>The SCSI - Encyclopedia</quote>, and the <quote>SCSI Tutor</quote>, ENDL - Publications, 14426 Black Walnut Court, Saratoga CA, 95070 - Phone: (408) 867-6642</para> - </listitem> - - <listitem> - <para><quote>Zadian SCSI Navigator</quote> (quick ref. book) and - <quote>Discover the Power of SCSI</quote> (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>* Disk/tape controllers</title> - - <sect3> - <title>* SCSI</title> - - <para></para> - </sect3> - - <sect3> - <title>* IDE</title> - - <para></para> - </sect3> - - <sect3> - <title>* Floppy</title> - - <para></para> - </sect3> - </sect2> - - <sect2> - <title>Hard drives</title> - - <sect3> - <title>SCSI hard drives</title> - - <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 <quote>internal data - (or transfer) rate</quote>. 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 PC, 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" (<quote>half-height</quote>) or - 1" (<quote>low-profile</quote>). The half-height drive is the same - height as a CDROM 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 <quote>right</quote>. 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 <quote>stub</quote> 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>* IDE hard drives</title> - - <para></para> - </sect3> - </sect2> - - <sect2> - <title>Tape drives</title> - - <para><emphasis>Contributed by &a.jmb;. 2 July - 1996.</emphasis></para> - - <sect3> - <title>General tape access commands</title> - - <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> - </sect3> - - <sect3> - <title>Controller Interfaces</title> - - <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>SCSI drives</title> - - <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 Mini cartridge 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-28454">Archive Python - 28454</link></para> - - <para><link linkend="hw-storage-python-04687">Archive Python - 04687</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 Anaconda - 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-tandberg3800">Tandberg TDC - 3800</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>* IDE drives</title> - - <para></para> - </sect3> - - <sect3> - <title>Floppy drives</title> - - <para><link linkend="hw-storage-conner420r">Conner 420R</link></para> - </sect3> - - <sect3> - <title>* Parallel port drives</title> - - <para></para> - </sect3> - - <sect3> - <title>Detailed Information</title> - - <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, <quote>locks</quote> 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, ---- 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-28454"> - <title>Archive Python 28454</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 - 595-3067.</para> - - <para>Reported by: Bob Bishop <email>rb@gid.co.uk</email></para> - - <para>Throughput is in the 1.5 MByte/sec range, however this will - drop if the disks and tape drive are on the same SCSI - controller.</para> - - <para>Reported by: Robert E. Seastrom - <email>rs@seastrom.com</email></para> - </sect4> - - <sect4 id="hw-storage-python-04687"> - <title>Archive Python 04687</title> - - <para>The boot message identifier for this drive is <literal>ARCHIVE - Python 04687-XXX 6580</literal> <literal>Removable Sequential - Access SCSI-2 device</literal></para> - - <para>This is a DAT-DDS-2 drive.</para> - - <para>Native capacity is 4GB when using 120m tapes.</para> - - <para>This drive supports hardware data compression. Switch 4 - controls MRS (Media Recognition System). MRS tapes have stripes - on the transparent leader. Switch 4 <emphasis>off</emphasis> - enables MRS, <emphasis>on</emphasis> disables MRS.</para> - - <para>Parity is controlled by switch 5. Switch 5 - <emphasis>on</emphasis> to enable parity control. Compression is - enabled with Switch 6 <emphasis>off</emphasis>. It is possible to - override compression with the <literal>SCSI MODE SELECT</literal> - command (see &man.mt.1;).</para> - - <para>Data transfer rate is 800kB/s.</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>&a.msmith;</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, mini cartridge 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 mini cartridge 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 - mini cartridges.</para> - - <para>Data transfer rate is XXX</para> - - <para>This drive can read and write DC2300 (550MB), DC2750 (750MB), - MC3000 (750MB), and MC3000XL (1GB) mini cartridges.</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 mini cartridge for the first time, the - mini cartridge 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: &a.msmith;</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 <email>ken@ulc199.residence.gatech.edu</email>.</para> - - <para><literal>SONY SDT-5000 327M</literal> information reported by - Charles Henrich <email>henrich@msu.edu</email>.</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: &a.msmith;</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-tandberg3800"> - <title>Tandberg TDC 3800</title> - - <para>The boot message identifier for this drive is - <literal>TANDBERG TDC 3800 =04Y</literal> <literal>Removable - Sequential Access SCSI-2 device</literal></para> - - <para>This is a QIC tape drive.</para> - - <para>Native capacity is 525MB.</para> - - <para>Reported by: &a.jhs;</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 <quote>extra</quote> 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>* Problem drives</title> - - <para></para> - </sect3> - </sect2> - - <sect2> - <title>CDROM drives</title> - - <para><emphasis>Contributed by &a.obrien;. 23 November - 1997.</emphasis></para> - - <para>As mentioned in <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 - adherence 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> - </sect2> - - <sect2> - <title>* Other</title> - - <para></para> - </sect2> - </sect1> - - <sect1 id="hw-other"> - <title>* Other</title> - - - <sect2> - <title>* PCMCIA</title> - - <para></para> - </sect2> - </sect1> -</appendix> - -<!-- - Local Variables: - mode: sgml - sgml-declaration: "../appendix.decl" - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - sgml-parent-document: ("../book.sgml" "part" "appendix") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/install/chapter.sgml b/en_US.ISO8859-1/books/handbook/install/chapter.sgml deleted file mode 100644 index 0702dd8aae..0000000000 --- a/en_US.ISO8859-1/books/handbook/install/chapter.sgml +++ /dev/null @@ -1,1673 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/install/chapter.sgml,v 1.44 2000/06/14 00:47:26 jim Exp $ ---> - -<chapter id="install"> - <title>Installing FreeBSD</title> - - <para><emphasis>Restructured, updated, and parts rewritten by &a.jim;, - January 2000.</emphasis></para> - - <sect1> - <title>Synopsis</title> - - <para>The following chapter will attempt to guide you through the - installation of FreeBSD on your system. It can be installed through a - variety of methods, including anonymous FTP (assuming you have - network connectivity via modem or local network), CDROM, floppy - disk, tape, an MS-DOS partition, or even NFS.</para> - - <para>No matter which method you choose, you will need to get started - by creating the <emphasis>installation disks</emphasis> as described - in the <link linkend="install-floppies">next section</link>. - Booting into the FreeBSD installer, even if you are not planning on - installing FreeBSD right away, will provide important information - about compatibility with your hardware. This information may - dictate which installation options are even possible for you. It - can also provide clues early-on in the process to potential problems - you may come across later.</para> - - <para>If you plan to install FreeBSD via anonymous FTP, the only - things you will need are the <link - linkend="install-floppies">installation floppies</link>. The - installation program itself will handle anything else that is - required.</para> - - <para>For more information about obtaining FreeBSD, see the <link - linkend="mirrors">Obtaining FreeBSD</link> section of the - Appendix.</para> - - <para>By now, you are probably wondering what exactly it is you need - to do. Continue on to the installation guide.</para> - </sect1> - - <sect1 id="install-guide"> - <title>Installation Guide</title> - - <para>The following sections will guide you through preparing for and - actually installing FreeBSD. If you find something missing, please - let us know about it by sending email to the &a.doc;.</para> - - <sect2 id="install-prepare"> - <title>Preparing for the Installation</title> - - <para>There are various things you should do in preparation for the - installation. The following describes what needs to be done prior to - each type of installation.</para> - - <para>The first thing to do is to make sure your hardware is - supported by FreeBSD. The list of <link - linkend="install-hw">supported hardware</link> should - come in handy here. ;-) It would also be a good idea to make a - list of any <quote>special</quote> cards you have installed, - such as SCSI controllers, ethernet cards, sound cards, etc.. - The list should include their IRQs and IO port addresses.</para> - - <sect3 id="install-floppies"> - <title>Creating the Boot Floppies</title> - - <para>Please read the <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/floppies/README.TXT">installation - boot image information</ulink> before proceeding. To make the - installation boot disks from the image files, do the - following:</para> - - <para>Download the image - files. These can be retrieved from the <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/floppies/">floppies directory</ulink> - of the FreeBSD FTP site or your local mirror.</para> - - <itemizedlist> - <listitem> - <para>If you are installing from an MS-DOS partition, - download the <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/tools/fdimage.exe">fdimage.exe</ulink> - program or get it from <filename>tools\fdimage.exe</filename> - on the CDROM and then run it like so:</para> - - <screen><prompt>E:\></prompt> <userinput>tools\fdimage floppies\kern.flp a:</userinput></screen> - - <para>The <emphasis>fdimage</emphasis> program will format - the <devicename>A:</devicename> drive and then copy - <filename>kern.flp</filename> to it (assuming that you are - at the top level of a FreeBSD distribution and the floppy - images live in a <filename>floppies</filename> - subdirectory, which is typically the case).</para> - </listitem> - - <listitem> - <para>If you are using a UNIX-based system to create the - boot floppies, do the following:</para> - - <screen>&prompt.root; <userinput>dd if=kern.flp of=<replaceable>disk_device</replaceable></userinput></screen> - - <para><replaceable>disk_device</replaceable> is the - <filename>/dev</filename> entry for the floppy drive. On - FreeBSD, this is <filename>/dev/rfd0</filename> for the - <devicename>A:</devicename> drive and - <filename>/dev/rfd1</filename> for the - <devicename>B:</devicename> drive.</para> - </listitem> - </itemizedlist> - - <para>With the <filename>kern.flp</filename> disk in your floppy - drive, reboot your computer. After a couple of minutes - (while the kernel loads from the floppy), you - will be prompted to insert - the <filename>mfsroot.flp</filename>, after which the - installation will proceed normally.</para> - </sect3> - - <sect3 id="install-cdrom"> - <title>Before Installing from CDROM</title> - - <para>If your CDROM is of an unsupported type, please skip ahead - to the <link linkend="install-msdos">MS-DOS Preparation</link> - section.</para> - - <para>There is not a whole lot of preparation needed if you are - installing from one of <ulink - url="http://www.wccdrom.com/">Walnut Creek CDROM's</ulink> - FreeBSD CDROMs (other CDROM distributions may work as well, - though we cannot say for certain as we have no hand or say in - how they created). You can either boot into the CD installation - directly from DOS using the <filename>install.bat</filename> or - you can make floppies with the <filename>makeflp.bat</filename> - command.</para> - - <para>If the CD has El Torito boot support and your system - supports booting directly from the CDROM drive (many older - systems do <emphasis>NOT</emphasis>), simply insert the first - CD of the set into the drive and reboot your system. You - will be put into the installation menu directly from the CD.</para> - - <para>If you are installing from an MS-DOS partition and have - the proper drivers to access your CD, run the - <filename>install.bat</filename> script provided on the CDROM. - This will attempt to boot the FreeBSD installation directly - from DOS.</para> - - <note> - <para>You must do this from actual DOS (i.e., boot in DOS - mode) and not from a DOS window under Windows.</para> - </note> - - <para>For the easiest interface of all (from DOS), type - <command>view</command>. This will bring up a DOS menu utility - that leads you through all of the available options.</para> - - <para>If you are creating the boot floppies from a UNIX machine, - see the <link linkend="install-floppies">Creating the Boot - Floppies</link> section of this guide for examples.</para> - - <para>Once you have booted from DOS or floppy, you should then be - able to select CDROM as the media type during the install - process and load the entire distribution from CDROM. No other - types of installation media should be required.</para> - - <para>After your system is fully installed and you have rebooted - (from the hard disk), you can mount the CDROM at any time by - typing:</para> - - <screen>&prompt.root; <userinput>mount /cdrom</userinput></screen> - - <para>Before removing the CD from the drive again, you must first - unmount it. This is done with the following command:</para> - - <screen>&prompt.root; <userinput>umount /cdrom</userinput></screen> - - <para>Do not just remove it from the drive!</para> - - <note> - <para>Before invoking the installation, be sure that the CDROM - is in the drive so that the install probe can find it. This - is also true if you wish the CDROM to be added to the default - system configuration automatically during the installation (whether - or not you actually use it as the installation media).</para> - </note> - - <para>Finally, if you would like people to be able to FTP install - FreeBSD directly from the CDROM in your machine, you will find - it quite easy. After the machine is fully installed, you simply - need to add the following line to the password file (using the - <command>vipw</command> command):</para> - - <programlisting> -ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent</programlisting> - - <para>Anyone with network connectivity to your machine can now - chose a media type of FTP and type in - <userinput>ftp://<replaceable>your machine</replaceable></userinput> - after picking <quote>Other</quote> in the FTP sites menu during - the install.</para> - - <note><para>If you choose to enable anonymous FTP during the - installation of your system, the installation program will do - the above for you.</para></note> - - </sect3> - - <sect3> - <title>Before installing from Floppies</title> - - <para>If you must install from floppy disk (which we suggest you - do <emphasis>NOT</emphasis> do), either due to unsupported - hardware or simply because you insist on doing things the hard - way, you must first prepare some floppies for the installation.</para> - - <para>At a minimum, you will need as many 1.44MB or 1.2MB floppies - as it takes to hold all the files in the - <filename>bin</filename> (binary distribution) directory. If - you are preparing the floppies from DOS, then they - <emphasis>MUST</emphasis> be formatted using the MS-DOS - <command>FORMAT</command> command. If you are using Windows, - use Explorer to format the disks (right-click on the - <devicename>A:</devicename> drive, and select "Format".</para> - - <para>Do <emphasis>NOT</emphasis> trust factory pre-formatted - floppies! Format them again yourself, just to be sure. Many - problems reported by our users in the past have resulted from - the use of improperly formatted media, which is why we are - making a point of it now.</para> - - <para>If you are creating the floppies on another FreeBSD machine, - a format is still not a bad idea, though you do not need to put - a DOS filesystem on each floppy. You can use the - <command>disklabel</command> and <command>newfs</command> - commands to put a UFS filesystem on them instead, as the - following sequence of commands (for a 3.5" 1.44MB floppy) - illustrates:</para> - - <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> - - <note> - <para>Use <literal>fd0.1200</literal> and - <literal>floppy5</literal> for 5.25" 1.2MB disks.</para> - </note> - - <para>Then you can mount and write to them like any other - filesystem.</para> - - <para>After you have formatted the floppies, you will need to copy - the files to them. The distribution files are split into chunks - conveniently sized so that 5 of them will fit on a conventional - 1.44MB floppy. Go through all your floppies, packing as many - files as will fit on each one, until you have all of the - distributions you want packed up in this fashion. Each - distribution should go into a subdirectory on the floppy, e.g.: - <filename>a:\bin\bin.aa</filename>, - <filename>a:\bin\bin.ab</filename>, and so on.</para> - - <para>Once you come to the Media screen during the install - process, select <quote>Floppy</quote> and you will be prompted - for the rest.</para> - </sect3> - - <sect3 id="install-msdos"> - <title>Before Installing from MS-DOS</title> - - <para>To prepare for an installation from an MS-DOS partition, - copy the files from the distribution into a directory named, - for example, <filename>c:\FreeBSD</filename>. The directory - structure of the CDROM or FTP site must be partially reproduced - within this directory, so we suggest using the DOS - <command>xcopy</command> command if you are copying it from a - CD. For example, to prepare for a minimal installation of - FreeBSD:</para> - - <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> - - <para>Assuming that <devicename>C:</devicename> is where you have - free space and <devicename>E:</devicename> is where your CDROM - is mounted.</para> - - <para>If you do not have a CDROM drive, you can download the - distribution from <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/&rel.current;-RELEASE/"> - ftp.FreeBSD.org</ulink>. Each distribution is in its own directory; - for example, the <emphasis>bin</emphasis> distribution can be - found in the <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/&rel.current;-RELEASE/bin">&rel.current;/bin</ulink> directory.</para> - - <para>For as many distributions you wish to install from an MS-DOS - partition (and you have the free space for), install each one - under <filename>c:\FreeBSD</filename> — the - <literal>BIN</literal> distribution is the only one required for - a minimum installation.</para> - </sect3> - - <sect3> - <title>Before Installing from QIC/SCSI Tape</title> - - <para>Installing from tape is probably the easiest method, short - of an online FTP install or CDROM install. The installation - program expects the files to be simply tarred onto the tape, so - after getting all of the distribution files you are interested - in, simply tar them onto the tape like so:</para> - - <screen>&prompt.root; <userinput>cd /freebsd/distdir</userinput> -&prompt.root; <userinput>tar cvf /dev/rwt0 dist1 ... dist2</userinput></screen> - - <para>When you go to do the installation, you should also make - sure that you leave enough room in some temporary directory - (which you will be allowed to choose) to accommodate the - <emphasis>full</emphasis> contents of the tape you have created. - Due to the non-random access nature of tapes, this method of - installation requires quite a bit of temporary storage. You - should expect to require as much temporary storage as you have - stuff written on tape.</para> - - <note> - <para>When starting the installation, the tape must be in the - drive <emphasis>before</emphasis> booting from the boot - floppy. The installation probe may otherwise fail to find - it.</para> - </note> - </sect3> - - <sect3> - <title>Before Installing over a Network</title> - - <para>There are three types of network installations you can do. - Serial port (SLIP or PPP), Parallel port (PLIP (laplink cable)), - or Ethernet (a standard ethernet controller (includes some - PCMCIA)).</para> - - <para>The SLIP support is rather primitive, and limited primarily - to hard-wired links, such as a serial cable running between a - laptop computer and another computer. The link should be - hard-wired as the SLIP installation does not currently offer a - dialing capability; that facility is provided with the PPP - utility, which should be used in preference to SLIP whenever - possible.</para> - - <para>If you are using a modem, then PPP is almost certainly - your only choice. Make sure that you have your service - provider's information handy as you will need to know it fairly - early in the installation process.</para> - <para>If you use PAP or CHAP to connect your ISP (in other - words, if you can connect to the ISP in Windows without - using a script), then all you will need to do is type in - <command>dial</command> at the - <application>ppp</application> prompt. Otherwise, - you will need to know - how to dial your ISP using the <quote>AT commands</quote> - specific to your modem, as the PPP dialer provides only a very - simple terminal emulator. Please - to the user-ppp <link linkend="userppp">handbook</link> and <ulink - url="../FAQ/ppp.html">FAQ</ulink> entries for further - information. If you have problems, logging can be directed to - the screen using the command <command>set log local - ...</command>.</para> - - <para>If a hard-wired connection to another FreeBSD (2.0-R or - later) machine is available, you might also consider installing - over a <quote>laplink</quote> parallel port cable. The data rate - over the parallel port is much higher than what is typically - possible over a serial line (up to 50kbytes/sec), thus resulting - in a quicker installation.</para> - - <para>Finally, for the fastest possible network installation, an - ethernet adapter is always a good choice! FreeBSD supports most - common PC ethernet cards; a table of supported cards (and their - required settings) is provided in the <link - linkend="install-hw">Supported Hardware</link> list. If you are - using one of the supported PCMCIA ethernet cards, also be sure - that it is plugged in <emphasis>before</emphasis> the laptop is - powered on! FreeBSD does not, unfortunately, currently support - hot insertion of PCMCIA cards during installation.</para> - - <para>You will also need to know your IP address on the network, - the netmask value for your address class, and the name of your - machine. If you are installing over a PPP connection and do not - have a static IP, fear not, the IP address can be dynamically - assigned by your ISP. Your system administrator can tell you - which values to use for your particular network setup. If you - will be referring to other hosts by name rather than IP address, - you will also need a name server and possibly the address of a - gateway (if you are using PPP, it is your provider's IP address) - to use in talking to it. If you do not know the answers to all - or most of these questions, then you should really probably talk - to your system administrator or ISP <emphasis>before</emphasis> trying - this type of installation.</para> - - <sect4> - <title>Before Installing via NFS</title> - - <para>The NFS installation is fairly straight-forward. Simply - copy the FreeBSD distribution files you want onto a server - somewhere and then point the NFS media selection at it.</para> - - <para>If this server supports only <quote>privileged port</quote> - (as is generally the default for Sun workstations), you will - need to set this option in the Options menu before - installation can proceed.</para> - - <para>If you have a poor quality ethernet card which suffers - from very slow transfer rates, you may also wish to toggle the - appropriate Options flag.</para> - - <para>In order for NFS installation to work, the server must - support subdir mounts, e.g., if your FreeBSD 3.4 distribution - directory lives - on:<filename>ziggy:/usr/archive/stuff/FreeBSD</filename>, then - <hostid>ziggy</hostid> will have to allow the direct mounting - of <filename>/usr/archive/stuff/FreeBSD</filename>, not just - <filename>/usr</filename> or - <filename>/usr/archive/stuff</filename>.</para> - - <para>In FreeBSD's <filename>/etc/exports</filename> file, this - is controlled by the <option>-alldirs</option>. Other NFS - servers may have different conventions. If you are getting - <quote>permission denied</quote> messages from the server, then - it is likely that you do not have this enabled - properly.</para> - </sect4> - - <sect4> - <title>Before Installing via FTP</title> - - <para>FTP installation may be done from any FreeBSD mirror site - containing a reasonably up-to-date version of FreeBSD. A full - list of FTP mirrors located all over the world is provided - during the install process.</para> - - <para>If you are installing from an FTP site not listed in this - menu, or are having trouble getting your name server - configured properly, you can also specify a URL to use by - selecting the choice labeled <quote>Other</quote> in that menu. - You can also use the IP address of a machine you wish to - install from, so the following would work in the absence of a - name server:</para> - - <screen><userinput>ftp://209.55.82.20/pub/FreeBSD/&rel.current;-RELEASE</userinput></screen> - - <para>There are two FTP installation modes you can choose from: - active or passive FTP.</para> - - <variablelist> - <varlistentry> - <term>FTP Active</term> - - <listitem> - <para>This option will make all FTP transfers - use <quote>Active</quote> - mode. This will not work through firewalls, but will - often work with older FTP servers that do not support - passive mode. If your connection hangs with passive - mode (the default), try active!</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FTP Passive</term> - - <listitem> - <para>This option instructs FreeBSD to use - <quote>Passive</quote> mode for all FTP operations. - This allows the user to pass through firewalls - that do not allow incoming connections on random port - addresses.</para> - </listitem> - </varlistentry> - </variablelist> - - <note> - <para>Active and passive modes are not the same as a - <quote>proxy</quote> connection, where a proxy FTP server is - listening and forwarding FTP requests!</para> - </note> - - <para>For a proxy FTP server, you should usually give the name - of the server you really want as a part of the username, after - an <quote>@</quote> sign. The proxy server then - <quote>fakes</quote> the real server. For example, assuming - you want to install from <hostid - role="fqdn">ftp.FreeBSD.org</hostid>, using the proxy FTP - server <hostid role="fqdn">foo.bar.com</hostid>, listening on - port 1024.</para> - - <para>In this case, you go to the options menu, set the FTP - username to ftp@ftp.FreeBSD.org, and the password to your - email address. As your installation media, you specify FTP - (or passive FTP, if the proxy supports it), and the URL - <literal>ftp://foo.bar.com:1234/pub/FreeBSD</literal>.</para> - - <para>Since <filename>/pub/FreeBSD</filename> from <hostid - role="fqdn">ftp.FreeBSD.org</hostid> is proxied under <hostid - role="fqdn">foo.bar.com</hostid>, you are able to install from - <emphasis>that</emphasis> machine (which will fetch the files - from <hostid role="fqdn">ftp.FreeBSD.org</hostid> as your - installation requests them.</para> - </sect4> - </sect3> - - <sect3> - <title>Check your BIOS drive numbering</title> - - <para>If you have used features in your BIOS to renumber your disk - drives without recabling them then you should read <xref - linkend="disks-bios-numbering"> first to ensure you do not - confused.</para> - </sect3> - </sect2> - - <sect2 id="install-freebsd"> - <title>Installing FreeBSD</title> - - <para>Once you have completed the pre-installation step relevant to - your situation, you are ready to install FreeBSD!</para> - - <para>Although you should not experience any difficulty, there is - always the chance that you may, no matter how slight it is. If this - is the case in your situation, then you may wish to go back and - re-read the relevant preparation section or sections. Perhaps you - will come across something you missed the first time. If you are - having hardware problems, or FreeBSD refuses to boot at all, read - the Hardware Guide on the boot floppy for a list of possible - solutions.</para> - - <para>The FreeBSD boot floppies contain all of the online - documentation you should need to be able to navigate through an - installation. If it does not, please let us know what you found - to be the most confusing or most lacking. Send your comments to - the &a.doc;. It is the objective of the installation program - (sysinstall) to be self-documenting enough that painful - <quote>step-by-step</quote> guides are no longer necessary. It may - take us a little while to reach that objective, but nonetheless, - it is still our objective :-)</para> - - <para>Meanwhile, you may also find the following <quote>typical - installation sequence</quote> to be helpful:</para> - - <orderedlist> - <listitem> - <para>Boot the <filename>kern.flp</filename> floppy and when - asked, remove it and insert the - <filename>mfsroot.flp</filename> and hit return. After a - boot sequence which can take anywhere from 30 seconds to 3 - minutes, depending on your hardware, you should be presented - with a menu of initial choices. If the - <filename>kern.flp</filename> floppy does not boot at all or - the boot hangs at some stage, read the Q&A section of the - Hardware Guide on the floppy for possible causes.</para> - </listitem> - - <listitem> - <para>Press F1. You should see some basic usage instructions on - the menu screen and general navigation. If you have not used - this menu system before then <emphasis>please</emphasis> read - this thoroughly.</para> - </listitem> - - <listitem> - <para>Select the Options item and set any special preferences - you may have.</para> - </listitem> - - <listitem> - <para>Select a Standard, Express, or Custom install, depending on - whether or not you would like the installation to help you - through a typical installation, give you a high degree of - control over each step, or simply whiz through it (using - reasonable defaults when possible) as fast as possible. If - you have never used FreeBSD before, the Standard installation - method is most recommended.</para> - </listitem> - - <listitem> - <para>The final configuration menu choice allows you to further - configure your FreeBSD installation by giving you menu-driven - access to various system defaults. Some items, like - networking, may be especially important if you did a CDROM, - tape, or floppy install and have not yet configured your - network interfaces (assuming you have any). Properly - configuring such interfaces here will allow FreeBSD to come up - on the network when you first reboot from the hard - disk.</para> - </listitem> - </orderedlist> - </sect2> - </sect1> - - <sect1 id="install-hw"> - <title>Supported Hardware</title> - - <para>FreeBSD currently runs on a wide variety of ISA, VLB, EISA, and - PCI bus based PCs, ranging from the 386SX to Pentium class machines - (though the 386SX is not recommended). Support for generic IDE or - ESDI drive configurations, various SCSI controllers, and network and - serial cards is also provided.</para> - - <para>In order to run FreeBSD, a recommended minimum of eight - megabytes of RAM is suggested. Sixteen megabytes is the preferred - amount of RAM as you may have some trouble with anything less than - sixteen depending on your hardware.</para> - - <para>What follows is a list of hardware currently known to work with - FreeBSD. There may be other hardware that works as well, but we - have simply not received any confirmation of it.</para> - - <sect2> - <title>Disk Controllers</title> - - <itemizedlist> - <listitem> - <para>WD1003 (any generic MFM/RLL)</para> - </listitem> - - <listitem> - <para>WD1007 (any generic IDE/ESDI)</para> - </listitem> - - <listitem> - <para>IDE</para> - </listitem> - - <listitem> - <para>ATA</para> - </listitem> - - <listitem> - <para>Adaptec 1535 ISA SCSI controllers</para> - </listitem> - - <listitem> - <para>Adaptec 154X series ISA SCSI controllers</para> - </listitem> - - <listitem> - <para>Adaptec 174X series EISA SCSI controllers in standard and - enhanced mode</para> - </listitem> - - <listitem> - <para>Adaptec 274X/284X/2920C/294X/2950/3940/3950 - (Narrow/Wide/Twin) series EISA/VLB/PCI SCSI controllers</para> - </listitem> - - <listitem> - <para>Adaptec AIC-7850, AIC-7860, AIC-7880, AIC-789X on-board SCSI - controllers</para> - </listitem> - - <listitem> - <para>Adaptec 1510 series ISA SCSI controllers (not for bootable - devices)</para> - </listitem> - - <listitem> - <para>Adaptec 152X series ISA SCSI controllers</para> - </listitem> - - <listitem> - <para>Adaptec AIC-6260 and AIC-6360 based boards, which include - the AHA-152X and SoundBlaster SCSI cards</para> - </listitem> - - <listitem> - <para>AdvanSys SCSI controllers (all models)</para> - </listitem> - - <listitem> - <para>BusLogic MultiMaster <quote>W</quote> Series Host Adapters - including BT-948, BT-958, BT-9580</para> - </listitem> - - <listitem> - <para>BusLogic MultiMaster <quote>C</quote> Series Host Adapters - including BT-946C, BT-956C, BT-956CD, BT-445C, BT-747C, - BT-757C, BT-757CD, BT-545C, BT-540CF</para> - </listitem> - - <listitem> - <para>BusLogic MultiMaster <quote>S</quote> Series Host Adapters - including BT-445S, BT-747S, BT-747D, BT-757S, BT-757D, - BT-545S, BT-542D, BT-742A, BT-542B</para> - </listitem> - - <listitem> - <para>BusLogic MultiMaster <quote>A</quote> Series Host Adapters - including BT-742A, BT-542B</para> - </listitem> - - <listitem> - <para>AMI FastDisk controllers that are true BusLogic - MultiMaster clones are also supported.</para> - - <note> - <para>BusLogic/Mylex <quote>Flashpoint</quote> adapters are NOT - yet supported.</para> - </note> - </listitem> - - <listitem> - <para>DPT SmartCACHE Plus, SmartCACHE III, SmartRAID III, - SmartCACHE IV, and SmartRAID IV SCSI/RAID are supported. The - DPT SmartRAID/CACHE V is not yet supported.</para> - </listitem> - - <listitem> - <para>Compaq Intelligent Disk Array Controllers: IDA, IDA-2, IAES, - SMART, SMART-2/E, Smart-2/P, SMART-2SL, Integrated Array, and - Smart Arrays 3200, 3100ES, 221, 4200, 4200, 4250ES.</para> - </listitem> - - <listitem> - <para>SymBios (formerly NCR) 53C810, 53C810a, 53C815, 53C820, - 53C825a, 53C860, 53C875, 53C875j, 53C885, and 53C896 PCI SCSI - controllers including ASUS SC-200, Data Technology DTC3130 - (all variants), Diamond FirePort (all), NCR cards (all), - SymBios cards (all), Tekram DC390W, 390U, and 390F, and Tyan - S1365</para> - </listitem> - - <listitem> - <para>QLogic 1020, 1040, 1040B, and 2100 SCSI and Fibre - Channel Adapters</para> - </listitem> - - <listitem> - <para>DTC 3290 EISA SCSI controller in 1542 evaluation - mode</para> - </listitem> - </itemizedlist> - - <para>With all supported SCSI controllers, full support is provided - for SCSI-I and SCSI-II peripherals, including hard disks, optical - disks, tape drives (including DAT and 8mm Exabyte), medium - changers, processor target devices, and CDROM drives. WORM - devices that support CDROM commands are supported for read-only - access by the CDROM driver. WORM/CD-R/CD-RW writing support is - provided by cdrecord, which is in the ports tree.</para> - - <para>The following CD-ROM type systems are supported at this - time:</para> - - <itemizedlist> - <listitem> - <para><devicename>cd</devicename> - SCSI interface (includes - ProAudio Spectrum and SoundBlaster SCSI)</para> - </listitem> - - <listitem> - <para><devicename>matcd</devicename> - Matsushita/Panasonic - (Creative Soundblaster) proprietary interface (562/563 - models)</para> - </listitem> - - <listitem> - <para><devicename>scd</devicename> - Sony proprietary interface - (all models)</para> - </listitem> - - <listitem> - <para><devicename>acd</devicename> - ATAPI IDE interface</para> - </listitem> - </itemizedlist> - - <para>The following drivers were supported under the old SCSI - subsystem, but are NOT YET supported under the new CAM SCSI - subsystem:</para> - - <itemizedlist> - <listitem> - <para>NCR5380/NCR53400 (<quote>ProAudio Spectrum</quote>) SCSI - controller</para> - </listitem> - - <listitem> - <para>UltraStor 14F, 24F, and 34F SCSI controllers</para> - </listitem> - - <listitem> - <para>Seagate ST01/02 SCSI controllers</para> - </listitem> - - <listitem> - <para>Future Domain 8XX/950 series SCSI controllers</para> - </listitem> - - <listitem> - <para>WD7000 SCSI controller</para> - - <note> - <para>There is work-in-progress to port the UltraStor driver - to the new CAM framework, but no estimates on when or if it - will be completed.</para> - </note> - </listitem> - </itemizedlist> - - <para>Unmaintained drivers, which might or might not work for your - hardware:</para> - - <itemizedlist> - <listitem> - <para>Floppy tape interface (Colorado/Mountain/Insight)</para> - </listitem> - - <listitem> - <para><devicename>mcd</devicename> - Mitsumi proprietary CD-ROM - interface (all models)</para> - </listitem> - </itemizedlist> - </sect2> - - <sect2 id="install-nics"> - <title>Network Cards</title> - - <itemizedlist> - <listitem> - <para>Adaptec Duralink PCI fast ethernet adapters based on the - Adaptec AIC-6195 fast ethernet controller chip, including the - following:</para> - - <itemizedlist> - <listitem> - <para>ANA-62011 64-bit single port 10/100baseTX - adapter</para> - </listitem> - - <listitem> - <para>ANA-62022 64-bit dual port 10/100baseTX adapter</para> - </listitem> - - <listitem> - <para>ANA-62044 64-bit quad port 10/100baseTX adapter</para> - </listitem> - - <listitem> - <para>ANA-69011 32-bit single port 10/100baseTX - adapter</para> - </listitem> - - <listitem> - <para>ANA-62020 64-bit single port 100baseFX adapter</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Allied-Telesyn AT1700 and RE2000 cards</para> - </listitem> - - <listitem> - <para>Alteon Networks PCI gigabit ethernet NICs based on the - Tigon 1 and Tigon 2 chipsets including the Alteon AceNIC - (Tigon 1 and 2), 3Com 3c985-SX (Tigon 1 and 2), Netgear GA620 - (Tigon 2), Silicon Graphics Gigabit Ethernet, DEC/Compaq - EtherWORKS 1000, NEC Gigabit Ethernet</para> - </listitem> - - <listitem> - <para>AMD PCnet/PCI (79c970 and 53c974 or 79c974)</para> - </listitem> - - <listitem> - <para>RealTek 8129/8139 fast ethernet NICs including the - following:</para> - - <itemizedlist> - <listitem> - <para>Allied-Telesyn AT2550</para> - </listitem> - - <listitem> - <para>Allied-Telesyn AT2500TX</para> - </listitem> - - <listitem> - <para>Genius GF100TXR (RTL8139)</para> - </listitem> - - <listitem> - <para>NDC Communications NE100TX-E</para> - </listitem> - - <listitem> - <para>OvisLink LEF-8129TX</para> - </listitem> - - <listitem> - <para>OvisLink LEF-8139TX</para> - </listitem> - - <listitem> - <para>Netronix Inc. EA-1210 NetEther 10/100</para> - </listitem> - - <listitem> - <para>KTX-9130TX 10/100 Fast Ethernet</para> - </listitem> - - <listitem> - <para>Accton <quote>Cheetah</quote> EN1027D (MPX 5030/5038; - RealTek 8139 clone?)</para> - </listitem> - - <listitem> - <para>SMC EZ Card 10/100 PCI 1211-TX</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Lite-On 98713, 98713A, 98715, and 98725 fast ethernet - NICs, including the LinkSys EtherFast LNE100TX, NetGear - FA310-TX Rev. D1, Matrox FastNIC 10/100, Kingston - KNE110TX</para> - </listitem> - - <listitem> - <para>Macronix 98713, 98713A, 98715, 98715A, and 98725 fast - ethernet NICs including the NDC Communications SFA100A - (98713A), CNet Pro120A (98713 or 98713A), CNet Pro120B - (98715), SVEC PN102TX (98713)</para> - </listitem> - - <listitem> - <para>Macronix/Lite-On PNIC II LC82C115 fast ethernet NICs - including the LinkSys EtherFast LNE100TX version 2</para> - </listitem> - - <listitem> - <para>Winbond W89C840F fast ethernet NICs including the - Trendware TE100-PCIE</para> - </listitem> - - <listitem> - <para>VIA Technologies VT3043 <quote>Rhine I</quote> and - VT86C100A <quote>Rhine II</quote> fast ethernet NICs including - the Hawking Technologies PN102TX and D-Link DFE-530TX</para> - </listitem> - - <listitem> - <para>Silicon Integrated Systems SiS 900 and SiS 7016 PCI fast - ethernet NICs</para> - </listitem> - - <listitem> - <para>Sundance Technologies ST201 PCI fast ethernet NICs - including the D-Link DFE-550TX</para> - </listitem> - - <listitem> - <para>SysKonnect SK-984x PCI gigabit ethernet cards including - the SK-9841 1000baseLX (single mode fiber, single port), - the SK-9842 1000baseSX (multimode fiber, single port), the - SK-9843 1000baseLX (single mode fiber, dual port), and the - SK-9844 1000baseSX (multimode fiber, dual port).</para> - </listitem> - - <listitem> - <para>Texas Instruments ThunderLAN PCI NICs, including the - Compaq Netelligent 10, 10/100, 10/100 Proliant, 10/100 - Dual-Port, 10/100 TX Embedded UTP, 10 T PCI UTP/Coax, and - 10/100 TX UTP, the Compaq NetFlex 3P, 3P Integrated, and 3P - w/BNC, the Olicom OC-2135/2138, OC-2325, OC-2326 10/100 TX - UTP, and the Racore 8165 10/100baseTX and 8148 - 10baseT/100baseTX/100baseFX multi-personality cards</para> - </listitem> - - <listitem> - <para>ADMtek AL981-based and AN985-based PCI fast ethernet - NICs</para> - </listitem> - - <listitem> - <para>ASIX Electronics AX88140A PCI NICs including the Alfa Inc. - GFC2204 and CNet Pro110B</para> - </listitem> - - <listitem> - <para>DEC EtherWORKS III NICs (DE203, DE204, and DE205)</para> - </listitem> - - <listitem> - <para>DEC EtherWORKS II NICs (DE200, DE201, DE202, and - DE422)</para> - </listitem> - - <listitem> - <para>DEC DC21040, DC21041, or DC21140 based NICs (SMC - Etherpower 8432T, DE245, etc.)</para> - </listitem> - - <listitem> - <para>DEC FDDI (DEFPA/DEFEA) NICs</para> - </listitem> - - <listitem> - <para>Efficient ENI-155p ATM PCI</para> - </listitem> - - <listitem> - <para>FORE PCA-200E ATM PCI</para> - </listitem> - - <listitem> - <para>Fujitsu MB86960A/MB86965A</para> - </listitem> - - <listitem> - <para>HP PC Lan+ cards (model numbers: 27247B and 27252A)</para> - </listitem> - - <listitem> - <para>Intel EtherExpress (not recommended due to driver - instability)</para> - </listitem> - - <listitem> - <para>Intel EtherExpress Pro/10</para> - </listitem> - - <listitem> - <para>Intel EtherExpress Pro/100B PCI Fast Ethernet</para> - </listitem> - - <listitem> - <para>Isolan AT 4141-0 (16 bit)</para> - </listitem> - - <listitem> - <para>Isolink 4110 (8 bit)</para> - </listitem> - - <listitem> - <para>Novell NE1000, NE2000, and NE2100 Ethernet - interfaces</para> - </listitem> - - <listitem> - <para>PCI network cards emulating the NE2000, including the - RealTek 8029, NetVin 5000, Winbond W89C940, Surecom NE-34, VIA - VT86C926</para> - </listitem> - - <listitem> - <para>3Com 3C501, 3C503 Etherlink II, 3C505 Etherlink/+, 3C507 - Etherlink 16/TP, 3C509, 3C579, 3C589 (PCMCIA), - 3C590/592/595/900/905/905B/905C PCI and EISA (Fast) Etherlink - III / (Fast) Etherlink XL, 3C980/3C980B Fast Etherlink XL - server adapter, 3CSOHO100-TX OfficeConnect adapter</para> - </listitem> - - <listitem> - <para>Toshiba ethernet cards</para> - </listitem> - - <listitem> - <para>PCMCIA ethernet cards from IBM and National Semiconductor - are also supported</para> - </listitem> - </itemizedlist> - </sect2> - - <sect2 id="install-usb"> - <title>USB Peripherals</title> - - <para>A wide range of USB peripherals are supported. Owing to the - generic nature of most USB devices, with some exceptions any - device of a given class will be supported even if not explicitly - listed here.</para> - - <itemizedlist> - <listitem> - <para>USB keyboards</para> - </listitem> - - <listitem> - <para>USB mice</para> - </listitem> - - <listitem> - <para>USB printers and USB to parallel printer conversion - cables</para> - </listitem> - - <listitem> - <para>USB hubs</para> - </listitem> - </itemizedlist> - - <para>Motherboard chipsets:</para> - - <itemizedlist> - <listitem> - <para>ALi Aladdin-V</para> - </listitem> - - <listitem> - <para>Intel 82371SB (PIIX3) and 82371AB and EB (PIIX4) - chipsets</para> - </listitem> - - <listitem> - <para>NEC uPD 9210 Host Controller</para> - </listitem> - - <listitem> - <para>VIA 83C572 USB Host Controller</para> - - <para>and any other UHCI or OHCI compliant motherboard chipset - (no exceptions known).</para> - </listitem> - </itemizedlist> - - <para>PCI plug-in USB host controllers</para> - - <itemizedlist> - <listitem> - <para>ADS Electronics PCI plug-in card (2 ports)</para> - </listitem> - - <listitem> - <para>Entrega PCI plug-in card (4 ports)</para> - </listitem> - </itemizedlist> - - <para>Specific USB devices reported to be working:</para> - - <itemizedlist> - <listitem> - <para>Agiler Mouse 29UO</para> - </listitem> - - <listitem> - <para>Andromeda hub</para> - </listitem> - - <listitem> - <para>Apple iMac mouse and keyboard</para> - </listitem> - - <listitem> - <para>ATen parallel printer adapter</para> - </listitem> - - <listitem> - <para>Belkin F4U002 parallel printer adapter and Belkin - mouse</para> - </listitem> - - <listitem> - <para>BTC BTC7935 keyboard with mouse port</para> - </listitem> - - <listitem> - <para>Cherry G81-3504</para> - </listitem> - - <listitem> - <para>Chic mouse</para> - </listitem> - - <listitem> - <para>Cypress mouse</para> - </listitem> - - <listitem> - <para>Entrega USB-to-parallel printer adapter</para> - </listitem> - - <listitem> - <para>Genius Niche mouse</para> - </listitem> - - <listitem> - <para>Iomega USB Zip 100 MB</para> - </listitem> - - <listitem> - <para>Kensington Mouse-in-a-Box</para> - </listitem> - - <listitem> - <para>Logitech M2452 keyboard</para> - </listitem> - - <listitem> - <para>Logictech wheel mouse (3 buttons)</para> - </listitem> - - <listitem> - <para>Logitech PS/2 / USB mouse (3 buttons)</para> - </listitem> - - <listitem> - <para>MacAlly mouse (3 buttons)</para> - </listitem> - - <listitem> - <para>MacAlly self-powered hub (4 ports)</para> - </listitem> - - <listitem> - <para>Microsoft Intellimouse (3 buttons)</para> - </listitem> - - <listitem> - <para>Microsoft keyboard</para> - </listitem> - - <listitem> - <para>NEC hub</para> - </listitem> - - <listitem> - <para>Trust Ami Mouse (3 buttons)</para> - </listitem> - </itemizedlist> - </sect2> - - <sect2 id="install-isdn"> - <title>ISDN (European DSS1 [Q.921/Q.931] protocol)</title> - - <itemizedlist> - <listitem> - <para>Asuscom I-IN100-ST-DV (experimental, may work)</para> - </listitem> - - <listitem> - <para>Asuscom ISDNlink 128K</para> - </listitem> - - <listitem> - <para>AVM A1</para> - </listitem> - - <listitem> - <para>AVM Fritz!Card classic</para> - </listitem> - - <listitem> - <para>AVM Fritz!Card PCI</para> - </listitem> - - <listitem> - <para>AVM Fritz!Card PCMCIA (currently FreeBSD 3.x only)</para> - </listitem> - - <listitem> - <para>AVM Fritz!Card PnP (currently FreeBSD 3.x only)</para> - </listitem> - - <listitem> - <para>Creatix ISDN-S0/8</para> - </listitem> - - <listitem> - <para>Creatix ISDN-S0/16</para> - </listitem> - - <listitem> - <para>Creatix ISDN-S0 PnP</para> - </listitem> - - <listitem> - <para>Dr.Neuhaus Niccy 1008</para> - </listitem> - - <listitem> - <para>Dr.Neuhaus Niccy 1016</para> - </listitem> - - <listitem> - <para>Dr.Neuhaus Niccy GO@ (ISA PnP)</para> - </listitem> - - <listitem> - <para>Dynalink IS64PH (no longer maintained)</para> - </listitem> - - <listitem> - <para>ELSA 1000pro ISA</para> - </listitem> - - <listitem> - <para>ELSA 1000pro PCI</para> - </listitem> - - <listitem> - <para>ELSA PCC-16</para> - </listitem> - - <listitem> - <para>ITK ix1 micro (currently FreeBSD 3.x only)</para> - </listitem> - - <listitem> - <para>ITK ix1 micro V.3 (currently FreeBSD 3.x only)</para> - </listitem> - - <listitem> - <para>Sagem Cybermod (ISA PnP, may work)</para> - </listitem> - - <listitem> - <para>Sedlbauer Win Speed</para> - </listitem> - - <listitem> - <para>Siemens I-Surf 2.0</para> - </listitem> - - <listitem> - <para>Stollman Tina-pp (under development)</para> - </listitem> - - <listitem> - <para>Teles S0/8</para> - </listitem> - - <listitem> - <para>Teles S0/16</para> - </listitem> - - <listitem> - <para>Teles S0/16.3 (the <quote>c</quote> Versions - like 16.3c - - are unsupported!)</para> - </listitem> - - <listitem> - <para>Teles S0 PnP (experimental, may work)</para> - </listitem> - - <listitem> - <para>3Com/USRobotics Sportster ISDN TA intern (non-PnP - version)</para> - </listitem> - </itemizedlist> - </sect2> - - <sect2 id="install-misc"> - <title>Miscellaneous Devices</title> - - <itemizedlist> - <listitem> - <para>AST 4 port serial card using shared IRQ</para> - </listitem> - - <listitem> - <para>ARNET 8 port serial card using shared IRQ</para> - </listitem> - - <listitem> - <para>ARNET (now Digiboard) Sync 570/i high-speed serial</para> - </listitem> - - <listitem> - <para>Boca BB1004 4-Port serial card (Modems NOT - supported)</para> - </listitem> - - <listitem> - <para>Boca IOAT66 6-Port serial card (Modems supported)</para> - </listitem> - - <listitem> - <para>Boca BB1008 8-Port serial card (Modems NOT - supported)</para> - </listitem> - - <listitem> - <para>Boca BB2016 16-Port serial card (Modems supported)</para> - </listitem> - - <listitem> - <para>Cyclades Cyclom-y Serial Board</para> - </listitem> - - <listitem> - <para>Moxa SmartIO CI-104J 4-Port serial card</para> - </listitem> - - <listitem> - <para>STB 4 port card using shared IRQ</para> - </listitem> - - <listitem> - <para>SDL Communications RISCom/8 Serial Board</para> - </listitem> - - <listitem> - <para>SDL Communications RISCom/N2 and N2pci high-speed sync - serial boards</para> - </listitem> - - <listitem> - <para>Specialix SI/XIO/SX multiport serial cards, with both the - older SIHOST2.x and the new <quote>enhanced</quote> - (transputer based, aka JET) host cards; ISA, EISA and PCI are - supported</para> - </listitem> - - <listitem> - <para>Stallion multiport serial boards: EasyIO, EasyConnection - 8/32 & 8/64, ONboard 4/16 and Brumby</para> - </listitem> - - <listitem> - <para>Adlib, SoundBlaster, SoundBlaster Pro, ProAudioSpectrum, - Gravis UltraSound, and Roland MPU-401 sound cards</para> - </listitem> - - <listitem> - <para>Connectix QuickCam</para> - </listitem> - - <listitem> - <para>Matrox Meteor Video frame grabber</para> - </listitem> - - <listitem> - <para>Creative Labs Video Spigot frame grabber</para> - </listitem> - - <listitem> - <para>Cortex1 frame grabber</para> - </listitem> - - <listitem> - <para>Various frame grabbers based on the Brooktree Bt848 - and Bt878 chip</para> - </listitem> - - <listitem> - <para>HP4020, HP6020, Philips CDD2000/CDD2660 and Plasmon CD-R - drives</para> - </listitem> - - <listitem> - <para>Bus mice</para> - </listitem> - - <listitem> - <para>PS/2 mice</para> - </listitem> - - <listitem> - <para>Standard PC Joystick</para> - </listitem> - - <listitem> - <para>X-10 power controllers</para> - </listitem> - - <listitem> - <para>GPIB and Transputer drives</para> - </listitem> - - <listitem> - <para>Genius and Mustek hand scanners</para> - </listitem> - - <listitem> - <para>Floppy tape drives (some rather old models only, driver is - rather stale)</para> - </listitem> - - <listitem> - <para>Lucent Technologies WaveLAN/IEEE 802.11 PCMCIA and ISA - standard speed (2Mbps) and turbo speed (6Mbps) wireless - network adapters and workalikes (NCR WaveLAN/IEEE 802.11, - Cabletron RoamAbout 802.11 DS)</para> - - <note> - <para>The ISA versions of these adapters are actually PCMCIA - cards combined with an ISA to PCMCIA bridge card, so both - kinds of devices work with the same driver.</para> - </note> - </listitem> - </itemizedlist> - - <para>FreeBSD currently does NOT support IBM's microchannel (MCA) - bus.</para> - </sect2> - </sect1> - - <sect1 id="install-trouble"> - <title>Troubleshooting</title> - - <para>The following section covers basic installation troubleshooting, - such as common problems people have reported. There are also a few - questions and answers for people wishing to dual-boot FreeBSD with - MS-DOS.</para> - - <sect2> - <title>What to do if something goes wrong...</title> - - <para>Due to various limitations of the PC architecture, it is - impossible for probing to be 100% reliable, however, there are a - few things you can do if it fails.</para> - - <para>Check the <link linkend="install-hw">supported - hardware</link> list to make sure your hardware is - supported.</para> - - <para>If your hardware is supported and you still experience - lock-ups or other problems, reset your computer, and when the - visual kernel configuration option is given, choose it. This will - allow you to go through your hardware and supply information to the - system about it. The kernel on the boot disks is configured - assuming that most hardware devices are in their factory default - configuration in terms of IRQs, IO addresses, and DMA channels. If - your hardware has been reconfigured, you will most likely need to - use the configuration editor to tell FreeBSD where to find - things.</para> - - <para>It is also possible that a probe for a device not present will - cause a later probe for another device that is present to fail. In - that case, the probes for the conflicting driver(s) should be - disabled.</para> - - <warning> - <para>Do not disable any drivers you will need during the - installation, such as your screen (<devicename>sc0</devicename>). - If the installation wedges or fails mysteriously after leaving - the configuration editor, you have probably removed or changed - something you should not have. Reboot and try again.</para> - </warning> - - <para>In configuration mode, you can:</para> - - <itemizedlist> - <listitem> - <para>List the device drivers installed in the kernel.</para> - </listitem> - - <listitem> - <para>Change device drivers for hardware that is not present in - your system.</para> - </listitem> - - <listitem> - <para>Change IRQs, DRQs, and IO port addresses used by a device - driver.</para> - </listitem> - </itemizedlist> - - <para>After adjusting the kernel to match your hardware - configuration, type <command>Q</command> to boot with the new - settings. Once the installation has completed, any changes you - made in the configuration mode will be permanent so you do not have - to reconfigure every time you boot. It is still highly likely that - you will eventually want to build a <link - linkend="kernelconfig">custom kernel</link>.</para> - </sect2> - - <sect2> - <title>MS-DOS User's Questions and Answers</title> - - <para>Many users wish to install FreeBSD on PCs inhabited by MS-DOS. - Here are some commonly asked questions about installing FreeBSD on - such systems.</para> - - <qandaset> - <qandaentry> - <question> - <para>Help, I have no space! Do I need to delete everything - first?</para> - </question> - - <answer> - <para>If your machine is already running MS-DOS and has little - or no free space available for the FreeBSD installation, all - hope is not lost! You may find the FIPS utility, provided - in the <filename>tools</filename> directory on the FreeBSD - CDROM or various FreeBSD FTP sites to be quite - useful.</para> - - <para>FIPS allows you to split an existing MS-DOS partition - into two pieces, preserving the original partition and - allowing you to install onto the second free piece. You - first defragment your MS-DOS partition using the Windows - DEFRAG utility (go into Explorer, right-click on the - hard drive, and choose to defrag your - hard drive), or Norton Disk Tools. You then must run FIPS. It - will prompt you for the rest of the information it needs. - Afterwards, you can reboot and install FreeBSD on the new - free slice. See the <emphasis>Distributions</emphasis> menu - for an estimate of how much free space you will need for the - kind of installation you want.</para> - - <para>There is also a <emphasis>very</emphasis> useful - product from <ulink - url="http://www.powerquest.com/">PowerQuest</ulink> - called <application>Partition Magic</application>. This - application has far more functionality than FIPS, and is - highly recommended if you plan to often add/remove - operating systems (like me). However, it does cost - money, and if you plan to install FreeBSD once and then - leave it there, FIPS will probably be fine for you.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Can I use compressed MS-DOS filesystems from - FreeBSD?</para> - </question> - - <answer> - <para>No. If you are using a utility such as Stacker(tm) or - DoubleSpace(tm), FreeBSD will only be able to use whatever - portion of the filesystem you leave uncompressed. The rest - of the filesystem will show up as one large file (the - stacked/double spaced file!). <emphasis>Do not remove that - file or you will probably regret it - greatly!</emphasis></para> - - <para>It is probably better to create another uncompressed - primary MS-DOS partition and use this for communications - between MS-DOS and FreeBSD.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Can I mount my extended MS-DOS partition?</para> - </question> - - <answer> - <para>Yes. DOS extended partitions are mapped in at the end - of the other <quote>slices</quote> in FreeBSD, e.g., your - <devicename>D:</devicename> drive might be - <filename>/dev/da0s5</filename>, your - <devicename>E:</devicename> drive, - <filename>/dev/da0s6</filename>, and so on. This example - assumes, of course, that your extended partition is on SCSI - drive 0. For IDE drives, substitute <filename>ad</filename> - for <filename>da</filename> appropriately if installing - 4.0-RELEASE or later, and substitute - <filename>wd</filename> for <filename>da</filename> if you - are installing a version of FreeBSD prior to 4.0. You otherwise - mount extended partitions exactly like you would any other - DOS drive, for example:</para> - - <screen>&prompt.root; <userinput>mount -t msdos /dev/ad0s5 /dos_d</userinput></screen> - </answer> - </qandaentry> - </qandaset> - </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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml b/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml deleted file mode 100644 index cd347271f4..0000000000 --- a/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml +++ /dev/null @@ -1,718 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/introduction/chapter.sgml,v 1.28 2000/06/08 01:56:09 jim Exp $ ---> - -<chapter id="introduction"> - <title>Introduction</title> - - <para><emphasis>Restructured, reorganized, and parts rewritten by - &a.jim;, 17 January 2000.</emphasis></para> - - <sect1> - <title>Synopsis</title> - - <para>Thank you for your interest in FreeBSD! The following chapter - covers various items about the FreeBSD Project, such as its history, - goals, development model, and so on.</para> - - <para>FreeBSD is a 4.4BSD-Lite2 based operating system for the Intel - architecture (x86) and DEC Alpha based systems. Ports to other - architectures are also underway. For a brief overview of FreeBSD, - see the <link linkend="nutshell">next section</link>. You can also - read about <link linkend="history">the history of FreeBSD</link>, - or the <link linkend="relnotes">current release</link>. If you - are interested in contributing something to the Project (code, - hardware, unmarked bills), see the <link - linkend="contrib">contributing to FreeBSD</link> section.</para> - </sect1> - - <sect1 id="nutshell"> - <title>Welcome to FreeBSD!</title> - - <para>Since you are still here reading this, you most likely have some - idea as to what FreeBSD is and what it can do for you. If you are - new to FreeBSD, read on for more information.</para> - - <sect2> - <title>What is FreeBSD?</title> - - <para>In general, FreeBSD is a state-of-the-art operating system - based on 4.4BSD-Lite2. It runs on computer systems based on the - Intel architecture (x86), and also the DEC Alpha - architecture.</para> - - <para>FreeBSD is used to power some of the biggest sites on the - Internet, including:</para> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.yahoo.com/">Yahoo!</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.hotmail.com/">Hotmail</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.apache.org/">Apache</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.be.com/">Be, Inc.</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.bluemountain.com/">Blue Mountain - Arts</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.pair.com/">Pair - Networks</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.whistle.com/">Whistle - Communications</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.wccdrom.com/">Walnut Creek - CDROM</ulink></para> - </listitem> - </itemizedlist> - - <para>and many more.</para> - </sect2> - - <sect2> - <title>What can FreeBSD do?</title> - - <para>FreeBSD has many noteworthy features. Some of these - are:</para> - - <itemizedlist> - <listitem> - <para><emphasis>Preemptive multitasking</emphasis> with - dynamic priority adjustment to ensure smooth and fair - sharing of the computer between applications and users, even - under the heaviest of loads.</para> - </listitem> - - <listitem> - <para><emphasis>Multi-user facilities</emphasis> which allow many - people to use a FreeBSD system simultaneously for a variety - of things. This means, for example, that system peripherals - such as printers and tape drives are properly shared between - all users on the system or the network and that individual - resource limits can be placed on users or groups of users, - protecting critical system resources from over-use.</para> - </listitem> - - <listitem> - <para>Strong <emphasis>TCP/IP networking</emphasis> with - support for industry standards such as SLIP, PPP, NFS, DHCP, - and NIS. This means that your FreeBSD machine can - inter-operate easily with other systems as well as act as an - enterprise server, providing vital functions such as NFS - (remote file access) and e-mail services or putting your - organization on the Internet with WWW, FTP, routing and - firewall (security) services.</para> - </listitem> - - <listitem> - <para><emphasis>Memory protection</emphasis> ensures that - applications (or users) cannot interfere with each other. One - application crashing will not affect others in any way.</para> - </listitem> - - <listitem> - <para>FreeBSD is a <emphasis>32-bit</emphasis> operating - system (<emphasis>64-bit</emphasis> on the Alpha) and was - designed as such from the ground up.</para> - </listitem> - - <listitem> - <para>The industry standard <emphasis>X Window System</emphasis> - (X11R6) provides a graphical user interface (GUI) for the cost - of a common VGA card and monitor and comes with full - sources.</para> - </listitem> - - <listitem> - <para><emphasis>Binary compatibility</emphasis> with many - programs built for Linux, SCO, SVR4, BSDI and NetBSD.</para> - </listitem> - - <listitem> - <para>Thousands of <emphasis>ready-to-run</emphasis> - applications are available from the FreeBSD - <emphasis>ports</emphasis> and <emphasis>packages</emphasis> - collection. Why search the net when you can find it all right - here?</para> - </listitem> - - <listitem> - <para>Thousands of additional and - <emphasis>easy-to-port</emphasis> applications are available - on the Internet. FreeBSD is source code compatible with most - popular commercial Unix systems and thus most applications - require few, if any, changes to compile.</para> - </listitem> - - <listitem> - <para>Demand paged <emphasis>virtual memory</emphasis> and - <quote>merged VM/buffer cache</quote> design efficiently - satisfies applications with large appetites for memory while - still maintaining interactive response to other users.</para> - </listitem> - - <listitem> - <para><emphasis>SMP</emphasis> support for machines with - multiple CPUs (Intel only).</para> - </listitem> - - <listitem> - <para>A full complement of <emphasis>C</emphasis>, - <emphasis>C++</emphasis>, <emphasis>Fortran</emphasis>, and - <emphasis>Perl</emphasis> development tools. - Many additional languages for advanced research - and development are also available in the ports and packages - collection.</para> - </listitem> - - <listitem> - <para><emphasis>Source code</emphasis> for the entire system - means you have the greatest degree of control over your - environment. Why be locked into a proprietary solution - at the mercy of your vendor when you can have a truly Open - System?</para> - </listitem> - - <listitem> - <para>Extensive <emphasis>on-line - documentation</emphasis>.</para> - </listitem> - - <listitem> - <para><emphasis>And many more!</emphasis></para> - </listitem> - </itemizedlist> - - <para>FreeBSD is based on the 4.4BSD-Lite2 release from Computer - Systems Research Group (CSRG) at the University of California at - Berkeley, and carries on the distinguished tradition of BSD - systems development. In addition to the fine work provided by - CSRG, the FreeBSD Project has put in many thousands of hours in - fine tuning the system for maximum performance and reliability in - real-life load situations. As many of the commercial giants - struggle to field PC operating systems with such features, - performance and reliability, FreeBSD can offer them - <emphasis>now</emphasis>!</para> - - <para>The applications to which FreeBSD can be put are truly - limited only by your own imagination. From software development - to factory automation, inventory control to azimuth correction of - remote satellite antennae; if it can be done with a commercial - UNIX product then it is more than likely that you can do it with - FreeBSD, too! FreeBSD also benefits significantly from the - literally thousands of high quality applications developed by - research centers and universities around the world, often - available at little to no cost. Commercial applications are also - available and appearing in greater numbers every day.</para> - - <para>Because the source code for FreeBSD itself is generally - available, the system can also be customized to an almost unheard - of degree for special applications or projects, and in ways not - generally possible with operating systems from most major - commercial vendors. Here is just a sampling of some of the - applications in which people are currently using FreeBSD:</para> - - <itemizedlist> - <listitem> - <para><emphasis>Internet Services:</emphasis> The robust TCP/IP - networking built into FreeBSD makes it an ideal platform for a - variety of Internet services such as:</para> - - <itemizedlist> - <listitem> - <para>FTP servers</para> - </listitem> - - <listitem> - <para>World Wide Web servers (standard or secure - [SSL])</para> - </listitem> - - <listitem> - <para>Firewalls and NAT (<quote>IP masquerading</quote>) - gateways.</para> - </listitem> - - <listitem> - <para>Electronic Mail servers</para> - </listitem> - - <listitem> - <para>USENET News or Bulletin Board Systems</para> - </listitem> - - <listitem> - <para>And more...</para> - </listitem> - </itemizedlist> - - <para>With FreeBSD, you can easily start out small with an - inexpensive 386 class PC and upgrade all the way up to a - quad-processor Xeon with RAID storage as your enterprise - grows.</para> - </listitem> - - <listitem> - <para><emphasis>Education:</emphasis> Are you a student of - computer science or a related engineering field? There is no - better way of learning about operating systems, computer - architecture and networking than the hands on, under the hood - experience that FreeBSD can provide. A number of freely - available CAD, mathematical and graphic design packages also - make it highly useful to those whose primary interest in a - computer is to get <emphasis>other</emphasis> work - done!</para> - </listitem> - - <listitem> - <para><emphasis>Research:</emphasis> With source code for the - entire system available, FreeBSD is an excellent platform for - research in operating systems as well as other branches of - computer science. FreeBSD's freely available nature also makes - it possible for remote groups to collaborate on ideas or - shared development without having to worry about special - licensing agreements or limitations on what may be discussed - in open forums.</para> - </listitem> - - <listitem> - <para><emphasis>Networking:</emphasis> Need a new router? A - name server (DNS)? A firewall to keep people out of your - internal network? FreeBSD can easily turn that unused 386 or - 486 PC sitting in the corner into an advanced router with - sophisticated packet-filtering capabilities.</para> - </listitem> - - <listitem> - <para><emphasis>X Window workstation:</emphasis> FreeBSD is a - fine choice for an inexpensive X terminal solution, either - using the freely available XFree86 server or one of the - excellent commercial servers provided by X Inside. Unlike an - X terminal, FreeBSD allows many applications to be run - locally, if desired, thus relieving the burden on a central - server. FreeBSD can even boot <quote>diskless</quote>, making - individual workstations even cheaper and easier to - administer.</para> - </listitem> - - <listitem> - <para><emphasis>Software Development:</emphasis> The basic - FreeBSD system comes with a full complement of development - tools including the renowned GNU C/C++ compiler and - debugger.</para> - </listitem> - </itemizedlist> - - <para>FreeBSD is available in both source and binary form on CDROM - and via anonymous FTP. See <link linkend="mirrors">Obtaining - FreeBSD</link> for more details.</para> - </sect2> - </sect1> - - <sect1 id="history"> - <title>About the FreeBSD Project</title> - - <para>The following section provides some background information on - the project, including a brief history, project goals, and the - development model of the project.</para> - - <sect2> - <title>A Brief History of FreeBSD</title> - - <para><emphasis>Contributed by &a.jkh;</emphasis>.</para> - - <para>The FreeBSD project had its genesis in the early part of 1993, - partially as an outgrowth of the <quote>Unofficial 386BSD - Patchkit</quote> by the patchkit's last 3 coordinators: Nate - Williams, Rod Grimes and myself.</para> - - <para>Our original goal was to produce an intermediate snapshot of - 386BSD in order to fix a number of problems with it that the - patchkit mechanism just was not capable of solving. Some of you - may remember the early working title for the project being - <quote>386BSD 0.5</quote> or <quote>386BSD Interim</quote> in - reference to that fact.</para> - - <para>386BSD was Bill Jolitz's operating system, which had been up - to that point suffering rather severely from almost a year's worth - of neglect. As the patchkit swelled ever more uncomfortably with - each passing day, we were in unanimous agreement that something - had to be done and decided to try and assist Bill by providing - this interim <quote>cleanup</quote> snapshot. Those plans came to - a rude halt when Bill Jolitz suddenly decided to withdraw his - sanction from the project without any clear indication of what - would be done instead.</para> - - <para>It did not take us long to decide that the goal remained - worthwhile, even without Bill's support, and so we adopted the - name <quote>FreeBSD</quote>, coined by David Greenman. Our initial - objectives were set after consulting with the system's current - users and, once it became clear that the project was on the road - to perhaps even becoming a reality, I contacted Walnut Creek CDROM - with an eye towards improving FreeBSD's distribution channels for - those many unfortunates without easy access to the Internet. - Walnut Creek CDROM not only supported the idea of distributing - FreeBSD on CD but also went so far as to provide the project with a - machine to work on and a fast Internet connection. Without Walnut - Creek CDROM's almost unprecedented degree of faith in what was, at - the time, a completely unknown project, it is quite unlikely that - FreeBSD would have gotten as far, as fast, as it has today.</para> - - <para>The first CDROM (and general net-wide) distribution was - FreeBSD 1.0, released in December of 1993. This was based on the - 4.3BSD-Lite (<quote>Net/2</quote>) tape from U.C. Berkeley, with - many components also provided by 386BSD and the Free Software - Foundation. It was a fairly reasonable success for a first - offering, and we followed it with the highly successful FreeBSD - 1.1 release in May of 1994.</para> - - <para>Around this time, some rather unexpected storm clouds formed - on the horizon as Novell and U.C. Berkeley settled their - long-running lawsuit over the legal status of the Berkeley Net/2 - tape. A condition of that settlement was U.C. Berkeley's - concession that large parts of Net/2 were <quote>encumbered</quote> - code and the property of Novell, who had in turn acquired it from - AT&T some time previously. What Berkeley got in return was - Novell's <quote>blessing</quote> that the 4.4BSD-Lite release, when - it was finally released, would be declared unencumbered and all - existing Net/2 users would be strongly encouraged to switch. This - included FreeBSD, and the project was given until the end of July - 1994 to stop shipping its own Net/2 based product. Under the - terms of that agreement, the project was allowed one last release - before the deadline, that release being FreeBSD 1.1.5.1.</para> - - <para>FreeBSD then set about the arduous task of literally - re-inventing itself from a completely new and rather incomplete - set of 4.4BSD-Lite bits. The <quote>Lite</quote> releases were - light in part because Berkeley's CSRG had removed large chunks of - code required for actually constructing a bootable running system - (due to various legal requirements) and the fact that the Intel - port of 4.4 was highly incomplete. It took the project until - November of 1994 to make this transition, at which point it - released FreeBSD 2.0 to the net and on CDROM (in late December). - Despite being still more than a little rough around the edges, - the release was a significant success and was followed by the - more robust and easier to install FreeBSD 2.0.5 release in June of - 1995.</para> - - <para>We released FreeBSD 2.1.5 in August of 1996, and it appeared - to be popular enough among the ISP and commercial communities that - another release along the 2.1-STABLE branch was merited. This was - FreeBSD 2.1.7.1, released in February 1997 and capping the end of - mainstream development on 2.1-STABLE. Now in maintenance mode, - only security enhancements and other critical bug fixes will be - done on this branch (RELENG_2_1_0).</para> - - <para>FreeBSD 2.2 was branched from the development mainline - (<quote>-CURRENT</quote>) in November 1996 as the RELENG_2_2 - branch, and the first full release (2.2.1) was released in April - 1997. Further releases along the 2.2 branch were done in the - summer and fall of '97, the last of which (2.2.8) appeared in - November 1998. The first official 3.0 release appeared in - October 1998 and spelled the beginning of the end for the 2.2 - branch.</para> - - <para>The tree branched again on Jan 20, 1999, leading to the - 4.0-CURRENT and 3.X-STABLE branches. From 3.X-STABLE, 3.1 was - released on February 15, 1999, 3.2 on May 15, 1999, and 3.3 on - September 16, 1999. The most current release on this branch is - 3.4, which was released on December 20, 1999.</para> - - <para>There was another branch on March 13, 2000, which saw the - emergence of the 5.0-CURRENT and 4.X-STABLE branches. The only - release from this branch so far is &rel.current;-RELEASE.</para> - - <para>Long-term development projects continue to take place in the - 5.0-CURRENT branch, and SNAPshot releases of 5.0 on CDROM (and, of - course, on the net) are continually made available as work - progresses.</para> - </sect2> - - <sect2 id="goals"> - <title>FreeBSD Project Goals</title> - - <para><emphasis>Contributed by &a.jkh;</emphasis>.</para> - - <para>The goals of the FreeBSD Project are to provide software that - may be used for any purpose and without strings attached. Many of - us have a significant investment in the code (and project) and - would certainly not mind a little financial compensation now and - then, but we are definitely not prepared to insist on it. We - believe that our first and foremost <quote>mission</quote> is to - provide code to any and all comers, and for whatever purpose, so - that the code gets the widest possible use and provides the widest - possible benefit. This is, I believe, one of the most fundamental - goals of Free Software and one that we enthusiastically - support.</para> - - <para>That code in our source tree which falls under the GNU General - Public License (GPL) or Library General Public License (LGPL) - comes with slightly more strings attached, though at least on the - side of enforced access rather than the usual opposite. Due to - the additional complexities that can evolve in the commercial use - of GPL software we do, however, prefer software submitted under - the more relaxed BSD copyright when it's a reasonable option to - do so.</para> - </sect2> - - <sect2 id="development"> - <title>The FreeBSD Development Model</title> - - <para><emphasis>Contributed by &a.asami;</emphasis>.</para> - - <para>The development of FreeBSD is a very open and flexible - process, FreeBSD being literally built from the contributions of - hundreds of people around the world, as can be seen from our - <link linkend="staff">list of contributors</link>. We are - constantly on the lookout for new developers and ideas, and those - interested in becoming more closely involved with the project - need simply contact us at the &a.hackers;. The &a.announce; is - also available to those wishing to make other FreeBSD users aware - of major areas of work.</para> - - <para>Useful things to know about the FreeBSD project and its - development process, whether working independently or in close - cooperation:</para> - - <variablelist> - <varlistentry> - <term>The CVS repository<anchor - id="development-cvs-repository"></term> - - <listitem> - <para>The central source tree for FreeBSD is maintained by - <ulink url="http://www.cyclic.com/CVS/index_html">CVS</ulink> - (Concurrent Version System), a freely available source code - control tool that comes bundled with FreeBSD. The primary - <ulink url="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVS - repository</ulink> resides on a machine in Concord CA, USA - from where it is replicated to numerous mirror machines - throughout the world. The CVS tree, as well as the <link - linkend="current">-CURRENT</link> and <link - linkend="stable">-STABLE</link> trees which are checked out - of it, can be easily replicated to your own machine as well. - Please refer to the <link linkend="synching">Synchronizing - your source tree</link> section for more information on - doing this.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>The committers list<anchor - id="development-committers"></term> - - <listitem> - <para>The <link linkend="staff-committers">committers</link> - are the people who have <emphasis>write</emphasis> access to - the CVS tree, and are thus authorized to make modifications - to the FreeBSD source (the term <quote>committer</quote> - comes from the &man.cvs.1; <command>commit</command> - command, which is used to bring new changes into the CVS - repository). The best way of making submissions for review - by the committers list is to use the &man.send-pr.1; - command, though if something appears to be jammed in the - system then you may also reach them by sending mail to - <email>cvs-committers@FreeBSD.org</email>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>The FreeBSD core team<anchor id="development-core"></term> - - <listitem> - <para>The <link linkend="staff-core">FreeBSD core team</link> - would be equivalent to the board of directors if the FreeBSD - Project were a company. The primary task of the core team - is to make sure the project, as a whole, is in good shape - and is heading in the right directions. Inviting dedicated - and responsible developers to join our group of committers - is one of the functions of the core team, as is the - recruitment of new core team members as others move on. Most - current members of the core team started as committers whose - addiction to the project got the better of them.</para> - - <para>Some core team members also have specific <link - linkend="staff-who">areas of responsibility</link>, meaning - that they are committed to ensuring that some large portion - of the system works as advertised.</para> - - <note> - <para>Most members of the core team are volunteers when it - comes to FreeBSD development and do not benefit from the - project financially, so <quote>commitment</quote> should - also not be misconstrued as meaning <quote>guaranteed - support.</quote> The <quote>board of directors</quote> - analogy above is not actually very accurate, and it may be - more suitable to say that these are the people who gave up - their lives in favor of FreeBSD against their better - judgment! <!-- smiley --><emphasis>;-)</emphasis></para> - </note> - </listitem> - </varlistentry> - - <varlistentry> - <term>Outside contributors</term> - - <listitem> - <para>Last, but definitely not least, the largest group of - developers are the users themselves who provide feedback and - bug fixes to us on an almost constant basis. The primary - way of keeping in touch with FreeBSD's more non-centralized - development is to subscribe to the &a.hackers; (see <link - linkend="eresources-mail">mailing list info</link>) where - such things are discussed.</para> - - <para><link linkend="contrib-additional">The list</link> of - those who have contributed something, which made its way into - our source tree, is a long and growing one, so why not join - it by contributing something back to FreeBSD today? - <!-- smiley --><emphasis>:-)</emphasis></para> - - <para>Providing code is not the only way of contributing to - the project; for a more complete list of things that need - doing, please refer to the <link linkend="contrib">how to - contribute</link> section in this handbook.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>In summary, our development model is organized as a loose set - of concentric circles. The centralized model is designed for the - convenience of the <emphasis>users</emphasis> of FreeBSD, who are - thereby provided with an easy way of tracking one central code - base, not to keep potential contributors out! Our desire is to - present a stable operating system with a large set of coherent - <link linkend="ports">application programs</link> that the users - can easily install and use, and this model works very well in - accomplishing that.</para> - - <para>All we ask of those who would join us as FreeBSD developers is - some of the same dedication its current people have to its - continued success!</para> - </sect2> - - <sect2 id="relnotes"> - <title>The Current FreeBSD Release</title> - - <para>FreeBSD is a freely available, full source 4.4BSD-Lite2 based - release for Intel i386, i486, Pentium, Pentium Pro, Celeron, - Pentium II, Pentium III (or compatible) and DEC Alpha based computer - systems. It is based primarily on software from U.C. Berkeley's - CSRG group, with some enhancements from NetBSD, OpenBSD, 386BSD, and - the Free Software Foundation.</para> - - <para>Since our release of FreeBSD 2.0 in late 94, the performance, - feature set, and stability of FreeBSD has improved dramatically. - The largest change is a revamped virtual memory system with a merged - VM/file buffer cache that not only increases performance, but also - reduces FreeBSD's memory footprint, making a 5MB configuration a - more acceptable minimum. Other enhancements include full NIS client - and server support, transaction TCP support, dial-on-demand PPP, - integrated DHCP support, an improved SCSI subsystem, ISDN support, - support for ATM, FDDI, Fast and Gigabit Ethernet (1000Mbit) - adapters, improved support for the latest Adaptec controllers, and - many hundreds of bug fixes.</para> - - <para>We have also taken the comments and suggestions of many of our - users to heart and have attempted to provide what we hope is a more - sane and easily understood installation process. Your feedback on - this (constantly evolving) process is especially welcome!</para> - - <para>In addition to the base distributions, FreeBSD offers a - ported software collection with thousands of commonly sought-after - programs. By mid-January 2000, there were nearly 3000 ports! The - list of ports ranges from http (WWW) servers, to games, languages, - editors, and almost everything in between. The entire ports - collection requires approximately 50MB of storage, all ports being - expressed as <quote>deltas</quote> to their original sources. This - makes it much easier for us to update ports, and greatly reduces - the disk space demands made by the older 1.0 ports collection. To - compile a port, you simply change to the directory of the program - you wish to install, type <command>make install</command>, and let - the system do the rest. The full original distribution for each - port you build is retrieved dynamically off the CDROM or a local FTP - site, so you need only enough disk space to build the ports you - want. Almost every port is also provided as a pre-compiled - <quote>package</quote>, which can be installed with a simple command - (pkg_add) by those who do not wish to compile their own ports from - source.</para> - - <para>A number of additional documents which you may find very helpful - in the process of installing and using FreeBSD may now also be found - in the <filename>/usr/share/doc</filename> directory on any machine - running FreeBSD 2.1 or later. You may view the locally installed - manuals with any HTML capable browser using the following - URLs:</para> - - <variablelist> - <varlistentry> - <term>The FreeBSD Handbook</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>The FreeBSD FAQ</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>You can also view the master (and most frequently updated) - copies at <ulink - url="http://www.FreeBSD.org/">http://www.FreeBSD.org/</ulink>.</para> - - <para>The core of FreeBSD does not contain DES code which would - inhibit its being exported outside the United States. There is an - add-on package to the core distribution, for use only in the United - States, which contains the programs that normally use DES. The - auxiliary packages provided separately can be used by anyone. A - freely (from outside the U.S.) exportable European distribution of - DES for our non-U.S. users also exists and is described in the - <ulink url="../FAQ/FAQ.html">FreeBSD FAQ</ulink>.</para> - - <para>If password security for FreeBSD is all you need, and you have - no requirement for copying encrypted passwords from different hosts - (Suns, DEC machines, etc) into FreeBSD password entries, then - FreeBSD's MD5 based security may be all you require! We feel that - our default security model is more than a match for DES, and avoids - dealing with any messy export issues. If you are outside (or even - inside) the U.S., give it a try!</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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.sgml deleted file mode 100644 index 4490777632..0000000000 --- a/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.sgml +++ /dev/null @@ -1,1133 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/kernelconfig/chapter.sgml,v 1.27 2000/06/12 23:57:35 murray Exp $ ---> - -<chapter id="kernelconfig"> - <title>Configuring the FreeBSD Kernel</title> - - <sect1> - <title>Synopsis</title> - - <para><emphasis>Updated and restructured by &a.jim;, March 2000. - Originally contributed by &a.jehamby;, 6 October - 1995.</emphasis></para> - - <para>The following chapter of the handbook covers everything you will - need to know in order to build a custom kernel. If you are - wondering what the benefits of a custom kernel are, or would like to - know how to configure, compile, and install a custom kernel, this - chapter is for you.</para> - </sect1> - - <sect1> - <title>Why Build a Custom Kernel?</title> - - <para>Building a custom kernel is one of the most important rites of - passage nearly every UNIX user must endure. This process, while - time consuming, will provide many benefits to your FreeBSD system. - Unlike the <filename>GENERIC</filename> kernel, which must support a - wide range of hardware, a custom kernel only contains support for - <emphasis>your</emphasis> PC's hardware. This has a number of - benefits, such as:</para> - - <itemizedlist> - <listitem> - <para>Faster boot time. Since the kernel will only probe the - hardware you have on your system, the time it takes your system to - boot will decrease dramatically.</para> - </listitem> - - <listitem> - <para>Less memory use. A custom kernel often uses less memory - than the <literal>GENERIC</literal> kernel, which is important - because the kernel is one process that must always be present in - memory. For this reason, a custom kernel is especially useful - on a system with a small amount of RAM.</para> - </listitem> - - <listitem> - <para>Additional hardware support. A custom kernel allows you to - add in support for devices such as sound cards, which are not - present in the <literal>GENERIC</literal> kernel.</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1 id="kernelconfig-building"> - <title>Building and Installing a Custom Kernel</title> - - <para>First, let us take a quick tour of the kernel build directory. - All directories mentioned will be relative to the main - <filename>/usr/src/sys</filename> directory, which is also - accessible through <filename>/sys</filename>. There are a number of - subdirectories here representing different parts of the kernel, but - the most important, for our purposes, are - <filename><replaceable>arch</replaceable>/conf</filename>, where you - will edit your custom kernel configuration, and - <filename>compile</filename>, which is the staging area where your - kernel will be built. <replaceable>arch</replaceable> represents - either <filename>i386</filename>, <filename>alpha</filename>, or - <filename>pc98</filename> (an alternative development branch of PC - hardware, popular in Japan). Everything inside a particular - architecture's directory deals with that architecture only; the rest - of the code is common to all platforms to which FreeBSD could - potentially be ported. Notice the logical organization of the - directory structure, with each supported device, filesystem, and - option in its own subdirectory.</para> - - <note> - <para>If there is <emphasis>not</emphasis> a - <filename>/usr/src/sys</filename> directory on your system, then - the kernel source has not been been installed. The easiest way to - do this is by running <command>/stand/sysinstall</command> as - <username>root</username>, choosing <literal>Configure</literal>, - then <literal>Distributions</literal>, then - <literal>src</literal>, then <literal>sys</literal>.</para> - </note> - - <para>Next, move to the - <filename><replaceable>arch</replaceable>/conf</filename> directory - and copy the <filename>GENERIC</filename> configuration file to the - name you want to give your kernel. For example:</para> - - <screen>&prompt.root; <userinput>cd /usr/src/sys/i386/conf</userinput> -&prompt.root; <userinput>cp GENERIC MYKERNEL</userinput></screen> - - <para>Traditionally, this name is in all capital letters and, if you - are maintaining multiple FreeBSD machines with different hardware, - it is a good idea to name it after your machine's hostname. We will - call it <filename>MYKERNEL</filename> for the purpose of this - example.</para> - - <note> - <para>You must execute these and all of the following commands under - the root account or you will get <errortype>permission - denied</errortype> errors.</para> - </note> - - <para>Now, edit <filename>MYKERNEL</filename> with your favorite text - editor. If you are just starting out, the only editor available - will probably be <command>vi</command>, which is too complex to - explain here, but is covered well in many books in the <link - linkend="bibliography">bibliography</link>. However, FreeBSD does - offer an easier editor called <quote>ee</quote> which, if you are a - beginner, should be your editor of choice. Feel free to change the - comment lines at the top to reflect your configuration or the - changes you have made to differentiate it from - <filename>GENERIC</filename>.</para> - - <para>If you have build a kernel under SunOS or some other BSD - operating system, much of this file will be very familiar to you. - If you are coming from some other operating system such as DOS, on - the other hand, the <filename>GENERIC</filename> configuration file - might seem overwhelming to you, so follow the descriptions in the - <link linkend="kernelconfig-config">Configuration File</link> - section slowly and carefully.</para> - - <note> - <para>If you are trying to upgrade your kernel from an older version - of FreeBSD, you will probably have to get a new version of - &man.config.8; from the same place you got the new kernel sources. - It is located in <filename>/usr/src/usr.sbin</filename>, so you - will need to download those sources as well. Re-build and install - it before running the next commands.</para> - </note> - - <para>When you are finished, type the following to compile and install - your kernel:</para> - - <screen>&prompt.root; <userinput>/usr/sbin/config MYKERNEL</userinput> -&prompt.root; <userinput>cd ../../compile/MYKERNEL</userinput> -&prompt.root; <userinput>make depend</userinput> -&prompt.root; <userinput>make</userinput> -&prompt.root; <userinput>make install</userinput></screen> - - <para>The new kernel will be copied to the root directory as - <filename>/kernel</filename> and the old kernel will be moved to - <filename>/kernel.old</filename>. Now, shutdown the system and - reboot to use your kernel. In case something goes wrong, there are - some <link linkend="kernelconfig-trouble">troubleshooting</link> - instructions at the end of this document. Be sure to read the - section which explains how to recover in case your new kernel <link - linkend="kernelconfig-noboot">does not boot</link>.</para> - - <note> - <para>If you have added any new devices (such as sound cards) you - may have to add some <link linkend="kernelconfig-nodes">device - nodes</link> to your <filename>/dev</filename> directory before - you can use them.</para> - </note> - </sect1> - - <sect1 id="kernelconfig-config"> - <title>The Configuration File</title> - - <para>The general format of a configuration file is quite simple. - Each line contains a keyword and one or more arguments. For - simplicity, most lines only contain one argument. Anything - following a <literal>#</literal> is considered a comment and - ignored. The following sections describe each keyword, generally in - the order they are listed in <filename>GENERIC</filename>, although - some related keywords have been grouped together in a single section - (such as Networking) even though they are actually scattered - throughout the <filename>GENERIC</filename> file. <anchor - id="kernelconfig-options"> An exhaustive list of options and more - detailed explanations of the device lines is present in the - <filename>LINT</filename> configuration file, located in the same - directory as <filename>GENERIC</filename>. If you are in doubt as - to the purpose or necessity of a line, check first in - <filename>LINT</filename>.</para> - - <important> - <title>Quoting numbers</title> - - <para>In all versions of FreeBSD up to and including 3.X, - &man.config.8; required that any strings in the configuration file - that contained numbers used as text had to be enclosed in double - quotes.</para> - - <para>This requirement was removed in the 4.X branch, which this - book covers, so if you are on a pre-4.X system, see the - <filename>/usr/src/sys/i386/conf/LINT</filename> and - <filename>/usr/src/sys/i386/conf/GENERIC</filename> - files on your system for examples.</para> - </important> - - <para>The following is an example <filename>GENERIC</filename> kernel - configuration file with various additional comments where needed for - clarity. This example should match your copy in - <filename>/usr/src/sys/i386/conf/GENERIC</filename> fairly - closely. For details of all the possible kernel options, see - <filename>/usr/src/sys/i386/conf/LINT</filename>.</para> - - <programlisting> -# -# GENERIC -- Generic kernel configuration file for FreeBSD/i386 -# -# For more information on this file, please read the handbook section on -# Kernel Configuration Files: -# -# http://www.freebsd.org/handbook/kernelconfig-config.html -# -# The handbook is also available locally in /usr/share/doc/handbook -# if you've installed the doc distribution, otherwise always see the -# FreeBSD World Wide Web server (http://www.FreeBSD.ORG/) for the -# latest information. -# -# An exhaustive list of options and more detailed explanations of the -# device lines is also present in the ./LINT configuration file. If you are -# in doubt as to the purpose or necessity of a line, check first in LINT. -# -# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246 2000/03/09 16:32:55 jlemon Exp $</programlisting> - - <para>The following are the mandatory keywords required in - <emphasis>every</emphasis> kernel you build:</para> - - <programlisting>machine i386</programlisting> - - <para>This is the machine architecture. It must be either - <literal>i386</literal>, <literal>alpha</literal>, or - <literal>pc98</literal>.</para> - - <programlisting> -cpu I386_CPU -cpu I486_CPU -cpu I586_CPU -cpu I686_CPU</programlisting> - - <para>The above specifies the type of CPU you have in your system. - You may have multiple instances of the CPU line (i.e., you are not - sure whether you should use <literal>I586_CPU</literal> or - <literal>I686_CPU</literal>), however, for a custom kernel, it is - best to specify only the CPU you have. If you are unsure which type - your CPU use, you can use the <command>dmesg</command> command to - view your boot up messages.</para> - - <para>The Alpha architecture has different values for - <literal>cpu_type</literal>. They include:</para> - - <programlisting> -cpu EV4 -cpu EV5</programlisting> - - <para>If you are using an Alpha machine, you should be using one of - the above CPU types.</para> - - <programlisting>ident GENERIC</programlisting> - - <para>This is the identification of the kernel. You should change - this to whatever you named your kernel, in our previous example, - <literal>MYKERNEL</literal>. The value you put in the - <literal>ident</literal> string will print when you boot up the - kernel, so it is useful to give a kernel a different name if you - want to keep it separate from your usual kernel (i.e., you want to - build an experimental kernel).</para> - - <programlisting>maxusers 32</programlisting> - - <para>The <literal>maxusers</literal> option sets the size of a number - of important system tables. This number is supposed to be roughly - equal to the number of simultaneous users you expect to have on your - machine. However, under normal circumstances, you will want to set - <literal>maxusers</literal> to at least 4, especially if you are - using the X Window System or compiling software. The reason is that - the most important table set by <literal>maxusers</literal> is the - maximum number of processes, which is set to <literal>20 + 16 * - maxusers</literal>, so if you set <literal>maxusers</literal> to 1, - then you can only have 36 simultaneous processes, including the 18 - or so that the system starts up at boot time, and the 15 or so you - will probably create when you start the X Window System. Even a - simple task like reading a man page will start up nine processes to - filter, decompress, and view it. Setting - <literal>maxusers</literal> to 64 will allow you to have up to 1044 - simultaneous processes, which should be enough for nearly all uses. - If, however, you see the dreaded <errortype>proc table - full</errortype> error when trying to start another program, or are - running a server with a large number of simultaneous users (like - <hostid role="fqdn">ftp.FreeBSD.org</hostid>), you can always - increase the number and rebuild.</para> - - <note> - <para><literal>maxusers</literal> does <emphasis>not</emphasis> - limit the number of users which can log into your machine. It - simply sets various table sizes to reasonable values considering - the maximum number of users you will likely have on your system - and how many processes each of them will be running. One keyword - which <emphasis>does</emphasis> limit the number of simultaneous - <emphasis>remote logins</emphasis> is <link - linkend="kernelconfig-ptys"><literal>pseudo-device pty - 16</literal></link>.</para> - </note> - - <para>Everything that follows is more or less optional. See the notes - underneath or next to each option for more information.</para> - - <programlisting> -#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols -options MATH_EMULATE #Support for x87 emulation</programlisting> - - <para>This line allows the kernel to simulate a math co-processor if - your computer does not have one (386 or 486SX). If you have a - 486DX, or a 386 or 486SX (with a separate 387 or 487 chip), or - higher (Pentium, Pentium II, etc.), you can comment this line - out.</para> - - <note> - <para>The normal math co-processor emulation routines that come with - FreeBSD are <emphasis>not</emphasis> very accurate. If you do not - have a math co-processor, and you need the best accuracy, it is - recommended that you change this option to - <literal>GPL_MATH_EMULATION</literal> to use the GNU math support, - which is not included by default for licensing reasons.</para> - </note> - - <programlisting> -options INET #InterNETworking</programlisting> - - <para>Networking support. Leave this in, even if you do not plan to - be connected to a network. Most programs require at least loopback - networking (i.e., making network connections within your PC), so - this is essentially mandatory.</para> - - <programlisting> -options INET6 #IPv6 communications protocols</programlisting> - - <para>This enables the IPv6 communication protocols.</para> - - <programlisting> -options FFS #Berkeley Fast Filesystem -options FFS_ROOT #FFS usable as root device [keep this!]</programlisting> - - <para>This is the basic hard drive filesystem. Leave it in if you - boot from the hard disk.</para> - - <programlisting> -options MFS #Memory Filesystem -options MD_ROOT #MD is a potential root device</programlisting> - - <para>This is the memory-mapped filesystem. This is basically a RAM - disk for fast storage of temporary files, useful if you have a lot - of swap space that you want to take advantage of. A perfect place - to mount an MFS partition is on the <filename>/tmp</filename> - directory, since many programs store temporary data here. To mount - an MFS RAM disk on <filename>/tmp</filename>, add the following line - to <filename>/etc/fstab</filename>:</para> - - <informalexample> - <programlisting>/dev/ad1s2b /tmp mfs rw 0 0</programlisting> - </informalexample> - - <para>Now you simply need to either reboot, or run the command - <command>mount /tmp</command>.</para> - - <programlisting> -options NFS #Network Filesystem -options NFS_ROOT #NFS usable as root device, NFS required</programlisting> - - <para>The network filesystem. Unless you plan to mount partitions - from a UNIX file server over TCP/IP, you can comment these - out.</para> - - <programlisting> -options MSDOSFS #MSDOS Filesystem</programlisting> - - <para>The MS-DOS filesystem. Unless you plan to mount a DOS formatted - hard drive partition at boot time, you can safely comment this out. - It will be automatically loaded the first time you mount a DOS - partition, as described above. Also, the excellent - <application>mtools</application> software (in the ports collection) - allows you to access DOS floppies without having to mount and - unmount them (and does not require <literal>MSDOSFS</literal> at - all).</para> - - <programlisting> -options CD9660 #ISO 9660 Filesystem -options CD9660_ROOT #CD-ROM usable as root, CD9660 required</programlisting> - - <para>The ISO 9660 filesystem for CDROMs. Comment it out if you do - not have a CDROM drive or only mount data CDs occasionally (since it - will be dynamically loaded the first time you mount a data CD). - Audio CDs do not need this filesystem.</para> - - <programlisting> -options PROCFS #Process filesystem</programlisting> - - <para>The process filesystem. This is a <quote>pretend</quote> - filesystem mounted on <filename>/proc</filename> which allows - programs like &man.ps.1; to give you more information on what - processes are running.</para> - - <programlisting> -options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]</programlisting> - - <para>Compatibility with 4.3BSD. Leave this in; some programs will - act strangely if you comment this out.</para> - - <programlisting> -options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI</programlisting> - - <para>This causes the kernel to pause for 15 seconds before probing - each SCSI device in your system. If you only have IDE hard drives, - you can ignore this, otherwise you will probably want to lower this - number, perhaps to 5 seconds, to speed up booting. Of course, if - you do this, and FreeBSD has trouble recognizing your SCSI devices, - you will have to raise it back up.</para> - - <programlisting> -options UCONSOLE #Allow users to grab the console</programlisting> - - <para>Allow users to grab the console, which is useful for X users. - For example, you can create a console xterm by typing <command>xterm - -C</command>, which will display any <command>write</command>, - <command>talk</command>, and any other messages you receive, as well - as any console messages sent by the kernel.</para> - - <programlisting> -options USERCONFIG #boot -c editor</programlisting> - - <para>This option allows you to boot the configuration editor from the - boot menu.</para> - - <programlisting> -options VISUAL_USERCONFIG #visual boot -c editor</programlisting> - - <para>This option allows you to boot the visual configuration editor - from the boot menu.</para> - - <programlisting> -options KTRACE #ktrace(1) support</programlisting> - - <para>This enables kernel process tracing, which is useful in - debugging.</para> - - <programlisting> -options SYSVSHM #SYSV-style shared memory</programlisting> - - <para>This option provides for System V shared memory. The most - common use of this is the XSHM extension in X, which many - graphics-intensive programs will automatically take advantage of for - extra speed. If you use X, you'll definitely want to include - this.</para> - - <programlisting> -options SYSVSEM #SYSV-style semaphores</programlisting> - - <para>Support for System V semaphores. Less commonly used but only - adds a few hundred bytes to the kernel.</para> - - <programlisting> -options SYSVMSG #SYSV-style message queues</programlisting> - - <para>Support for System V messages. Again, only adds a few hundred - bytes to the kernel.</para> - - <note> - <para>The &man.ipcs.1; command will list any processes using each of - these System V facilities.</para> - </note> - - <programlisting> -options P1003_1B #Posix P1003_1B real-time extentions -options _KPOSIX_PRIORITY_SCHEDULING</programlisting> - - <para>Real-time extensions added in the 1993 POSIX. Certain - applications in the ports collection use these (such as Star - Office).</para> - - <programlisting> -options ICMP_BANDLIM #Rate limit bad replies</programlisting> - - <para>This option enables ICMP error response bandwidth limiting. You - typically want this option as it will help protect the machine from - denial of service packet attacks.</para> - - <programlisting> -# To make an SMP kernel, the next two are needed -#options SMP # Symmetric MultiProcessor Kernel -#options APIC_IO # Symmetric (APIC) I/O</programlisting> - - <para>The above are both required for SMP support.</para> - - <programlisting> -# Optionally these may need tweaked, (defaults shown): -#options NCPU=2 # number of CPUs -#options NBUS=4 # number of busses -#options NAPIC=1 # number of IO APICs -#options NINTR=24 # number of INTs</programlisting> - - <para>These are some additional SMP knobs.</para> - - <programlisting>device isa</programlisting> - - <para>All PCs supported by FreeBSD have one of these. If you have an - IBM PS/2 (Micro Channel Architecture), you cannot run FreeBSD at - this time (support is being worked on).</para> - - <programlisting>device eisa</programlisting> - - <para>Include this if you have an EISA motherboard. This enables - auto-detection and configuration support for all devices on the EISA - bus.</para> - - <programlisting>device pci</programlisting> - - <para>Include this if you have a PCI motherboard. This enables - auto-detection of PCI cards and gatewaying from the PCI to ISA - bus.</para> - - <programlisting> -# Floppy drives -device fdc0 at isa? port IO_FD1 irq 6 drq 2 -device fd0 at fdc0 drive 0 -device fd1 at fdc0 drive 1</programlisting> - - <para>This is the floppy drive controller. <literal>fd0</literal> is - the <devicename>A:</devicename> floppy drive, and - <literal>fd1</literal> is the <devicename>B:</devicename> - drive.</para> - - <programlisting>device ata</programlisting> - - <para>This driver supports all ATA and ATAPI devices. You only need - one <literal>device ata</literal> line for the kernel to detect all - PCI ATA/ATAPI devices on modern machines.</para> - - <programlisting> -device atadisk # ATA disk drives</programlisting> - - <para>This is needed along with <literal>device ata</literal> for - ATAPI disk drives.</para> - - <programlisting><anchor id="kernelconfig-atapi"> -device atapicd # ATAPI CDROM drives</programlisting> - - <para>This is needed along with <literal>device ata</literal> for - ATAPI CDROM drives.</para> - - <programlisting> -device atapifd # ATAPI floppy drives</programlisting> - - <para>This is needed along with <literal>device ata</literal> for - ATAPI floppy drives.</para> - - <programlisting> -device atapist # ATAPI tape drives</programlisting> - - <para>This is needed along with <literal>device ata</literal> for - ATAPI tape drives.</para> - - <programlisting> -options ATA_STATIC_ID #Static device numbering</programlisting> - - <para>This makes the controller number static (like the old driver) or - else the device numbers are dynamically allocated.</para> - - <programlisting> -#options ATA_ENABLE_ATAPI_DMA #Enable DMA on ATAPI devices</programlisting> - - <para>This enables DMA on the ATAPI device. Since many ATAPI devices - claim to support DMA, but it does not actually work, this is turned - off by default.</para> - - <programlisting> -# ATA and ATAPI devices -device ata0 at isa? port IO_WD1 irq 14 -device ata1 at isa? port IO_WD2 irq 15</programlisting> - - <para>Use the above for older, non-PCI systems.</para> - - <programlisting> -# SCSI Controllers -device ahb # EISA AHA1742 family -device ahc # AHA2940 and onboard AIC7xxx devices -device amd # AMD 53C974 (Teckram DC-390(T)) -device dpt # DPT Smartcache - See LINT for options! -device isp # Qlogic family -device ncr # NCR/Symbios Logic -device sym # NCR/Symbios Logic (newer chipsets) - -device adv0 at isa? -device adw -device bt0 at isa? -device aha0 at isa? -device aic0 at isa?</programlisting> - - <para>SCSI controllers. Comment out any you do not have in your - system. If you have an IDE only system, you can remove these - altogether.</para> - - <programlisting> -# SCSI peripherals -device scbus # SCSI bus (required) -device da # Direct Access (disks) -device sa # Sequential Access (tape etc) -device cd # CD -device pass # Passthrough device (direct SCSI -access)</programlisting> - - <para>SCSI peripherals. Again, comment out any you do not have, or if - you have only IDE hardware, you can remove them completely.</para> - - <programlisting> -# RAID controllers -device ida # Compaq Smart RAID -device amr # AMI MegaRAID -device mlx # Mylex DAC960 family</programlisting> - - <para>Supported RAID controllers. If you do not have any of these, - you can comment them out or remove them.</para> - - <programlisting> -# atkbdc0 controls both the keyboard and the PS/2 mouse -device atkbdc0 at isa? port IO_KBD</programlisting> - - <para>The keyboard controller (<literal>atkbdc</literal>) provides I/O - services for the AT keyboard and PS/2 style pointing devices. This - controller is required by the keyboard driver - (<literal>atkbd</literal>) and the PS/2 pointing device driver - (<literal>psm</literal>).</para> - - <programlisting> -device atkbd0 at atkbdc? irq 1</programlisting> - - <para>The <literal>atkbd</literal> driver, together with - <literal>atkbdc</literal> controller, provides access to the AT 84 - keyboard or the AT enhanced keyboard which is connected to the AT - keyboard controller.</para> - - <programlisting> -device psm0 at atkbdc? irq 12</programlisting> - - <para>Use this device if your mouse plugs into the PS/2 mouse - port.</para> - - <programlisting>device vga0 at isa?</programlisting> - - <para>The video card driver.</para> - - <programlisting> -# splash screen/screen saver -pseudo-device splash</programlisting> - - <para>Splash screen at start up! Screen savers require this - too.</para> - - <programlisting> -# syscons is the default console driver, resembling an SCO console -device sc0 at isa?</programlisting> - - <para><literal>sc0</literal> is the default console driver, which - resembles a SCO console. Since most full-screen programs access the - console through a terminal database library like - <filename>termcap</filename>, it should not matter whether you use - this or <literal>vt0</literal>, the <literal>VT220</literal> - compatible console driver. When you log in, set your - <envar>TERM</envar> variable to <literal>scoansi</literal> if - full-screen programs have trouble running under this console.</para> - - <programlisting> -# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver -#device vt0 at isa? -#options XSERVER # support for X server on a vt console -#options FAT_CURSOR # start with block cursor -# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines -#options PCVT_SCANSET=2 # IBM keyboards are non-std</programlisting> - - <para>This is a VT220-compatible console driver, backward compatible to - VT100/102. It works well on some laptops which have hardware - incompatibilities with <literal>sc0</literal>. Also set your - <envar>TERM</envar> variable to <literal>vt100</literal> or - <literal>vt220</literal> when you log in. This driver might also - prove useful when connecting to a large number of different machines - over the network, where <filename>termcap</filename> or - <filename>terminfo</filename> entries for the <literal>sc0</literal> - device are often not available — <literal>vt100</literal> - should be available on virtually any platform.</para> - - <programlisting> -# Floating point support - do not disable. -device npx0 at nexus? port IO_NPX irq 13</programlisting> - - <para><literal>npx0</literal> is the interface to the floating point - math unit in FreeBSD, which is either the hardware co-processor or - the software math emulator. This is <emphasis>not</emphasis> - optional.</para> - - <programlisting> -# Power management support (see LINT for more options) -device apm0 at nexus? disable flags 0x20 # Advanced Power Management</programlisting> - - <para>Advanced Power Management support. Useful for laptops.</para> - - <programlisting> -# PCCARD (PCMCIA) support -device card -device pcic0 at isa? irq 10 port 0x3e0 iomem 0xd0000 -device pcic1 at isa? irq 11 port 0x3e2 iomem 0xd4000 disable</programlisting> - - <para>PCMCIA support. You need this if you are installing on a - laptop.</para> - - <programlisting> -# Serial (COM) ports -device sio0 at isa? port IO_COM1 flags 0x10 irq 4 -device sio1 at isa? port IO_COM2 irq 3 -device sio2 at isa? disable port IO_COM3 irq 5 -device sio3 at isa? disable port IO_COM4 irq 9</programlisting> - - <para>These are the four serial ports referred to as COM1 through COM4 - in the MS-DOS/Windows world.</para> - - <note> - <para>If you have an internal modem on COM4 and a serial port at - COM2, you will have to change the IRQ of the modem to 2 (for - obscure technical reasons, IRQ2 = IRQ 9) in order to access it - from FreeBSD. If you have a multiport serial card, check the - manual page for &man.sio.4; for more information on the proper - values for these lines. Some video cards (notably those based on - S3 chips) use IO addresses in the form of - <literal>0x*2e8</literal>, and since many cheap serial cards do - not fully decode the 16-bit IO address space, they clash with - these cards making the COM4 port practically unavailable.</para> - - <para>Each serial port is required to have a unique IRQ (unless you - are using one of the multiport cards where shared interrupts are - supported), so the default IRQs for COM3 and COM4 cannot be - used.</para> - </note> - - <programlisting> -# Parallel port -device ppc0 at isa? irq 7</programlisting> - - <para>This is the ISA-bus parallel port interface.</para> - - <programlisting> -device ppbus # Parallel port bus (required)</programlisting> - - <para>Provides support for the parallel port bus.</para> - - <programlisting> -device lpt # Printer</programlisting> - - <para>Support for parallel port printers.</para> - - <note> - <para>All three of the above are required to enable parallel printer - support.</para> - </note> - - <programlisting> -device plip # TCP/IP over parallel</programlisting> - - <para>This is the driver for the parallel network interface.</para> - - <programlisting> -device ppi # Parallel port interface device</programlisting> - - <para>The general-purpose I/O (<quote>geek port</quote>) + IEEE1284 - I/O.</para> - - <programlisting> -#device vpo # Requires scbus and da</programlisting> - - <para>This is for an Iomega Zip drive. It requires - <literal>scbus</literal> and <literal>da</literal> support. Best - performance is achieved with ports in EPP 1.9 mode.</para> - - <programlisting> -# PCI Ethernet NICs. -device de # DEC/Intel DC21x4x (<quote>Tulip</quote>) -device fxp # Intel EtherExpress PRO/100B (82557, 82558) -device tx # SMC 9432TX (83c170 <quote>EPIC</quote>) -device vx # 3Com 3c590, 3c595 (<quote>Vortex</quote>) -device wx # Intel Gigabit Ethernet Card (<quote>Wiseman</quote>)</programlisting> - - <para>Various PCI network card drivers. Comment out or remove any of - these not present in your system.</para> - - <programlisting> -# PCI Ethernet NICs that use the common MII bus controller code. -device miibus # MII bus support</programlisting> - - <para>MII bus support is required for some PCI 10/100 ethernet NICs, - namely those which use MII-compliant transceivers or implement - transceiver control interfaces that operate like an MII. Adding - <literal>device miibus</literal> to the kernel config pulls in - support for the generic miibus API and all of the PHY drivers, - including a generic one for PHYs that are not specifically handled - by an individual driver</para> - - <programlisting> -device dc # DEC/Intel 21143 and various workalikes -device rl # RealTek 8129/8139 -device sf # Adaptec AIC-6915 (<quote>Starfire</quote>) -device sis # Silicon Integrated Systems SiS 900/SiS 7016 -device ste # Sundance ST201 (D-Link DFE-550TX) -device tl # Texas Instruments ThunderLAN -device vr # VIA Rhine, Rhine II -device wb # Winbond W89C840F -device xl # 3Com 3c90x (<quote>Boomerang</quote>, <quote>Cyclone</quote>)</programlisting> - - <para>Drivers that use the MII bus controller code.</para> - - <programlisting> -# ISA Ethernet NICs. -device ed0 at isa? port 0x280 irq 10 iomem 0xd8000 -device ex -device ep -# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really -# exists only as a PCMCIA device, so there is no ISA attachment needed -# and resources will always be dynamically assigned by the pccard code. -device wi -# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will -# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP -# mode (the factory default). If you set the switches on your ISA -# card for a manually chosen I/O address and IRQ, you must specify -# those parameters here. -device an -# The probe order of these is presently determined by i386/isa/isa_compat.c. -device ie0 at isa? port 0x300 irq 10 iomem 0xd0000 -device fe0 at isa? port 0x300 -device le0 at isa? port 0x300 irq 5 iomem 0xd0000 -device lnc0 at isa? port 0x280 irq 10 drq 0 -device cs0 at isa? port 0x300 -device sn0 at isa? port 0x300 irq 10 -# requires PCCARD (PCMCIA) support to be activated -#device xe0 at isa?</programlisting> - - <para>ISA ethernet drivers. See - <filename>/usr/src/sys/i386/conf/LINT</filename> for which cards are - supported by which driver.</para> - - <programlisting> -# Pseudo devices - the number indicates how many units to allocated. -pseudo-device loop # Network loopback</programlisting> - - <para>This is the generic loopback device for TCP/IP. If you telnet - or FTP to <hostid>localhost</hostid> (a.k.a., <hostid - role="ipaddr">127.0.0.1</hostid> it will come back at you through - this pseudo-device. This is <emphasis>mandatory</emphasis>.</para> - - <programlisting> -pseudo-device ether # Ethernet support</programlisting> - - <para><literal>ether</literal> is only needed if you have an Ethernet - card. It includes generic Ethernet protocol code.</para> - - <programlisting> -pseudo-device sl 1 # Kernel SLIP</programlisting> - - <para><literal>sl</literal> is for SLIP support. This has been almost - entirely supplanted by PPP, which is easier to set up, better suited - for modem-to-modem connection, and more powerful. The - <replaceable>number</replaceable> after <literal>sl</literal> - specifies how many simultaneous SLIP sessions to support.</para> - - <programlisting> -pseudo-device ppp 1 # Kernel PPP</programlisting> - - <para>This is for kernel PPP support for dial-up connections. There - is also a version of PPP implemented as a userland application that - uses <literal>tun</literal> and offers more flexibility and features - such as demand dialing. The <replaceable>number</replaceable> after - <literal>ppp</literal> specifies how many simultaneous PPP - connections to support.</para> - - <programlisting> -pseudo-device tun # Packet tunnel.</programlisting> - - <para>This is used by the userland PPP software. The - <replaceable>number</replaceable> after <literal>tun</literal> - specifies the number of simultaneous PPP sessions to support. See - the <link linkend="userppp">PPP</link> section of this book for more - information.</para> - - <programlisting><anchor id="kernelconfig-ptys"> -pseudo-device pty # Pseudo-ttys (telnet etc)</programlisting> - - <para>This is a <quote>pseudo-terminal</quote> or simulated login port. - It is used by incoming <command>telnet</command> and - <command>rlogin</command> sessions, - <application>xterm</application>, and some other applications such - as <application>emacs</application>. The - <replaceable>number</replaceable> indicates the number of - <literal>pty</literal>s to create. If you need more than the - default of 16 simultaneous <application>xterm</application> windows - and/or remote logins, be sure to increase this number accordingly, - up to a maximum of 256.</para> - - <programlisting> -pseudo-device md # Memory <quote>disks</quote></programlisting> - - <para>Memory disk pseudo-devices.</para> - - <programlisting> -pseudo-device gif 4 # IPv6 and IPv4 tunneling</programlisting> - - <para>This implements IPv6 over IPv4 tunneling, IPv4 over IPv6 - tunneling, IPv4 over IPv4 tunneling, and IPv6 over IPv6 - tunneling.</para> - - <programlisting> -pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation)</programlisting> - - <para>This pseudo-device captures packets that are sent to it and - diverts them to the IPv4/IPv6 translation daemon.</para> - - <programlisting> -# The `bpf' pseudo-device enables the Berkeley Packet Filter. -# Be aware of the administrative consequences of enabling this! -pseudo-device bpf # Berkeley packet filter</programlisting> - - <para>This is the Berkeley Packet Filter. This pseudo-device allows - network interfaces to be placed in promiscuous mode, capturing every - packet on a broadcast network (e.g., an ethernet). These packets - can be captured to disk and or examined with the &man.tcpdump.1; - program.</para> - - <programlisting> -# USB support -#device uhci # UHCI PCI->USB interface -#device ohci # OHCI PCI->USB interface -#device usb # USB Bus (required) -#device ugen # Generic -#device uhid # <quote>Human Interface Devices</quote> -#device ukbd # Keyboard -#device ulpt # Printer -#device umass # Disks/Mass storage - Requires scbus and da -#device ums # Mouse -# USB Ethernet, requires mii -#device aue # ADMtek USB ethernet -#device cue # CATC USB ethernet -#device kue # Kawasaki LSI USB ethernet</programlisting> - - <para>Support for various USB devices.</para> - - <para>For more information and additional devices supported by - FreeBSD, see - <filename>/usr/src/sys/i386/conf/LINT</filename>.</para> - </sect1> - - <sect1 id="kernelconfig-nodes"> - <title>Making Device Nodes</title> - - <para>Almost every device in the kernel has a corresponding - <quote>node</quote> entry in the <filename>/dev</filename> directory. - These nodes look like regular files, but are actually special - entries into the kernel which programs use to access the device. - The shell script <filename>/dev/MAKEDEV</filename>, which is - executed when you first install the operating system, creates - nearly all of the device nodes supported. However, it does not - create <emphasis>all</emphasis> of them, so when you add support for - a new device, it pays to make sure that the appropriate entries are - in this directory, and if not, add them. Here is a simple - example:</para> - - <para>Suppose you add the IDE CD-ROM support to the kernel. The line - to add is:</para> - - <programlisting> -device acd0</programlisting> - - <para>This means that you should look for some entries that start with - <filename>acd0</filename> in the <filename>/dev</filename> - directory, possibly followed by a letter, such as - <literal>c</literal>, or preceded by the letter - <literal>r</literal>, which means a <quote>raw</quote> device. It - turns out that those files are not there, so I must change to the - <filename>/dev</filename> directory and type:</para> - - <screen>&prompt.root; <userinput>sh MAKEDEV acd0</userinput></screen> - - <para>When this script finishes, you will find that there are now - <filename>acd0c</filename> and <filename>racd0c</filename> entries - in <filename>/dev</filename> so you know that it executed - correctly.</para> - - <para>For sound cards, the following command creates the appropriate - entries:</para> - - <screen>&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen> - - <note> - <para>When creating device nodes for devices such as sound cards, if - other people have access to your machine, it may be desirable to - protect the devices from outside access by adding them to the - <filename>/etc/fbtab</filename> file. See &man.fbtab.5; for more - information.</para> - </note> - - <para>Follow this simple procedure for any other - non-<filename>GENERIC</filename> devices which do not have - entries.</para> - - <note> - <para>All SCSI controllers use the same set of - <filename>/dev</filename> entries, so you do not need to create - these. Also, network cards and SLIP/PPP pseudo-devices do not - have entries in <filename>/dev</filename> at all, so you do not - have to worry about these either.</para> - </note> - </sect1> - - <sect1 id="kernelconfig-trouble"> - <title>If Something Goes Wrong</title> - - <para>There are four categories of trouble that can occur when - building a custom kernel. They are:</para> - - <variablelist> - <varlistentry> - <term><command>config</command> fails</term> - - <listitem> - <para>If the <command>config</command> command fails when you - give it your kernel description, you have probably made a - simple error somewhere. Fortunately, - <command>config</command> will print the line number that it - had trouble with, so you can quickly skip to it with - <command>vi</command>. For example, if you see:</para> - - <screen>config: line 17: syntax error</screen> - - <para>You can skip to the problem in <command>vi</command> by - typing <command>17G</command> in command mode. Make sure the - keyword is typed correctly, by comparing it to the - <filename>GENERIC</filename> kernel or another - reference.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>make</command> fails</term> - - <listitem> - <para>If the <command>make</command> command fails, it usually - signals an error in your kernel description, but not severe - enough for <command>config</command> to catch it. Again, look - over your configuration, and if you still cannot resolve the - problem, send mail to the &a.questions; with your kernel - configuration, and it should be diagnosed very quickly.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>The kernel will not boot<anchor - id="kernelconfig-noboot"></term> - - <listitem> - <para>If your new kernel does not boot, or fails to recognize - your devices, do not panic! Fortunately, BSD has an excellent - mechanism for recovering from incompatible kernels. Simply - choose the kernel you want to boot from at the FreeBSD boot - loader (i.e., - <command>boot <filename>kernel.old</filename></command>). - When reconfiguring a kernel, it is always a good idea to keep - a kernel that is known to work on hand.</para> - - <para>After booting with a good kernel you can check over your - configuration file and try to build it again. One helpful - resource is the <filename>/var/log/messages</filename> file - which records, among other things, all of the kernel messages - from every successful boot. Also, the &man.dmesg.8; command - will print the kernel messages from the current boot.</para> - - <note> - <para>If you are having trouble building a kernel, make sure - to keep a <filename>GENERIC</filename>, or some other kernel - that is known to work on hand as a different name that will - not get erased on the next build. You cannot rely on - <filename>kernel.old</filename> because when installing a - new kernel, <filename>kernel.old</filename> is overwritten - with the last installed kernel which may be non-functional. - Also, as soon as possible, move the working kernel to the - proper <filename>kernel</filename> location or commands such - as &man.ps.1; will not work properly. The proper command to - <quote>unlock</quote> the kernel file that - <command>make</command> installs (in order to move another - kernel back permanently) is:</para> - - <screen>&prompt.root; <userinput>chflags noschg /kernel</userinput></screen> - - <para>And, if you want to <quote>lock</quote> your new kernel - into place, or any file for that matter, so that it cannot - be moved or tampered with:</para> - - <screen>&prompt.root; <userinput>chflags schg /kernel</userinput></screen> - </note> - </listitem> - </varlistentry> - - <varlistentry> - <term>The kernel works, but <command>ps</command> does not work - any more!</term> - - <listitem> - <para>If you have installed a different version of the kernel - from the one that the system utilities have been built with, - for example, a 4.X kernel on a 3.X system, many system-status - commands like &man.ps.1; and &man.vmstat.8; will not work any - more. You must recompile the <filename>libkvm</filename> - library as well as these utilities. This is one reason it is - not normally a good idea to use a different version of the - kernel from the rest of the operating system.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/kerneldebug/chapter.sgml b/en_US.ISO8859-1/books/handbook/kerneldebug/chapter.sgml deleted file mode 100644 index 12ce626731..0000000000 --- a/en_US.ISO8859-1/books/handbook/kerneldebug/chapter.sgml +++ /dev/null @@ -1,597 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/kerneldebug/chapter.sgml,v 1.23 2000/06/08 01:56:10 jim Exp $ ---> - -<chapter id="kerneldebug"> - <title>Kernel Debugging</title> - - <para><emphasis>Contributed by &a.paul; and &a.joerg;</emphasis></para> - - <sect1> - <title>Debugging a Kernel Crash Dump with <command>kgdb</command></title> - - <para>Here are some instructions for getting kernel debugging working on a - crash dump. They assume that you have enough swap space for a crash - dump. If you have multiple swap partitions and the first one is too - small to hold the dump, you can configure your kernel to use an - alternate dump device (in the <literal>config kernel</literal> line), or - you can specify an alternate using the - &man.dumpon.8; command. The best way to use &man.dumpon.8; is to set - the <literal>dumpdev</literal> variable in - <filename>/etc/rc.conf</filename>. Typically you want to specify one of - the swap devices specified in <filename>/etc/fstab</filename>. Dumps to - non-swap devices, tapes for example, are currently not supported. Config - your kernel using <command>config -g</command>. See <link - linkend="kernelconfig">Kernel Configuration</link> for details on - configuring the FreeBSD kernel.</para> - - <para>Use the &man.dumpon.8; command to tell the kernel where to dump to - (note that this will have to be done after configuring the partition in - question as swap space via &man.swapon.8;). This is normally arranged - via <filename>/etc/rc.conf</filename> and <filename>/etc/rc</filename>. - Alternatively, you can hard-code the dump device via the - <literal>dump</literal> clause in the <literal>config</literal> line of - your kernel config file. This is deprecated and should be used only if - you want a crash dump from a kernel that crashes during booting.</para> - - <note> - <para>In the following, the term <command>kgdb</command> refers to - <command>gdb</command> run in <quote>kernel debug mode</quote>. This - can be accomplished by either starting the <command>gdb</command> with - the option <option>-k</option>, or by linking and starting it under - the name <command>kgdb</command>. This is not being done by default, - however, and the idea is basically deprecated since the GNU folks do - not like their tools to behave differently when called by another - name. This feature may well be discontinued in further - releases.</para> - </note> - - <para>When the kernel has been built make a copy of it, say - <filename>kernel.debug</filename>, and then run <command>strip - -g</command> on the original. Install the original as normal. You - may also install the unstripped kernel, but symbol table lookup time for - some programs will drastically increase, and since the whole kernel is - loaded entirely at boot time and cannot be swapped out later, several - megabytes of physical memory will be wasted.</para> - - <para>If you are testing a new kernel, for example by typing the new - kernel's name at the boot prompt, but need to boot a different one in - order to get your system up and running again, boot it only into single - user state using the <option>-s</option> flag at the boot prompt, and - then perform the following steps:</para> - - <screen>&prompt.root; <userinput>fsck -p</userinput> -&prompt.root; <userinput>mount -a -t ufs</userinput> # so your file system for /var/crash is writable -&prompt.root; <userinput>savecore -N /kernel.panicked /var/crash</userinput> -&prompt.root; <userinput>exit</userinput> # ...to multi-user</screen> - - <para>This instructs &man.savecore.8; to use another kernel for symbol - name extraction. It would otherwise default to the currently running - kernel and most likely not do anything at all since the crash dump and - the kernel symbols differ.</para> - - <para>Now, after a crash dump, go to - <filename>/sys/compile/WHATEVER</filename> and run - <command>kgdb</command>. From <command>kgdb</command> do: - - <screen><userinput>symbol-file kernel.debug</userinput> -<userinput>exec-file /var/crash/kernel.0</userinput> -<userinput>core-file /var/crash/vmcore.0</userinput></screen> - - and voila, you can debug the crash dump using the kernel sources just - like you can for any other program.</para> - - <para>Here is a script log of a <command>kgdb</command> session - illustrating the procedure. Long lines have been folded to improve - readability, and the lines are numbered for reference. Despite this, it - is a real-world error trace taken during the development of the pcvt - console driver.</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>Comments to the above script:</para> - - <variablelist> - <varlistentry> - <term>line 6:</term> - - <listitem> - <para>This is a dump taken from within DDB (see below), hence the - panic comment <quote>because you said to!</quote>, and a rather - long stack trace; the initial reason for going into DDB has been a - page fault trap though.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>line 20:</term> - - <listitem> - <para>This is the location of function <function>trap()</function> - in the stack trace.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>line 36:</term> - - <listitem> - <para>Force usage of a new stack frame; this is no longer necessary - now. The stack frames are supposed to point to the right - locations now, even in case of a trap. (I do not have a new core - dump handy <g>, my kernel has not panicked for a rather long - time.) From looking at the code in source line 403, there is a - high probability that either the pointer access for - <quote>tp</quote> was messed up, or the array access was out of - bounds.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>line 52:</term> - - <listitem> - <para>The pointer looks suspicious, but happens to be a valid - address.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>line 56:</term> - - <listitem> - <para>However, it obviously points to garbage, so we have found our - error! (For those unfamiliar with that particular piece of code: - <literal>tp->t_line</literal> refers to the line discipline of - the console device here, which must be a rather small integer - number.)</para> - </listitem> - </varlistentry> - </variablelist> - </sect1> - - <sect1> - <title>Debugging a Crash Dump with DDD</title> - - <para>Examining a kernel crash dump with a graphical debugger like - <command>ddd</command> is also possible. Add the <option>-k</option> - option to the <command>ddd</command> command line you would use - normally. For example;</para> - - <screen>&prompt.root; <userinput>ddd -k /var/crash/kernel.0 /var/crash/vmcore.0</userinput></screen> - - <para>You should then be able to go about looking at the crash dump using - <command>ddd</command>'s graphical interface.</para> - </sect1> - - <sect1> - <title>Post-Mortem Analysis of a Dump</title> - - <para>What do you do if a kernel dumped core but you did not expect it, - and it is therefore not compiled using <command>config -g</command>? Not - everything is lost here. Do not panic!</para> - - <para>Of course, you still need to enable crash dumps. See above on the - options you have to specify in order to do this.</para> - - <para>Go to your kernel config directory - (<filename>/usr/src/sys/<replaceable>arch</replaceable>/conf</filename>) - and edit your configuration file. Uncomment (or add, if it does not - exist) the following line</para> - - <programlisting> -makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols</programlisting> - - <para>Rebuild the kernel. Due to the time stamp change on the Makefile, - there will be some other object files rebuild, for example - <filename>trap.o</filename>. With a bit of luck, the added - <option>-g</option> option will not change anything for the generated - code, so you will finally get a new kernel with similar code to the - faulting one but some debugging symbols. You should at least verify the - old and new sizes with the &man.size.1; command. If there is a - mismatch, you probably need to give up here.</para> - - <para>Go and examine the dump as described above. The debugging symbols - might be incomplete for some places, as can be seen in the stack trace - in the example above where some functions are displayed without line - numbers and argument lists. If you need more debugging symbols, remove - the appropriate object files and repeat the <command>kgdb</command> - session until you know enough.</para> - - <para>All this is not guaranteed to work, but it will do it fine in most - cases.</para> - </sect1> - - <sect1> - <title>On-Line Kernel Debugging Using DDB</title> - - <para>While <command>kgdb</command> as an off-line debugger provides a very - high level of user interface, there are some things it cannot do. The - most important ones being breakpointing and single-stepping kernel - code.</para> - - <para>If you need to do low-level debugging on your kernel, there is an - on-line debugger available called DDB. It allows to setting - breakpoints, single-stepping kernel functions, examining and changing - kernel variables, etc. However, it cannot access kernel source files, - and only has access to the global and static symbols, not to the full - debug information like <command>kgdb</command>.</para> - - <para>To configure your kernel to include DDB, add the option line - - <programlisting> -options DDB</programlisting> - - to your config file, and rebuild. (See <link - linkend="kernelconfig">Kernel Configuration</link> for details on - configuring the FreeBSD kernel.</para> - - <note> - <para>Note that if you have an older version of the boot blocks, your - debugger symbols might not be loaded at all. Update the boot blocks; - the recent ones load the DDB symbols automagically.)</para> - </note> - - <para>Once your DDB kernel is running, there are several ways to enter - DDB. The first, and earliest way is to type the boot flag - <option>-d</option> right at the boot prompt. The kernel will start up - in debug mode and enter DDB prior to any device probing. Hence you can - even debug the device probe/attach functions.</para> - - <para>The second scenario is a hot-key on the keyboard, usually - Ctrl-Alt-ESC. For syscons, this can be remapped; some of the - distributed maps do this, so watch out. There is an option available - for serial consoles that allows the use of a serial line BREAK on the - console line to enter DDB (<literal>options BREAK_TO_DEBUGGER</literal> - in the kernel config file). It is not the default since there are a lot - of crappy serial adapters around that gratuitously generate a BREAK - condition, for example when pulling the cable.</para> - - <para>The third way is that any panic condition will branch to DDB if the - kernel is configured to use it. For this reason, it is not wise to - configure a kernel with DDB for a machine running unattended.</para> - - <para>The DDB commands roughly resemble some <command>gdb</command> - commands. The first thing you probably need to do is to set a - breakpoint:</para> - - <screen><userinput>b function-name</userinput> -<userinput>b address</userinput></screen> - - <para>Numbers are taken hexadecimal by default, but to make them distinct - from symbol names; hexadecimal numbers starting with the letters - <literal>a-f</literal> need to be preceded with <literal>0x</literal> - (this is optional for other numbers). Simple expressions are allowed, - for example: <literal>function-name + 0x103</literal>.</para> - - <para>To continue the operation of an interrupted kernel, simply - type:</para> - - <screen><userinput>c</userinput></screen> - - <para>To get a stack trace, use:</para> - - <screen><userinput>trace</userinput></screen> - - <note> - <para>Note that when entering DDB via a hot-key, the kernel is currently - servicing an interrupt, so the stack trace might be not of much use - for you.</para> - </note> - - <para>If you want to remove a breakpoint, use</para> - - - <screen><userinput>del</userinput> -<userinput>del address-expression</userinput></screen> - - <para>The first form will be accepted immediately after a breakpoint hit, - and deletes the current breakpoint. The second form can remove any - breakpoint, but you need to specify the exact address; this can be - obtained from:</para> - - <screen><userinput>show b</userinput></screen> - - <para>To single-step the kernel, try:</para> - - <screen><userinput>s</userinput></screen> - - <para>This will step into functions, but you can make DDB trace them until - the matching return statement is reached by:</para> - - <screen><userinput>n</userinput></screen> - - <note> - <para>This is different from <command>gdb</command>'s - <command>next</command> statement; it is like <command>gdb</command>'s - <command>finish</command>.</para> - </note> - - <para>To examine data from memory, use (for example): - - <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> - - for word/halfword/byte access, and hexadecimal/decimal/character/ string - display. The number after the comma is the object count. To display - the next 0x10 items, simply use:</para> - - <screen><userinput>x ,10</userinput></screen> - - <para>Similarly, use - - <screen><userinput>x/ia foofunc,10</userinput></screen> - - to disassemble the first 0x10 instructions of - <function>foofunc</function>, and display them along with their offset - from the beginning of <function>foofunc</function>.</para> - - <para>To modify memory, use the write command:</para> - - <screen><userinput>w/b termbuf 0xa 0xb 0</userinput> -<userinput>w/w 0xf0010030 0 0</userinput></screen> - - <para>The command modifier - (<literal>b</literal>/<literal>h</literal>/<literal>w</literal>) - specifies the size of the data to be written, the first following - expression is the address to write to and the remainder is interpreted - as data to write to successive memory locations.</para> - - <para>If you need to know the current registers, use:</para> - - <screen><userinput>show reg</userinput></screen> - - <para>Alternatively, you can display a single register value by e.g. - - <screen><userinput>p $eax</userinput></screen> - - and modify it by:</para> - - <screen><userinput>set $eax new-value</userinput></screen> - - <para>Should you need to call some kernel functions from DDB, simply - say:</para> - - <screen><userinput>call func(arg1, arg2, ...)</userinput></screen> - - <para>The return value will be printed.</para> - - <para>For a &man.ps.1; style summary of all running processes, use:</para> - - <screen><userinput>ps</userinput></screen> - - <para>Now you have now examined why your kernel failed, and you wish to - reboot. Remember that, depending on the severity of previous - malfunctioning, not all parts of the kernel might still be working as - expected. Perform one of the following actions to shut down and reboot - your system:</para> - - <screen><userinput>panic</userinput></screen> - - <para>This will cause your kernel to dump core and reboot, so you can - later analyze the core on a higher level with kgdb. This command - usually must be followed by another <command>continue</command> - statement.</para> - - <screen><userinput>call boot(0)</userinput></screen> - - <para>Which might be a good way to cleanly shut down the running system, - <function>sync()</function> all disks, and finally reboot. As long as - the disk and file system interfaces of the kernel are not damaged, this - might be a good way for an almost clean shutdown.</para> - - <screen><userinput>call cpu_reset()</userinput></screen> - - <para>is the final way out of disaster and almost the same as hitting the - Big Red Button.</para> - - <para>If you need a short command summary, simply type:</para> - - <screen><userinput>help</userinput></screen> - - <para>However, it is highly recommended to have a printed copy of the - &man.ddb.4; manual page ready for a debugging - session. Remember that it is hard to read the on-line manual while - single-stepping the kernel.</para> - </sect1> - - <sect1> - <title>On-Line Kernel Debugging Using Remote GDB</title> - - <para>This feature has been supported since FreeBSD 2.2, and it is - actually a very neat one.</para> - - <para>GDB has already supported <emphasis>remote debugging</emphasis> for - a long time. This is done using a very simple protocol along a serial - line. Unlike the other methods described above, you will need two - machines for doing this. One is the host providing the debugging - environment, including all the sources, and a copy of the kernel binary - with all the symbols in it, and the other one is the target machine that - simply runs a similar copy of the very same kernel (but stripped of the - debugging information).</para> - - <para>You should configure the kernel in question with <command>config - -g</command>, include <option>DDB</option> into the configuration, and - compile it as usual. This gives a large blurb of a binary, due to the - debugging information. Copy this kernel to the target machine, strip - the debugging symbols off with <command>strip -x</command>, and boot it - using the <option>-d</option> boot option. Connect the serial line - of the target machine that has "flags 080" set on its sio device - to any serial line of the debugging host. - Now, on the debugging machine, go to the compile directory of the target - kernel, and start gdb:</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>Initialize the remote debugging session (assuming the first serial - port is being used) by:</para> - - <screen><prompt>(kgdb)</prompt> <userinput>target remote /dev/cuaa0</userinput></screen> - - <para>Now, on the target host (the one that entered DDB right before even - starting the device probe), type:</para> - - <screen>Debugger("Boot flags requested debugger") -Stopped at Debugger+0x35: movb $0, edata+0x51bc -<prompt>db></prompt> <userinput>gdb</userinput></screen> - - <para>DDB will respond with:</para> - - <screen>Next trap will enter GDB remote protocol mode</screen> - - <para>Every time you type <command>gdb</command>, the mode will be toggled - between remote GDB and local DDB. In order to force a next trap - immediately, simply type <command>s</command> (step). Your hosting GDB - will now gain control over the target kernel:</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>You can use this session almost as any other GDB session, including - full access to the source, running it in gud-mode inside an Emacs window - (which gives you an automatic source code display in another Emacs - window) etc.</para> - - <para>Remote GDB can also be used to debug LKMs. First build the LKM with - debugging symbols:</para> - - <screen>&prompt.root; <userinput>cd /usr/src/lkm/linux</userinput> -&prompt.root; <userinput>make clean; make COPTS=-g</userinput></screen> - - <para>Then install this version of the module on the target machine, load - it and use <command>modstat</command> to find out where it was - loaded:</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>Take the load address of the module and add 0x20 (probably to - account for the a.out header). This is the address that the module code - was relocated to. Use the <command>add-symbol-file</command> command in - GDB to tell the debugger about the 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>You now have access to all the symbols in the LKM.</para> - </sect1> - - <sect1> - <title>Debugging a Console Driver</title> - - <para>Since you need a console driver to run DDB on, things are more - complicated if the console driver itself is failing. You might remember - the use of a serial console (either with modified boot blocks, or by - specifying <option>-h</option> at the <prompt>Boot:</prompt> prompt), - and hook up a standard terminal onto your first serial port. DDB works - on any configured console driver, of course also on a serial - console.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/kernelopts/chapter.sgml b/en_US.ISO8859-1/books/handbook/kernelopts/chapter.sgml deleted file mode 100644 index 28fcdb26ed..0000000000 --- a/en_US.ISO8859-1/books/handbook/kernelopts/chapter.sgml +++ /dev/null @@ -1,165 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/kernelopts/chapter.sgml,v 1.15 2000/06/08 01:56:11 jim Exp $ ---> - -<chapter id="kernelopts"> - <title>Adding New Kernel Configuration Options</title> - - <para><emphasis>Contributed by &a.joerg;</emphasis></para> - - <note> - <para>You should be familiar with the section about <link - linkend="kernelconfig">kernel configuration</link> before reading - here.</para> - </note> - - <sect1> - <title>What's a <emphasis>Kernel Option</emphasis>, Anyway?</title> - - <para>The use of kernel options is basically described in the <link - linkend="kernelconfig-options">kernel configuration</link> section. - There's also an explanation of <quote>historic</quote> and - <quote>new-style</quote> options. The ultimate goal is to eventually - turn all the supported options in the kernel into new-style ones, so for - people who correctly did a <command>make depend</command> in their - kernel compile directory after running - &man.config.8;, the build process will automatically pick up modified - options, and only recompile those files where it is necessary. Wiping - out the old compile directory on each run of &man.config.8; as it is - still done now can then be eliminated again.</para> - - <para>Basically, a kernel option is nothing else than the definition of a - C preprocessor macro for the kernel compilation process. To make the - build truly optional, the corresponding part of the kernel source (or - kernel <filename>.h</filename> file) must be written with the option - concept in mind, i.e., the default can be overridden by the - config option. This is usually done with something like:</para> - - <programlisting> -#ifndef THIS_OPTION -#define THIS_OPTION (some_default_value) -#endif /* THIS_OPTION */</programlisting> - - <para>This way, an administrator mentioning another value for the option - in his config file will take the default out of effect, and replace it - with his new value. Clearly, the new value will be substituted into the - source code during the preprocessor run, so it must be a valid C - expression in whatever context the default value would have been - used.</para> - - <para>It is also possible to create value-less options that simply enable - or disable a particular piece of code by embracing it in</para> - - <programlisting> -#ifdef THAT_OPTION - -[your code here] - -#endif</programlisting> - - <para>Simply mentioning <literal>THAT_OPTION</literal> in the config file - (with or without any value) will then turn on the corresponding piece of - code.</para> - - <para>People familiar with the C language will immediately recognize that - everything could be counted as a <quote>config option</quote> where there - is at least a single <literal>#ifdef</literal> referencing it... - However, it's unlikely that many people would put</para> - - <programlisting> -options notyet,notdef</programlisting> - - <para>in their config file, and then wonder why the kernel compilation - falls over. <!-- smiley -->:-)</para> - - <para>Clearly, using arbitrary names for the options makes it very hard to - track their usage throughout the kernel source tree. That is the - rationale behind the <emphasis>new-style</emphasis> option scheme, where - each option goes into a separate <filename>.h</filename> file in the - kernel compile directory, which is by convention named - <filename>opt_<replaceable>foo</replaceable>.h</filename>. This way, - the usual Makefile dependencies could be applied, and - <command>make</command> can determine what needs to be recompiled once - an option has been changed.</para> - - <para>The old-style option mechanism still has one advantage for local - options or maybe experimental options that have a short anticipated - lifetime: since it is easy to add a new <literal>#ifdef</literal> to the - kernel source, this has already made it a kernel config option. In this - case, the administrator using such an option is responsible himself for - knowing about its implications (and maybe manually forcing the - recompilation of parts of his kernel). Once the transition of all - supported options has been done, &man.config.8; will warn whenever an - unsupported option appears in the config file, but it will nevertheless - include it into the kernel Makefile.</para> - </sect1> - - <sect1> - <title>Now What Do I Have to Do for it?</title> - - <para>First, edit <filename>sys/conf/options</filename> (or - <filename>sys/<replaceable><arch></replaceable>/conf/options.<replaceable><arch></replaceable></filename>, - e. g. <filename>sys/i386/conf/options.i386</filename>), and select an - <filename>opt_<replaceable>foo</replaceable>.h</filename> file where - your new option would best go into.</para> - - <para>If there is already something that comes close to the purpose of the - new option, pick this. For example, options modifying the overall - behavior of the SCSI subsystem can go into - <filename>opt_scsi.h</filename>. By default, simply mentioning an - option in the appropriate option file, say <literal>FOO</literal>, - implies its value will go into the corresponding file - <filename>opt_foo.h</filename>. This can be overridden on the - right-hand side of a rule by specifying another filename.</para> - - <para>If there is no - <filename>opt_<replaceable>foo</replaceable>.h</filename> already - available for the intended new option, invent a new name. Make it - meaningful, and comment the new section in the - <filename>options[<replaceable>.<arch></replaceable>]</filename> - file. &man.config.8; will automagically pick up the change, and create - that file next time it is run. Most options should go in a header file - by themselves..</para> - - <para>Packing too many options into a single - <filename>opt_<replaceable>foo</replaceable>.h</filename> will cause too - many kernel files to be rebuilt when one of the options has been changed - in the config file.</para> - - <para>Finally, find out which kernel files depend on the new option. - Unless you have just invented your option, and it does not exist - anywhere yet, <screen> -&prompt.user; <userinput>find /usr/src/sys -type f | xargs fgrep NEW_OPTION</userinput> -</screen> - is your friend in finding them. Go and edit all those files, and add - <programlisting>#include "opt_foo.h"</programlisting> <emphasis>on - top</emphasis> before all the <literal>#include <xxx.h></literal> stuff. - This sequence is most important as the options could override defaults - from the regular include files, if the defaults are of the form - <programlisting> #ifndef NEW_OPTION #define NEW_OPTION (something) - #endif</programlisting> in the regular header.</para> - - <para>Adding an option that overrides something in a system header file - (i.e., a file sitting in <filename>/usr/include/sys/</filename>) is - almost always a mistake. - <filename>opt_<replaceable>foo</replaceable>.h</filename> cannot be - included into those files since it would break the headers more - seriously, but if it is not included, then places that include it may - get an inconsistent value for the option. Yes, there are precedents for - this right now, but that does not make them more correct.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/l10n/chapter.sgml b/en_US.ISO8859-1/books/handbook/l10n/chapter.sgml deleted file mode 100644 index 54770b0f3f..0000000000 --- a/en_US.ISO8859-1/books/handbook/l10n/chapter.sgml +++ /dev/null @@ -1,920 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/l10n/chapter.sgml,v 1.36 2000/06/08 01:56:11 jim Exp $ ---> - -<chapter id="l10n"> - <title>Localization - I18N/L10N Usage and Setup</title> - - <para><emphasis>Contributed by &a.ache;</emphasis></para> - - <para><emphasis>Rewritten by Michael Chin-Yuan Wu - <email>keichii@mail.utexas.edu</email>, 6 March 2000.</emphasis></para> - - <sect1> - <title>Synopsis</title> - - <para>This section of the handbook discusses the internationalization - and localization of FreeBSD to different countries and different - settings. If the users wish to use languages other than the system - default English, he/she will have to setup the system accordingly. - Please note that language support for each language varies in level. - Hence, the user should contact the respective FreeBSD local group - that is responsible for each language.</para> - - <para>The author realizes that he may have been incomplete in the - description of the i18n process in FreeBSD. Due to the various - levels of i18n implementation in both the system and application - levels, we advise you to refer to individual documentation, man - pages, READMEs, and so forth.</para> - - <para>Should you have any questions or suggestions regarding this - chapter, please email the author.</para> - </sect1> - - <sect1> - <title>The Basics</title> - - <sect2> - <title>What is i18n/l10n?</title> - - <para>Developers shortened internationalization into the term i18n, - counting the number of letters between the first and the last - letters of internationalization. l10n uses the same naming - scheme, coming from "localization". Combined - together, i18n/l10n methods, protocols, and applications allow - users to use languages of their choice.</para> - - <para>I18n applications are programmed using i18n kits under - libraries. It allows for developers to write a simple file and - translate displayed menus and texts to each language. We strongly - encourage programmers to follow this convention.</para> - </sect2> - - <sect2> - <title>Why should I use i18n/l10n?</title> - - <para>I18n/l10n is used whenever you wish to either view, input, or - process data in non-English languages.</para> - </sect2> - - <sect2> - <title>What languages are supported in the i18n effort?</title> - - <para>I18n and l10n are not FreeBSD specific. Currently, one can - choose from most of the major languages of the World, including - but not limited to: Chinese, German, Japanese, French, Russian, - and others.</para> - </sect2> - </sect1> - - <sect1 id="using-localization"> - <title>Using Localization</title> - - <para>In all its splendor, i18n is not FreeBSD-specific and is a - convention. We encourage you to help FreeBSD in following this - convention.</para> - - <para>Localization settings are based on three main terms: - Language Code, Country Code, and Encoding. Locale names are - constructed from these parts as follows:</para> - - <programlisting> -<replaceable>LanguageCode</replaceable>_<replaceable>CountryCode</replaceable>.<replaceable>Encoding</replaceable></programlisting> - - <sect2> - <title>Language and Country Codes</title> - - <para>In order to localize a FreeBSD system to a specific language - (or any other i18n-supporting UNIX's), the user needs to find out - the codes for the specify country and language (country - codes tell applications what variation of given - language to use). In addition, web - browsers, SMTP/POP servers, web servers, etc. make decisions based on - them. The following are examples of language/country codes:</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Language/Country Code</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry>en_US</entry> - <entry>English - United States</entry> - </row> - - <row> - <entry>ru_RU</entry> - <entry>Russian for Russia</entry> - </row> - - <row> - <entry>zh_TW</entry> - <entry>Traditional Chinese for Taiwan</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - </sect2> - - <sect2> - <title>Encodings</title> - - <para>Some languages use non-ASCII encodings that are 8-bit, wide - or multibyte characters, see &man.multibyte.3; for more - details. Older applications do not recognize them - and mistake them for control characters. Newer applications - usually do recognize 8-bit characters. Depending on the - implementation, users may be required to compile an application - with wide or multibyte characters support, or configure it correctly. - To be able to input and process wide or multibyte characters, the <ulink - url="../ports/">FreeBSD Ports collection</ulink> has provided - each language with different programs. Refer to the i18n - documentation in the respective FreeBSD Port.</para> - - <para>Specifically, the user needs to look at the application - documentation to decide on how to configure it correctly or to - pass correct values into the configure/Makefile/compiler.</para> - - <para>Some things to keep in mind are:</para> - - <itemizedlist> - <listitem> - <para>Language specific single C chars character sets - (see &man.multibyte.3;), i.e., - ISO_8859-1, KOI8-R, CP437.</para> - </listitem> - - <listitem> - <para>Wide or multibyte encodings, f.e. EUC, Big5.</para> - </listitem> - </itemizedlist> - - <para>You can check the active list of character sets at the - <ulink - url="ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets">IANA Registry</ulink>.</para> - </sect2> - - <sect2> - <title>I18n applications</title> - - <para>In the FreeBSD Ports and Package system, i18n applications - have been named with <literal>i18n</literal> in their names for - easy identification. However, they do not always support the - language needed.</para> - </sect2> - - <sect2 id="setting-locale"> - <title>Setting Locale</title> - - <para>Theoretically, one only needs to export the value of his/her - locale name as <envar>LANG</envar> in the login shell and is - usually done through the user's - <filename>~/.login_conf</filename> or the user login shell - configuration (<filename>~/.profile</filename>, - <filename>~/.bashrc</filename>, <filename>~/.cshrc</filename>). - This should set all of the locale subsets (such as - <envar>LC_CTYPE</envar>, <envar>LC_CTIME</envar>, etc.). Please - refer to language-specific FreeBSD documentation for more - information.</para> - - <para>You should set the following two values in your configuration - files:</para> - - <itemizedlist> - <listitem> - <para><envar>LANG</envar> for POSIX &man.setlocale.3; family - functions</para> - </listitem> - - <listitem> - <para><envar>MM_CHARSET</envar> for applications' MIME character - set</para> - </listitem> - </itemizedlist> - - <para>This includes the user shell config, the specific application - config, and the X11 config.</para> - - <sect3> - <title>Setting Locale Methods</title> - - <para>There are two methods for setting locale, and both are - described below. The first (recommended one) is by assigning - the environment variables in <link linkend="login-class">login - class</link>, and the second is by adding the environment - variable assignments to the system's shell <link - linkend="startup-file">startup file</link>.</para> - - <sect4 id="login-class"> - <title>Login Classes Method</title> - - <para>This method allows environment variables needed for locale - name and MIME character sets to be assigned once for every - possible shell instead of adding specific shell assignments to - each shell's startup file. <link linkend="usr-setup">User - Level Setup</link> can be done by an user himself and <link - linkend="adm-setup">Administrator Level Setup</link> require - superuser privileges.</para> - - <sect5 id="usr-setup"> - <title>User Level Setup</title> - - <para>Here is a minimal example of a - <filename>.login_conf</filename> file in user's home - directory which has both variables set for Latin-1 - encoding:</para> - - <programlisting> -me:My Account:\ - :charset=ISO-8859-1:\ - :lang=de_DE.ISO_8859-1:</programlisting> - - <para>See <link linkend="adm-setup">Administrator Level - Setup</link> and &man.login.conf.5; for more details.</para> - </sect5> - - <sect5 id="adm-setup"> - <title>Administrator Level Setup</title> - - <para>Check that <filename>/etc/login.conf</filename> have the - correct language user's class. Make sure these settings - appear in <filename>/etc/login.conf</filename>:</para> - - <programlisting> -<replaceable>language_name</replaceable>:<replaceable>accounts_title</replaceable>:\ - :charset=<replaceable>MIME_charset</replaceable>:\ - :lang=<replaceable>locale_name</replaceable>:\ - :tc=default:</programlisting> - - <para>So sticking with our previous example using Latin-1, it - would look like this:</para> - - <programlisting> -german:German Users Accounts:\ - :charset=ISO-8859-1:\ - :lang=de_DE.ISO_8859-1:\ - :tc=default:</programlisting> - - <para>Changing Login Classes with &man.vipw.8;</para> - - <para>Use <command>vipw</command> to add new users, and make - the entry look like this:</para> - - <programlisting> -user:password:1111:11:<replaceable>language</replaceable>:0:0:User Name:/home/user:/bin/sh</programlisting> - - <para>Changing Login Classes with &man.adduser.8;</para> - - <para>Use <command>adduser</command> to add new users, and do - the following:</para> - - <itemizedlist> - <listitem> - <para>Set <literal>defaultclass = - <replaceable>language</replaceable></literal> in - <filename>/etc/adduser.conf</filename>. Keep in mind - you must enter a <literal>default</literal> class for - all users of other languages in this case.</para> - </listitem> - - <listitem> - <para>An alternative variant is answering the specified - language each time that -<screen><prompt>Enter login class: default []: </prompt></screen> - appears from &man.adduser.8;</para> - </listitem> - - <listitem> - <para>Another alternative is to use the following for each - user of a different language that you wish to - add:</para> - - <screen>&prompt.root; <userinput>adduser -class <replaceable>language</replaceable></userinput></screen> - </listitem> - </itemizedlist> - - <para>Changing Login Classes with &man.pw.8;</para> - - <para>If you use &man.pw.8; for adding new users, call it in - this form:</para> - - <screen>&prompt.root; <userinput>pw useradd <replaceable>user_name</replaceable> -L <replaceable>language</replaceable></userinput></screen> - </sect5> - </sect4> - - <sect4 id="startup-file"> - <title>Shell Startup File Method</title> - - <note> - <para>This method is not recommended because it requires a - different setup for each possible login program chosen. Use - the <link linkend="login-class">Login Class Method</link> - instead.</para> - </note> - - <para>To add the locale name and MIME character set, just set - the two environment variables shown below in the - <filename>/etc/profile</filename> and/or - <filename>/etc/csh.login</filename> shell startup files. We - will use the German language as an example below:</para> - - <para>In <filename>/etc/profile</filename>:</para> - - <programlisting> -<envar>LANG=de_DE.ISO_8859-1; export LANG</envar> -<envar>MM_CHARSET=ISO-8859-1; export MM_CHARSET</envar></programlisting> - - <para>Or in <filename>/etc/csh.login</filename>:</para> - - <programlisting> -<envar>setenv LANG de_DE.ISO_8859-1</envar> -<envar>setenv MM_CHARSET ISO-8859-1</envar></programlisting> - - <para>Alternatively, you can add the above instructions to - <filename>/usr/share/skel/dot.profile</filename> (similar to - what was used in <filename>/etc/profile</filename> above), or - <filename>/usr/share/skel/dot.login</filename> (similar to - what was used in <filename>/etc/csh.login</filename> - above).</para> - - <para>For X11:</para> - - <para>In <filename>$HOME/.xinitrc</filename>:</para> - - <programlisting> -<envar>LANG=de_DE.ISO_8859-1; export LANG</envar></programlisting> - - <para>Or:</para> - - <programlisting> -<envar>setenv LANG de_DE.ISO_8859-1</envar></programlisting> - - <para>Depending on your shell (see above).</para> - </sect4> - </sect3> - </sect2> - - <sect2 id="setting-console"> - <title>Console Setup</title> - - <para>For all single C chars character sets, set the correct - console fonts in <filename>/etc/rc.conf</filename> for the - language in question with:</para> - - <programlisting> -font8x16=<replaceable>font_name</replaceable> -font8x14=<replaceable>font_name</replaceable> -font8x8=<replaceable>font_name</replaceable></programlisting> - - <para>The <replaceable>font_name</replaceable> here is taken from - the <filename>/usr/share/syscons/fonts</filename> directory, - without the <filename>.fnt</filename> suffix.</para> - - <para>Also be sure to set the correct keymap and screenmap for your - single C chars character set through - <filename>/stand/sysinstall</filename>. - Once inside sysinstall, choose <literal>Configure</literal>, then - <literal>Console</literal>. Alternatively, you can add the - following to <filename>/etc/rc.conf</filename>:</para> - - <programlisting> -scrnmap=<replaceable>screenmap_name</replaceable> -keymap=<replaceable>keymap_name</replaceable> -keychange="<replaceable>fkey_number sequence</replaceable>"</programlisting> - - <para>The <replaceable>screenmap_name</replaceable> here is taken - from the <filename>/usr/share/syscons/scrnmaps</filename> - directory, without the <filename>.scm</filename> suffix. A - screenmap with a corresponding mapped font is usually needed as a - workaround for expanding bit 8 to bit 9 on a VGA adapter's font - character matrix in pseudographics area, i.e., to move letters out - of that area if screen font uses a bit 8 column.</para> - - <para>If you have the following settings, insert the - kernel config specified in the paragraph after the list.</para> - - <itemizedlist> - <listitem> - <para>Console uses a screen font that utilizes 8-bit column font - character.</para> - </listitem> - - <listitem> - <para>The moused daemon is enabled by setting the following in - your <filename>/etc/rc.conf</filename>:</para> - -<programlisting>moused_enable="YES"</programlisting> - </listitem> - </itemizedlist> - - <para>A workaround for expanding 8-bit to 9-bit on a VGA adapter - is usually needed for the above settings. This workaround - disables 8-bit to 9-bit expansion of the font character with the - mouse cursor the sc0 console driver. To enable the workaround, - insert the following line into the kernel config.</para> - - <programlisting> -options SC_MOUSE_CHAR=0x03</programlisting> - - <para>The <replaceable>keymap_name</replaceable> here is taken from - the <filename>/usr/share/syscons/keymaps</filename> directory, - without the <filename>.kbd</filename> suffix.</para> - - <para>The <literal>keychange</literal> is usually needed to program - function keys to match the selected terminal type because - function key sequences can not be defined in the key map.</para> - - <para>Also be sure to set the correct console terminal type in - <filename>/etc/ttys</filename> for all <literal>ttyv*</literal> - entries. Current pre-defined correspondences are:</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Character Set</entry> - <entry>Terminal Type</entry> - </row> - </thead> - - <tbody> - <row> - <entry>ISO-8859-1 or ISO-8859-15</entry> - <entry><literal>cons25l1</literal></entry> - </row> - - <row> - <entry>ISO-8859-2</entry> - <entry><literal>cons25l2</literal></entry> - </row> - - <row> - <entry>KOI8-R</entry> - <entry><literal>cons25r</literal></entry> - </row> - - <row> - <entry>CP437 (hardware default)</entry> - <entry><literal>cons25</literal></entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>For wide or multibyte characters languages, use the correct - FreeBSD port in your - <filename>/usr/ports/<replaceable>language</replaceable></filename> - directory. Some ports appear as console while the system sees it - as serial vtty's, hence you must reserve enough vtty's for both - X11 and the pseudo-serial console. Here is a partial list of - applications for using other languages in console:</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Language</entry> - <entry>Location</entry> - </row> - </thead> - - <tbody> - <row> - <entry>Traditional Chinese (BIG-5)</entry> - <entry><filename>/usr/ports/chinese/big5con</filename></entry> - </row> - - <row> - <entry>Japanese</entry> - <entry><filename>/usr/ports/japanese/ja-kon2-*</filename> or - <filename>/usr/ports/japanese/Mule_Wnn</filename></entry> - </row> - - <row> - <entry>Korean</entry> - <entry><filename>/usr/ports/korean/ko-han</filename></entry> - </row> - </tbody> - </tgroup> - </informaltable> - </sect2> - - <sect2> - <title>X11 Setup</title> - - <para>Although X11 is not part of the FreeBSD Project, we have - included some information here for FreeBSD users. For more - details, refer to the <ulink url="http://www.xfree86.org/">XFree86 - web site</ulink> or whichever X11 Server you use.</para> - - <para>In <filename>~/.Xresources</filename>, you can additionally - tune application specific i18n settings (e.g., fonts, menus, - etc.).</para> - - <sect3> - <title>Displaying Fonts</title> - - <para>Install the X11 True Type-Common server (XTT-common) and - install the language truetype fonts. Setting the correct - locale should allow you to view your selected language in menus - and such.</para> - </sect3> - - <sect3> - <title>Inputting Non-English Characters</title> - - <para>The X11 Input Method (XIM) Protocol is a new standard for - all X11 clients. All X11 applications should be written as XIM - clients that take input from XIM Input servers. There are - several XIM servers available for different languages.</para> - </sect3> - </sect2> - - <sect2> - <title>Printer Setup</title> - - <para>Some single C chars character sets are usually hardware - coded into printers. Wide or multibyte - character sets require special setup and we recommend using - <application>apsfilter</application>. You may also convert the - document to Postscript or PDF formats using language specific - converters.</para> - </sect2> - - <sect2> - <title>Kernel and File Systems</title> - - <para>The FreeBSD FFS filesystem is 8-bit clean, so it can be used - with any single C chars character set (see &man.multibyte.3;), - but there is no character set - name stored in the filesystem; i.e., it is raw 8-bit and does not - know anything about encoding order. Officially, FFS does not - support any form of wide or multibyte character sets yet. However, some - wide or multibyte character sets have independent patches for FFS - enabling such support. They are only temporary unportable - solutions or hacks and we have decided to not include them in the - source tree. Refer to respective languages' web sites for more - informations and the patch files.</para> - - <para>The FreeBSD MS-DOS filesystem has the configurable ability to - convert between MS-DOS, Unicode character sets and chosen - FreeBSD filesystem character sets. See &man.mount.msdos.8; for - details.</para> - </sect2> - </sect1> - - <sect1> - <title>Advanced Topics</title> - - <para>If you wish to compile i18n applications or program i18n - compliant applications, please read this section.</para> - - <sect2> - <title>Compiling i18n Programs</title> - - <para>Many FreeBSD Ports have been ported with i18n support. Some - of them are marked with -i18n in the port name. These and many - other programs have built in support for i18n and need no special - consideration.</para> - - <para>However, some applications such as MySQL need to be have the - <filename>Makefile</filename> configured with the specific - charset. This is usually done in the - <filename>Makefile</filename> or done by passing a value to - configure in the source.</para> - </sect2> - - <sect2> - <title>Programming i18n Compliant Applications</title> - - <para>To make your application more useful for speakers of other - languages, we hope that you will program i18n compliant. The GNU - gcc compiler, GUI Libraries like QT and GTK support i18n through - special handling of strings. Making a program i18n compliant is - very easy. It allows contributors to port your application to - other languages quickly. Refer to library specific i18n - documentation for more details.</para> - - <para>To the contrary of common perception, i18n compliant code is - easy to write. Usually, it only involves wrapping your strings - with library specific functions. In addition, please be sure to - allow for wide or multibyte characters support.</para> - - <sect3> - <title>A Call to Unify the i18n effort</title> - - <para>It has come to our attention that the individual i18n/l10n - efforts for each country has been repeating each others' - efforts. Many of us have been reinventing the wheel repeatedly - and inefficiently. We hope that the various major groups in - i18n could congregate into a group effort similar to the Core - Team's responsibility.</para> - - <para>Currently, we hope that, when you write or port i18n - programs, you would send it out to each country's related - FreeBSD mailing lists for testing. In the future, we hope to - create applications that work in all the languages - out-of-the-box without dirty hacks.</para> - </sect3> - - <sect3> - <title>Perl and Python</title> - - <para>Perl and Python have i18n and wide characters handling - libraries. Please use them for i18n compliance.</para> - - <para>In older FreeBSD versions, - Perl may gives warning about not having a wide characters locale - that is already installed in your system. You can set the - environmental variable <envar>LD_PRELOAD</envar> to - <filename>/usr/lib/libxpg4.so</filename> in your shell.</para> - - <para>In <literal>sh</literal>-based shells:</para> - - <programlisting> -<envar>LD_PRELOAD=/usr/lib/libxpg4.so</envar></programlisting> - - <para>In <literal>C</literal>-based shells:</para> - - <programlisting> -<envar>setenv LD_PRELOAD /usr/lib/libxpg4.so</envar></programlisting> - </sect3> - </sect2> - </sect1> - - <sect1 id="lang-setup"> - <title>Localizing FreeBSD to Specific Languages</title> - - <sect2 id="ru-localize"> - <title>Russian Language (KOI8-R encoding)</title> - - <para><emphasis>Originally contributed by - &a.ache;.</emphasis></para> - - <para>For more information about KOI8-R encoding, see the <ulink - url="http://nagual.pp.ru/~ache/koi8.html">KOI8-R References - (Russian Net Character Set)</ulink>.</para> - - <sect3> - <title>Locale Setup</title> - - <para>Put the following lines into your - <filename>~/.login_conf</filename> file:</para> - - <programlisting> -me:My Account:\ - :charset=KOI8-R:\ - :lang=ru_RU.KOI8-R:</programlisting> - - <para>See earlier in this chapter for examples of setting up the - <link linkend="setting-locale">locale</link>.</para> - </sect3> - - <sect3> - <title>Console Setup</title> - - <itemizedlist> - <listitem> - <para>Add the following to your kernel configuration - file:</para> - - <programlisting> -options SC_MOUSE_CHAR=0x03</programlisting> - </listitem> - - <listitem> - <para>Use following settings in - <filename>/etc/rc.conf</filename>:</para> - - <programlisting> -keymap="ru.koi8-r" -keychange="61 ^[[K" -scrnmap="koi8-r2cp866" -font8x16="cp866b-8x16" -font8x14="cp866-8x14" -font8x8="cp866-8x8"</programlisting> - - <para>Note that the <literal>^[</literal> here stands for a - real Escape character (\033) entered directly in - <filename>/etc/rc.conf</filename>, not for sequence of two - characters '^' and '['.</para> - </listitem> - - <listitem> - <para>For each <literal>ttyv*</literal> entry in - <filename>/etc/ttys</filename>, use - <literal>cons25r</literal> as the terminal type.</para> - </listitem> - </itemizedlist> - - <para>See earlier in this chapter for examples of setting up the - <link linkend="setting-console">console</link>.</para> - </sect3> - - <sect3> - <title>Printer Setup</title> - - <para>Since most printers with Russian characters come with - hardware code page CP866, a special output filter is needed for - KOI8-R -> CP866 conversion. Such a filter is installed by - default as <filename>/usr/libexec/lpr/ru/koi2alt</filename>. - A Russian printer <filename>/etc/printcap</filename> entry - should look like:</para> - - <programlisting> -lp|Russian local line printer:\ - :sh:of=/usr/libexec/lpr/ru/koi2alt:\ - :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:</programlisting> - - <para>See &man.printcap.5; for a detailed description.</para> - </sect3> - - <sect3> - <title>MS-DOS FS and Russian Filenames</title> - - <para>The following example &man.fstab.5; entry enables support - for Russian filenames in mounted MS-DOS filesystems:</para> - - <programlisting> -/dev/ad0s2 /dos/c msdos rw,-W=koi2dos,-L=ru_RU.KOI8-R 0 0</programlisting> - - <para>See &man.mount.msdos.8; for a detailed description of the - <option>-W</option> and <option>-L</option> options.</para> - </sect3> - - <sect3> - <title>X11 Setup</title> - - <orderedlist> - <listitem> - <para>Do <link linkend="setting-locale">non-X locale - setup</link> first as described.</para> - - <note> - <para><anchor id="russian-note">The Russian KOI8-R locale - may not work with old XFree86 releases (lower than 3.3). - The XFree86 port from - <filename>/usr/ports/x11/XFree86</filename> already is the - most recent XFree86 version, so it will work if you - install XFree86 from the port. This should not be an - issue unless you are using an old version of - FreeBSD.</para> - </note> - </listitem> - - <listitem> - <para>Go to the - <filename>/usr/ports/russian/X.language</filename> directory - and issue the following command:</para> - - <screen>&prompt.root; <userinput>make install</userinput></screen> - - <para>The above port installs the latest version of the KOI8-R - fonts. XFree86 3.3 already has some KOI8-R fonts, but these - are scaled better.</para> - - <para>Check the <literal>"Files"</literal> section - in your <filename>/etc/XF86Config</filename> file. - The following - lines must be added <emphasis>before</emphasis> any other - <literal>FontPath</literal> entries:</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>If you use a high resolution video mode, swap the 75 dpi - and 100 dpi lines.</para> - </listitem> - - <listitem> - <para>To activate a Russian keyboard, add the following to the - <literal>"Keyboard"</literal> section of your - <filename>XF86Config</filename> file:</para> - - <programlisting> -XkbLayout "ru" -XkbOptions "grp:caps_toggle"</programlisting> - - <para>Also make sure that <literal>XkbDisable</literal> is - turned off (commented out) there.</para> - - <para>The RUS/LAT switch will be <literal>CapsLock</literal>. - The old <literal>CapsLock</literal> function is still - available via <literal>Shift+CapsLock</literal> (in LAT mode - only).</para> - - <para>If you have <quote>Windows</quote> keys on your keyboard, - and notice that some non-alphabetical keys are mapped - incorrectly in RUS mode, add the following line in your - <filename>XF86Config</filename> file:</para> - - <programlisting> -XkbVariant "winkeys"</programlisting> - - <note> - <para>The Russian XKB keyboard may not work with old XFree86 - versions, see the <link linkend="russian-note">above - note</link> for more information. The Russian XKB - keyboard may also not work with non-localized - applications as well. Minimally localized applications - should call a <literal>XtSetLanguageProc (NULL, NULL, - NULL);</literal> function early in the program. - See <ulink - url="http://nagual.pp.ru/~ache/koi8/xwin.html"> - KOI8-R for X-Window</ulink> for more instructions on - localizing X11 applications.</para> - </note> - </listitem> - </orderedlist> - </sect3> - </sect2> - - <sect2> - <title>Traditional Chinese Localization for Taiwan</title> - - <para>The FreeBSD-Taiwan Project has an i18n/l10n tutorial for - FreeBSD at <ulink url="http://freebsd.sinica.edu.tw/~ncvs/zh-l10n-tut/index.html">http://freebsd.sinica.edu.tw/~ncvs/zh-l10n-tut/index.html</ulink> - using many <filename>/usr/ports/chinese/*</filename> applications. - The editor for the <literal>zh-l10n-tut</literal> is Clive Lin - <email>Clive@CirX.org</email>. You can also cvsup the following - collections at <hostid - role="fqdn">freebsd.sinica.edu.tw</hostid>:</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Collection</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry>outta-port tag=.</entry> - <entry>Beta-quality Ports Collection for Chinese</entry> - </row> - - <row> - <entry>zh-l10n-tut tag=.</entry> - <entry>Localizing FreeBSD Tutorial in BIG-5 Traditional - Chinese</entry> - </row> - - <row> - <entry>zh-doc tag=.</entry> - <entry>FreeBSD Documentation Translation to BIG-5 Traditional - Chinese</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>Chuan-Hsing Shen <email>s874070@mail.yzu.edu.tw</email> has - created the <ulink url="http://cpna.yzu.edu.tw/~cfe">Chinese - FreeBSD Extension (CFE)</ulink> using FreeBSD-Taiwan's - <literal>zh-l10n-tut</literal>. The packages and the script files - are available at <ulink url="ftp://ftp-cnpa.yzu.edu.tw/FreeBSD/collect/cfe/cfe.txt">ftp://ftp-cnpa.yzu.edu.tw/FreeBSD/collect/cfe/cfe.txt</ulink> - and <ulink - url="ftp://ftp-cnpa.yzu.edu.tw/FreeBSD/collect/cfe/">ftp://ftp-cnpa.yzu.edu.tw/FreeBSD/collect/cfe/</ulink>.</para> - </sect2> - - <sect2> - <title>German Language Localization (For All ISO 8859-1 - Languages)</title> - - <para>Slaven Rezic <email>eserte@cs.tu-berlin.de</email> wrote a - tutorial how to use umlauts on a FreeBSD machine. The tutorial - is written in German and available at <ulink - url="http://www.de.FreeBSD.org/de/umlaute/">http://www.de.FreeBSD.org/de/umlaute/</ulink>.</para> - </sect2> - - <sect2> - <title>Japanese and Korean Language Localization</title> - - <para>For Japanese, refer to <ulink - url="http://www.jp.FreeBSD.org/">http://www.jp.FreeBSD.org/</ulink>, - and for Korean, refer to <ulink - url="http://www.kr.FreeBSD.org/">http://www.kr.FreeBSD.org/</ulink>.</para> - </sect2> - - <sect2> - <title>Non-English FreeBSD Documentation</title> - - <para>Some FreeBSD contributors have translated parts of FreeBSD to - other languages. They are available through links on the <ulink - url="../">main site</ulink> or in - <filename>/usr/share/doc</filename>.</para> - </sect2> - </sect1> -</chapter> diff --git a/en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml b/en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml deleted file mode 100644 index 4e07791d9d..0000000000 --- a/en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml +++ /dev/null @@ -1,785 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/linuxemu/chapter.sgml,v 1.30 2000/06/08 01:56:11 jim Exp $ ---> - -<chapter id="linuxemu"> - <title>Linux Binary Compatibility</title> - - <para><emphasis>Restructured and parts updated by &a.jim;, 22 March - 2000. Originally contributed by &a.handy; and - &a.rich;</emphasis></para> - - <sect1> - <title>Synopsis</title> - - <para>The following chapter will cover FreeBSD's Linux binary - compatibility features, how to install it, and how it works.</para> - - <para>At this point, you may be asking yourself why exactly, does - FreeBSD need to be able to run Linux binaries? The answer to that - question is quite simple. Many companies and developers develop - only for Linux, since it is the latest <quote>hot thing</quote> in - the computing world. That leaves the rest of us FreeBSD users - bugging these same companies and developers to put out native - FreeBSD versions of their applications. The problem is, that most - of these companies do not really realize how many people would use - their product if there were FreeBSD versions too, and most continue - to only develop for Linux. So what is a FreeBSD user to do? This - is where the Linux binary compatibility of FreeBSD comes into - play.</para> - - <para>In a nutshell, the compatibility allows FreeBSD users to run - about 90% of all Linux applications without modification. This - includes applications such as Star Office, the Linux version of - Netscape, Adobe Acrobat, RealPlayer 5 and 7, VMWare, Oracle, - WordPerfect, Doom, Quake, and more. It is also reported that in - some situations, Linux binaries perform better on FreeBSD than they - do under Linux.</para> - - <para>There are, however, some Linux-specific operating system - features that are not supported under FreeBSD. Linux binaries will - not work on FreeBSD if they overly use the Linux - <filename>/proc</filename> filesystem (which is different from - FreeBSD's <filename>/proc</filename> filesystem), or i386-specific - calls, such as enabling virtual 8086 mode.</para> - - <para>For information on installing the Linux binary compatibility - mode, see the <link linkend="linuxemu-lbc-install">next section</link>.</para> - </sect1> - - <sect1 id="linuxemu-lbc-install"> - <title>Installation</title> - - <para>With the advent of 3.0-RELEASE, it is no longer necessary to - specify <literal>options LINUX</literal> or - <literal>options COMPAT_LINUX</literal> in your kernel - configuration.</para> - - <para>The Linux binary compatibility is now done via a KLD object - (<quote>Kernel LoaDable object</quote>), so it can be installed - <quote>on-the-fly</quote> without having to reboot. You will, - however, need to have the following in - <filename>/etc/rc.conf</filename>:</para> - - <programlisting>linux_enable=<quote>YES</quote></programlisting> - - <para>This, in turn, triggers the following action in - <filename>/etc/rc.i386</filename>:</para> - - <programlisting> -# Start the Linux binary compatibility if requested. -# -case ${linux_enable} in -[Yy][Ee][Ss]) - echo -n ' linux'; linux > /dev/null 2>&1 - ;; -esac</programlisting> - - <para>If you wish to verify that the KLD is loaded, - <command>kldstat</command> will do that:</para> - - <screen>&prompt.user; <userinput>kldstat</userinput> -Id Refs Address Size Name - 1 2 0xc0100000 16bdb8 kernel - 7 1 0xc24db000 d000 linux.ko</screen> - - <para>If for some reason you do not want to or cannot load the KLD, - then you may statically link the binary compatibility in the kernel - by adding <literal>options LINUX</literal> to your kernel - configuration file. Then install your new kernel as described in - the <link linkend="kernelconfig">kernel configuration</link> section - of this handbook.</para> - - <sect2> - <title>Installing Linux Runtime Libraries</title> - - <para>This can be done one of two ways, either by using the <link - linkend="linuxemu-libs-port">linux_base</link> port, or by installing them - <link linkend="linuxemu-libs-manually">manually</link>.</para> - - <sect3 id="linuxemu-libs-port"> - <title>Installing using the linux_base port</title> - - <para>This is by far the easiest method to use when installing the - runtime libraries. It is just like installing any other port - from the <ulink url="../ports/">ports collection</ulink>. - Simply do the following:</para> - - <screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_base</userinput> -&prompt.root; <userinput>make install distclean</userinput></screen> - - <para>You should now have working Linux binary compatibility. - Some programs may complain about incorrect minor versions of the - system libraries. In general, however, this does not seem to be - a problem.</para> - </sect3> - - <sect3 id="linuxemu-libs-manually"> - <title>Installing libraries manually</title> - - <para>If you do not have the <quote>ports</quote> collection - installed, you can install the libraries by hand instead. You - will need the Linux shared libraries that the program depends on - and the runtime linker. Also, you will need to create a - <quote>shadow root</quote> directory, - <filename>/compat/linux</filename>, for Linux libraries on your - FreeBSD system. Any shared libraries opened by Linux programs - run under FreeBSD will look in this tree first. So, if a Linux - program loads, for example, <filename>/lib/libc.so</filename>, - FreeBSD will first try to open - <filename>/compat/linux/lib/libc.so</filename>, and if that does - not exist, it will then try <filename>/lib/libc.so</filename>. - Shared libraries should be installed in the shadow tree - <filename>/compat/linux/lib</filename> rather than the paths - that the Linux <command>ld.so</command> reports.</para> - - <para>Generally, you will need to look for the shared libraries - that Linux binaries depend on only the first few times that you - install a Linux program on your FreeBSD system. After a while, - you will have a sufficient set of Linux shared libraries on your - system to be able to run newly imported Linux binaries without - any extra work.</para> - </sect3> - - <sect3> - <title>How to install additional shared libraries</title> - - <para>What if you install the <filename>linux_base</filename> port - and your application still complains about missing shared - libraries? How do you know which shared libraries Linux - binaries need, and where to get them? Basically, there are 2 - possibilities (when following these instructions you will need - to be root on your FreeBSD system).</para> - - <para>If you have access to a Linux system, see what shared - libraries the application needs, and copy them to your FreeBSD - system. Look at the following example:</para> - - <informalexample> - <para>Let us assume you used FTP to get the Linux binary of - Doom, and put it on a Linux system you have access to. You - then can check which shared libraries it needs by running - <command>ldd linuxdoom</command>, like so:</para> - - <screen>&prompt.user; <userinput>ldd linuxdoom</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>You would need to get all the files from the last column, - and put them under <filename>/compat/linux</filename>, with - the names in the first column as symbolic links pointing to - them. This means you eventually have these files on your - FreeBSD system:</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> - - <blockquote> - <note> - <para>Note that if you already have a Linux shared library - with a matching major revision number to the first column - of the <command>ldd</command> output, you will not need to - copy the file named in the last column to your system, the - one you already have should work. It is advisable to copy - the shared library anyway if it is a newer version, - though. You can remove the old one, as long as you make - the symbolic link point to the new one. So, if you have - these libraries on your system:</para> - - <screen>/compat/linux/lib/libc.so.4.6.27 -/compat/linux/lib/libc.so.4 -> libc.so.4.6.27</screen> - - <para>and you find a new binary that claims to require a - later version according to the output of - <command>ldd</command>:</para> - - <screen>libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29</screen> - - <para>If it is only one or two versions out of date in the - in the trailing digit then do not worry about copying - <filename>/lib/libc.so.4.6.29</filename> too, because the - program should work fine with the slightly older version. - However, if you like, you can decide to replace the - <filename>libc.so</filename> anyway, and that should leave - you with:</para> - - <screen>/compat/linux/lib/libc.so.4.6.29 -/compat/linux/lib/libc.so.4 -> libc.so.4.6.29</screen> - </note> - </blockquote> - - <blockquote> - <note> - <para>The symbolic link mechanism is - <emphasis>only</emphasis> needed for Linux binaries. The - FreeBSD runtime linker takes care of looking for matching - major revision numbers itself and you do not need to worry - about it.</para> - </note> - </blockquote> - </informalexample> - </sect3> - </sect2> - - <sect2> - <title>Installing Linux ELF binaries</title> - - <para>ELF binaries sometimes require an extra step of - <quote>branding</quote>. If you attempt to run an unbranded ELF - binary, you will get an error message like the following;</para> - - <screen>&prompt.user; <userinput>./my-linux-elf-binary</userinput> -ELF binary type not known -Abort</screen> - - <para>To help the FreeBSD kernel distinguish between a FreeBSD ELF - binary from a Linux binary, use the &man.brandelf.1; - utility.</para> - - <screen>&prompt.user; <userinput>brandelf -t Linux my-linux-elf-binary</userinput></screen> - - <para>The GNU toolchain now places the appropriate branding - information into ELF binaries automatically, so you this step - should become increasingly more rare in the future.</para> - </sect2> - - <sect2> - <title>Configuring the host name resolver</title> - - <para>If DNS does not work or you get this message:</para> - - <screen>resolv+: "bind" is an invalid keyword resolv+: -"hosts" is an invalid keyword</screen> - - <para>You will need to configure a - <filename>/compat/linux/etc/host.conf</filename> file - containing:</para> - - <programlisting> -order hosts, bind -multi on</programlisting> - - <para>The order here specifies that <filename>/etc/hosts</filename> - is searched first and DNS is searched second. When - <filename>/compat/linux/etc/host.conf</filename> is not - installed, linux applications find FreeBSD's - <filename>/etc/host.conf</filename> and complain about the - incompatible FreeBSD syntax. You should remove - <literal>bind</literal> if you have not configured a name server - using the <filename>/etc/resolv.conf</filename> file.</para> - </sect2> - </sect1> - - <sect1 id="linuxemu-mathematica"> - <title>Installing Mathematica</title> - - <para><emphasis>Updated for Mathematica version 4.0 by Murray Stokely - <email>murray@cdrom.com</email> and merged with work by Bojan - Bistrovic <email>bojanb@physics.odu.edu</email>.</emphasis></para> - - <para>This document describes the process of installing the Linux - version of Mathematica 4.0 onto a FreeBSD system.</para> - - <para>The Linux version of Mathematica runs perfectly under FreeBSD - however the binaries shipped by Wolfram need to be branded so that - FreeBSD knows to use the Linux ABI to execute them.</para> - - <para>The Linux version of Mathematica or Mathematica for Students can - be ordered directly from Wolfram at <ulink - url="http://www.wolfram.com/">http://www.wolfram.com/</ulink>.</para> - - <sect2> - <title>Branding the Linux binaries</title> - - <para>The Linux binaries are located in the <filename>Unix</filename> - directory of the Mathematica CDROM distributed by Wolfram. You - need to copy this directory tree to your local hard drive so that - you can brand the Linux binaries with &man.brandelf.1; before - running the installer:</para> - - <screen>&prompt.root; <userinput>mount /cdrom</userinput> -&prompt.root; <userinput>cp -rp /cdrom/Unix/ /localdir/</userinput> -&prompt.root; <userinput>brandelf -t Linux /localdir/Files/SystemFiles/Kernel/Binaries/Linux/*</userinput> -&prompt.root; <userinput>brandelf -t Linux /localdir/Files/SystemFiles/FrontEnd/Binaries/Linux/*</userinput> -&prompt.root; <userinput>brandelf -t Linux /localdir/Files/SystemFiles/Installation/Binaries/Linux/*</userinput> -&prompt.root; <userinput>cd /localdir/Installers/Linux/</userinput> -&prompt.root; <userinput>./MathInstaller</userinput></screen> - </sect2> - - <sect2> - <title>Obtaining your Mathematica Password</title> - - <para>Before you can run Mathematica you will have to obtain a - password from Wolfram that corresponds to your <quote>machine - ID</quote>.</para> - - <para>Once you have installed the Linux compatibility runtime - libraries and unpacked Mathematica you can obtain the - <quote>machine ID</quote> by running the program - <command>mathinfo</command> in the Install directory. This - machine ID is based solely on the MAC address of your first - ethernet card.</para> - - <screen>&prompt.root; <userinput>cd /localdir/Files/SystemFiles/Installation/Binaries/Linux</userinput> -&prompt.root; <userinput>mathinfo</userinput> -disco.example.com 7115-70839-20412</screen> - - <para>When you register with Wolfram, either by email, phone or fax, - you will give them the <quote>machine ID</quote> and they will - respond with a corresponding password consisting of groups of - numbers. You can then enter this information when you attempt to - run Mathematica for the first time exactly as you would for any - other Mathematica platform.</para> - </sect2> - - <sect2> - <title>Running the Mathematica front end over a network</title> - - <para>Mathematica uses some special fonts to display characters not - present in any of the standard font sets (integrals, sums, greek - letters, etc.). The X protocol requires these fonts to be install - <emphasis>locally</emphasis>. This means you will have to copy - these fonts from the CDROM or from a host with Mathematica - installed to your local machine. These fonts are normally stored - in <filename>/cdrom/Unix/Files/SystemFiles/Fonts</filename> on the - CDROM, or - <filename>/usr/local/mathematica/SystemFiles/Fonts</filename> on - your hard drive. The actual fonts are in the subdirectories - <filename>Type1</filename> and <filename>X</filename>. There are - several ways to use them, as described below.</para> - - <para>The first way is to copy them into one of the existing font - directories in <filename>/usr/X11R6/lib/X11/fonts</filename>. - This will require editing the <filename>fonts.dir</filename> file, - adding the font names to it, and changing the number of fonts on - the first line. Alternatively, you should also just be able to - run <command>mkfontdir</command> in the directory you have copied - them to.</para> - - <para>The second way to do this is to copy the directories to - <filename>/usr/X11R6/lib/X11/fonts</filename>:</para> - - <screen>&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts</userinput> -&prompt.root; <userinput>mkdir X</userinput> -&prompt.root; <userinput>mkdir MathType1</userinput> -&prompt.root; <userinput>cd /cdrom/Unix/Files/SystemFiles/Fonts</userinput> -&prompt.root; <userinput>cp X/* /usr/X11R6/lib/X11/fonts/X</userinput> -&prompt.root; <userinput>cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1</userinput> -&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts/X</userinput> -&prompt.root; <userinput>mkfontdir</userinput> -&prompt.root; <userinput>cd ../MathType1</userinput> -&prompt.root; <userinput>mkfontdir</userinput</screen> - - <para>Now add the new font directories to your font path:</para> - - <screen>&prompt.root; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/X</userinput> -&prompt.root; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/MathType1</userinput> -&prompt.root; <userinput>xset fp rehash</userinput></screen> - - <para>If you are using the XFree86 server, you can have these font - directories loaded automatically by adding them to your - <filename>XF86Config</filename> file.</para> - - <para>If you <emphasis>do not</emphasis> already have a directory - called <filename>/usr/X11R6/lib/X11/fonts/Type1</filename>, you - can change the name of the <filename>MathType1</filename> - directory in the example above to - <filename>Type1</filename>.</para> - </sect2> - </sect1> - - <sect1 id="linuxemu-oracle"> - <title>Installing Oracle</title> - - <para><emphasis>Contributed by Marcel Moolenaar - <email>marcel@cup.hp.com</email></emphasis></para> - - <sect2> - <title>Preface</title> - <para>This document describes the process of installing Oracle 8.0.5 and - Oracle 8.0.5.1 Enterprise Edition for Linux onto a FreeBSD - machine</para> - </sect2> - - <sect2> - <title>Installing the Linux environment</title> - - <para>Make sure you have both <filename>linux_base</filename> and - <filename>linux_devtools</filename> from the ports collection - installed. These ports are added to the collection after the release - of FreeBSD 3.2. If you are using FreeBSD 3.2 or an older version for - that matter, update your ports collection. You may want to consider - updating your FreeBSD version too. If you run into difficulties with - <filename>linux_base-6.1</filename> or - <filename>linux_devtools-6.1</filename> you may have to use version - 5.2 of these packages.</para> - - <para>If you want to run the intelligent agent, you'll - also need to install the Red Hat TCL package: - <filename>tcl-8.0.3-20.i386.rpm</filename>. The general command - for installing packages with the official RPM port is :</para> - - <screen>&prompt.root; <userinput>rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm <replaceable>package</replaceable></userinput></screen> - - <para>Installation of the package should not generate any errors.</para> - </sect2> - - <sect2> - <title>Creating the Oracle environment</title> - - <para>Before you can install Oracle, you need to set up a proper - environment. This document only describes what to do - <emphasis>specially</emphasis> to run Oracle for Linux on FreeBSD, not - what has been described in the Oracle installation guide.</para> - - <sect3 id="linuxemu-kernel-tuning"> - <title>Kernel Tuning</title> - - <para>As described in the Oracle installation guide, you need to set - the maximum size of shared memory. Don't use - <literal>SHMMAX</literal> under FreeBSD. <literal>SHMMAX</literal> - is merely calculated out of <literal>SHMMAXPGS</literal> and - <literal>PGSIZE</literal>. Therefore define - <literal>SHMMAXPGS</literal>. All other options can be used as - described in the guide. For example:</para> - - <programlisting>options SHMMAXPGS=10000 -options SHMMNI=100 -options SHMSEG=10 -options SEMMNS=200 -options SEMMNI=70 -options SEMMSL=61</programlisting> - - <para>Set these options to suit your intended use of Oracle.</para> - - <para>Also, make sure you have the following options in your kernel - config-file:</para> - -<programlisting>options SYSVSHM #SysV shared memory -options SYSVSEM #SysV semaphores -options SYSVMSG #SysV interprocess communication</programlisting> - </sect3> - - <sect3 id="linuxemu-oracle-account"> - - <title>Oracle account</title> - - <para>Create an Oracle account just as you would create any other - account. The Oracle account is special only that you need to give - it a Linux shell. Add <literal>/compat/linux/bin/bash</literal> to - <filename>/etc/shells</filename> and set the shell for the Oracle - account to <filename>/compat/linux/bin/bash</filename>.</para> - </sect3> - - <sect3 id="linuxemu-environment"> - <title>Environment</title> - - <para>Besides the normal Oracle variables, such as - <envar>ORACLE_HOME</envar> and <envar>ORACLE_SID</envar> you must - set the following environment variables:</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Variable</entry> - - <entry>Value</entry> - </row> - </thead> - <tbody> - <row> - <entry><envar>LD_LIBRARY_PATH</envar></entry> - - <entry><literal>$ORACLE_HOME/lib</literal></entry> - </row> - - <row> - <entry><envar>CLASSPATH</envar></entry> - - <entry><literal>$ORACLE_HOME/jdbc/lib/classes111.zip</literal></entry> - </row> - - <row> - <entry><envar>PATH</envar></entry> - - <entry><literal>/compat/linux/bin -/compat/linux/sbin -/compat/linux/usr/bin -/compat/linux/usr/sbin -/bin -/sbin -/usr/bin -/usr/sbin -/usr/local/bin -$ORACLE_HOME/bin</literal></entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>It is advised to set all the environment variables in - <filename>.profile</filename>. A complete example is:</para> - -<programlisting>ORACLE_BASE=/oracle; export ORACLE_BASE -ORACLE_HOME=/oracle; export ORACLE_HOME -LD_LIBRARY_PATH=$ORACLE_HOME/lib -export LD_LIBRARY_PATH -ORACLE_SID=ORCL; export ORACLE_SID -ORACLE_TERM=386x; export ORACLE_TERM -CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip -export CLASSPATH -PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/bin -export PATH</programlisting> - </sect3> - </sect2> - - <sect2> - <title>Installing Oracle</title> - - <para>Due to a slight inconsistency in the Linux emulator, you need to - create a directory named <filename>.oracle</filename> in - <filename>/var/tmp</filename> before you start the installer. Either - make it world writable or let it be owner by the oracle user. You - should be able to install Oracle without any problems. If you have - problems, check your Oracle distribution and/or configuration first! - After you have installed Oracle, apply the patches described in the - next two subsections.</para> - - <para>A frequent problem is that the TCP protocol adapter is not - installed right. As a consequence, you cannot start any TCP listeners. - The following actions help solve this problem:</para> - - <screen>&prompt.root; <userinput>cd $ORACLE_HOME/network/lib</userinput> -&prompt.root; <userinput>make -f ins_network.mk ntcontab.o</userinput> -&prompt.root; <userinput>cd $ORACLE_HOME/lib</userinput> -&prompt.root; <userinput>ar r libnetwork.a ntcontab.o</userinput> -&prompt.root; <userinput>cd $ORACLE_HOME/network/lib</userinput> -&prompt.root; <userinput>make -f ins_network.mk install</userinput></screen> - - <para>Don't forget to run <filename>root.sh</filename> again!</para> - - <sect3 id="linuxemu-patch-root"> - <title>Patching root.sh</title> - - <para>When installing Oracle, some actions, which need to be performed - as <username>root</username>, are recorded in a shell script called - <filename>root.sh</filename>. <filename>root.sh</filename> is - written in the <filename>orainst</filename> directory. Apply the - following patch to root.sh, to have it use to proper location of - chown or alternatively run the script under a Linux native - shell.</para> - - <programlisting>*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998 ---- orainst/root.sh Mon Dec 28 15:58:53 1998 -*************** -*** 31,37 **** -# This is the default value for CHOWN -# It will redefined later in this script for those ports -# which have it conditionally defined in ss_install.h -! CHOWN=/bin/chown -# -# Define variables to be used in this script ---- 31,37 ---- -# This is the default value for CHOWN -# It will redefined later in this script for those ports -# which have it conditionally defined in ss_install.h -! CHOWN=/usr/sbin/chown -# -# Define variables to be used in this script</programlisting> - - <para>When you don't install Oracle from CD, you can path the source - for <filename>root.sh</filename>. It is called - <filename>rthd.sh</filename> and is located in the - <filename>orainst</filename> directory in the source tree.</para> - </sect3> - - <sect3 id="linuxemu-patch-tcl"> - <title>Patching genclntsh</title> - - <para>The script genclntsh is used to create a single shared client - library. It is used when building the demos. Apply the following - patch to comment out the definition of PATH:</para> - - <programlisting>*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998 ---- bin/genclntsh Tue Dec 22 15:36:49 1998 -*************** -*** 32,38 **** -# -# Explicit path to ensure that we're using the correct commands -#PATH=/usr/bin:/usr/ccs/bin export PATH -! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH -# -# each product MUST provide a $PRODUCT/admin/shrept.lst ---- 32,38 ---- -# -# Explicit path to ensure that we're using the correct commands -#PATH=/usr/bin:/usr/ccs/bin export PATH -! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH -# -# each product MUST provide a $PRODUCT/admin/shrept.lst</programlisting> - </sect3> - </sect2> - - <sect2> - <title>Running Oracle</title> - - <para>When you have followed the instructions, you should be able to run - Oracle as if it was run on Linux itself.</para> - </sect2> - </sect1> - - <sect1> - <title>Advanced Topics</title> - - <para>If you are curious as to how the Linux binary compatibility - works, this is the section you want to read. Most of what follows - is based heavily on an email written to &a.chat; by Terry Lambert - <email>tlambert@primenet.com</email> (Message ID: - <literal><199906020108.SAA07001@usr09.primenet.com></literal>).</para> - <sect2> - <title>How Does It Work?</title> - - <para>FreeBSD has an abstraction called an <quote>execution class - loader</quote>. This is a wedge into the &man.execve.2; system - call.</para> - - <para>What happens is that FreeBSD has a list of loaders, instead of - a single loader with a fallback to the <literal>#!</literal> - loader for running any shell interpreters or shell scripts.</para> - - <para>Historically, the only loader on the UNIX platform examined - the magic number (generally the first 4 or 8 bytes of the file) to - see if it was a binary known to the system, and if so, invoked the - binary loader.</para> - - <para>If it was not the binary type for the system, the - &man.execve.2; call returned a failure, and the shell attempted to - start executing it as shell commands.</para> - - <para>The assumption was a default of <quote>whatever the current - shell is</quote>.</para> - - <para>Later, a hack was made for &man.sh.1; to examine the first two - characters, and if they were <literal>:\n</literal>, then it - invoked the &man.csh.1; shell instead (we believe SCO first made - this hack).</para> - - <para>What FreeBSD does now is go through a list of loaders, with a - generic <literal>#!</literal> loader that knows about interpreters - as the characters which follow to the next whitespace next to - last, followed by a fallback to - <filename>/bin/sh</filename>.</para> - - <para>For the Linux ABI support, FreeBSD sees the magic number as an - ELF binary (it makes no distinction between FreeBSD, Solaris, - Linux, or any other OS which has an ELF image type, at this - point).</para> - - <para>The ELF loader looks for a specialized - <emphasis>brand</emphasis>, which is a comment section in the ELF - image, and which is not present on SVR4/Solaris ELF - binaries.</para> - - <para>For Linux binaries to function, they must be - <emphasis>branded</emphasis> as type <literal>Linux</literal>; - from &man.brandelf.1;:</para> - - <screen>&prompt.root; <userinput>brandelf -t Linux file</userinput></screen> - - <para>When this is done, the ELF loader will see the - <literal>Linux</literal> brand on the file.</para> - - <para>When the ELF loader sees the <literal>Linux</literal> brand, - the loader replaces a pointer in the <literal>proc</literal> - structure. All system calls are indexed through this pointer (in - a traditional UNIX system, this would be the - <literal>sysent[]</literal> structure array, containing the system - calls). In addition, the process flagged for special handling of - the trap vector for the signal trampoline code, and sever other - (minor) fix-ups that are handled by the Linux kernel - module.</para> - - <para>The Linux system call vector contains, among other things, a - list of <literal>sysent[]</literal> entries whose addresses reside - in the kernel module.</para> - - <para>When a system call is called by the Linux binary, the trap - code dereferences the system call function pointer off the - <literal>proc</literal> structure, and gets the Linux, not the - FreeBSD, system call entry points.</para> - - <para>In addition, the Linux mode dynamically - <emphasis>reroots</emphasis> lookups; this is, in effect, what the - <literal>union</literal> option to FS mounts - (<emphasis>not</emphasis> the unionfs!) does. First, an attempt - is made to lookup the file in the - <filename>/compat/linux/<replaceable>original-path</replaceable></filename> - directory, <emphasis>then</emphasis> only if that fails, the - lookup is done in the - <filename>/<replaceable>original-path</replaceable></filename> - directory. This makes sure that binaries that require other - binaries can run (e.g., the Linux toolchain can all run under - Linux ABI support). It also means that the Linux binaries can - load and exec FreeBSD binaries, if there are no corresponding - Linux binaries present, and that you could place a &man.uname.1; - command in the <filename>/compat/linux</filename> directory tree - to ensure that the Linux binaries could not tell they were not - running on Linux.</para> - - <para>In effect, there is a Linux kernel in the FreeBSD kernel; the - various underlying functions that implement all of the services - provided by the kernel are identical to both the FreeBSD system - call table entries, and the Linux system call table entries: file - system operations, virtual memory operations, signal delivery, - System V IPC, etc… The only difference is that FreeBSD - binaries get the FreeBSD <emphasis>glue</emphasis> functions, and - Linux binaries get the Linux <emphasis>glue</emphasis> functions - (most older OS's only had their own <emphasis>glue</emphasis> - functions: addresses of functions in a static global - <literal>sysent[]</literal> structure array, instead of addresses - of functions dereferenced off a dynamically initialized pointer in - the <literal>proc</literal> structure of the process making the - call).</para> - - <para>Which one is the native FreeBSD ABI? It does not matter. - Basically the only difference is that (currently; this could - easily be changed in a future release, and probably will be after - this) the FreeBSD <emphasis>glue</emphasis> functions are - statically linked into the kernel, and the Linux glue functions - can be statically linked, or they can be accessed via a kernel - module.</para> - - <para>Yeah, but is this really emulation? No. It is an ABI - implementation, not an emulation. There is no emulator (or - simulator, to cut off the next question) involved.</para> - - <para>So why is it sometimes called <quote>Linux emulation</quote>? - To make it hard to sell FreeBSD! <!-- smiley -->8-). Really, it - is because the historical implementation was done at a time when - there was really no word other than that to describe what was - going on; saying that FreeBSD ran Linux binaries was not true, if - you did not compile the code in or load a module, and there needed - to be a word to describe what was being loaded—hence - <quote>the Linux emulator</quote>.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/mail/chapter.sgml b/en_US.ISO8859-1/books/handbook/mail/chapter.sgml deleted file mode 100644 index d37c18cc7e..0000000000 --- a/en_US.ISO8859-1/books/handbook/mail/chapter.sgml +++ /dev/null @@ -1,484 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/mail/chapter.sgml,v 1.18 2000/06/08 01:56:12 jim Exp $ ---> - -<chapter id="mail"> - <title>Electronic Mail</title> - - <para><emphasis>Rewritten by &a.jim;, 02 December 1999. Original work - done by &a.wlloyd;.</emphasis></para> - - <sect1> - <title>Synopsis</title> - - <para>Electronic Mail, better known as email, is one of the most - widely used forms of communication today. Millions of people use - email every day, and chances are if you are reading this online, - you fall into that category and probably even have more than one - email address.</para> - - <para>Electronic Mail configuration is the subject of many <link - linkend="bibliography">System Administration</link> books. If you - plan on doing anything beyond setting up one mailhost for your - network, you need industrial strength help.</para> - - <para>Some parts of email configuration are controlled in the Domain - Name System (DNS). If you are going to run your own DNS server, be - sure to read through the files in <filename>/etc/namedb</filename> - and <command>man -k named</command>.</para> - </sect1> - - <sect1 id="mail-using"> - <title>Using Electronic Mail</title> - - <para>There are five major parts involved in an email exchange. They - are: <link linkend="mail-mua">the user program</link>, <link - linkend="mail-mta">the server daemon</link>, <link - linkend="mail-dns">DNS</link>, <link linkend="mail-receive">a pop or - IMAP daemon</link>, and of course, <link linkend="mail-host">the - mailhost itself</link>.</para> - - <sect2 id="mail-mua"> - <title>The User Program</title> - - <para>This includes command line programs such as - <application>mutt</application>, <application>pine</application>, - <application>elm</application>, and - <application>mail</application>, and GUI programs such as - <application>balsa</application>, - <application>xfmail</application> to name a few, and something - more <quote>sophisticated</quote> like a WWW browser. These - programs simply pass off the email transactions to the local <link - linkend="mail-host"><quote>mailhost</quote></link>, either by - calling one of the <link linkend="mail-mta">server daemons</link> - available or delivering it over TCP.</para> - </sect2> - - <sect2 id="mail-mta"> - <title>Mailhost Server Daemon</title> - - <para>This is usually <application>sendmail</application> (by - default with FreeBSD) or one of the other mail server daemons such - as <application>qmail</application>, - <application>postfix</application>, or - <application>exim</application>. There are others, but those are - the most widely used.</para> - - <para>The server daemon usually has two functions—it looks - after receiving incoming mail and delivers outgoing mail. It does - not allow you to connect to it via POP or IMAP to read your mail. - You need an additional <link linkend="mail-receive">daemon</link> - for that.</para> - - <para>Be aware that some older versions of - <application>sendmail</application> have some serious security - problems, however as long as you run a current version of it you - should not have any problems. As always, it is a good idea to - stay up-to-date with any software you run.</para> - </sect2> - - <sect2 id="mail-dns"> - <title>Email and DNS</title> - - <para>The Domain Name System (DNS) and its daemon - <command>named</command> play a large role in the delivery of - email. In order to deliver mail from your site to another, the - server daemon will look up the site in the DNS to determine the - host that will receive mail for the destination.</para> - - <para>It works the same way when you have mail sent to you. The DNS - contains the database mapping hostname to an IP address, and a - hostname to mailhost. The IP address is specified in an A record. - The MX (Mail eXchanger) record specifies the mailhost that will - receive mail for you. If you do not have an MX record for your - hostname, the mail will be delivered directly to your host.</para> - </sect2> - - <sect2 id="mail-receive"> - <title>Receiving Mail</title> - - <para>Receiving mail for your domain is done by the mail host. It - will collect mail sent to you and store it for reading or pickup. - In order to pick the stored mail up, you will need to connect to - the mail host. This is done by either using POP or IMAP. If you - want to read mail directly on the mail host, then a POP or IMAP - server is not needed.</para> - - <para>If you want to run a POP or IMAP server, there are two things - you need to do:</para> - - <procedure> - <step> - <para>Get a POP or IMAP daemon from the <ulink - url="../ports/mail.html">Ports Collection</ulink> and install - it on your system.</para> - </step> - - <step> - <para>Modify <filename>/etc/inetd.conf</filename> to load the - POP or IMAP server.</para> - </step> - </procedure> - </sect2> - - <sect2 id="mail-host"> - <title>The Mail Host</title> - - <para>The mail host is the name given to a server that is - responsible for delivering and receiving mail for your host, and - possibly your network.</para> - </sect2> - </sect1> - - <sect1 id="mail-trouble"> - <title>Troubleshooting</title> - - <para>Here are some frequently asked questions and answers. These - have been migrated from the <ulink url="../FAQ/">FAQ</ulink>.</para> - - <qandaset> - <qandaentry> - <question> - <para>Why do I have to use the FQDN for hosts on my site?</para> - </question> - - <answer> - <para>You will probably find that the host is actually in a - different domain; for example, if you are in - <hostid role="fqdn">foo.bar.edu</hostid> and you wish to reach - a host called <hostid>mumble</hostid> in the <hostid - role="domainname">bar.edu</hostid> domain, you will have to - refer to it by the fully-qualified domain name, <hostid - role="fqdn">mumble.bar.edu</hostid>, instead of just - <hostid>mumble</hostid>.</para> - - <para>Traditionally, this was allowed by BSD BIND resolvers. - However the current version of <application>BIND</application> - that ships with FreeBSD no longer provides default abbreviations - for non-fully qualified domain names other than the domain you - are in. So an unqualified host <hostid>mumble</hostid> must - either be found as <hostid - role="fqdn">mumble.foo.bar.edu</hostid>, or it will be searched - for in the root domain.</para> - - <para>This is different from the previous behavior, where the - search continued across <hostid - role="domainname">mumble.bar.edu</hostid>, and <hostid - role="domainname">mumble.edu</hostid>. Have a look at RFC 1535 - for why this was considered bad practice, or even a security - hole.</para> - - <para>As a good workaround, you can place the line: - - <programlisting> -search foo.bar.edu bar.edu</programlisting> - - instead of the previous: - - <programlisting> -domain foo.bar.edu</programlisting> - - into your <filename>/etc/resolv.conf</filename>. However, make - sure that the search order does not go beyond the - <quote>boundary between local and public administration</quote>, - as RFC 1535 calls it.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Sendmail says <errorname>mail loops back to - myself</errorname></para> - </question> - - <answer> - <para>This is answered in the sendmail FAQ as follows:</para> - - <programlisting> -* I am getting <quote>Local configuration error</quote> messages, such as: - -553 relay.domain.net config error: mail loops back to myself -554 <user@domain.net>... Local configuration error - -How can I solve this problem? - -You have asked mail to the domain (e.g., domain.net) to be -forwarded to a specific host (in this case, relay.domain.net) -by using an MX record, but the relay machine does not recognize -itself as domain.net. Add domain.net to /etc/sendmail.cw -(if you are using FEATURE(use_cw_file)) or add <quote>Cw domain.net</quote> -to /etc/sendmail.cf.</programlisting> - - <para>The sendmail FAQ is in - <filename>/usr/src/usr.sbin/sendmail</filename> and is - recommended reading if you want to do any - <quote>tweaking</quote> of your mail setup.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>How can I do email with a dial-up PPP host?</para> - </question> - - <answer> - <para>You want to connect a FreeBSD box on a lan, to the - Internet. The FreeBSD box will be a mail gateway for the lan. - The PPP connection is non-dedicated.</para> - - <para>There are at least two ways to do this.</para> - - <para>The other is to use UUCP.</para> - - <para>The key is to get a Internet site to provide secondary MX - service for your domain. For example:</para> - - <programlisting> -bigco.com. MX 10 bigco.com. - MX 20 smalliap.com.</programlisting> - - <para>Only one host should be specified as the final recipient - (add <literal>Cw bigco.com</literal> in - <filename>/etc/sendmail.cf</filename> on bigco.com).</para> - - <para>When the senders' <command>sendmail</command> is trying to - deliver the mail it will try to connect to you over the modem - link. It will most likely time out because you are not online. - <command>sendmail</command> will automatically deliver it to the - secondary MX site, i.e., your Internet provider. The secondary MX - site will try every - (<literal>sendmail_flags = -bd -q15m</literal> in - <filename>/etc/rc.conf</filename>) 15 minutes to connect to - your host to deliver the mail to the primary MX site.</para> - - <para>You might want to use something like this as a login - script.</para> - - <programlisting> -#!/bin/sh -# Put me in /usr/local/bin/pppbigco -( sleep 60 ; /usr/sbin/sendmail -q ) & -/usr/sbin/ppp -direct pppbigco</programlisting> - - <para>If you are going to create a separate login script for a - user you could use <command>sendmail -qRbigco.com</command> - instead in the script above. This will force all mail in your - queue for bigco.com to be processed immediately.</para> - - <para>A further refinement of the situation is as follows.</para> - - <para>Message stolen from the &a.isp;.</para> - - <programlisting> -> we provide the secondary MX for a customer. The customer connects to -> our services several times a day automatically to get the mails to -> his primary MX (We do not call his site when a mail for his domains -> arrived). Our sendmail sends the mailqueue every 30 minutes. At the -> moment he has to stay 30 minutes online to be sure that all mail is -> gone to the primary MX. -> -> Is there a command that would initiate sendmail to send all the mails -> now? The user has not root-privileges on our machine of course. - -In the <quote>privacy flags</quote> section of sendmail.cf, there is a -definition Opgoaway,restrictqrun - -Remove restrictqrun to allow non-root users to start the queue processing. -You might also like to rearrange the MXs. We are the 1st MX for our -customers like this, and we have defined: - -# If we are the best MX for a host, try directly instead of generating -# local config error. -OwTrue - -That way a remote site will deliver straight to you, without trying -the customer connection. You then send to your customer. Only works for -<quote>hosts</quote>, so you need to get your customer to name their mail -machine <quote>customer.com</quote> as well as -<quote>hostname.customer.com</quote> in the DNS. Just put an A record in -the DNS for <quote>customer.com</quote>.</programlisting> - </answer> - </qandaentry> - </qandaset> - </sect1> - - <sect1 id="mail-advanced"> - <title>Advanced Topics</title> - - <para>The following section covers more involved topics such as mail - configuration and setting up mail for your entire domain.</para> - - <sect2 id="mail-config"> - <title>Basic Configuration</title> - - <para>Out of the box, you should be able send email to external - hosts as long as you have set up - <filename>/etc/resolv.conf</filename> or are running your own - name server. If you would like to have mail for your host - delivered to that specific host, there are two methods:</para> - - <itemizedlist> - <listitem> - <para>Run your own name server and have your own domain. For - example, <hostid - role="domainname">FreeBSD.org</hostid></para> - </listitem> - - <listitem> - <para>Get mail delivered directly to your host. This is done by - delivering mail directly to the current DNS name for your - machine. For example, <hostid - role="fqdn">example.FreeBSD.org</hostid>.</para> - </listitem> - </itemizedlist> - - <para>Regardless of which of the above you choose, in order to have - mail delivered directly to your host, you must have a permanent - (static) IP address (no dynamic PPP dial-up). If you are behind a - firewall, it must pass SMTP traffic on to you. If you want to - receive mail at your host itself, you need to be sure of one of two - things:</para> - - <itemizedlist> - <listitem> - <para>Make sure that the MX record in your DNS points to your - host's IP address.</para> - </listitem> - - <listitem> - <para>Make sure there is no MX entry in your DNS for your - host.</para> - </listitem> - </itemizedlist> - - <para>Either of the above will allow you to receive mail directly at - your host.</para> - - <para>Try this:</para> - - <screen>&prompt.root; <userinput>hostname</userinput> -example.FreeBSD.org -&prompt.root; <userinput>host example.FreeBSD.org</userinput> -example.FreeBSD.org has address 204.216.27.XX</screen> - - <para>If that is what you see, mail directly to - <email>yourlogin@example.FreeBSD.org</email> should work without - problems.</para> - - <para>If instead you see something like this:</para> - - <screen>&prompt.root; <userinput>host example.FreeBSD.org</userinput> -example.FreeBSD.org has address 204.216.27.XX -example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org</screen> - - <para>All mail sent to your host (<hostid - role="fqdn">example.FreeBSD.org</hostid> will end up being - collected on <hostid>hub</hostid> under the same username instead - of being sent directly to your host.</para> - - <para>The above information is handled by your DNS server. The DNS - record that carries mail routing information is the - <emphasis>M</emphasis>ail e<emphasis>X</emphasis>change entry. If - no MX record exists, mail will be delivered directly to the host by - way of its IP address.</para> - - <para>The MX entry for <hostid - role="fqdn">freefall.FreeBSD.org</hostid> at one time looked like - this:</para> - - <programlisting> -freefall MX 30 mail.crl.net -freefall MX 40 agora.rdrop.com -freefall MX 10 freefall.FreeBSD.org -freefall MX 20 who.cdrom.com</programlisting> - - <para>As you can see, <hostid>freefall</hostid> had many MX entries. - The lowest MX number is the host that ends up receiving the mail in - the end while the others will queue mail temporarily if - <hostid>freefall</hostid> is busy or down.</para> - - <para>Alternate MX sites should have separate Internet connections - from your own in order to be the most useful. Your ISP or other - friendly site should have no problem providing this service for - you.</para> - </sect2> - - <sect2 id="mail-domain"> - <title>Mail for your Domain</title> - - <para>In order to set up a <quote>mailhost</quote> (a.k.a., mail - server) you need to have any mail sent to various workstations - directed to it. Basically, you want to <quote>hijack</quote> any - mail for your domain (in this case <hostid - role="fqdn">*.FreeBSD.org</hostid>) and divert it to your mail - server so your users can check their mail via POP or directly on - the server.</para> - - <para>To make life easiest, a user account with the same - <emphasis>username</emphasis> should exist on both machines. Use - <command>adduser</command> to do this.</para> - - <para>The mailhost you will be using must be the designated mail - exchange for each workstation on the network. This is done in - your DNS configuration like so:</para> - - <programlisting> -example.FreeBSD.org A 204.216.27.XX ; Workstation - MX 10 hub.FreeBSD.org ; Mailhost</programlisting> - - <para>This will redirect mail for the workstation to the mailhost no - matter where the A record points. The mail is sent to the MX - host.</para> - - <para>You cannot do this yourself unless you are running a DNS - server. If you are not, or cannot, run your own DNS server, talk - to your ISP or whoever does your DNS for you.</para> - - <para>If you're doing virtual email hosting, the following - information will come in handy. For the sake of an example, we - will assume you have a customer with their own domain, in this - case <hostid role="domainname">customer1.org</hostid> and you want - all the mail for <hostid role="domainname">customer1.org</hostid> - sent to your mailhost, which is named <hostid - role="fqdn">mail.myhost.com</hostid>. The entry in your DNS - should look like this:</para> - - <programlisting> -customer1.org MX 10 mail.myhost.com</programlisting> - - <para>You do <emphasis>not</emphasis> need an A record if you only - want to handle email for the domain.</para> - - <note> - <para>Be aware that this means pinging <hostid - role="domainname">customer1.org</hostid> will not work unless - an A record exists for it.</para> - </note> - - <para>The last thing that you must do is tell - <application>sendmail</application> on your mailhost what domains - and/or hostnames it should be accepting mail for. There are a few - different ways this can be done. Either of the following will - work:</para> - - <itemizedlist> - <listitem> - <para>Add the hosts to your - <filename>/etc/sendmail.cw</filename> file if you are using the - <literal>FEATURE(use_cw_file)</literal>. If you are using - sendmail 8.10 or higher, the file is - <filename>/etc/mail/local-host-names</filename>.</para> - </listitem> - - <listitem> - <para>Add a <literal>Cwyour.host.com</literal> line to your - <filename>/etc/sendmail.cf</filename> or - <filename>/etc/mail/sendmail.cf</filename> if you are using - sendmail 8.10 or higher.</para> - </listitem> - </itemizedlist> - </sect2> - </sect1> -</chapter> diff --git a/en_US.ISO8859-1/books/handbook/mailing-lists.ent b/en_US.ISO8859-1/books/handbook/mailing-lists.ent deleted file mode 100644 index 934341d91e..0000000000 --- a/en_US.ISO8859-1/books/handbook/mailing-lists.ent +++ /dev/null @@ -1,107 +0,0 @@ -<!-- - Names of FreeBSD mailing lists and related software. - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/mailing-lists.ent,v 1.4 1999/09/06 06:52:47 peter Exp $ ---> - -<!ENTITY a.advocacy "FreeBSD advocacy mailing list - <email>freebsd-advocacy@FreeBSD.org</email>"> - -<!ENTITY a.announce "FreeBSD announcements mailing list - <email>freebsd-announce@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.core "FreeBSD core team - <email>freebsd-core@FreeBSD.org</email>"> - -<!ENTITY a.current "FreeBSD-current mailing list - <email>freebsd-current@FreeBSD.org</email>"> - -<!ENTITY a.cvsall "FreeBSD CVS commit message mailing list - <email>cvs-all@FreeBSD.org</email>"> - -<!ENTITY a.database "FreeBSD based Databases mailing list - <email>freebsd-database@FreeBSD.org</email>"> - -<!ENTITY a.doc "FreeBSD documentation project mailing list - <email>freebsd-doc@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 "FreeBSD technical discussions mailing list - <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.newbus "New Bus Architecture mailing list - <email>new-bus-arch@bostonradio.org</email>"> - -<!ENTITY a.ports "FreeBSD ports mailing list - <email>freebsd-ports@FreeBSD.org</email>"> - -<!ENTITY a.questions "FreeBSD general questions mailing list - <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 "FreeBSD-small mailing list - <email>freebsd-small@FreeBSD.org</email>"> - -<!ENTITY a.smp "FreeBSD symmetric multiprocessing mailing list - <email>freebsd-smp@FreeBSD.org</email>"> - -<!ENTITY a.stable "FreeBSD-stable mailing list - <email>freebsd-stable@FreeBSD.org</email>"> - -<!ENTITY a.tokenring "FreeBSD tokenring mailing list - <email>freebsd-tokenring@FreeBSD.org</email>"> - -<!ENTITY a.www "FreeBSD Webmaster mailing list - <email>freebsd-www@FreeBSD.org</email>"> - -<!ENTITY a.majordomo "<email>majordomo@FreeBSD.org</email>"> - diff --git a/en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml b/en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml deleted file mode 100644 index 504a9e2749..0000000000 --- a/en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml +++ /dev/null @@ -1,3385 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/mirrors/chapter.sgml,v 1.70 2000/06/14 20:30:35 jim Exp $ ---> - -<appendix id="mirrors"> - <title>Obtaining FreeBSD</title> - - <sect1> - <title>CD-ROM Publishers</title> - - <para>FreeBSD is available on CD-ROM from 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> - 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>FTP Sites</title> - - <para>The official sources for FreeBSD are available via anonymous FTP - from: - - <blockquote> - <para><ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/">ftp://ftp.FreeBSD.org/pub/FreeBSD/</ulink>.</para> - </blockquote></para> - - <para>The <ulink - url="http://www.itworks.com.au/~gavin/FBSDsites.php3">FreeBSD mirror - sites database</ulink> is more accurate than the mirror listing in the - handbook, as it gets its information form the DNS rather than relying on - static lists of hosts.</para> - - <para>Additionally, FreeBSD is available via anonymous FTP from the - following mirror sites. If you choose to obtain FreeBSD via anonymous - FTP, please try to use a site near you.</para> - - <para><link linkend="mirrors-ar">Argentina</link>, - <link linkend="mirrors-au">Australia</link>, - <link linkend="mirrors-br">Brazil</link>, - <link linkend="mirrors-ca">Canada</link>, - <link linkend="mirrors-cn">China</link>, - <link linkend="mirrors-cz">Czech Republic</link>, - <link linkend="mirrors-dk">Denmark</link>, - <link linkend="mirrors-ee">Estonia</link>, - <link linkend="mirrors-fi">Finland</link>, - <link linkend="mirrors-fr">France</link>, - <link linkend="mirrors-de">Germany</link>, - <link linkend="mirrors-hk">Hong Kong</link>, - <link linkend="mirrors-ie">Ireland</link>, - <link linkend="mirrors-il">Israel</link>, - <link linkend="mirrors-jp">Japan</link>, - <link linkend="mirrors-kr">Korea</link>, - <link linkend="mirrors-nl">Netherlands</link>, - <link linkend="mirrors-nz">New Zealand</link>, - <link linkend="mirrors-pl">Poland</link>, - <link linkend="mirrors-pt">Portugal</link>, - <link linkend="mirrors-ru">Russia</link>, - <link linkend="mirrors-sa">Saudi Arabia</link>, - <link linkend="mirrors-za">South Africa</link>, - <link linkend="mirrors-es">Spain</link>, - <link linkend="mirrors-sk">Slovak Republic</link>, - <link linkend="mirrors-si">Slovenia</link>, - <link linkend="mirrors-se">Sweden</link>, - <link linkend="mirrors-tw">Taiwan</link>, - <link linkend="mirrors-th">Thailand</link>, - <link linkend="mirrors-uk">UK</link>, - <link linkend="mirrors-ua">Ukraine</link>, - <link linkend="mirrors-us">USA</link>.</para> - - <variablelist> - <varlistentry> - <term><anchor id="mirrors-ar">Argentina</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@ar.FreeBSD.org</email> for this domain.</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">Australia</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@au.FreeBSD.org</email> for this domain.</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">Brazil</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@br.FreeBSD.org</email> for this domain.</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>In case of problems, please contact the hostmaster - <email>hostmaster@ca.FreeBSD.org</email> for this domain.</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-cn">China</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>phj@cn.FreeBSD.org</email> for this domain.</para> - - <itemizedlist> - <listitem> - <para><ulink - url="ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/">ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/</ulink></para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term><anchor id="mirrors-cz">Czech Republic</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@cz.FreeBSD.org</email> for this domain.</para> - - <itemizedlist> - <listitem> - <para><ulink - url="ftp://ftp.cz.FreeBSD.org/pub/FreeBSD/">ftp://ftp.cz.FreeBSD.org/pub/FreeBSD/</ulink> Contact: <email>calda@dzungle.ms.mff.cuni.cz</email></para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term><anchor id="mirrors-dk">Denmark</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@dk.FreeBSD.org</email> for this domain.</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-ee">Estonia</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@ee.FreeBSD.org</email> for this domain.</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-fi">Finland</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@fi.FreeBSD.org</email> for this domain.</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>In case of problems, please contact the hostmaster - <email>hostmaster@fr.FreeBSD.org</email> for this domain.</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-de">Germany</term> - - <listitem> - <para>In case of problems, please contact the mirror admins - <email>de-bsd-hubs@de.FreeBSD.org </email> for this domain.</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-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">Ireland</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@ie.FreeBSD.org</email> for this domain.</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">Israel</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@il.FreeBSD.org</email> for this domain.</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">Japan</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@jp.FreeBSD.org</email> for this domain.</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-kr">Korea</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@kr.FreeBSD.org</email> for this domain.</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-nl">Netherlands</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@nl.FreeBSD.org</email> for this domain.</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-nz">New Zealand</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@nz.FreeBSD.org</email> for this domain.</para> - - <itemizedlist> - <listitem> - <para><ulink url="ftp://ftp.nz.FreeBSD.org/pub/FreeBSD/">ftp://ftp.nz.FreeBSD.org/pub/FreeBSD/</ulink></para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term><anchor id="mirrors-pl">Poland</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@pl.FreeBSD.org</email> for this domain.</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>In case of problems, please contact the hostmaster - <email>hostmaster@pt.FreeBSD.org</email> for this domain.</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-ru">Russia</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@ru.FreeBSD.org</email> for this domain.</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-sa">Saudi Arabia</term> - <listitem> - <para>In case of problems, please contact - <email>ftpadmin@isu.net.sa</email></para> - - <itemizedlist> - <listitem> - <para><ulink - url="ftp://ftp.isu.net.sa/pub/mirrors/ftp.freebsd.org/">ftp://ftp.isu.net.sa/pub/mirrors/ftp.freebsd.org/</ulink></para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - - <varlistentry> - <term><anchor id="mirrors-za">South Africa</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@za.FreeBSD.org</email> for this domain.</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/FreeBSD/</ulink></para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term><anchor id="mirrors-sk">Slovak Republic</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@sk.FreeBSD.org</email> for this domain.</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-si">Slovenia</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@si.FreeBSD.org</email> for this domain.</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-es">Spain</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@es.FreeBSD.org</email> for this domain.</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-se">Sweden</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@se.FreeBSD.org</email> for this domain.</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">Taiwan</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@tw.FreeBSD.org</email> for this domain.</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> - - <listitem> - <para><ulink - url="ftp://ftp4.tw.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.tw.FreeBSD.org/pub/FreeBSD/</ulink></para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term><anchor id="mirrors-th">Thailand</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> - - <varlistentry> - <term><anchor id="mirrors-uk">UK</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@uk.FreeBSD.org</email> for this domain.</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> - - <listitem> - <para><ulink - url="ftp://ftp5.uk.FreeBSD.org/pub/FreeBSD/">ftp://ftp5.uk.FreeBSD.org/pub/FreeBSD/</ulink></para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term><anchor id="mirrors-us">USA</term> - - <listitem> - <para>In case of problems, please contact the hostmaster - <email>hostmaster@FreeBSD.org</email> for this domain.</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> - </variablelist> - - <para>The latest versions of export-restricted code for FreeBSD (2.0C or - later) (eBones and secure) are being made available at the following - locations. If you are outside the U.S. or Canada, please get secure - (DES) and eBones (Kerberos) from one of the following foreign - distribution sites:</para> - - <variablelist> - <varlistentry> - <term>South Africa</term> - - <listitem> - <para>Hostmaster <email>hostmaster@internat.FreeBSD.org</email> for - this domain.</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>Brazil</term> - - <listitem> - <para>Hostmaster <email>hostmaster@br.FreeBSD.org</email> for this - domain.</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>Finland</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="ctm"> - <title>Using CTM</title> - - <para><application>CTM</application> is a method for keeping a - remote directory tree in sync with a central one. It has been - developed for usage with FreeBSD's source trees, though other - people may find it useful for other purposes as time goes by. - Little, if any, documentation currently exists at this time on the - process of creating deltas, so talk to &a.phk; for more - information should you wish to use <application>CTM</application> - for other things.</para> - - <sect2> - <title>Why should I use <application>CTM</application>?</title> - - <para><application>CTM</application> will give you a local copy of - the FreeBSD source trees. There are a number of - “flavors” of the tree available. Whether you wish - to track the entire CVS tree or just one of the branches, - <application>CTM</application> can provide you the information. - If you are an active developer on FreeBSD, but have lousy or - non-existent TCP/IP connectivity, or simply wish to have the - changes automatically sent to you, - <application>CTM</application> was made for you. You will need - to obtain up to three deltas per day for the most active - branches. However, you should consider having them sent by - automatic email. The sizes of the updates are always kept as - small as possible. This is typically less than 5K, with an - occasional (one in ten) being 10-50K and every now and then a - biggie of 100K+ or more coming around.</para> - - <para>You will also need to make yourself aware of the various - caveats related to working directly from the development sources - rather than a pre-packaged release. This is particularly true - if you choose the “current” sources. It is - recommended that you read <link linkend="current">Staying - current with FreeBSD</link>.</para> - </sect2> - - <sect2> - <title>What do I need to use - <application>CTM</application>?</title> - - <para>You will need two things: The <application>CTM</application> - program, and the initial deltas to feed it (to get up to - “current” levels).</para> - - <para>The <application>CTM</application> program has been part of - FreeBSD ever since version 2.0 was released, and lives in - <filename>/usr/src/usr.sbin/CTM</filename> if you have a copy - of the source available.</para> - - <para>If you are running a pre-2.0 version of FreeBSD, you can - fetch the current <application>CTM</application> sources - directly from:</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>The “deltas” you feed - <application>CTM</application> can be had two ways, FTP or - email. If you have general FTP access to the Internet then the - following FTP sites support access to - <application>CTM</application>:</para> - - <para><ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/">ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/</ulink></para> - - <para>or see section <link - linkend="mirrors-ctm">mirrors</link>.</para> - - <para>FTP the relevant directory and fetch the - <filename>README</filename> file, starting from there.</para> - - <para>If you wish to get your deltas via email:</para> - - <para>Send email to &a.majordomo; to subscribe to one of the - <application>CTM</application> distribution lists. - “ctm-cvs-cur” supports the entire cvs tree. - “ctm-src-cur” supports the head of the development - branch. “ctm-src-2_2” supports the 2.2 release - branch, etc.. (If you do not know how to subscribe yourself - using majordomo, send a message first containing the word - <literal>help</literal> — it will send you back usage - instructions.)</para> - - <para>When you begin receiving your <application>CTM</application> - updates in the mail, you may use the - <command>ctm_rmail</command> program to unpack and apply them. - You can actually use the <command>ctm_rmail</command> program - directly from a entry in <filename>/etc/aliases</filename> if - you want to have the process run in a fully automated fashion. - Check the <command>ctm_rmail</command> man page for more - details.</para> - - <note> - <para>No matter what method you use to get the - <application>CTM</application> deltas, you should subscribe to - the <email>ctm-announce@FreeBSD.org</email> mailing list. In - the future, this will be the only place where announcements - concerning the operations of the - <application>CTM</application> system will be posted. Send an - email to &a.majordomo; with a single line of - <literal>subscribe ctm-announce</literal> to get added to the - list.</para> - </note> - </sect2> - - <sect2> - <title>Using <application>CTM</application> for the first - time</title> - - <para>Before you can start using <application>CTM</application> - deltas, you will need to get to a starting point for the deltas - produced subsequently to it.</para> - - <para>First you should determine what you already have. Everyone - can start from an “empty” directory. You must use - an initial “Empty” delta to start off your - <application>CTM</application> supported tree. At some point it - is intended that one of these “started” deltas be - distributed on the CD for your convenience, however, this does - not currently happen.</para> - - <para>Since the trees are many tens of megabytes, you should - prefer to start from something already at hand. If you have a - -RELEASE CD, you can copy or extract an initial source from it. - This will save a significant transfer of data.</para> - - <para>You can recognize these “starter” deltas by the - <literal>X</literal> appended to the number - (<filename>src-cur.3210XEmpty.gz</filename> for instance). The - designation following the <filename>X</filename> corresponds to - the origin of your initial “seed”. - <filename>Empty</filename> is an empty directory. As a rule a - base transition from <filename>Empty</filename> is produced - every 100 deltas. By the way, they are large! 25 to 30 - Megabytes of <command>gzip</command>'d data is common for the - <filename>XEmpty</filename> deltas.</para> - - <para>Once you've picked a base delta to start from, you will also - need all deltas with higher numbers following it.</para> - </sect2> - - <sect2> - <title>Using <application>CTM</application> in your daily - life</title> - - <para>To apply the deltas, simply say:</para> - - <screen>&prompt.root; <userinput>cd /where/ever/you/want/the/stuff</userinput> -&prompt.root; <userinput>ctm -v -v /where/you/store/your/deltas/src-xxx.*</userinput></screen> - - <para><application>CTM</application> understands deltas which have - been put through <command>gzip</command>, so you do not need to - gunzip them first, this saves disk space.</para> - - <para>Unless it feels very secure about the entire process, - <application>CTM</application> will not touch your tree. To - verify a delta you can also use the <option>-c</option> flag and - <application>CTM</application> will not actually touch your - tree; it will merely verify the integrity of the delta and see - if it would apply cleanly to your current tree.</para> - - <para>There are other options to <application>CTM</application> - as well, see the manual pages or look in the sources for more - information.</para> - - <para>I would also be very happy if somebody could help with the - “user interface” portions, as I have realized that I - cannot make up my mind on what options should do what, how and - when...</para> - - <para>That is really all there is to it. Every time you get a new - delta, just run it through <application>CTM</application> to - keep your sources up to date.</para> - - <para>Do not remove the deltas if they are hard to download again. - You just might want to keep them around in case something bad - happens. Even if you only have floppy disks, consider using - <command>fdwrite</command> to make a copy.</para> - </sect2> - - <sect2> - <title>Keeping your local changes</title> - - <para>As a developer one would like to experiment with and change - files in the source tree. <application>CTM</application> - supports local modifications in a limited way: before checking - for the presence of a file <filename>foo</filename>, it first - looks for <filename>foo.ctm</filename>. If this file exists, - CTM will operate on it instead of - <filename>foo</filename>.</para> - - <para>This behavior gives us a simple way to maintain local - changes: simply copy the files you plan to modify to the - corresponding file names with a <filename>.ctm</filename> - suffix. Then you can freely hack the code, while CTM keeps the - <filename>.ctm</filename> file up-to-date.</para> - </sect2> - - <sect2> - <title>Other interesting <application>CTM</application> options</title> - - <sect3> - <title>Finding out exactly what would be touched by an - update</title> - - <para>You can determine the list of changes that - <application>CTM</application> will make on your source - repository using the <option>-l</option> option to - <application>CTM</application>.</para> - - <para>This is useful if you would like to keep logs of the - changes, pre- or post- process the modified files in any - manner, or just are feeling a tad paranoid - <!-- smiley -->:-).</para> - </sect3> - - <sect3> - <title>Making backups before updating</title> - - <para>Sometimes you may want to backup all the files that would - be changed by a <application>CTM</application> update.</para> - - <para>Specifying the <option>-B backup-file</option> option - causes <application>CTM</application> to backup all files that - would be touched by a given <application>CTM</application> - delta to <filename>backup-file</filename>.</para> - </sect3> - - <sect3> - <title>Restricting the files touched by an update</title> - - <para>Sometimes you would be interested in restricting the scope - of a given <application>CTM</application> update, or may be - interested in extracting just a few files from a sequence of - deltas.</para> - - <para>You can control the list of files that - <application>CTM</application> would operate on by specifying - filtering regular expressions using the <option>-e</option> - and <option>-x</option> options.</para> - - <para>For example, to extract an up-to-date copy of - <filename>lib/libc/Makefile</filename> from your collection of - saved CTM deltas, run the commands:</para> - - <screen>&prompt.root; <userinput>cd /where/ever/you/want/to/extract/it/</userinput> -&prompt.root; <userinput>ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*</userinput></screen> - - <para>For every file specified in a - <application>CTM</application> delta, the <option>-e</option> - and <option>-x</option> options are applied in the order given - on the command line. The file is processed by - <application>CTM</application> only if it is marked as - eligible after all the <option>-e</option> and - <option>-x</option> options are applied to it.</para> - </sect3> - </sect2> - - <sect2> - <title>Future plans for <application>CTM</application></title> - - <para>Tons of them:</para> - - <itemizedlist> - <listitem> - <para>Use some kind of authentication into the CTM system, so - as to allow detection of spoofed CTM updates.</para> - </listitem> - - <listitem> - <para>Clean up the options to <application>CTM</application>, - they became confusing and counter intuitive.</para> - </listitem> - </itemizedlist> - </sect2> - - <sect2> - <title>Miscellaneous stuff</title> - - <para>All the “DES infected” (e.g. export controlled) - source is not included. You will get the - “international” version only. If sufficient - interest appears, we will set up a <literal>sec-cur</literal> - sequence too. There is a sequence of deltas for the - <literal>ports</literal> collection too, but interest has not - been all that high yet. Tell me if you want an email list for - that too and we will consider setting it up.</para> - </sect2> - - <sect2 id="mirrors-ctm"> - <title>CTM mirrors</title> - - <para><link linkend="ctm">CTM</link>/FreeBSD is available via anonymous - FTP from the following mirror sites. If you choose to obtain CTM via - anonymous FTP, please try to use a site near you.</para> - - <para>In case of problems, please contact &a.phk;.</para> - - <variablelist> - <varlistentry> - <term>California, Bay Area, official source</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>Germany, 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>South Africa, backup server for old 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>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>If you did not find a mirror near to you or the mirror is - incomplete, try <ulink url="http://ftpsearch.ntnu.no/">FTP - search</ulink> at <ulink - url="http://ftpsearch.ntnu.no/ftpsearch/">http://ftpsearch.ntnu.no/ftpsearch</ulink>. - FTP search is a great free archie server in Trondheim, Norway.</para> - </sect2></sect1> - - <sect1 id="mirrors-cvsup"> - <title>Using CVSup</title> - - <sect2 id="cvsup-intro"> - <title>Introduction</title> - - <para><application>CVSup</application> is a software package for - distributing and updating source trees from a master CVS - repository on a remote server host. The FreeBSD sources are - maintained in a CVS repository on a central development machine - in California. With <application>CVSup</application>, FreeBSD - users can easily keep their own source trees up to date.</para> - - <para><application>CVSup</application> uses the so-called - <emphasis>pull</emphasis> model of updating. Under the pull - model, each client asks the server for updates, if and when they - are wanted. The server waits passively for update requests from - its clients. Thus all updates are instigated by the client. - The server never sends unsolicited updates. Users must either - run the <application>CVSup</application> client manually to get - an update, or they must set up a <command>cron</command> job to - run it automatically on a regular basis.</para> - - <para>The term <application>CVSup</application>, capitalized just - so, refers to the entire software package. Its main components - are the client <command>cvsup</command> which runs on each - user's machine, and the server <command>cvsupd</command> which - runs at each of the FreeBSD mirror sites.</para> - - <para>As you read the FreeBSD documentation and mailing lists, you - may see references to <application>sup</application>. - <application>Sup</application> was the predecessor of - <application>CVSup</application>, and it served a similar - purpose.<application>CVSup</application> is in used in much the - same way as sup and, in fact, uses configuration files which are - backward-compatible with <command>sup</command>'s. - <application>Sup</application> is no longer used in the FreeBSD - project, because <application>CVSup</application> is both faster - and more flexible.</para> - </sect2> - - <sect2 id="cvsup-install"> - <title>Installation</title> - - <para>The easiest way to install <application>CVSup</application> - is to use the <filename>net/cvsup-bin</filename> port - from the FreeBSD <link linkend="ports">ports collection</link>. - If you prefer to build <application>CVSup</application> from - source, you can use the <filename>net/cvsup</filename> - port instead. But be forewarned: the - <filename>net/cvsup</filename> port depends on the Modula-3 - system, which takes a substantial amount of time, memory, and - disk space to build.</para> - - <para>If you do not know anything about cvsup at all and want a - single package which will install it, set up the configuration - file and start the transfer via a pointy-clicky type of - interface, then get the <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/cvsupit.tgz">cvsupit</ulink> - package. Just hand it to &man.pkg.add.1; and it will lead you - through the configuration process in a menu-oriented - fashion.</para> - </sect2> - - <sect2 id="cvsup-config"> - <title>CVSup Configuration</title> - - <para><application>CVSup</application>'s operation is controlled - by a configuration file called the <filename>supfile</filename>. - There are some sample <filename>supfiles</filename> in the - directory <ulink - url="file:/usr/share/examples/cvsup/">/usr/share/examples/cvsup/</ulink>.</para> - - <para>The information in a <filename>supfile</filename> answers - the following questions for cvsup:</para> - - <itemizedlist> - <listitem> - <para><link linkend="cvsup-config-files">Which files do you - want to receive?</link></para> - </listitem> - - <listitem> - <para><link linkend="cvsup-config-vers">Which versions of them - do you want?</link></para> - </listitem> - - <listitem> - <para><link linkend="cvsup-config-where">Where do you want to - get them from?</link></para> - </listitem> - - <listitem> - <para><link linkend="cvsup-config-dest">Where do you want to - put them on your own machine?</link></para> - </listitem> - - <listitem> - <para><link linkend="cvsup-config-status">Where do you want to - put your status files?</link></para> - </listitem> - </itemizedlist> - - <para>In the following sections, we will construct a typical - <filename>supfile</filename> by answering each of these - questions in turn. First, we describe the overall structure of - a <filename>supfile</filename>.</para> - - <para>A <filename>supfile</filename> is a text file. Comments - begin with <literal>#</literal> and extend to the end of the - line. Lines that are blank and lines that contain only - comments are ignored.</para> - - <para>Each remaining line describes a set of files that the user - wishes to receive. The line begins with the name of a - <quote>collection</quote>, a logical grouping of files defined by - the server. The name of the collection tells the server which - files you want. After the collection name come zero or more - fields, separated by white space. These fields answer the - questions listed above. There are two types of fields: flag - fields and value fields. A flag field consists of a keyword - standing alone, e.g., <literal>delete</literal> or - <literal>compress</literal>. A value field also begins with a - keyword, but the keyword is followed without intervening white - space by <literal>=</literal> and a second word. For example, - <literal>release=cvs</literal> is a value field.</para> - - <para>A <filename>supfile</filename> typically specifies more than - one collection to receive. One way to structure a - <filename>supfile</filename> is to specify all of the relevant - fields explicitly for each collection. However, that tends to - make the <filename>supfile</filename> lines quite long, and it - is inconvenient because most fields are the same for all of the - collections in a <filename>supfile</filename>. - <application>CVSup</application> provides a defaulting mechanism - to avoid these problems. Lines beginning with the special - pseudo-collection name <literal>*default</literal> can be used - to set flags and values which will be used as defaults for the - subsequent collections in the <filename>supfile</filename>. A - default value can be overridden for an individual collection, by - specifying a different value with the collection itself. - Defaults can also be changed or augmented in mid-supfile by - additional <literal>*default</literal> lines.</para> - - <para>With this background, we will now proceed to construct a - <filename>supfile</filename> for receiving and updating the main - source tree of <link - linkend="current">FreeBSD-CURRENT</link>.</para> - - <itemizedlist> - <listitem> - <para><anchor id="cvsup-config-files">Which files do you want - to receive?</para> - - <para>The files available via <application>CVSup</application> - are organized into named groups called - <quote>collections</quote>. The collections that are - available are described <link - linkend="cvsup-collec">here</link>. In this example, we - wish to receive the entire main source tree for the FreeBSD - system. There is a single large collection - <literal>src-all</literal> which will give us all of that, - except the export-controlled cryptography support. Let us - assume for this example that we are in the USA or Canada. - Then we can get the cryptography code with one additional - collection, <literal>cvs-crypto</literal>. As a first step - toward constructing our <filename>supfile</filename>, we - simply list these collections, one per line:</para> - - <programlisting> -src-all -cvs-crypto</programlisting> - </listitem> - - <listitem> - <para><anchor id="cvsup-config-vers">Which version(s) of them - do you want?</para> - - <para>With <application>CVSup</application>, you can receive - virtually any version of the sources that ever existed. - That is possible because the cvsupd server works directly - from the CVS repository, which contains all of the versions. - You specify which one of them you want using the - <literal>tag=</literal> and <option>date=</option> value - fields.</para> - - <warning> - <para>Be very careful to specify any <literal>tag=</literal> - fields correctly. Some tags are valid only for certain - collections of files. If you specify an incorrect or - misspelled tag, CVSup will delete files which you probably - do not want deleted. In particular, use <emphasis>only - </emphasis> <literal>tag=.</literal> for the - <literal>ports-*</literal> collections.</para> - </warning> - - <para>The <literal>tag=</literal> field names a symbolic tag - in the repository. There are two kinds of tags, revision - tags and branch tags. A revision tag refers to a specific - revision. Its meaning stays the same from day to day. A - branch tag, on the other hand, refers to the latest revision - on a given line of development, at any given time. Because - a branch tag does not refer to a specific revision, it may - mean something different tomorrow than it means - today.</para> - - <para>Here are the branch tags that users might be interested - in. Keep in mind that only the <literal>tag=.</literal> is - relevant for the ports collection.</para> - - <variablelist> - <varlistentry> - <term>tag=.</term> - - <listitem> - <para>The main line of development, also known as - FreeBSD-CURRENT.</para> - - <note> - <para>The <literal>.</literal> is not punctuation; it - is the name of the tag. Valid for all - collections.</para> - </note> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_4</term> - - <listitem> - <para>The line of development for FreeBSD-4.X, also known as - FreeBSD-STABLE.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_3</term> - - <listitem> - <para>The line of development for FreeBSD-3.X</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_2_2</term> - - <listitem> - <para>The line of development for FreeBSD-2.2.X, also - known as 2.2-STABLE.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Here are the revision tags that users might be interested - in. Again, these are not valid for the ports - collection.</para> - - <variablelist> - <varlistentry> - <term>RELENG_4_0_0_RELEASE</term> - - <listitem> - <para>FreeBSD-4.0</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RELENG_3_4_0_RELEASE</term> - - <listitem> - <para>FreeBSD-3.4.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>tag=RELENG_3_3_0_RELEASE</term> - - <listitem> - <para>FreeBSD-3.3.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>tag=RELENG_3_2_0_RELEASE</term> - - <listitem> - <para>FreeBSD-3.2.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>tag=RELENG_3_1_0_RELEASE</term> - - <listitem> - <para>FreeBSD-3.1.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>tag=RELENG_3_0_0_RELEASE</term> - - <listitem> - <para>FreeBSD-3.0.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>tag=RELENG_2_2_8_RELEASE</term> - - <listitem> - <para>FreeBSD-2.2.8.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>tag=RELENG_2_2_7_RELEASE</term> - - <listitem> - <para>FreeBSD-2.2.7.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>tag=RELENG_2_2_6_RELEASE</term> - - <listitem> - <para>FreeBSD-2.2.6.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>tag=RELENG_2_2_5_RELEASE</term> - - <listitem> - <para>FreeBSD-2.2.5.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>tag=RELENG_2_2_2_RELEASE</term> - - <listitem> - <para>FreeBSD-2.2.2.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>tag=RELENG_2_2_1_RELEASE</term> - - <listitem> - <para>FreeBSD-2.2.1.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>tag=RELENG_2_2_0_RELEASE</term> - - <listitem> - <para>FreeBSD-2.2.0.</para> - </listitem> - </varlistentry> - </variablelist> - - <warning> - <para>Be very careful to type the tag name exactly as shown. - <application>CVSup</application> cannot distinguish - between valid and invalid tags. If you misspell the tag, - <application>CVSup</application> will behave as though you - had specified a valid tag which happens to refer to no - files at all. It will delete your existing sources in - that case.</para> - </warning> - - <para>When you specify a branch tag, you normally receive the - latest versions of the files on that line of development. - If you wish to receive some past version, you can do so by - specifying a date with the <option>date=</option> value - field. The &man.cvsup.1; manual page explains how to do - that.</para> - - <para>For our example, we wish to receive FreeBSD-CURRENT. We - add this line at the beginning of our - <filename>supfile</filename>:</para> - - <programlisting> -*default tag=.</programlisting> - - <para>There is an important special case that comes into play - if you specify neither a <literal>tag=</literal> field nor a - <literal>date=</literal> field. In that case, you receive - the actual RCS files directly from the server's CVS - repository, rather than receiving a particular version. - Developers generally prefer this mode of operation. By - maintaining a copy of the repository itself on their - systems, they gain the ability to browse the revision - histories and examine past versions of files. This gain is - achieved at a large cost in terms of disk space, - however.</para> - </listitem> - - <listitem> - <para><anchor id="cvsup-config-where">Where do you want to get - them from?</para> - - <para>We use the <literal>host=</literal> field to tell - <command>cvsup</command> where to obtain its updates. Any - of the <link linkend="mirrors-cvsup">CVSup mirror - sites</link> will do, though you should try to select one - that is close to you in cyberspace. In this example we will - use a fictional FreeBSD distribution site, - <hostid role="fqdn">cvsup666.FreeBSD.org</hostid>:</para> - - <programlisting> -*default host=cvsup666.FreeBSD.org</programlisting> - - <para>You will need to change the host to one that actually - exists before running CVSup. On any particular run of - <command>cvsup</command>, you can override the host setting - on the command line, with <option>-h - <replaceable>hostname</replaceable></option>.</para> - </listitem> - - <listitem> - <para><anchor id="cvsup-config-dest">Where do you want to put - them on your own machine?</para> - - <para>The <literal>prefix=</literal> field tells - <command>cvsup</command> where to put the files it receives. - In this example, we will put the source files directly into - our main source tree, <filename>/usr/src</filename>. The - <filename>src</filename> directory is already implicit in - the collections we have chosen to receive, so this is the - correct specification:</para> - - <programlisting> -*default prefix=/usr</programlisting> - </listitem> - - <listitem> - <para><anchor id="cvsup-config-status">Where should - <command>cvsup</command> maintain its status files?</para> - - <para>The cvsup client maintains certain status files in what - is called the <quote>base</quote> directory. These files - help <application>CVSup</application> to work more - efficiently, by keeping track of which updates you have - already received. We will use the standard base directory, - <filename>/usr/local/etc/cvsup</filename>:</para> - - <programlisting> -*default base=/usr/local/etc/cvsup</programlisting> - - <para>This setting is used by default if it is not specified - in the <filename>supfile</filename>, so we actually do not - need the above line.</para> - - <para>If your base directory does not already exist, now would - be a good time to create it. The <command>cvsup</command> - client will refuse to run if the base directory does not - exist.</para> - </listitem> - - <listitem> - <para>Miscellaneous <filename>supfile</filename> - settings:</para> - - <para>There is one more line of boiler plate that normally - needs to be present in the - <filename>supfile</filename>:</para> - - <programlisting> -*default release=cvs delete use-rel-suffix compress</programlisting> - - <para><literal>release=cvs</literal> indicates that the server - should get its information out of the main FreeBSD CVS - repository. This is virtually always the case, but there - are other possibilities which are beyond the scope of this - discussion.</para> - - <para><literal>delete</literal> gives - <application>CVSup</application> permission to delete files. - You should always specify this, so that - <application>CVSup</application> can keep your source tree - fully up-to-date. <application>CVSup</application> is - careful to delete only those files for which it is - responsible. Any extra files you happen to have will be - left strictly alone.</para> - - <para><literal>use-rel-suffix</literal> is ... arcane. If you - really want to know about it, see the &man.cvsup.1; manual - page. Otherwise, just specify it and do not worry about - it.</para> - - <para><literal>compress</literal> enables the use of - gzip-style compression on the communication channel. If - your network link is T1 speed or faster, you probably should - not use compression. Otherwise, it helps - substantially.</para> - </listitem> - - <listitem> - <para>Putting it all together:</para> - - <para>Here is the entire <filename>supfile</filename> for our - example:</para> - - <programlisting> -*default tag=. -*default host=cvsup666.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> - <title>The refuse file</title> - - <para>As mentioned above, <application>CVSup</application> uses - a <emphasis>pull method</emphasis>. Basically, this means that - you connect to the <application>CVSup</application> server, and - it says, <quote>Here's what you can download from - me...</quote>, and your client responds <quote>OK, I'll take - this, this, this, and this.</quote> In the default - configuration, the <application>CVSup</application> client will - take every file associated with the collection and tag you - chose in the configuration file. However, this is not always - what you want, especially if you are synching the doc, ports, or - www trees — most people can't read four or five - languages, and therefore they don't need to download the - language-specific files. If you are - <application>CVSup</application>ing the ports collection, you - can get around this by specifying each collection individually - (e.g., <emphasis>ports-astrology</emphasis>, - <emphasis>ports-biology</emphasis>, etc instead of simply - saying <emphasis>ports-all</emphasis>). However, since the doc - and www trees do not have language-specific collections, you - must use one of <application>CVSup</application>'s many nifty - features; the <emphasis>refuse file</emphasis>.</para> - - <para>The <emphasis>refuse file</emphasis> essentially tells - <application>CVSup</application> that it should not take every - single file from a collection; in other words, it tells the - client to <emphasis>refuse</emphasis> certain files from the - server. The refuse file can be found (or, if you do not yet - have one, should be placed) in - <filename><replaceable>base</replaceable>/sup/refuse</filename>. - <replaceable>base</replaceable> is defined in your supfile; by - default, <replaceable>base</replaceable> is - <filename>/usr/sup</filename>, which means that by default the - refuse file is in <filename>/usr/sup/refuse</filename>.</para> - - <para>The refuse file has a very simple format; it simply - contains the names of files or directories that you do not wish - to to download. For example, since I cannot speak any languages - except for English and some German, and I do not feel the need - to use German applications, I have the following in my - <emphasis>refuse file</emphasis>:</para> - - <screen> - ports/chinese - ports/german - ports/japanese - ports/korean - ports/russian - ports/vietnamese - doc/es_ES.ISO_8859-1 - doc/ja_JP.eucJP</screen> - - <para>and so forth for the other languages. Note that the name - of the repository is the first <quote>directory</quote> in the - <emphasis>refuse file</emphasis>.</para> - - <para>With this very useful feature, those users who are on - slow links or pay by the minute for their Internet connection - will be able to save valuable time as they will no longer need - to download files that they will never use. For more - information on <emphasis>refuse files</emphasis> and other neat - features of <application>CVSup</application>, please view its - man page.</para> - </sect3> - </sect2> - - <sect2> - <title>Running <application>CVSup</application></title> - - <para>You are now ready to try an update. The command line for - doing this is quite simple:</para> - - <screen>&prompt.root; <userinput>cvsup <replaceable>supfile</replaceable></userinput></screen> - - <para>where <filename><replaceable>supfile</replaceable></filename> - is of course the name of the supfile you have just created. - Assuming you are running under X11, <command>cvsup</command> - will display a GUI window with some buttons to do the usual - things. Press the <quote>go</quote> button, and watch it - run.</para> - - <para>Since you are updating your actual - <filename>/usr/src</filename> tree in this example, you will - need to run the program as <username>root</username> so that - <command>cvsup</command> has the permissions it needs to update - your files. Having just created your configuration file, and - having never used this program before, that might - understandably make you nervous. There is an easy way to do a - trial run without touching your precious files. Just create an - empty directory somewhere convenient, and name it as an extra - argument on the command line:</para> - - <screen>&prompt.root; <userinput>mkdir /var/tmp/dest</userinput> -&prompt.root; <userinput>cvsup supfile /var/tmp/dest</userinput></screen> - - <para>The directory you specify will be used as the destination - directory for all file updates. - <application>CVSup</application> will examine your usual files - in <filename>/usr/src</filename>, but it will not modify or - delete any of them. Any file updates will instead land in - <filename>/var/tmp/dest/usr/src</filename>. - <application>CVSup</application> will also leave its base - directory status files untouched when run this way. The new - versions of those files will be written into the specified - directory. As long as you have read access to - <filename>/usr/src</filename>, you do not even need to be root - to perform this kind of trial run.</para> - - <para>If you are not running X11 or if you just do not like GUIs, - you should add a couple of options to the command line when you - run cvsup:</para> - - <screen>&prompt.root; <userinput>cvsup -g -L 2 supfile</userinput></screen> - - <para>The <option>-g</option> tells cvsup not to use its GUI. - This is automatic if you are not running X11, but otherwise you - have to specify it.</para> - - <para>The <option>-L 2</option> tells cvsup to print out the - details of all the file updates it is doing. There are three - levels of verbosity, from <option>-L 0</option> to - <option>-L 2</option>. The default is 0, which means total - silence except for error messages.</para> - - <para>There are plenty of other options available. For a brief - list of them, type <command>cvsup -H</command>. For more - detailed descriptions, see the manual page.</para> - - <para>Once you are satisfied with the way updates are working, you - can arrange for regular runs of cvsup using &man.cron.8;. - Obviously, you should not let cvsup use its GUI when running it - from cron.</para> - </sect2> - - <sect2 id="cvsup-collec"> - <title><application>CVSup</application> File Collections</title> - - <para>The file collections available via - <application>CVSup</application> are organized hierarchically. - There are a few large collections, and they are divided into - smaller sub-collections. Receiving a large collection is - equivalent to receiving each of its sub-collections. The - hierarchical relationships among collections are reflected by - the use of indentation in the list below.</para> - - <para>The most commonly used collections are - <literal>src-all</literal>, <literal>cvs-crypto</literal>, and - <literal>ports-all</literal>. The other collections are used - only by small groups of people for specialized purposes, and - some mirror sites may not carry all of them.</para> - - <variablelist> - <varlistentry> - <term><literal>cvs-all release=cvs</literal></term> - - <listitem> - <para>The main FreeBSD CVS repository, excluding the - export-restricted cryptography code.</para> - - <variablelist> - <varlistentry> - <term><literal>distrib release=cvs</literal></term> - - <listitem> - <para>Files related to the distribution and mirroring - of FreeBSD.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>doc-all release=cvs</literal></term> - - <listitem> - <para>Sources for the FreeBSD handbook and other - documentation.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-all release=cvs</literal></term> - - <listitem> - <para>The FreeBSD ports collection.</para> - - <variablelist> - <varlistentry> - <term><literal>ports-archivers - release=cvs</literal></term> - - <listitem> - <para>Archiving tools.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-astro - release=cvs</literal></term> - - <listitem> - <para>Astronomical ports.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-audio - release=cvs</literal></term> - - <listitem> - <para>Sound support.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-base - release=cvs</literal></term> - - <listitem> - <para>Miscellaneous files at the top of - /usr/ports.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-benchmarks - release=cvs</literal></term> - - <listitem> - <para>Benchmarks.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-biology - release=cvs</literal></term> - - <listitem> - <para>Biology.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-cad - release=cvs</literal></term> - - <listitem> - <para>Computer aided design tools.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-chinese - release=cvs</literal></term> - - <listitem> - <para>Chinese language support.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-comms - release=cvs</literal></term> - - <listitem> - <para>Communication software.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-converters - release=cvs</literal></term> - - <listitem> - <para>character code converters.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-databases - release=cvs</literal></term> - - <listitem> - <para>Databases.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-deskutils - release=cvs</literal></term> - - <listitem> - <para>Things that used to be on the desktop - before computers were invented.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-devel - release=cvs</literal></term> - - <listitem> - <para>Development utilities.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-editors - release=cvs</literal></term> - - <listitem> - <para>Editors.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-emulators - release=cvs</literal></term> - - <listitem> - <para>Emulators for other operating - systems.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-ftp - release=cvs</literal></term> - - <listitem> - <para>FTP client and server utilities.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-games - release=cvs</literal></term> - - <listitem> - <para>Games.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-german - release=cvs</literal></term> - - <listitem> - <para>German language support.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-graphics - release=cvs</literal></term> - - <listitem> - <para>Graphics utilities.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-irc - release=cvs</literal></term> - - <listitem> - <para>Internet Relay Chat utilities.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-japanese - release=cvs</literal></term> - - <listitem> - <para>Japanese language support.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-java - release=cvs</literal></term> - - <listitem> - <para>Java utilities.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-korean - release=cvs</literal></term> - - <listitem> - <para>Korean language support.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-lang - release=cvs</literal></term> - - <listitem> - <para>Programming languages.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-mail - release=cvs</literal></term> - - <listitem> - <para>Mail software.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-math - release=cvs</literal></term> - - <listitem> - <para>Numerical computation software.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-mbone - release=cvs</literal></term> - - <listitem> - <para>MBone applications.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-misc - release=cvs</literal></term> - - <listitem> - <para>Miscellaneous utilities.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-net - release=cvs</literal></term> - - <listitem> - <para>Networking software.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-news - release=cvs</literal></term> - - <listitem> - <para>USENET news software.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-palm - release=cvs</literal></term> - - <listitem> - <para>Software support for 3Com Palm(tm) - series.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-print - release=cvs</literal></term> - - <listitem> - <para>Printing software.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-russian - release=cvs</literal></term> - - <listitem> - <para>Russian language support.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-security - release=cvs</literal></term> - - <listitem> - <para>Security utilities.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-shells - release=cvs</literal></term> - - <listitem> - <para>Command line shells.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-sysutils - release=cvs</literal></term> - - <listitem> - <para>System utilities.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-textproc - release=cvs</literal></term> - - <listitem> - <para>text processing utilities (does not - include desktop publishing).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-vietnamese - release=cvs</literal></term> - - <listitem> - <para>Vietnamese language support.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-www - release=cvs</literal></term> - - <listitem> - <para>Software related to the World Wide - Web.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-x11 - release=cvs</literal></term> - - <listitem> - <para>Ports to support the X window - system.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-x11-clocks - release=cvs</literal></term> - - <listitem> - <para>X11 clocks.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-x11-fm - release=cvs</literal></term> - - <listitem> - <para>X11 file managers.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-x11-fonts - release=cvs</literal></term> - - <listitem> - <para>X11 fonts and font utilities.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-x11-toolkits - release=cvs</literal></term> - - <listitem> - <para>X11 toolkits.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-x11-servers</literal></term> - - <listitem> - <para>X11 servers.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>ports-x11-wm</literal></term> - - <listitem> - <para>X11 window managers.</para> - </listitem> - </varlistentry> - </variablelist> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-all release=cvs</literal></term> - - <listitem> - <para>The main FreeBSD sources, excluding the - export-restricted cryptography code.</para> - - <variablelist> - <varlistentry> - <term><literal>src-base - release=cvs</literal></term> - - <listitem> - <para>Miscellaneous files at the top of - <filename>/usr/src</filename>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-bin - release=cvs</literal></term> - - <listitem> - <para>User utilities that may be needed in - single-user mode - (<filename>/usr/src/bin</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-contrib - release=cvs</literal></term> - - <listitem> - <para>Utilities and libraries from outside the - FreeBSD project, used relatively unmodified - (<filename>/usr/src/contrib</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-etc - release=cvs</literal></term> - - <listitem> - <para>System configuration files - (<filename>/usr/src/etc</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-games - release=cvs</literal></term> - - <listitem> - <para>Games - (<filename>/usr/src/games</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-gnu - release=cvs</literal></term> - - <listitem> - <para>Utilities covered by the GNU Public - License (<filename>/usr/src/gnu</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-include - release=cvs</literal></term> - - <listitem> - <para>Header files - (<filename>/usr/src/include</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-kerberos5 - release=cvs</literal></term> - - <listitem> - <para>Kerberos5 security package - (<filename>/usr/src/kerberos5</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-kerberosIV - release=cvs</literal></term> - - <listitem> - <para>KerberosIV security package - (<filename>/usr/src/kerberosIV</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-lib - release=cvs</literal></term> - - <listitem> - <para>Libraries - (<filename>/usr/src/lib</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-libexec - release=cvs</literal></term> - - <listitem> - <para>System programs normally executed by other - programs - (<filename>/usr/src/libexec</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-release - release=cvs</literal></term> - - <listitem> - <para>Files required to produce a FreeBSD - release - (<filename>/usr/src/release</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-sbin - release=cvs</literal></term> - - <listitem> - <para>System utilities for single-user mode - (<filename>/usr/src/sbin</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-share - release=cvs</literal></term> - - <listitem> - <para>Files that can be shared across multiple - systems - (<filename>/usr/src/share</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-sys - release=cvs</literal></term> - - <listitem> - <para>The kernel - (<filename>/usr/src/sys</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-tools - release=cvs</literal></term> - - <listitem> - <para>Various tools for the maintenance of - FreeBSD - (<filename>/usr/src/tools</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-usrbin - release=cvs</literal></term> - - <listitem> - <para>User utilities - (<filename>/usr/src/usr.bin</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-usrsbin - release=cvs</literal></term> - - <listitem> - <para>System utilities - (<filename>/usr/src/usr.sbin</filename>).</para> - </listitem> - </varlistentry> - </variablelist> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>www release=cvs</literal></term> - - <listitem> - <para>The sources for the World Wide Web data.</para> - </listitem> - </varlistentry> - </variablelist> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>cvs-crypto release=cvs</literal></term> - - <listitem> - <para>The export-restricted cryptography code.</para> - - <variablelist> - <varlistentry> - <term><literal>src-crypto release=cvs</literal></term> - - <listitem> - <para>Export-restricted utilities and libraries from - outside the FreeBSD project, used relatively - unmodified - (<filename>/usr/src/crypto</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-eBones release=cvs</literal></term> - - <listitem> - <para>Kerberos and DES - (<filename>/usr/src/eBones</filename>). Not - used in current releases of FreeBSD.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-secure release=cvs</literal></term> - - <listitem> - <para>DES (<filename>/usr/src/secure</filename>).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>src-sys-crypto - release=cvs</literal></term> - - <listitem> - <para>Kernel cryptography code - (<filename>/usr/src/sys/crypto</filename>).</para> - </listitem> - </varlistentry> - </variablelist> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>distrib release=self</literal></term> - - <listitem> - <para>The CVSup server's own configuration files. Used by - CVSup mirror sites.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>gnats release=current</literal></term> - - <listitem> - <para>The GNATS bug-tracking database.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>mail-archive release=current</literal></term> - - <listitem> - <para>FreeBSD mailing list archive.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>www release=current</literal></term> - - <listitem> - <para>The installed World Wide Web data. Used by WWW mirror - sites.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - - <sect2> - <title>For more information</title> - - <para>For the CVSup FAQ and other information about CVSup, see - <ulink url="http://www.polstra.com/projects/freeware/CVSup/">The - CVSup Home Page</ulink>.</para> - - <para>Most FreeBSD-related discussion of - <application>CVSup</application> takes place on the - &a.hackers;. New versions of the software are announced there, - as well as on the &a.announce;.</para> - - <para>Questions and bug reports should be addressed to the author - of the program at <email>cvsup-bugs@polstra.com</email>.</para> - </sect2> - - <sect2> - <title>CVSup Sites</title> - - <para><link linkend="mirrors-cvsup">CVSup</link> servers for FreeBSD are running - at the following sites:</para> - - <variablelist> - <varlistentry> - <term>Argentina</term> - - <listitem> - <itemizedlist> - - <listitem> - <para>cvsup.ar.FreeBSD.org (maintainer - <email>msagre@cactus.fi.uba.ar</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Australia</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.au.FreeBSD.org (maintainer - <email>dawes@xfree86.org</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Austria</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.at.FreeBSD.org (maintainer - <email>postmaster@wu-wien.ac.at</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Brazil</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.br.FreeBSD.org (maintainer - <email>cvsup@cvsup.br.FreeBSD.org</email>)</para> - </listitem> - - <listitem> - <para>cvsup2.br.FreeBSD.org (maintainer - <email>tps@ti.sk</email>)</para> - </listitem> - - <listitem> - <para>cvsup3.br.FreeBSD.org (maintainer - <email>camposr@matrix.com.br</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Canada</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.ca.FreeBSD.org (maintainer - <email>dan@jaded.net</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>China</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.cn.FreeBSD.org (maintainer - <email>phj@cn.FreeBSD.org</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Czech Republic</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.cz.FreeBSD.org (maintainer - <email>cejkar@dcse.fee.vutbr.cz</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Denmark</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.dk.FreeBSD.org (maintainer - <email>jesper@skriver.dk</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Estonia</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.ee.FreeBSD.org (maintainer - <email>taavi@uninet.ee</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Finland</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.fi.FreeBSD.org (maintainer - <email>count@key.sms.fi</email>)</para> - </listitem> - - <listitem> - <para>cvsup2.fi.FreeBSD.org (maintainer - <email>count@key.sms.fi</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>France</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.fr.FreeBSD.org (maintainer - <email>hostmaster@fr.FreeBSD.org</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Germany</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.de.FreeBSD.org (maintainer - <email>wosch@FreeBSD.org</email>)</para> - </listitem> - - <listitem> - <para>cvsup2.de.FreeBSD.org (maintainer - <email>petzi@FreeBSD.org</email>)</para> - </listitem> - - <listitem> - <para>cvsup3.de.FreeBSD.org (maintainer - <email>ag@leo.org</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Iceland</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.is.FreeBSD.org (maintainer - <email>adam@veda.is</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Japan</term> - - <listitem> - <itemizedlist> - - <listitem> - <para>cvsup.jp.FreeBSD.org (maintainer - <email>cvsupadm@jp.FreeBSD.org</email>)</para> - </listitem> - - <listitem> - <para>cvsup2.jp.FreeBSD.org (maintainer - <email>max@FreeBSD.org</email>)</para> - </listitem> - - <listitem> - <para>cvsup3.jp.FreeBSD.org (maintainer - <email>shige@cin.nihon-u.ac.jp</email>)</para> - </listitem> - - <listitem> - <para>cvsup4.jp.FreeBSD.org (maintainer - <email>cvsup-admin@ftp.media.kyoto-u.ac.jp</email>)</para> - </listitem> - - <listitem> - <para>cvsup5.jp.FreeBSD.org (maintainer - <email>cvsup@imasy.or.jp</email>)</para> - </listitem> - - <listitem> - <para>cvsup6.jp.FreeBSD.org (maintainer - <email>cvsupadm@jp.FreeBSD.org</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Korea</term> - - <listitem> - <itemizedlist> - - <listitem> - <para>cvsup.kr.FreeBSD.org (maintainer - <email>cjh@kr.FreeBSD.org</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Netherlands</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.nl.FreeBSD.org (maintainer - <email>xaa@xaa.iae.nl</email>)</para> - </listitem> - - <listitem> - <para>cvsup2.nl.FreeBSD.org (maintainer - <email>cvsup@nl.uu.net</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Norway</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.no.FreeBSD.org (maintainer - <email>Per.Hove@math.ntnu.no</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Poland</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.pl.FreeBSD.org (maintainer - <email>Mariusz@kam.pl</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Portugal</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.pt.FreeBSD.org (maintainer - <email>jpedras@webvolution.net</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Russia</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.ru.FreeBSD.org (maintainer - <email>ache@nagual.pp.ru</email>)</para> - </listitem> - - <listitem> - <para>cvsup2.ru.FreeBSD.org (maintainer - <email>dv@dv.ru</email>)</para> - </listitem> - - <listitem> - <para>cvsup3.ru.FreeBSD.org (maintainer - <email>fjoe@iclub.nsu.ru</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Slovak Republic</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.sk.FreeBSD.org (maintainer - <email>tps@tps.sk</email>)</para> - </listitem> - - <listitem> - <para>cvsup2.sk.FreeBSD.org (maintainer - <email>tps@tps.sk</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Slovenia</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.si.FreeBSD.org (maintainer - <email>blaz@si.FreeBSD.org</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>South Africa</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.za.FreeBSD.org (maintainer - <email>markm@FreeBSD.org</email>)</para> - </listitem> - - <listitem> - <para>cvsup2.za.FreeBSD.org (maintainer - <email>markm@FreeBSD.org</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Spain</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.es.FreeBSD.org (maintainer - <email>jesusr@FreeBSD.org</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Sweden</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.se.FreeBSD.org (maintainer - <email>pantzer@ludd.luth.se</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Taiwan</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.tw.FreeBSD.org (maintainer - <email>jdli@freebsd.csie.nctu.edu.tw</email>)</para> - </listitem> - - <listitem> - <para>cvsup2.tw.FreeBSD.org (maintainer - <email>ycheng@sinica.edu.tw</email>)</para> - </listitem> - - <listitem> - <para>cvsup3.tw.FreeBSD.org (maintainer - <email>foxfair@FreeBSD.org</email>)</para> - </listitem> - - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Ukraine</term> - - <listitem> - <itemizedlist> - - <listitem> - <para>cvsup2.ua.FreeBSD.org (maintainer - <email>freebsd-mnt@lucky.net</email>)</para> - </listitem> - - <listitem> - <para>cvsup3.ua.FreeBSD.org (maintainer - <email>ftpmaster@ukr.net</email>), Kiev</para> - </listitem> - - <listitem> - <para>cvsup4.ua.FreeBSD.org (maintainer - <email>phantom@cris.net</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>United Kingdom</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.uk.FreeBSD.org (maintainer - <email>joe@pavilion.net</email>)</para> - </listitem> - - <listitem> - <para>cvsup2.uk.FreeBSD.org (maintainer - <email>brian@FreeBSD.org</email>)</para> - </listitem> - - <listitem> - <para>cvsup3.uk.FreeBSD.org (maintainer - <email>ftp-admin@plig.net</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>USA</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup1.FreeBSD.org (maintainer - <email>skynyrd@opus.cts.cwu.edu</email>), Washington - state</para> - </listitem> - - <listitem> - <para>cvsup2.FreeBSD.org (maintainer - <email>jdp@FreeBSD.org</email>), California</para> - </listitem> - - <listitem> - <para>cvsup3.FreeBSD.org (maintainer - <email>wollman@FreeBSD.org</email>), Massachusetts</para> - </listitem> - - <listitem> - <para>cvsup4.FreeBSD.org (maintainer - <email>rgrimes@FreeBSD.org</email>), Oregon</para> - </listitem> - - <listitem> - <para>cvsup5.FreeBSD.org (maintainer - <email>mjr@blackened.com</email>), Arizona</para> - </listitem> - - <listitem> - <para>cvsup6.FreeBSD.org (maintainer - <email>jdp@FreeBSD.org</email>), Florida</para> - </listitem> - - <listitem> - <para>cvsup7.FreeBSD.org (maintainer - <email>jdp@FreeBSD.org</email>), Washington state</para> - </listitem> - - <listitem> - <para>cvsup8.FreeBSD.org (maintainer - <email>hostmaster@bigmirror.com</email>), Washington - state</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - </variablelist> - - <para>The export-restricted code for FreeBSD (eBones and secure) is - available via <application>CVSup</application> at the following - international repository. Please use this site to get the - export-restricted code, if you are outside the USA or Canada.</para> - - <variablelist> - <varlistentry> - <term>South Africa</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.internat.FreeBSD.org (maintainer - <email>markm@FreeBSD.org</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - </variablelist> - - <para>Since this site seems to be quite heavily frequented at times, - you might want to use one of the following mirrors to fetch the - export-restricted code.</para> - - <variablelist> - <varlistentry> - <term>Denmark</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.dk.FreeBSD.org (maintainer - <email>jesper@skriver.dk</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>Germany</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.de.FreeBSD.org (maintainer - <email>wosch@FreeBSD.org</email>)</para> - </listitem> - - <listitem> - <para>cvsup3.de.FreeBSD.org (maintainer - <email>ag@leo.org</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>United Kingdom</term> - - <listitem> - <itemizedlist> - <listitem> - <para>cvsup.uk.FreeBSD.org (maintainer - <email>joe@pavilion.net</email>)</para> - </listitem> - - <listitem> - <para>cvsup2.uk.FreeBSD.org (maintainer - <email>brian@FreeBSD.org</email>)</para> - </listitem> - - <listitem> - <para>cvsup3.uk.FreeBSD.org (maintainer - <email>ftp-admin@plig.net</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - </variablelist> - - <para>The following <application>CVSup</application> site is especially - designed for <link linkend="ctm">CTM</link> users. Unlike the other - CVSup mirrors, it is kept up-to-date by <application>CTM</application>. - That means if you <application>CVSup</application> - <literal>cvs-all</literal> with <literal>release=cvs</literal> from this - site, you get a version of the repository (including the inevitable - <filename>.ctm_status</filename> file) which is suitable for being - updated using the <application>CTM</application> - <literal>cvs-cur</literal> deltas. This allows users who track the - entire <literal>cvs-all</literal> tree to go from - <application>CVSup</application> to <application>CTM</application> - without having to rebuild their repository from scratch using a fresh - <application>CTM</application> base delta.</para> - - <note> - <para>This special feature only works for the <literal>cvs-all</literal> - distribution with <command>cvs</command> as the release tag. - CVSupping any other distribution and/or release will get you the - specified distribution, but it will not be suitable for - <application>CTM</application> updating.</para> - </note> - - <note> - <para>Because the current version of <application>CTM</application> does - not preserve the time stamps of files, the time stamps at this mirror - site are not the same as those at other mirror sites. Switching - between this site and other sites is not recommended. It will work - correctly, but will be somewhat inefficient.</para> - </note> - - <variablelist> - <varlistentry> - <term>Germany</term> - - <listitem> - <itemizedlist> - <listitem> - <para>ctm.FreeBSD.org (maintainer - <email>blank@fox.uni-trier.de</email>)</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - </variablelist> - </sect2> - </sect1> - - <sect1 id="mirrors-afs"> - <title>AFS Sites</title> - - <para>AFS servers for FreeBSD are running at the following sites;</para> - - <variablelist> - <varlistentry> - <term>Sweden</term> - - <listitem> - <para>The path to the files are: - <filename>/afs/stacken.kth.se/ftp/pub/FreeBSD/</filename></para> - - <programlisting> -stacken.kth.se # Stacken Computer Club, KTH, Sweden -130.237.234.43 #hot.stacken.kth.se -130.237.237.230 #fishburger.stacken.kth.se -130.237.234.3 #milko.stacken.kth.se</programlisting> - - <para>Maintainer <email>ftp@stacken.kth.se</email></para> - </listitem> - </varlistentry> - </variablelist> - </sect1> -</appendix> - -<!-- - Local Variables: - mode: sgml - sgml-declaration: "../appendix.decl" - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - sgml-parent-document: ("../book.sgml" "part" "appendix") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/newsgroups.ent b/en_US.ISO8859-1/books/handbook/newsgroups.ent deleted file mode 100644 index db6585344a..0000000000 --- a/en_US.ISO8859-1/books/handbook/newsgroups.ent +++ /dev/null @@ -1,10 +0,0 @@ -<!-- - Names of FreeBSD newsgroups - - $FreeBSD$ ---> - -<!ENTITY ng.misc "the - <ulink url='news:comp.unix.bsd.freebsd.misc'>comp.unix.bsd.freebsd.misc</ulink> - newsgroup"> - diff --git a/en_US.ISO8859-1/books/handbook/pgpkeys/chapter.sgml b/en_US.ISO8859-1/books/handbook/pgpkeys/chapter.sgml deleted file mode 100644 index 11969e84e1..0000000000 --- a/en_US.ISO8859-1/books/handbook/pgpkeys/chapter.sgml +++ /dev/null @@ -1,1076 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/pgpkeys/chapter.sgml,v 1.35 2000/06/15 23:05:32 dcs Exp $ ---> - -<appendix id="pgpkeys"> - <title>PGP keys</title> - - <para>In case you need to verify a signature or send encrypted email to one - of the officers or core team members a number of keys are provided here - for your convenience.</para> - - <sect1 id="pgpkeys-officers"> - <title>Officers</title> - - <sect2> - <title>FreeBSD Security Officer - <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 id="pgpkeys-core"> - <title>Core Team members</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 -tCNQb3VsLUhlbm5pbmcgS2FtcCA8cGhrQEZyZWVCU0Qub3JnPokAPwMFEDV/uZj8 -RhrUfjKrKxECNmkAoJkszkn0MRLSjLIQdFSQoAIvXsaoAKDaLAvAv9JBTIhiPHYw -a8YkNTtr6YkAPwMFEDQ+7sYIrLG2o9cqlBECGFIAn1n9YKcO0hJfgVT1sX/lAoS+ -a+0aAKCwrJjWaTvSjDbZtSZ2887P3MnFA4kAdQMFEDAghiMKfXRy8QybzQEBWsQC -/37UbJxWsNURURdw1NDcJf4eJko1ew1au41ytTb792O1HiXTr1nKxa/HXg0+2d59 -HGynOVQfoKtEw2BHakYlNQNk1mznxGxi/4F0cThX+hmJ8/V8wjtm5bQ0hGMeFQjB -4YkAlQMFEDjGXEvKbyuD/AwC1QEBMcwD+wWwOmzXE7wpIEZ1p5KsRiVBQ4F1VEo4 -LviQkE0jUx8/i0/Y+kRpb3sZc+yh84qYA9vrRe8IDqc1a66ZvGUPZOsfiICpJoH4 -ftPz8xMLgyfHZrSR+wICStXNAKok8Oq6a56+Vxjh7wpNDoObN5XfYyAr23yNoPh0 -7pP7dXNRfGKiiQCVAwUQNBDRpnW7bjh2o/exAQG7ggP+NcUV4mCzYx1MM05kz8Vt -8OEjirEBthSypLf5FrXrJ3xZ38CNX4gckTY2iYVaXxStSMIaKdeLDM+ArU58UmtL -06DXBAu8CXRfzgEDwxM/0FCvjDvoj9FuSyBRKtUIg7wwnCXJ2NI+hxYYF5eVWNtn -FfPK4mTsf5Mb7O4jkG4Fw0iJAJUDBRAzBivas1pi61mfMj0BAeIhA/9fG0FYVdoF -GBUsSFE2lLTth1T4uxkaUs5l6E30vhSckUdBA806kx7LaAXtj3loE7Dn/XFLm+VC -nCZEUKe1ayb+Cp3Mrqu6V+vWvkDL3gs7lMALq5w27f3pji+jVPIPVJOdELjroqW+ -a1C0C0UaBeU5FYsv1REvNxEV3WEPTJd31okAlQMFEDF+jX1rWmeNgbKneQEBCrID -/i/ri8/eXUXRJp2fqJqzvrWGTP9Ix1O4vMguah9IILijgpYyOJYkezZKijjVCVmL -X7EwfNXfYkqLAWUa08eov4QfJfJDgfe+Z/3/UoX7RcJoy2AjTBZQzOI9JMkrzFdt -FGYwMr/QXhOdVVpSGeZ/6Hkrs7pd2Z6MNNrRf81ZyJyYiQCVAwUQMXyV5/UVW/uO -VC1dAQFyfAP/SujU+lS2WQuat4O2wZOQ1rswUt6CthG8MOsc7A9kfXnZbaM9Sdxj -54CtAlqR4eJMOYk2kVqAtmCWETRuonJxr5TAJdf7q6kByVYcQEyDZvKJYwyrI9UQ -SelSgczWwiSB01aV9ACaKlEF9iHYvIKBa9HwJu3A9ggW9SYaAHcxHzuJAJUDBRAx -Sx5cH3+pCANY/L0BAY+TA/9YQPISXYaS+5r0I60wCJ+i3a9PC69Zak2ikgTHQi97 -LhpVtEsP3SAYInDw4YMS2oU9w1XxoiLLd9hUpcZlmO8Ip3vNF+E2ZCfR4sNzKarY -5fdo+sxzatGWRPgnHjbm6RHWCw6qJACDD3VpaFjx2XD8QrOTyiObnbHhWBdoEAIy -NokAlQMFEDE5Q6DvYbnpEdWO1QEBsvgD/0c6flBrSWr20oj8eRJ1zl8ZAP/rpV0I -EBvb3ZFsHsJL8QzTsx1typFFghrT7SDBDc52xY90JWAflEiGn9aIL5Q+RHVxjw30 -yDaRPAl9ll82o34GBaWBEw83bsI6Fg2XxDfc2X0KkEutlYAEXjiM95PQS+9PM//l -lDtPvkSxgpiJiQCVAwUQMOavJADy2QnruxtBAQE92wQAsKPq/U4G4ksslOXGaauS -oBk9XO3lB147cSpra1w9ZxTSeo+8dgzNlxnugWDnw1mxauFJBAMgHl74rrlD+Hp0 -Ltb9oOyRl3riPG0TOdfaS3T8w6vw52wOKzUrZ/0pB+2sDHzUqZXBbhOq3OXs1ZMN -e3jh8w62JsLBWry/YMWRMnI= -=A1Tu ------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.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.wollman;</title> - - <programlisting> -pub 1024D/0B92FAEA 2000-01-20 Garrett Wollman <wollman@FreeBSD.org> - Key fingerprint = 4627 19AF 4649 31BF DE2E 3C66 3ECF 741B 0B92 FAEA -sub 1024g/90D5EBC2 2000-01-20 - -[N.B.: no RSA; DSS/El Gamal only, please!] - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.0.1 (FreeBSD) -Comment: For info see http://www.gnupg.org - -mQGiBDiHU3wRBADX+GS3fClPc0K3s2RePf2YeV+w7X3cmnWb0FLhAekfIzjLSHl8 -PWxXXQRtFyjR4KpsiwpGusX/nIJmaEoAdyqROKvpqYZPa3CjI2ldq1t1mj8lUOLo -+ktQvgR/fZoveOl+HT1yIRZDsLrQWYE96lC8Xx2Iiip/16whzhE4rJfWvwCgyb+G -a2jW0JaqmVRmyEqwzudoeqEEAKNUV5lmGRcs/GxwAJ7JRcxMI5QtoUBTfDKYyJZi -t6pudVC9STIpMoEw9m4c5KRFixdiHno/dbkECvSzpTA1qAHiC2WxeTXAz91ySTfk -iGNVlc670A+eC7Qi3ZGYhWKgKAvm0hOlYxOrU83u9naHKA+l4dOIGCQoZ7ElcfdO -77T8BADQG/nzZcaoS0o9za11YcYMAWDiEHX2JyWF7+O+qJc7UmAGMZ4YHeYOBTkT -6ybzjn5JhQtSr9YQglweYFjFYdeOmQAYow1MJxJvh0e0eoXwzOgdwJ8fzbxpHeAQ -W9uuI754sm3U80ag7RvzgeWRX7HdETCtbFF8ZCWHSE7sj29ZB7QlR2FycmV0dCBX -b2xsbWFuIDx3b2xsbWFuQEZyZWVCU0Qub3JnPohWBBMRAgAWBQI4h1N9BAsKBAMD -FQMCAxYCAQIXgAAKCRA+z3QbC5L66jfWAJ9QRUBS9u2D9s861txzAAGDur0x/gCd -ELqxcKVno9Q/l0DFb6c2ZIlkTT2IRgQQEQIABgUCOIdUpAAKCRAj54bpvu2UbtDT -AJ9anhNRzF+bPhzGsoVJG1M0+aqsWgCfV6grZerQHY0jrzh7AcGCMNNDNYa5AQ0E -OIdTohAEAKNPeV1tg6TbNjARxpiHGiYe6ECG31aGpGQGy12sluYfDTjMw11HKh19 -tmT8O6co+dg+NJdUvabdpdd3M8teYwlZMDtbKS8zEFlf0DsY40zBYo6hlwQmF41q -B+A5r5t7itn9LX0CdQMFdAYMKBteVhoEKtJG4CZ85VDhUtb7c6i/AAQLA/9nU/WQ -pYAKb1RqXoYCWT5HWkBIY4lLaQ7JiS3RW9X0EF9hrEP7gTXGnpPgUSR1CTYvP73W -r9vrPsIDQR3/bI22bUeZUbIxznIVGiNTfyLQuvF/R+jTqD57DAhdcQS5mt0YQVrF -ClZNn+4IWIZ7XC2cZP3UHgUMQ3G4hD8hutLGA4hGBBgRAgAGBQI4h1OiAAoJED7P -dBsLkvrqakMAoLVgP/gp43JsvfV/0H2Krs4f+SyTAJ94S8kg1wwGTRQR2OmA7znC -gHpAog== -=H5by ------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: PGPfreeware 5.0i for non-commercial use - -mQCNAzGCFeAAAAEEAKmRBU2Nvc7nZy1Ouid61HunA/5hF4O91cXm71/KPaT7dskz -q5sFXvPJPpawwvqHPHfEbAK42ZaywyFp59L1GaYj87Pda+PlAYRJyY2DJl5/7JPe -ziq+7B8MdvbX6D526sdmcR+jPXPbHznASjkx9DPmK+7TgFujyXW7bjh2o/exAAUR -tCZKb2VyZyBXdW5zY2ggPGpAaW50ZXJmYWNlLWJ1c2luZXNzLmRlPokAlQMFEDHi -oSdlYKmsNPn51QEByz8D/10uMrwP7MdaXnptd1XNFhpaAPYTVAOcaKlYOGI/LLR9 -PiU3FbqXO+7INhaxFjBxa0Tw/p4au5Lq1+Mx81edHniJZNS8tz3I3goijIC3+jn2 -gnVAWnK5UZUTUVUn/JLVk/oSaIJNIMMDaw4J9xPVVkb+Fh1A+XqtPsVaYESrNp0+ -iQCVAwUQMwXkzcdm8Q+/vPRJAQEA4QQAgNNX1HFgXrMetDb+w6yEGQDkJCDAY9b6 -mA2HNeKLQAhsoZl4HwA1+iuQaCgo3lyFC+1Sf097OUTs74z5X1vCedqVoFw9CxI3 -xuctt3pJCbbN68flOlnq0WdYouWWGlFwLlh5PEy//VtwX9lqgsizlhzit+fX6BT4 -BgKi5baDhrWJAJUDBRAyCKveD9eCJxX4hUkBAebMA/9mRPy6K6i7TX2RjUKSl2p5 -oYrXPk12Zsw4ijuktslxzQhOCyMSCGK2UEC4UM9MXp1H1JZQxN/DcfnM7VaUt+Ve -0wZ6DC9gBSHJ1hKVxHe5XTj26mIr4rcXNy2XEDMK9QsnBxIAZnBVTjSOLdhqqSMp -3ULLOpBlRL2RYrqi27IXr4kAlQMFEDGpbnd1u244dqP3sQEBJnQD/RVSAzgf4uor -v3fpbosI0LE3LUufAYGBSJNJnskeKyudZkNkI5zGGDwVneH/cSkKT4ORooeqcTBx -KeMaMuXPVl30QahgNwWjfuTvl5OZ8orsQGGWIn5FhqYXsKkjEGxIOBOfvvlVQ0Ub -cR0N2+5F6Mb5GqrXZpIesn7jFJpkQKPUiQCVAwUQNRkF14HR8QVbfEftAQHb6wQA -uXzEE+LHIk1kSINIgXX0+UcFpPc1rctiBkzZZhgzFvGC/kYrsI/GVYE4erL4sVXA -NJqZxaMC/AAaGfaduALRFXNidKinMJBrZg3NCtq7cqrc/3aDmZJ2IaHvxoS+XC/i -RVoeTk+jb6wcliqMkf41UlHsijyALtVK2Dd78T8GhJq0LUpvZXJnIFd1bnNjaCA8 -am9lcmdfd3Vuc2NoQHVyaWFoLmhlZXAuc2F4LmRlPokAlQMFEDQUWQGzWmLrWZ8y -PQEB8MID+gJ+SOuG9HBEKlIvySUnVgOhQl2bD6/iclynDc6lhdvAo48sKWwTsrco -JCxwd6Xtq5/3Wet6QDBute/0KWnRN6Bh4BA2PDm9n18vpRnmXd8fwTYYYDv6SqA1 -azUrECcbkZ1S8n2+LKtabx2pZEaj6WgNaVnXYvY6AAN+nuNVlMjWiQCVAwUQNA+s -uh9/qQgDWPy9AQHZdAQAr/5KxA8JP9fhEH88FvFSvbwakYkyfcBp8BoDemVjDedv -g41uoTD20m2h8CfhR4atqJbDycdhHYMDOgCNHo7O5fdO1RX7nsEjOtM8dw2RvqHx -8+4dT50XNH4s2g9oYmwV6i/rD5SDqpL3BrkUYMCBpGgsdLIHFxFWgJs4RpLlLkSJ -AJUDBRAzkGS1ZWCprDT5+dUBAYo/A/46JaGjdmbYYqmUSOJnnPHfLy6nNv6vVC61 -vTyOvYTCNrTiEuDR8Ku3oB3cOhWrF7g86CEimYczg7i1xb3ZMdCKXvQIvN8LG19R -zp4POg/eSsPX8bCmbaEauZgD1v97P36va8oFudSE+YKCXHml/UjMdT1HZfJDP1e7 -sUjZto5JmokAlQMFEDIIhZl1u244dqP3sQEBUzMD/jVUimHfqX7I71YYqQQH41ht -g7PZb+TKLviRcu8t1NdxFgVoJJk5FKxAo8Y0ys9lSgugArETbkCgKCXm2jCqv+wJ -y7QDQwy8l11S+VDZP7KVKkaZZyGqhcI3sV0bLGtnnPPHMsi+1yKjqRod3vpfHImm -W0IBK6l0PnecS3Ge7yxGiQCVAwUQNRkFNoHR8QVbfEftAQH59wP6Ar3emiJ3gseU -ayKAjx2SH9lDVMsvIJW8cZoeEsDfoHlTEbz448KLKuh5rKOBAU++WBFtXQoIbroi -4y+zVpJ7z2xJ6sHU/xo6M72QCvieahT4y3C6f1mPsZyjlMRpFoCpBddU+U8kbkqT -TBVjNF5DNyhj1keIR35DJNpevpCCE6q0MUpvZXJnIFd1bnNjaCA8am9lcmdfd3Vu -c2NoQGludGVyZmFjZS1idXNpbmVzcy5kZT6JAJUDBRAyCIX0dbtuOHaj97EBAVqC -A/0YQZvqrVvobtn6gI/XfAlYBCiboK8WSKV7gihbzvmwoELaILfRF/kyYeLPFFHX -BZMhCLvAk9gt0a69YK73JH8b604M0s77WMr9dO9l9xpFWPkpVDATAK3ZdajVtt6E -+0OefGo57Gi9OuVyeZux2nIE04pIqH2BvItbO067BHquj4kAlQMFEDWRxZdlYKms -NPn51QEBzt4D/RALkWpNJNTtlyKE0NBeSyRoci9OCfcYI42R+39HoJnLPAgT+aFc -EqinmEcsBvwECjJVrrwBN3f6/rESGp+JaYNiw5bz17lmouh27FEvWETy8QfcQl1+ -Ck7HJqkMs1rpcLwhWvMmWlx49gBPJAJwcVSmhsuSVQKp5iSFDn5pbZCTiQCVAwUQ -NRkFU4HR8QVbfEftAQH2vQP+PzI1rHZq4Q6/E9RS3zW/HDuzByASi3A9iM5MARqi -ACLug+plFatfHfEaWII8nKytqY+kC3gaDESZ8+PFvGRZvMCRBrD5nv9YUC7LJIAX -NFGklsyIEvDAtlO/Q94LjgCct3ta6ypA45ZxaMkRdCkZer1EPjSloLrUBRpDhMeA -otu0IkpvZXJnIFd1bnNjaCA8akB1cmlhaC5oZWVwLnNheC5kZT6JAJUDBRAxpL3U -PiAdBSUb0JkBAZg7BACE+mKhsrd39/P6NattCCOSg76Pf2CVgZdvbb7qK4SmsVGz -+58pi2OWM1M0rcHgNZKTIg9rBy47gui2KOnqOR7ZuyMVJJqyEZZywmWmfCy/sR4U -i1PehZNNNBAi09u03ItbozrEH6Msa1oC8mp86XOA70Et8e4DYtj5a9tVbjjtJYkA -lQMFEDGpZGx1u244dqP3sQEBcMED/j2vNkHlqSRNJu3+A13fw4mAL4fw3l1rbm9X -10PcqgC9d9Z/Ds7EizG9D8Bv6sma6SutbE92wL7VZTX7WsZrg+8mn9UlEN6zZrAa -uf6I7v9xChIhXOILbsmlxu+Mu8tVwEiLLXJP9G8n7ztreM9Ee3dUUZykWHgrKTHF -I2LIbKCXiQCVAwUQMYJQHfUVW/uOVC1dAQHkqAP+Igll7mUWQ+vYH8KvsEoxUGi3 -X8lK7Tk2weAlne4rXnDiZW009lwWL90puf6pEzosoMV78YXQdkP9kPUUm3zJCPMX -bDfjQH4XYYYQ7CcKWpkO0QCqcgHMz8QJBCof7oGLyCmQVmsWCDl443uKSqa6wOc6 -VhK0z8IF+ClJtHyQOYWJAD8DBRA0Pun7CKyxtqPXKpQRAlWJAKC+2KEpwmX/f5rO -+QXv4ldCIKQ+JgCgqcjGveuHvlv8ehkHrucnz8VrHjqJAJUDBRA1kcVlZWCprDT5 -+dUBAeX7A/0aZkBJdd0EKhje2rhXdoE99fr5jeg9utB0pACqgMb1hBcnVRi3SVZ4 -ZBQIfqY26LeZP+WLUqGfTx6BSsBys13WlBT9PZuicuWkDHUtGX9zUl4qMsxGQkGj -NXdmn0/eCnheZP5ROvYXD15A0kjd626PxxftbyQKTuhKTWCT2jSnsYkAlQMFEDGF -mgWB0fEFW3xH7QEBhr8D/2kclzpVUU2wvwMT+POA8M9iDKNcZAUBQI8/j+QVZ1VB -3laHKKkpdvGrTUl/PVLvt6tSHIdDQrAOuPq9M4DMLIqS1jZr16+BhZ+7ffZJ2JpO -bFVOK5wmzVSixigPB1ytIkKqhJ9JQpMZOUKJ24n2E6Mr79fLJK1a4EMWuHZ5uXNk -=grTK ------END PGP PUBLIC KEY BLOCK-----</programlisting> - </sect2> - </sect1> - - <sect1 id="pgpkeys-developers"> - <title>Developers</title> - - <sect2> - <title>&a.jmg;</title> - - <programlisting> -Type bits/keyID Date User ID -pub 1024/3F9951F5 1997/02/11 John-Mark Gurney <gurney_j@efn.org> - Key fingerprint = B7 EC EF F8 AE ED A7 31 96 7A 22 B3 D8 56 36 F4 - John-Mark Gurney <johnmark@gladstone.uoregon.edu> - John-Mark Gurney <jmg@cs.uoregon.edu> - John-Mark Gurney <gurney_j@resnet.uoregon.edu> - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.2 - -mQCNAzL/8IwAAAEEANuX7fcIa0S5fVATYQCGwgBJo9DxRr0m/QjrP4dJh/JEIjmv -h37FMs9qsMPtyAZWlRSnbVFyQiz5ptFuL1irClW2UHzlLvd5s+pKMfIkJWDTnrvp -0jFebYQt0chZeLcKT9s5sSo9ua+fUumOfaWyubUZPIqmDYqy98Em7wI/mVH1AAUR -tCNKb2huLU1hcmsgR3VybmV5IDxndXJuZXlfakBlZm4ub3JnPokAlQMFEDMBDfTB -Ju8CP5lR9QEBmnsEALAS5dZyQXxsDAROz+yHizsbgV1Ok9vFwE5en7QnOGcSkQX9 -pE7MzzlbpP63toF9zWLF75dbXE5X0yYLoB0pvNi1NXhXqA0YbDeAi1Ed6uBXbomW -MDdm0s+O0Y1NfuS0uKiFiJUDOjdBrgEbnmPZM/77dhr5UbmAtQUHFftaQfY6tDFK -b2huLU1hcmsgR3VybmV5IDxqb2hubWFya0BnbGFkc3RvbmUudW9yZWdvbi5lZHU+ -iQCVAwUQMwF753W7bjh2o/exAQGjjwP+MKiFH9EfOGS7yr5NQ4+vWXuHe1N6fi9N -jJsFfzT/RCM/wo/dNG/xhTgdCoCWRt0gKkv3SLEPYGDPDtC3Nf7HV/66wOiYYnxD -3cmjgpLn5u/Ju0oS5xxNb5Ly8EZnfz967lIHjp/qhbZ9o7kO7Nkb7bUgozNqBaRy -9Yo81fVAtrOJAJUDBRAzARCXwSbvAj+ZUfUBAeUyBACKoIXfYBpsKqmmnTg944Tw -5t8lAFZ8qJz42Fjw+hswC6c+7b87imwaH3AjPnFmsA6f1ES7xDHG8RQleDtKsyik -gHc9Yos/neVqwfrr4zSV1PdNPPpG5uNT/jI1k1M3pH8kwYdKiwaIHQb5+sGUQsO1 -ZoxCdzT7HJq4jJtBGVIRULQlSm9obi1NYXJrIEd1cm5leSA8am1nQGNzLnVvcmVn -b24uZWR1PokAlQMFEDMBEHfBJu8CP5lR9QEBak8D/2V+1pP6zA1dvhRLcO2pGldn -Q/dcVAAtZIZ7AUUap1pKXZF/Tt4gWKMtAHj01xUbwU1fmI6DF1p4AVjDqOxJDnoZ -RD9gv0RiZXdUesXL2UBNHc/7f+amAJgmXNrP/m70ejgzPluniR5hQm76fKYjkxV1 -opRhhchTjhrFndoQ9nvQtC5Kb2huLU1hcmsgR3VybmV5IDxndXJuZXlfakByZXNu -ZXQudW9yZWdvbi5lZHU+iQCVAwUQMwEQWsEm7wI/mVH1AQHxMgP8D7VM+qUo0qGM -uFUKqxoQcDPVKt2W1X6wWTHdj9cxo3oW1tlLEZ24Y2v5v1pzonvseaTjsse134dP -a9qjcwXjs/zxXzHoQs3B9BZB2qXaR4T3YeuCjq2qIXGwsrrY5fkoch4OLg0/FOui -dmNbFjVQkIma2rIRPa8GhXZJtGl+UEk= -=bUtb ------END PGP PUBLIC KEY BLOCK-----</programlisting> - </sect2> - - <sect2> - <title>&a.joe;</title> - - <programlisting> -Type Bits/KeyID Date User ID -pub 768/7EBDECB1 1996/12/19 Josef L. Karthauser <joe@pavilion.net> - joe@tao.org.uk - joe@uk.freebsd.org - joe@FreeBSD.org - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.3ia - -mQBtAzK5TJQAAAEDAKlRtbnhuBNWwq+hkYyubUzCYZu60ZFtwdkCgyBurSzTmfMG -1ylVOdwzpgFL8JHRAGhzugRvZqRiCrCl+CvYaeW2+ee3Yw+brl6YEqLMxy0ap2kD -NbpZ7LIO7AMffr3ssQAFEbQmSm9zZWYgTC4gS2FydGhhdXNlciA8am9lQHBhdmls -aW9uLm5ldD6JAJUDBRA3DNxYDu2852ZqdCEBAXrwBACTRn6uz+uFHxi9nj8qdg14 -m3SvBJ58i82IdyhuD5m04/Rgc3Bwk1VDY2eKHuILcgDInd94EePpHTxMvjblfImn -No9yqKYQw+V2zbsa8idTVDb5eNWGdRmVndjY95ZVKuhhIlwqLJELvKKbYZjjSabl -ijn+lvEEl+gO4avcQZnOjIkAlQMFEDRSgYdv0qcS0gZ4vQEBq/cD+gJsogBSFwYl -otle1JGgq1lkIq46uJWS8h61QL9+wnKQ3l19VElXK3/s/HUqBZagKyrF7QSs1dhg -T/RKSr/kdG0dPhLhqESgzii9CS6MgHM8CnmP7oDP78i1yAkVL9bJ/a22Il+YZNlt -r+XOn9EivaFojjHFQy5a+7e/HEXbgtwMiQD2AwUQMxRrf6ZKZnTBjNYdAQENIgcH -RcYYGiOYT0FAqSvAlHPunpPhO+9TBKD5FP307YtUTHdI19Y+LgFT599ond3wfArR -K3ue6D1G6//kbemfLZVxOJ+PRpJ0jIqZQ//7mKAI3VGu4vGO0EGQLkzIfwiVaCwa -8jZh5406CaqE7DkXVypvcVkL3hdqD8o16qht8Y23rjrEUgRYIIWUGftCAHWMZEq3 -NqU/nqzgIv72PMEC3jBjdPld84GOiX9e3XjOSur6uLMRj87e9qce73sYUsGb2/cf -ypx8Hy/FN/FVUKbW4/ddHOeW75vBGgtIwY0R+eDW1wWXiQB1AwUQMrlMlA7sAx9+ -veyxAQFftQL/T64Xc63YXllDIVGw0ZQtM0cdolYzP5OAu2Pvb0iWiJia6SkxePJo -FyNuWEO0obBpeP/QuapnceYUBNiheT4gRccEO1+VjFRuAiZb7+Huwh4FXrRbhJte -3FmOE07jacQ9tA5qb2VAdGFvLm9yZy51a4kAdQMFEDgPy5gO7AMffr3ssQEBYGsC -/iIslOxLXMgz9BSw1ndflqYOImPtn4OQJAG+eyZInVKfZDhyEHtO6ID7zRNx+0wh -fAgEU760e8V5rEFea9U0/qY7QneanDRGI+rP81V/fnP3wdZBCGXDNMCM6ofcuTP6 -MbQSam9lQHVrLmZyZWVic2Qub3JniQB1AwUQOA/Lgg7sAx9+veyxAQHeXgL8DJQ1 -xeeFLQOrg4vI5nfQOjPJqaZ4xpPv1k5wIjPRElGj7QACZVX5L/bEzhK+7fggSXxB -b4cmEhiDOIFOBR6HWL/RnMimoGtC53OHKRrA43/eqB/saCbTfN4+KAypw1WatA9q -b2VARnJlZUJTRC5vcmeJAHUDBRA4D8tRDuwDH3697LEBAZU6Av0e8n+hesovDEkn -ox3JKhC1L33jXu0nOQZ/2Yz6jY1icghgy/L2KO57+T2YBV6DGpk4IlY9jZJRRKti -KCHSMahng7whIHNSugWqzLNanK+YPfXC2CsUI02w1srjFcDurBg= -=O/Rl ------END PGP PUBLIC KEY BLOCK-----</programlisting> - </sect2> - - <sect2> - <title>&a.obrien;</title> - - <programlisting> -Type Bits KeyID Created Expires Algorithm Use -sec+ 1024 0x34F9F9D5 1995-04-23 ---------- RSA Sign & Encrypt -f16 Fingerprint16 = B7 4D 3E E9 11 39 5F A3 90 76 5D 69 58 D9 98 7A - David E. O'Brien <obrien@NUXI.com> - David E. O'Brien <obrien@FreeBSD.org> - David E. O'Brien <obrien@cs.ucdavis.edu> - David E. O'Brien <dobrien@seas.gwu.edu> - David E. O'Brien <obrien@elsewhere.roanoke.va.us> - David E. O'Brien <whois Do38> - -sec+ 1024 0x7F9A9BA2 1998-06-10 ---------- DSS Sign & Encrypt -f20 Fingerprint20 = 02FD 495F D03C 9AF2 5DB7 F496 6FC8 DABD 7F9A 9BA2 -sub 3072 0xBA32C20D 1998-06-10 ---------- Diffie-Hellman -f20 Fingerprint20 = 0700 6058 CE6C 1C51 D0A3 45E6 26E1 A405 BA32 C20D - "David E. O'Brien" <obrien@NUXI.com> - "David E. O'Brien" <obrien@FreeBSD.org> - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: PGPfreeware 5.0i for non-commercial use - -mQGiBDV+M04RBADXKeFCmXsTfVxqwiVHv7MWoP9uzUuILtt7QIDGLyEWdhDkqUXq -Ux9yrH6B1y4q38XI7Z2OFh6KEXDDZyOR9ntsA0RF9+h+e92RfN6Co6F3SOyTuBuA -Q+jV+Hl0mbh7Sqjl5SjTMjT3AvHnKM21Zac0zmjhhXFprSSILcMp1HBchwCg/7hP -kuoubQUxdH5SjVKrsystWf0D+wWQ5PxKzz4lLDG2TZAgCD5C+a/IaXnGYvXjOfc2 -ktLChwVIxf7Z9cEARDOWEHPfwkjn0OEhtX7teUiOx34h3/wIVPN5IfqhHVCcEUQT -R+ZwYAYACqfihfyYdzttVDGvHMmUwUgu2zr19N2olREqPA25hls7w7F6UlN4d+PF -zljWA/wMHDG25k9UnDibKbCXQOhDARusL6YoFN3JneA4y/TM3rgoUQpBkk99218v -LlaSz2TXH7ne+nxldX8IigN/SG9u6K6eWJ/LKSUuLyeo1r4oxGafCzteQSaBBOuQ -hXbpX2xEK3wQ64NdnXlBZfBy5JEa+3SWpTO2iQC7JNtI0nLjm7QkIkRhdmlkIEUu -IE8nQnJpZW4iIDxvYnJpZW5ATlVYSS5jb20+iQBLBBARAgALBQI1fjNOBAsDAQIA -CgkQb8javX+am6LP8gCfXYmb3/0O/9viAhq4mXOMRM7GEygAoJCRiRmhfz84yCC7 -GSY/Li2Bi63TiQCVAwUQNX4zzWVgqaw0+fnVAQF21wP+PK9MlfIcaOAuQVMgQhsD -Wqlj/DdxtsxT1GOnlHp3JGxdThyxdBDrxmiU22a6216s01fN5Ac25USeKRCcSVyG -0+G/Xd3VfWDCEQCLNBwblAGKW9BEZfJhS1xOuTEYxgbmuvrlLTdvWm+MwPetv8ka -yhD1LM4rVovMxenaPYUub2S0JyJEYXZpZCBFLiBPJ0JyaWVuIiA8b2JyaWVuQEZy -ZWVCU0Qub3JnPokASwQQEQIACwUCNmOeXQQLAwECAAoJEG/I2r1/mpuiv3oAoOBm -ZIDRolksEb0iNP46X96pRsU8AJ9nTPnCjxfj9oP0wQBslElAS8awfIkAlQMFEDZj -ny5lYKmsNPn51QEBkUcEALYsZckj5fs7uUzjSgyzF/2RrHJ5gGrpNBwikiy1+wdZ -6bz8CQ6kcYC3Dap3iHSc9KWTn6sK5ZvYXcYD9k7is8V8zuitUrrSGWpY96qmNsCT -vPSwfwIcyhYSIJYjdqmv4EnKo2mwkY3zqOV9DT1ABFLSI9Eyy8ILeuhrm9jWEXs0 -tCoiRGF2aWQgRS4gTydCcmllbiIgPG9icmllbkBjcy51Y2RhdmlzLmVkdT6JAEsE -EBECAAsFAjZjnroECwMBAgAKCRBvyNq9f5qbopXDAJ9VboPXKbLDYCS2jYZg+X7Z -or1ZOQCfV+u96L4zxj10Z5bHhpJXaXsq1Aq5Aw0ENX4zUBAMAMwdd1ckOErixPDo -jhNnl06SE2H22+slDhf99pj3yHx5sHIdOHX79sFzxIMRJitDYMPj6NYK/aEoJguu -qa6zZQ+iAFMBoHzWq6MSHvoPKs4fdIRPyvMX86RA6dfSd7ZCLQI2wSbLaF6dfJgJ -Co1+Le3kXXn11JJPmxiO/CqnS3wy9kJXtwh/CBdyorrWqULzBej5UxE5T7bxbrlL -OCDaAadWoxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX1KHTUPj1WV/cdlJPPT2N -286Z4VeSWc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq01uejaClcjrUGvC/ -RgBYK+X0iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O9vPJI8BD8KVbGI2O -u1WMuF040zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18hKcKctaGxAMZyAcpesqV -DNmWn6vQClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV6UwybwACAgwAm1JzkDnM -N7PqTh/hWMfxpsl1WzwQ0LecB/15UEKvqUZeRFcTCPh/6lVvJL64K2O4mVwTUnX4 -9EYDjccK/DQQEpEJ3XfOt/vMGFQXXO8frj4ulxeSQAaodmrJsfBexeLIatFidkHy -5pN+5dpnQZhcoRrjpbK+mdu9gW4oImUKInFV7mIpVFK2sYQlkP52WZuPwXtkWjoa -l+43oD7vGZpIdT6iqCI/hwF64bP6NtbVRaI3mbXOn+S2qdLf5YRROBavVa7yvBrZ -7lOp71aGb9TjpOpxPWoISvKj9uzhFtuzh+k8ABv0hPNyF3iKaBWaeNEVpYlR3hOu -ojcLG+6+X/GTbFbcFxeybbajkcksIs1oNSpRaNqHVpgBsbN59w7Tmva62bLz2R5U -XhbmRuqvQujAwT2+6PcD1Ra/QG1QNyoM/leLhLjOjQGZ+SvlxDhDsgX+W3Y1QXX3 -e2Ual4c1K6itgvR02hKOR+IOl+IFB6dsd47cjyh0xuhKpjsEsE36aFk1iQA/AwUY -NX4zUG/I2r1/mpuiEQIDyQCeOvK/V0VRBNZNAYknb2GfVTKVJWYAoMXeTJABkMDL -P7bUxAmeYnY7l0UmmQCNAy+ZtI0AAAEEAMPph+5fYQ4pUXUCgsXGqWi1LuxtqSP3 -WC/20zlqOUq35T2e/3dEqFXB1Rbzz7rhI8hraDyGybexiO9OcQMbxSKBha+BnMyq -hoTM7bmzSZCRSWtIQ3ugC5Q0O6RUkrHL3k88h/Q/9IrqCXIesMaeeWOIit7tJ9dY -gWVgqaw0+fnVAAURtChEYXZpZCBFLiBPJ0JyaWVuIDxvYnJpZW5AY3MudWNkYXZp -cy5lZHU+iQCVAwUQNHYnL6v/B7RG8yEtAQE2QwP/blDA0lFO0AH1/Dhvlc1ylPEG -mQw0FDldz40N4ni5e3gRPdTy03AWrCDQMX7xLJ5Zd9HOA+IiPkDkj8OQkA9WUrPh -HhAUMy2yh2PSnt2mIJ8dv4M5eH4H6IJPjMu6z08UvkKdXlpd9Ku2aRgyshV9dHFV -ikMCMLTdk/i3RIApY0iJAJUDBRAykexbym8rg/wMAtUBAQSRA/9zHA9hUeLO2nVm -d37pndP40JYiklLyw9mapz4xHQ8bsEVdERXQ6MdVNPa46j1RM1VdZMI7fBlK9aX+ -c7GW6swzEFC1eWtVnzeMMh46MEQLkAoYVOFRWkXH9hzGdEVcaJn9sSuoQ+KiFu72 -LVNg7KJI6v48CuWKep0H47nhuKPwbokAlQMFEDH/SvU/2TrIQc4JiQEBl88D/1d/ -WSV3W6RwZQUnbSp1GELg5knB87imzxf3t328/vzRRFUgAeB9qcW9fYRwdhZDs4ff -UASm2fXSbXocnRdGDJMKaFZooJpYK95vZFc0irLhI92w2RjLH1tF/W0TCopWMLN4 -KuqYX3PLMzQEcj08w3BcwWXwD0UuVD91d4WeljRZiQCVAwUQMZSmW2Vgqaw0+fnV -AQEkAwP8Dre9osgnIJLvVQlPLbuSExdrG8+m9mae8vaZVuFJFgo1x372oaZok0Vx -ZHOkulspC6Mo0B8cPCI7BkfyfthHHZwh83Fr+MNfwjiG/JQEobvaTok+aU3cwQjz -anQkBQZX/f0tYxTx7/tTWxMeR35CW7sIYgAsutBhKSPGC4VAe82JAJUDBRAx9B35 -V0EEo6SepNkBAT6YBACwTyfKQ019/Qgg04I0gEtJCiV2xa1ms7xpOVQj0TF/rzfN -Z45BzbOKOtolsSGP72ddjqpgjsZ/7g3Z4VG83c+QDJVwEBpUe1D9DX8cEKMTBjZO -JTTmGS0FIRrszddnLLf5gqNCWPYlImq8DR8Mjsy/vGsotkSLfKs7sdnzE7o0k7Qy -RGF2aWQgRS4gTydCcmllbiA8ZGVmdW5jdCAtIG9icmllbkBTZWEuTGVnZW50LmNv -bT6JAJUDBRAzZsMkZWCprDT5+dUBAcE/BACFUS0dN3dp6+sYxhTav9QfqOpWb/ay -hwcUKoxuo/4c1IUDZ8sCkANIRLnFUjC8irF0oND67KNU2vZWRaqwJ6ghQIkrfRHf -wUHRWAcoE1AFypHgOnE/KXuwmqkqHFmE4xpn0Ozpdcwc+KOSUFjToBgpAIwcZfIG -3e8o1e0dj4PJD7QnRGF2aWQgRS4gTydCcmllbiA8ZG9icmllbkBzZWFzLmd3dS5l -ZHU+iQCVAwUQMPa62j/ZOshBzgmJAQGY5gP/ZXM8VadFIywFzN43xK0L9nc6SwwI -k0FaddKYvmvJgMz1Qp5gn3DcuH0CWyJwH3uRQvIMQXvQ57Iy3x4eb5WcwxwDaW6u -TzC1uQtooAaAINCJuEaXrw4Q+uuGYGIAeh1x4TwUgdxmmq56cfkeiaXwwaJUoOga -IiDd6vpM37ZU2gyJAHUDBRAv5F+Q0/I/Qidq6hEBAThXAwCnHV6THDI8Prkg8DXN -KYzhGJH56WlujCpzqNKm8AC5rkp/5dtfiXsqadZK/VXlip/bXFB7nAR8k87MMXrt -tYyPylFCEc7kLLqYJ6KeS8jTa6Q48W0LzbogSF/owFUL8bGJAJUDBRAvpRUNx4uq -hJJkHpkBAWiSA/0b3F9ZwqMLFsSv1MAQOwoiw2QpAoQWV+oa4CNJVY4GoQjIbRZv -WlkRAocjfv1oQr2dU1KxDmZCT8TolG9gQ232rm4n2anr7A9RVi3zdgvu6/VgklLL -vzy12vV6y62CIB4s2Y0yY6BHDe/PyIpgmjOZLINIr8fAdLvNnZD0rmGkMIkAlQMF -EC+ga/DKbyuD/AwC1QEBMWMD/2HyNJHmnL3A/LpaSOxhBuaXwHZ9WOwvOhBswj5v -kgVh4ORFgtOdIskrO4rzMefVoV5ciEPQJFjk8L2MwC7zgjn2IT3TH3m4s8AfTStI -lqbaASo+i9FhyKcAOW6K85NcYCfmo31sqWZ2wU0swgWz+uiGcgVpvvAbf636L7xh -hjZgiQCVAwUQL5rlIWVgqaw0+fnVAQH+0QQAspRF9vtjuZ60MfHmhXkvJtbJXxxM -kog1SWVfwcOfPrNlDtsxiVDSqypGoQgMykyTW2iNP78cji17bW5bRP8UJ6Z2buV5 -kzqDfw17fnwvyNj/fiLPRsgV5mMPMug4pbkLzC0b83zy+iITSCtVHd6IUSa3BZPm -VFpX4OYphDiRfEC0MURhdmlkIEUuIE8nQnJpZW4gPG9icmllbkBlbHNld2hlcmUu -cm9hbm9rZS52YS51cz6JAJUDBRAyZskiZWCprDT5+dUBAQ1RA/4ml0nJM5iZkpYu -BJd/kUMLCsv3k+ApsMxB/ZBZWCfqmGBN7SBu6FTIgZCjC4/eUJPcLdMTF6NTbA+D -7BQziV38lHCfo5d48Bq2hq6Fb7ti2/9FIgvalz5jSnmKKUAq7MHceRFJAJi1wOJY -Hz0tYBHhD0EFSmzHNgwV4VA7m6m3c7QxRGF2aWQgRS4gTydCcmllbiA8ZGVmdW5j -dCAtIG9icmllbkBtZWRpYS5zcmEuY29tPokAlQMFEDNmwwtlYKmsNPn51QEBphkE -AK70I7FWzJfGMmtej7gN1rMliBxsfxxmy1DZVSVP0T7xkniIvgfmoiq+2Sn14iJl -2Lb+i+/3ADS5XQxl09LciSq6YqvPhQZvAuRj5UxMO0nC4zO1+Jr6pxXH8cu5kx+5 -MAH9/K4ktbmL2RvtffJRJuv/0nyn7h1rRHVgyP+Yq6x6tB1EYXZpZCBFLiBPJ0Jy -aWVuIDx3aG9pcyBEbzM4PokAlQMFEDHR+5BlYKmsNPn51QEBzMAD/R+ridxhjUWo -JKpAfecs7rSTPq+ajwiVMjtykv97nbVOpFM4roctdiudUEjj0P6g331MsZOVST6M -6sdztj+OzQhEtmQpw1SyXclUgaK2HsA9opIWQxU0XsGsiOochbPI+4ezXDvPeHgG -YVRNDuFzb1BiVbauATXaq/HB6xDsHagdiQCVAwUQNmQ33T/ZOshBzgmJAQGrCwP+ -NNVRnjjcNo41qkTsRW8bhqhbHrHBOlAfq+3kT/gM1xUAcYsQOKurgBGNMAr3wew8 -ApsUz7QgatFLTgxBNX/vS6/7hUuqNJhBAwpCG6i4lUFmJKONY9YND9tP6VhNMdBL -F76yUhxORPu4vcxPOqchN/Jgkevjf9ONnIYDeV/hySm0IkRhdmlkIEUuIE8nQnJp -ZW4gPG9icmllbkBOVVhJLmNvbT6JAJUDBRA0didEq/8HtEbzIS0BAf5oA/43tqeI -pgkuyKvCg28bX0YtQBSJo64ohFsSgQN2FANfpghH8dhfQt3/AXH3jOisHA7ESTNx -ZT8yxPl3T4ZhZ3VILlldeuAM4g1U/ZDS+IPJMu7Rzwt4XYy725X+fLVeWoPIuIgp -vX8+8hc7v6NkV2nwBMgbRGoblAzas2K79skXvIkAlQMFEDMWkrZD7IadE0shMQEB -PbAD/06rmYrMb/Q/arblxzZ9DOpwuksv9ColF/vheexCLPzBcqtqxQ2li6f02CWA -RH34P23gC5m2wUj7I5+5LvMOg1SFimSrlmvg8ZhgfKIvFjwbPG/g5rVq0/lcyNGQ -/lTPJAsREBwcnBhkr9oT/BeRS7uoWykN4NM01dnx12upXvX0iQCVAwUQMpEBMWVg -qaw0+fnVAQHeawP+M7BdBFis4zNe7H51+BA0i35yRoy1efj7bS7QBqPes+oxTpAi -hO+wxwbXjurdNjCruldi926NCls+MLcSsGczWCHhe+o+Gp/xppjN9QX7SvHBVtSH -nlUucwLpgdj4rOMcPjVIwLkH95JwaiDW2iO876rGuLbcn7oGT+3Ww1psEDGJAJUD -BRA2ZDeVP9k6yEHOCYkBAfVdBACNSHeqQjRkeX2pP1woHSW4AD77buMHma5bno2F -yChsCN7ZPdAlGixiscnwd41+nxuxiK2x/EyIuzs+9EYVtiikWeQCkR8ajGH0xXOK -H+W8Mun1RtN9S8HtJWxX5Pfz8LHOziT6Y+HwJmncAIIbY3N+Yhbvd9XAl2l6OQ8c -uSrrBIkAlQMFEDa+UHHKbyuD/AwC1QEBULYD/RgnK84Wf37e+5WGQbHgzUkrXXxz -fFpRTEV0owBSK5KA7+qlGVQVFZJ/Qz4dEwU0EAHj72uaxVuYAa+fCaOzD/G6VOv+ -4r9zout8dxPYfK1RLPMg/5hn0Jqf2Ce733ibK8NUYtjMY5z0F5wjEdiieSsLIsT9 -J4dB2ZODT2Hfe7brtCVEYXZpZCBFLiBPJ0JyaWVuIDxvYnJpZW5ARnJlZUJTRC5v -cmc+iQCVAwUQNHYnV6v/B7RG8yEtAQEkHgP7BSvndsqWiSDosBrnuD0R94ItlJKU -sCt/vu/AuhosrOx2hYtD3TxU2ZBlBtS3mS3c7Qe13H/NFM+SrNXa0pbRoDsPlcNY -nK/WV8G6/WDwLXrazm+iIwrPpbILKc/yfnWdGVdpIe3FaqUsEFDcgjMlcZ3gB6RA -YGdzHyjZdJh1DIuJAJUDBRAyxHKdZWCprDT5+dUBAenWA/93EfJZx5fuarjQ7AnQ -iPAjAi95v3Rlh13+N9vC34+C7RMi9pIj6B6PnWTNbVhg8RY8S6hB91J6GrN0KVLD -8yDpY6+U08Yc47fOfSWhPopNDfqgviGw7ONmc2QCWEKpcH4c1VD2jJIr7iewfVgJ -AiKdEB8kQhrutuQNDNNX1dCSCYkAlQMFEDWRdmGzWmLrWZ8yPQEBwswEAIRV9oAL -x9Ow9ZDtG/TLfae29TBSYEinPj/6n8d+hQDiX41rQ4nLGCLcdgBtINKfeQ6WUcBW -tWB9KqxdaV105QUhcEUpqMwK5U6DZBDipjuy4i6w7Ml0BLWtl/fANc33IPlnFAdD -oP6s3oHtoRLNW0ryDk4g5bfFnMzF/X9hZdTLiQCVAwUQNmQ4Kj/ZOshBzgmJAQHb -ZQP/Qs/Zefw9qxqrUihncZRIQbbnLsor4a0n2lH9cNTsSKU0H4a8rDlqYva+PFA1 -umFvVOon90dqoq8C6cykts4xRRKrPNnfiis+otwHgsKrzDIONyHWxnM9Ic/EjbOs -AHcBCBtLwxczFegWNgWbEy0FIVlzcmquRxO+7woxeW5MEHiJAJUDBRAzaSRDV0EE -o6SepNkBAfCOA/9e2DhVo6geSpWjdIXiv0yQC2Abv2TunPt2UiUxpgYkHzt+Ubk+ -k8cj2j723FZAfi+R7FobNSx7P4mCdrf2WEzaHdWLt6REr61rvqUc5ir/oHgUP1Ok -tgAUhy6TJUMklyzENkPRZG2hiQbfPQYVEh5m1Xmcp3Gel0eiinWui2Iv/okAlQMF -EDa+UHnKbyuD/AwC1QEB8CAD/2gYTjkPFcktVKkTX7w2O0Q3o7yLzbo9Y/USRsm+ -gVMMZjZ7QiiO1LGl6IIiKRtJIXi45PcHtYgSZlXKflqPHhEIrOhFwpV+C7uL5jnv -ATGhlLHxWuNLTlPAVD5FsdJdOHI7UdkJh19JpphV+usu/mihMFEfM/kOVJeTXed1 -0E4T -=Qwmg ------END PGP PUBLIC KEY BLOCK----- - </programlisting> - </sect2> - - <sect2> - <title>&a.cpiazza;</title> - - <programlisting> -Type Bits/KeyID Date User ID -pub 2048/FB722BE5 1996/04/07 Chris Piazza <cpiazza@jaxon.net> - Chris Piazza <cpiazza@home.net> - Chris Piazza <cpiazza@FreeBSD.org> - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.3ia - -mQENAzFnIKcAAAEIANA6TShD9jrbc0IODhZooybcqM04h94IOaX5HPcYo/5FHSFB -ezBuea19iBB/spGQUfpDAuGuqsz1DCCtL0OBz1cn4r74OMqrY4bQHKunCF8hUL8H -hRVn33B5KmljTHo8jFQAV/8QwvU6OUaLgM4CoZsMdrgfSaAxGNGu+RAK2xbm9KX7 -BykXX+MIYRbJHpxA+25o8OZTOEC0Sa3kg94F9lT+iL1zB5s3dTPrQPzOFZCD0PdK -ByEnGt+GoFNV1j7nO26vNa0fQZTSL+bNmnO54NPE0u8gtaqhGqRN+EHbo90eJ487 -XqDOI0b+XHK98y2T1lEGYmjuSLmA9xHAr/tyK+UABRG0IENocmlzIFBpYXp6YSA8 -Y3BpYXp6YUBqYXhvbi5uZXQ+iQEVAwUQOD+czfcRwK/7civlAQGdqggAnDjRfVCG -QLCCncva1yLPQY2OUBz4SW4NfR4RSPbmDTs+kDJpqAN4/w76LwOry3B6Hp4MnrZP -Iv0DDzePM+5hs535wDNcU6KQwbZEyv7e9Q+dpWW6vj8hEynZYp5Vcb0VbejU9NJf -rHuSIx0cIKfztxM11csTYqPHGZcHUPy3w7BtB03ATioWt0/Ybj3vtLj36JHI1csk -yzgeHJrQ17yvcoNGno2Aqrdbf+PJ7lO/Wiy+40r6jyJmt9o5neT1kOgVvXGVOp7R -dbOQXGAZay2nxRcQALrRD7VF/ugpJke2MykL0GebFYmSOVWRjVkmLlXl/AXLS/Vw -FJ0MTMDOOq7MCbQfQ2hyaXMgUGlhenphIDxjcGlhenphQGhvbWUubmV0PokBFQMF -EDg/nOT3EcCv+3Ir5QEBc8sIAKz1sxByTTiwj8+FKKb1lFYgxXYfqUzp1dl31eFy -fTXv6thrGvBzmBtMRLVOymvBBy7VP3cLN7rtyyS3jKR+UdDZcJBKM1bF5lBCWF7T -DmpvHR79Od79pgWTiU7bkHM7LBXOEhahO9Q6SAIaIhw85LfVRV/oh2ZB+PocvyLe -iJhKehe6W+ao0ZSUDm5tlG8wrgvjKEkEAOHh/pCCxFh2zQmUwyxFljy8/OooTE37 -tBaTTaVx98dQUtm59u8ITFpbmPX5mIlKu8H9R3oY1Ur6DPtHV7OTVewTBCjuatyw -FwbGcP7DLEAmmYhICwtYQOa62+ORNh2/v/GHTt+ZxHFGHuW0IkNocmlzIFBpYXp6 -YSA8Y3BpYXp6YUBGcmVlQlNELm9yZz6JARUDBRA3a0Oi9xHAr/tyK+UBARC7B/9+ -CaKMlF11O8TpP3FfWUpwMwdMynaebd3Xx3U01DleHqnqfy8PwhZY9jwcvgggaXSN -7FUUzRocsTTEbFj7hZHAYRfNH+KcXr3EmB5b82M10NHeqWIFF8vcpEwM6lvFIbne -Mve1eVw4S2Vl0yHQJvoVUqAvlFpN3dgFOg69qBPe6qWsaNDPN+dwUorWckV613EP -Gbxp9cs2j3awBnENjP16jkmEKuQPcAnl6l6XgP1X27PKICkPUTLO+CKfRq15Qs9p -evhyqAaUMNU/GYMqs5sceDQq1PUpmE1syGCZUQmvYfXfRmujHdZnDRDl+afN4UoH -hrCuygxmOl22RDH3aEXi -=JxBt ------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.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.dcs;</title> - - <programlisting> -Type Bits/KeyID Date User ID -pub 1024/488A2DD5 2000/06/07 Daniel C. Sobral <dcs@freebsd.org> - Key fingerprint = AF 90 A6 A2 B5 8D 6C 28 37 F3 F4 47 8B 31 47 DF - Daniel C. Sobral <dcs@newsguy.com> - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: 2.6.3ia - -mQCNAzk+tBAAAAEEAK5EJZPGnimL5cl9lFRpl3mYboOuN6K/ne/2oHt5CNlhBTuU -64VDPcBsM6ha+KJwSCdiO191AHnbpJSmIzNmL1VLHZunbZhJms2rf388pXO6nyu3 -GW7x2nmqg5qTTkVZAILcuqb8DF4ODF8FEwwCzDJ4ikhSxgXbsTN8YkBIii3VAAUR -tCJEYW5pZWwgQy4gU29icmFsIDxkY3NAZnJlZWJzZC5vcmc+iQCVAwUQOUVdXVUu -Hi5z0oilAQGl2gQAgWztCfCITJ7AF2e32Cq0FQkBSuh0jEIyEpZuGPJA9WbShDFL -gZW2xxLezaCHLx+tIwyT5I0oMDEY1GG5bk0Hv3X7YUZBWvdlmHMtBgW4BM/iIm9b -NHXhRecC9MEiwvUSCEXjpP6RDoP3GO3n3rraBDl/C1X89fDJMYB9gNwr+oCJAJUD -BRA5PrQQM3xiQEiKLdUBAfUBA/4vbs1IsfssAbgzoYxoxVojgaQuuipZW6bCCBgj -RSysFrNJiEi3Z9QsNKduFcZhSeYxhzwZxLb6bsoinqB60FJdZc9ivjho7ALaveYH -haZSniBayp3zQLllzfmbrbGmSD/Jvn1Qwj85ZMZ1T21VVLVhN1pqssaX7InoRYzu -oQKJVLQiRGFuaWVsIEMuIFNvYnJhbCA8ZGNzQG5ld3NndXkuY29tPokAlQMFEDk+ -vYUzfGJASIot1QEBPjAEAJMooQYQUef1jKBsYC9xh9WcvtQ45Hku+BKwU6tBlhLT -JMIn9n0guzXey4gsVcpgJcjmZEXAq+dbgL/ps63CXQAahomlszpdea9aumbak1aU -51eIEftheyZaqmM4stDvoC+pdQxWP5K3n2d/7itwFde19xQNuK9UD9iPjJnz2L47 -=oxOV ------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.OpenBSD.org> - 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 -tCFCcmlhbiBTb21lcnMgPGJyaWFuQGF3ZnVsaGFrLm9yZz6JAJUDBRA4qXaPfU3G -z8mTvFkBASJ1A/4gAN3XvKJchXeH+mt/acNiA7+jxtAjmMfSjJiaIldYdaA9ESYi -XDamPbwQzuaMOslA3uhH+W0tNN8AbcaQ7wqWeKN1WZ7HFPzLUuaQTJhoiNTdWmaK -ZkhxiDNGA5ycJBXI5FwUb22QaB8Sj7u7vEXBpMo++zEcN+s6haSbAB8w6IkAlQMF -EDgdNQU/ZTB66ZtiFQEBBL0D/3PZ1au27HPVMN/69P3mstJLzO/a95w6koavXQph -3aRbtR7G/Gw5qRQMjwGrQ4derIcWPuONoOPXWFu2Hy7/7fYgEAsQ004MskEUImJ7 -gjCZbmASV/8CoJHtBtNTHC+63MRfD++YU0XXsN832u5+90pq1n/5c7d7jdKn/zRK -niQQiQCVAwUQNxY7OB9/qQgDWPy9AQGTsQQAk2dcz3WicxHU+AH63m0G2lOMrRHq -HZ1V2SJHPCJfiw5QzlACHpOT4Jx00TOMosHGbmEKwg0RYHTqH3BX0aNDw+5hhc3d -tqjxpm7x4gwQmAsoZZD11iA3qANXF++yZVNTRXctHWcLl+3LGjJaYwpDj3O/vOep -q+qUIuPM4+8mba2JAJUDBRA3FKmdnWdBAAxuEhUBARJtBAC9mwTXOL6cT64NwE3W -fz3pKS+pWI97PaQX/H+3mC16uN/AP8sIlpKy++IF8XGdhMvQB2Vvq2yT81G63zAI -D97lqG3krw8ikaNcLSp02B8vjhCGwSBw5iFLity+yrqQX+1gCOOkO358s9Lcb7Ua -7g4736Mpff00kXyCnGsNmiDYe4kAlQMFEDcMlqZnSj3xVLFxuQEBCKwEAJrpL9rv -YoXJztmWmpNuuSPoGKM7vm4gJ4HVzX4UxjHhMRc3c0PEHuxCboDKSAxJCatoKGN+ -bBorQ/qIElVhAo3FWxyADzNrvWsRRpSu3wzpppB9mVgzLcMdiOXWabN6toPZmNjv -QM+WKJKexlu74kqVlx00R8TrLmOms3u9VO0ViQB1AwUQNwwBLw7sAx9+veyxAQFk -RwL/V15Lm+poq/wwscyiNgBN7XpONJUX1OiLpI5f7s0/Rl3C97hIyHsIj08DfpOC -C/qnAhHb/FmYL/7TuOa+fSGULInDWkgLCl/+gsYWuh6LINY8OK43cs9d64GEYv56 -3quZiQCVAwUQNq9AjPafnz58Zbu1AQGDmwP+NLOUsBKV063jzu/AKFBRGuWeG4Ms -ZKU+wVW6upv6ELSudPV3tjNstF0y5HfOqF6Y8isxs1qvE+mUyjXRffuS4UtspScr -XT6tQIw5NgaHH31l+PqV50T4gul3DXWBokC/Dkx72REmEA4h3jH8APFnTMxStUfN -JyTMADWF4ySay82JAJUDBRAzbedc77OxBWZTbW0BAVtFA/42QelA3RBXYUtIcYGo -b+QsWkA1kGyBKQGPSS9coHdUVjClBRl3UZFmZhxAODb7cBRXmpvx2ZuMrhn/MpXT -MqPOJaE3FYm+5SoeArphsRU+T8XofxfLvRHkM3JURUjIVZdAQNvxxBso8NJG5Kay -P0Q96Vw+3sEwFK49jt14RCJy4IkAlQMFEDNzvb1sq+iWcxFJBQEBfZwD/R3KNFf9 -ype9Dea8j1YIeNZ1E3e03en1I8fMj6EmS1/L1WfFzMnfFCxZs7JgPtkBuB3CqP8f -+LOdDt6PHPqNakmI9E6fiuGfJZ3jFZYATXa0XKuIoxIJNKhqkpbF8ixJZFTxFwAA -wVYM3+sqr4qQ8FzVc5entxjyxPFNkwJwRWV+iQCVAwUQM2aiBQ7tvOdmanQhAQE7 -LgQAiN6Hz+zd8bh0nO6VizbJxWFRHPbrQWnJXGoMYyy88DyszAXC4zRshlyGUDQd -HeP/1DFCXDEu78GfDCLaJ1bm25yVR7kLxDZaEUQEbWqxfiwuzizAjkaxrW7dBbWI -LwWqrYF5TXClw+oUU/oIUW4t6t+GpAO18PLYhSMXVYErrAC0I0JyaWFuIFNvbWVy -cyA8YnJpYW5AdWsuT3BlbkJTRC5vcmc+iQCVAwUQOLfPRw7tvOdmanQhAQFzOwP/ -WAZvuOUvhsXwjI1ZGMVgQJTSBkup+kwZUUzUNAfn90YVLwgJLEkWZxp05uj3FD/C -3NW876w4/bPGrho09Tr0OsqQtY0ew+9Z7I0SGir4CwG7DxoxUjCk8GRcfi2xwswR -L0XEm+7WJyYPoLY121XM7ZUswm1rb+KkZ1Ya6LYq4fS0I0JyaWFuIFNvbWVycyA8 -YnJpYW5AdWsuRnJlZUJTRC5vcmc+iQCVAwUQNxS1nJ1nQQAMbhIVAQHGGAQAqLPZ -yhE7mh/s9odFrPiCGJjfRRJvMKT1HEJl+RhYXwVEPqyW35c79Iyf39mnPaiR4CCA -JSd6TJHzKVPFGBxLqFQnuGU1ObK+GXQWhfZKZtjq4hYGcCL+EAIu3QjLvWcBkbWd -/s9w0LFUmoLnI2UyHsk1EeivuxN2FwDUIznahWWJAJUDBRA3FKXkDu2852ZqdCEB -AeBxA/0btzY8FjtYJcRIi080aVN9UYdSM8NZYVTFSZCwBgcPYnkpI73SJLoaldYv -luMCgQpU9FDhNvCo6VmwSjxSAEkWMzeMksKaa7BuR+ORBUKLKL2Bvxz3DM11NhjI -9IsFU8ZzKuyPKB+fPBMR6nxDdgEQ954JgduPfa7shpduqVvwX7QgQnJpYW4gU29t -ZXJzIDxicmlhbkBPcGVuQlNELm9yZz6JAJUDBRA3FLVunWdBAAxuEhUBAUMLA/4/ -Qf5ZJbSHZ0HYzqkf23TgYCQrVH/dOcupA/pOJG8Xk9WAGgOuSidqP2Y/ovuvRdvg -VCf95GAe6aysLrdodHpNWbZ3BsaALEHRSeSUnjJMFGearRngplT2+ffij6t51Oqd -0SPAZ++xcyv/0MviFv1hVSW3/+jQjQm8kYkYz2xpf4kAlQMFEDcUpcgO7bznZmp0 -IQEBczAD/3b7bI98gQvrHosunwf50vjZygaH39xJL+exbGa2hreM/Z+LFutXssGo -kc7ipYR6qwxNe0kymnwTmldTbZe47O6IOSBT1jZVYdXCvrKQ5neueQ/KcrIc4gxe -n0gLKhn059+cZdt14zttDDCuOI+COVeqxMlAwQ65l+PSeejhZH8GtCBCcmlhbiBT -b21lcnMgPGJyaWFuQEZyZWVCU0Qub3JnPokAlQMFEDcUtWOdZ0EADG4SFQEBzwUD -/iDFJROA7RL0mRbRuGCvbrHx0pErSGn4fxfyc0rKnXHi2YMHLon23psO/UYb6oad -Asqe5LiNpBzt2tfZGd2V5Q5d1Q4ONUlf2eS8zcPb2mSrhf77RmpLTo2nOROWs51h -iAOXM8LEYMnRDnHfDlTzFDK3TVkSOl0TrZ22WkUsJg/GiQCVAwUQNxSlrg7tvOdm -anQhAQFlSQP+MdzI3kClfikKDupjsqCHA+BitQ41g7zRxroyWxRgZgEY6/zwptnK -uNnD8wcZ30YQn8hLzWnrDQdDYy40VP5u84slZ/dn5QMx6qplN+mhHaqKF1GNk97z -mM6PmzO1bSJ2qxtYlKsNRtfRoF1MFJD78vfnTSDP2mKCP3tCL9z/bro= -=Tq7h ------END PGP PUBLIC KEY BLOCK-----</programlisting> - </sect2> - - <sect2> - <title>&a.gsutter;</title> - - <programlisting> -Type Bits KeyID Created Expires Algorithm Use -sec+ 1024 0x40AE3052 1998-07-18 ---------- DSS Sign & Encrypt -f20 Fingerprint20 = 61D4 6A28 F282 482E 1D82 D077 E31E 323D 40AE 3052 -uid Gregory S. Sutter <gsutter@pobox.com> -uid Gregory S. Sutter <gsutter@zer0.org> -uid Gregory S. Sutter <gsutter@daemonnews.org> -uid Gregory S. Sutter <gsutter@freebsd.org> - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: PGPfreeware 5.0i for non-commercial use - -mQGiBDWwRbkRBADL0OcTOXSuvEljVeSmPKgz6YipAxjRiGXGF7HuocoHXI+r8s3K -v6PkuyNVrK3a7MSDoDrxVqj1wjnuQeLBsMcDdrAp1bVTEgP163jv5wHNEDijGs8+ -s9xYkfMtaD9pcG4K43IznHmrtZEoRLcr5UvFGLOmxhnQarrXVPpo2IwMPwCg/51/ -ux0NwYu2FvMoa6vtmrHuen0EAKCjgmbmjbyGrkTW7pTzU4yBsWFY3k50zKiUKROW -aRT+sBd6oeMVs+utXDgsQMDuzl3xj3NX6Wx+VIZkqkw/3QyAf7VkiAOesWJp2dhq -7554U4epQiN6W/GAdqU2q6N+jxIh1wdrJ/VMlKcFtGMbHDCt52HnGjYxjNoyDF0u -e5g9A/0fx5ovCDcdWDIbl11SZZR/xs7XTUh8jktFcLuBmp9kus3UsAhCEhEHxz/k -iZijslR9y/2fPW7s47/3pUCp63UFMbIqH1PEEp5BP7KSguVzFTiKrpGjOepnr3iD -l6C4Bzdj3tVJpqponhw7uGtIA2Nn7LA++yrJJgMoG+4t+FwrErQlR3JlZ29yeSBT -LiBTdXR0ZXIgPGdzdXR0ZXJAcG9ib3guY29tPokASwQQEQIACwUCNbBFuQQLAwEC -AAoJEOMeMj1ArjBSFWMAoOLKlv5FuMyKu16cywqBzjL3RMF4AJ4h4pdOqQ9AZuzH -Q8DvK+P9POroH4kAlQMFEDcCut6nMUamZyAzSQEBOEUD/3VxwTGQ0Dq0JrAgBimm -bq0J7LD3X9Qn/vJUVIv/O6b6sDNk/YseZ2aee5jJYi6tgpRvMSxc7AlQhZXGYlWh -+RXj9ZrFYnDKa1o5S8/Dt24J1EtkRV09bG9pjonyvcE1q65zMNEDpeSHUAgMfHqx -flFG3XLn/urWT/6Dz5oO4k8qtCRHcmVnb3J5IFMuIFN1dHRlciA8Z3N1dHRlckB6 -ZXIwLm9yZz6JAEsEEBECAAsFAjcCzSwECwMBAgAKCRDjHjI9QK4wUq80AKDiVGlw -v8LBl9RB2bfSNh6zebaLPgCgwgKacEKFiZsjfBI2k+UMIt4P8+60KkdyZWdvcnkg -Uy4gU3V0dGVyIDxnc3V0dGVyQGRhZW1vbm5ld3Mub3JnPokASwQQEQIACwUCOKMz -4AQLAwECAAoJEOMeMj1ArjBSypAAoPGul5bdNLiS0sFkno8qIwkW/gn5AJ9bD1MC -sKiw4AE9d778eiAlQAC3FbQnR3JlZ29yeSBTLiBTdXR0ZXIgPGdzdXR0ZXJAZnJl -ZWJzZC5vcmc+iQBLBBARAgALBQI4ozP9BAsDAQIACgkQ4x4yPUCuMFItNwCfeLOH -XGrmJmtTg5GXHpTXMykoUo4An1eV9eaD+HiOkWo7arv52CpMdVWOuQINBDWwW6UQ -CADMB1dmE9coFmpddqM0j+buoK+A8cm6G1U/Lxg7fiIYcd9SdbWWSPTAy0bFpWrF -we/YWtIhd1sDTFNtqu5iCOWqbU73T+X/578zmbgAWhNhkPehdtRr4KzChGt44akk -hHBLwwbt8j+M3Xth3OKzZYME/5J+qI5HFKcxSr2cfWHQfSqh/8R5S3wKgO1SZzcJ -sxhhJ96AvmvUASmWHVn1fUloG0QfJOGdbNDEZFKYD2aKylQWbgwVfxSU4TLJHNJ6 -0JHlzJEXJUSj49qjNPT4UKcdzury/P3t7mTpnxD+TUdTtpjvCDCfmJatyGL0pS9e -UtnL08rrll2xEkzQCz+jHmDlAAICCACPwOCIs0e2pGE2El0Gx4Lrj59uohs/WFYq -7TESaD+OODeCebEhPPrkyZe88nfAgqZ65qw3dhA6JhatmpZUcCypAaA1YKtwtdQg -cdsAk0A+C8pHZKLkgor6EuV8iYoykpKrh7/ViO0ZcgDGolcjCIw985wjSzbN6Ul5 -FWcoMe8l686YDSAmfyJdwtMSC2hvc8rX3oZ83or011F0bKlv56+ZgUsrGYL48cp9 -r7vLLonu8e8voS0CGqmQQ6XfLRefRY0RE3iQSd4F4GhKlAUVncqIu2fSX/eW053+ -ZeNve8aHPL6xl8BwsqwVGnxdQXOn8XgJ5/FCCXtdtf2xPOx83tkXiQA/AwUYNbBb -peMeMj1ArjBSEQKIRwCfTRtkMAYosaxcNRuO9ptFaOJIDu8AoPOSj8eMlvOqOVDM -AW4VTHVXOY6g -=Zu9y ------END PGP PUBLIC KEY BLOCK-----</programlisting> - </sect2> - </sect1> -</appendix> - -<!-- - Local Variables: - mode: sgml - sgml-declaration: "../appendix.decl" - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - sgml-parent-document: ("../book.sgml" "part" "appendix") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/policies/chapter.sgml b/en_US.ISO8859-1/books/handbook/policies/chapter.sgml deleted file mode 100644 index af164d4a20..0000000000 --- a/en_US.ISO8859-1/books/handbook/policies/chapter.sgml +++ /dev/null @@ -1,398 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/policies/chapter.sgml,v 1.16 2000/06/08 01:56:12 jim Exp $ ---> - -<chapter id="policies"> - <title>Source Tree Guidelines and Policies</title> - - <para><emphasis>Contributed by &a.phk;.</emphasis></para> - - <para>This chapter documents various guidelines and policies in force for - the FreeBSD source tree.</para> - - <sect1 id="policies-maintainer"> - <title><makevar>MAINTAINER</makevar> on Makefiles</title> - - <para>June 1996.</para> - - <para>If a particular portion of the FreeBSD distribution is being - maintained by a person or group of persons, they can communicate this - fact to the world by adding a - - <programlisting> -MAINTAINER= email-addresses</programlisting> - - line to the <filename>Makefile</filename>s covering this portion of the - source tree.</para> - - <para>The semantics of this are as follows:</para> - - <para>The maintainer owns and is responsible for that code. This means - that he is responsible for fixing bugs and answer problem reports - pertaining to that piece of the code, and in the case of contributed - software, for tracking new versions, as appropriate.</para> - - <para>Changes to directories which have a maintainer defined shall be sent - to the maintainer for review before being committed. Only if the - maintainer does not respond for an unacceptable period of time, to - several emails, will it be acceptable to commit changes without review - by the maintainer. However, it is suggested that you try and have the - changes reviewed by someone else if at all possible.</para> - - <para>It is of course not acceptable to add a person or group as - maintainer unless they agree to assume this duty. On the other hand it - doesn't have to be a committer and it can easily be a group of - people.</para> - </sect1> - - <sect1 id="policies-contributed"> - <title>Contributed Software</title> - - <para><emphasis>Contributed by &a.phk; and &a.obrien;. </emphasis></para> - - <para>June 1996.</para> - - <para>Some parts of the FreeBSD distribution consist of software that is - actively being maintained outside the FreeBSD project. For historical - reasons, we call this <emphasis>contributed</emphasis> software. Some - examples are perl, gcc and patch.</para> - - <para>Over the last couple of years, various methods have been used in - dealing with this type of software and all have some number of - advantages and drawbacks. No clear winner has emerged.</para> - - <para>Since this is the case, after some debate one of these methods has - been selected as the <quote>official</quote> method and will be required - for future imports of software of this kind. Furthermore, it is - strongly suggested that existing contributed software converge on this - model over time, as it has significant advantages over the old method, - including the ability to easily obtain diffs relative to the - <quote>official</quote> versions of the source by everyone (even without - cvs access). This will make it significantly easier to return changes - to the primary developers of the contributed software.</para> - - <para>Ultimately, however, it comes down to the people actually doing the - work. If using this model is particularly unsuited to the package being - dealt with, exceptions to these rules may be granted only with the - approval of the core team and with the general consensus of the other - developers. The ability to maintain the package in the future will be a - key issue in the decisions.</para> - - <note> - <para>Because of some unfortunate design limitations with the RCS file - format and CVS's use of vendor branches, minor, trivial and/or - cosmetic changes are <emphasis>strongly discouraged</emphasis> on - files that are still tracking the vendor branch. <quote>Spelling - fixes</quote> are explicitly included here under the - <quote>cosmetic</quote> category and are to be avoided for files with - revision 1.1.x.x. The repository bloat impact from a single character - change can be rather dramatic.</para> - </note> - - <para>The <application>TCL</application> embedded programming - language will be used as example of how this model works:</para> - - <para><filename>src/contrib/tcl</filename> contains the source as - distributed by the maintainers of this package. Parts that are entirely - not applicable for FreeBSD can be removed. In the case of Tcl, the - <filename>mac</filename>, <filename>win</filename> and - <filename>compat</filename> subdirectories were eliminated before the - import</para> - - <para><filename>src/lib/libtcl</filename> contains only a "bmake style" - <filename>Makefile</filename> that uses the standard - <filename>bsd.lib.mk</filename> makefile rules to produce the library - and install the documentation.</para> - - <para><filename>src/usr.bin/tclsh</filename> contains only a bmake style - <filename>Makefile</filename> which will produce and install the - <command>tclsh</command> program and its associated man-pages using the - standard <filename>bsd.prog.mk</filename> rules.</para> - - <para><filename>src/tools/tools/tcl_bmake</filename> contains a couple of - shell-scripts that can be of help when the tcl software needs updating. - These are not part of the built or installed software.</para> - - <para>The important thing here is that the - <filename>src/contrib/tcl</filename> directory is created according to - the rules: It is supposed to contain the sources as distributed (on a - proper CVS vendor-branch and without RCS keyword expansion) with as few - FreeBSD-specific changes as possible. The 'easy-import' tool on - freefall will assist in doing the import, but if there are any doubts on - how to go about it, it is imperative that you ask first and not blunder - ahead and hope it <quote>works out</quote>. CVS is not forgiving of - import accidents and a fair amount of effort is required to back out - major mistakes.</para> - - <para>Because of the previously mentioned design limitations with CVS's - vendor branches, it is required that <quote>official</quote> patches from - the vendor be applied to the original distributed sources and the result - re-imported onto the vendor branch again. Official patches should never - be patched into the FreeBSD checked out version and "committed", as this - destroys the vendor branch coherency and makes importing future versions - rather difficult as there will be conflicts.</para> - - <para>Since many packages contain files that are meant for compatibility - with other architectures and environments that FreeBSD, it is - permissible to remove parts of the distribution tree that are of no - interest to FreeBSD in order to save space. Files containing copyright - notices and release-note kind of information applicable to the remaining - files shall <emphasis>not</emphasis> be removed.</para> - - <para>If it seems easier, the <command>bmake</command> - <filename>Makefile</filename>s can be produced from the dist tree - automatically by some utility, something which would hopefully make it - even easier to upgrade to a new version. If this is done, be sure to - check in such utilities (as necessary) in the - <filename>src/tools</filename> directory along with the port itself so - that it is available to future maintainers.</para> - - <para>In the <filename>src/contrib/tcl</filename> level directory, a file - called <filename>FREEBSD-upgrade</filename> should be added and it - should states things like:</para> - - <itemizedlist> - <listitem> - <para>Which files have been left out</para> - </listitem> - - <listitem> - <para>Where the original distribution was obtained from and/or the - official master site.</para> - </listitem> - - <listitem> - <para>Where to send patches back to the original authors</para> - </listitem> - - <listitem> - <para>Perhaps an overview of the FreeBSD-specific changes that have - been made.</para> - </listitem> - </itemizedlist> - - <para>However, please do not import <filename>FREEBSD-upgrade</filename> - with the contributed source. Rather you should <command>cvs add - FREEBSD-upgrade ; cvs ci</command> after the initial import. Example - wording from <filename>src/contrib/cpio</filename> is below:</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-encumbered"> - <title>Encumbered files</title> - - <para>It might occasionally be necessary to include an encumbered file in - the FreeBSD source tree. For example, if a device requires a small - piece of binary code to be loaded to it before the device will operate, - and we do not have the source to that code, then the binary file is said - to be encumbered. The following policies apply to including encumbered - files in the FreeBSD source tree.</para> - - <orderedlist> - <listitem> - <para>Any file which is interpreted or executed by the system CPU(s) - and not in source format is encumbered.</para> - </listitem> - - <listitem> - <para>Any file with a license more restrictive than BSD or GNU is - encumbered.</para> - </listitem> - - <listitem> - <para>A file which contains downloadable binary data for use by the - hardware is not encumbered, unless (1) or (2) apply to it. It must - be stored in an architecture neutral ASCII format (file2c or - uuencoding is recommended).</para> - </listitem> - - <listitem> - <para>Any encumbered file requires specific approval from the <link - linkend="staff-core">Core team</link> before it is added to the - CVS repository.</para> - </listitem> - - <listitem> - <para>Encumbered files go in <filename>src/contrib</filename> or - <filename>src/sys/contrib</filename>.</para> - </listitem> - - <listitem> - <para>The entire module should be kept together. There is no point in - splitting it, unless there is code-sharing with non-encumbered - code.</para> - </listitem> - - <listitem> - <para>Object files are named - <filename><replaceable>arch</replaceable>/<replaceable>filename</replaceable>.o.uu></filename>.</para> - </listitem> - - <listitem> - <para>Kernel files;</para> - - <orderedlist> - <listitem> - <para>Should always be referenced in - <filename>conf/files.*</filename> (for build simplicity).</para> - </listitem> - - <listitem> - <para>Should always be in <filename>LINT</filename>, but the <link - linkend="staff-core">Core team</link> decides per case if it - should be commented out or not. The <link - linkend="staff-core">Core team</link> can, of course, change - their minds later on.</para> - </listitem> - - <listitem> - <para>The <link linkend="staff-who">Release Engineer</link> - decides whether or not it goes in to the release.</para> - </listitem> - </orderedlist> - </listitem> - - <listitem> - <para>User-land files;</para> - - <orderedlist> - <listitem> - <para>The <link linkend="staff-core">Core team</link> decides if - the code should be part of <command>make world</command>.</para> - </listitem> - - <listitem> - <para>The <link linkend="staff-who">Release Engineer</link> - decides if it goes in to the release.</para> - </listitem> - </orderedlist> - </listitem> - </orderedlist> - </sect1> - - <sect1 id="policies-shlib"> - <title>Shared Libraries</title> - - <para><emphasis>Contributed by &a.asami;, &a.peter;, and &a.obrien; 9 - December 1996.</emphasis></para> - - <para>If you are adding shared library support to a port or other piece of - software that doesn't have one, the version numbers should follow these - rules. Generally, the resulting numbers will have nothing to do with - the release version of the software.</para> - - <para>The three principles of shared library building are:</para> - - <itemizedlist> - <listitem> - <para>Start from <literal>1.0</literal></para> - </listitem> - - <listitem> - <para>If there is a change that is backwards compatible, bump minor - number (note that ELF systems ignore the minor number)</para> - </listitem> - - <listitem> - <para>If there is an incompatible change, bump major number</para> - </listitem> - </itemizedlist> - - <para>For instance, added functions and bugfixes result in the minor - version number being bumped, while deleted functions, changed function - call syntax etc. will force the major version number to change.</para> - - <para>Stick to version numbers of the form major.minor - (<replaceable>x</replaceable>.<replaceable>y</replaceable>). Our a.out - dynamic linker does not handle version numbers of the form - <replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable> - well. Any version number after the <replaceable>y</replaceable> - (ie. the third digit) is totally ignored when comparing shared lib - version numbers to decide which library to link with. Given two shared - libraries that differ only in the <quote>micro</quote> revision, - <command>ld.so</command> will link with the higher one. Ie: if you link - with <filename>libfoo.so.3.3.3</filename>, the linker only records - <literal>3.3</literal> in the headers, and will link with anything - starting with - <replaceable>libfoo.so.3</replaceable>.<replaceable>(anything >= - 3)</replaceable>.<replaceable>(highest - available)</replaceable>.</para> - - <note> - <para><command>ld.so</command> will always use the highest - <quote>minor</quote> revision. Ie: it will use - <filename>libc.so.2.2</filename> in preference to - <filename>libc.so.2.0</filename>, even if the program was initially - linked with <filename>libc.so.2.0</filename>.</para> - </note> - - <para>In addition, our ELF dynamic linker does not handle minor version - numbers at all. However, one should still specify a major and minor - version number as our <filename>Makefile</filename>s "do the right thing" - based on the type of system.</para> - - <para>For non-port libraries, it is also our policy to change the shared - library version number only once between releases. In addition, it is - our policy to change the major shared library version number only once - between major OS releases. Ie: X.0 to (X+1).0. When you make a - change to a system library that requires the version number to be - bumped, check the <filename>Makefile</filename>'s commit logs. It is the - responsibility of the committer to ensure that the first such change - since the release will result in the shared library version number in - the <filename>Makefile</filename> to be updated, and any subsequent - changes will not.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/ports/chapter.sgml b/en_US.ISO8859-1/books/handbook/ports/chapter.sgml deleted file mode 100644 index 7dc3d3cb29..0000000000 --- a/en_US.ISO8859-1/books/handbook/ports/chapter.sgml +++ /dev/null @@ -1,1007 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/ports/chapter.sgml,v 1.110 2000/06/09 18:08:44 nik Exp $ ---> - -<chapter id="ports"> - <title>Installing Applications: The Ports collection</title> - - <para><emphasis>Rewritten by &a.jim;, 22 November 1999. Original work - by various people.</emphasis></para> - - <sect1> - <title>Synopsis</title> - - <para>The FreeBSD Ports collection allows you to compile and install a - very wide range of applications with a minimum amount of - effort.</para> - - <para>In general, it is a group of <link - linkend="ports-skeleton">skeletons</link> - which contain a minimal set of items needed to make an application - compile and install cleanly on FreeBSD.</para> - - <para>Even with all the hype about open standards, getting a program - to compile on various UNIX platforms can be a tricky task. - Occasionally, you might be lucky enough to find that the program you - want compiles cleanly on your system, install everything into all - the right directories, and run flawlessly - <quote>out-of-the-box</quote>, but this behavior is somewhat rare. - Most of the time, you find yourself needing to make modifications in - order to get the program to work. This is where the FreeBSD Ports - collection comes to the rescue.</para> - - <para>The general idea behind the Ports collection is to eliminate all - of the messy steps involved with making things work properly so that - the installation is simple and very painless. With the Ports - collection, all of the hard work has already been done for you, and - you are able to install any of the Ports collection ports by simply - typing <command>make install</command>.</para> - </sect1> - - <sect1 id="ports-using"> - <title>Using the Ports Collection</title> - - <para>The following sections provide basic instructions on using the - ports collection to install or remove programs from your - system.</para> - - <sect2 id="ports-skeleton"> - <title>Installing Ports</title> - - <para>The first thing that should be explained - when it comes to the Ports collection is what is actually meant - by a <quote>skeleton</quote>. In a nutshell, a port skeleton is a - minimal set of files that are needed for a program to compile and - install cleanly on FreeBSD. Each port skeleton includes:</para> - - <itemizedlist> - <listitem> - <para>A <filename>Makefile</filename>. The - <filename>Makefile</filename> contains various statements that - specify how the application should be compiled and where it - should be installed on your system</para> - </listitem> - - <listitem> - <para>A <filename>files</filename> directory. The - <filename>files</filename> directory contains a file named - <filename>md5</filename>. This file is named after the MD5 - algorithm used to determine ports checksums. A checksum is a - number generated by adding up all the data in the file you - want to check. If any characters change, the checksum will - differ from the original and an error message will be - displayed so you are able to investigate the changes.</para> - - <para>The <filename>files</filename> directory can also contain - other files that are required by the port but do not belong - elsewhere in the directory structure.</para> - </listitem> - - <listitem> - <para>A <filename>patches</filename> directory. This directory - contains patches to make the program compile and install on - your FreeBSD system. Patches are basically small files that - specify changes to particular files. They are in plain text - format, and basically say <quote>Remove line 10</quote> or - <quote>Change line 26 to this ...</quote>. Patches are also - known as <quote>diffs</quote> because they are generated by the - <application>diff</application> program.</para> - </listitem> - - <listitem> - <para>A <filename>pkg</filename> directory. This directory - normally contains three files. Occasionally, there will be - more than three, but it depends on the port. Most only - require three. The files are:</para> - - <itemizedlist> - <listitem> - <para><filename>COMMENT</filename>. This is a one-line - description of the program.</para> - </listitem> - - <listitem> - <para><filename>DESCR</filename>. This is a more detailed, - often multiple-line, description of the program.</para> - </listitem> - - <listitem> - <para><filename>PLIST</filename>. This is a list of all the - files that will be installed by the port. It also tells - the ports system what files to remove upon - deinstallation.</para> - </listitem> - </itemizedlist> - </listitem> - </itemizedlist> - - <para>Now that you have enough background information to know what - the Ports collection is used for, you are ready to install your - first port. There are two ways this can be done, and each is - explained below.</para> - - <para>Before we get into that however, you will need to choose a - port to install. There are a few ways to do this, with the - easiest method being the <ulink - url="http://www.freebsd.org/ports/">ports listing on the FreeBSD - web site</ulink>. You can browse through the ports listed there - or use the search function on the site. Each port also includes - a description so you can read a bit about each port before - deciding to install it.</para> - - <para>Another method is to use the <command>whereis</command> - command. To use <command>whereis</command>, simply type - <quote><command>whereis <program you want to - install></command></quote> at the prompt, and if it is found on - your system, you will be told where it is, like so:</para> - - <screen>&prompt.root; <userinput>whereis xchat</userinput> -xchat: /usr/ports/irc/xchat -&prompt.root;</screen> - - <para>This tells us that xchat (an irc client) can be found in the - <filename>/usr/ports/irc/xchat</filename> directory.</para> - - <para>Yet another way of finding a particular port is by using the - Ports collection's built-in search mechanism. To use the search - feature, you will need to be in the - <filename>/usr/ports</filename> directory. Once in that - directory, run <command>make search key=program-name</command> - where <quote>program-name</quote> is the name of the program you - want to find. For example, if you were looking for xchat:</para> - - <screen>&prompt.root; <userinput>cd /usr/ports</userinput> -&prompt.root; <userinput>make search key=xchat</userinput> -Port: xchat-1.3.8 -Path: /usr/ports/irc/xchat -Info: An X11 IRC client using the GTK+ toolkit, and optionally, GNOME -Maint: jim@FreeBSD.org -Index: irc -B-deps: XFree86-3.3.5 bzip2-0.9.5d gettext-0.10.35 giflib-4.1.0 glib-1.2.6 gmake-3.77 gtk-1.2.6 - imlib-1.9.8 jpeg-6b png-1.0.3 tiff-3.5.1 -R-deps: XFree86-3.3.5 gettext-0.10.35 giflib-4.1.0 glib-1.2.6 gtk-1.2.6 imlib-1.9.8 jpeg-6b - png-1.0.3 tiff-3.5.1</screen> - - <para>The part of the output you want to pay particular attention - to is the <quote>Path:</quote> line, since that tells you where to - find it. The other information provided is not needed in order - to install the port directly, so it will not be covered - here.</para> - - <note> - <para>You must be the <username>root</username> user to install - ports.</para> - </note> - - <para>Now that you have found a port you would like to install, you - are ready to do the actual installation.</para> - - <sect3 id="ports-cd"> - <title>Installing ports from a CDROM</title> - - <para>As you may have guessed from the title, everything - described in this section assumes you have a FreeBSD CDROM set. - If you do not, you can order one from the <ulink - url="http://www.freebsdmall.com/">FreeBSD Mall</ulink>.</para> - - <para>Assuming that your FreeBSD CDROM is in the drive and is - mounted on <filename>/cdrom</filename> (and the mount point - <emphasis>must</emphasis> be <filename>/cdrom</filename>), - you are ready to install the port. To begin, change directories - to the directory where the port you want to install lives:</para> - - <screen>&prompt.root; <userinput>cd /usr/ports/irc/xchat</userinput></screen> - - <para>Once inside the xchat directory, you will see the port - skeleton. The next step is to compile (also called build) the - port. This is done by simply typing <command>make</command> at - the prompt. Once you have done so, you should see something - like this:</para> - - <screen>&prompt.root; <userinput>make</userinput> ->> xchat-1.3.8.tar.bz2 doesn't seem to exist on this system. ->> Attempting to fetch from file:/cdrom/ports/distfiles/. -===> Extracting for xchat-1.3.8 ->> Checksum OK for xchat-1.3.8.tar.bz2. -===> xchat-1.3.8 depends on executable: bzip2 - found -===> xchat-1.3.8 depends on executable: gmake - found -===> xchat-1.3.8 depends on shared library: gtk12.2 - found -===> xchat-1.3.8 depends on shared library: Imlib.5 - found -===> xchat-1.3.8 depends on shared library: X11.6 - found -===> Patching for xchat-1.3.8 -===> Applying FreeBSD patches for xchat-1.3.8 -===> Configuring for xchat-1.3.8 -... -[configure output snipped] -... -===> Building for xchat-1.3.8 -... -[compilation snipped] -... -&prompt.root;</screen> - - <para>Take notice that once the compile is complete you are - returned to your prompt. The next step is to install the - port. In order to install it, you simply need to tack one word - onto the <command>make</command> command, and that word is - <command>install</command>:</para> - - <screen>&prompt.root; <userinput>make install</userinput> -===> Installing for xchat-1.3.8 -===> xchat-1.3.8 depends on shared library: gtk12.2 - found -===> xchat-1.3.8 depends on shared library: Imlib.5 - found -===> xchat-1.3.8 depends on shared library: X11.6 - found -... -[install routines snipped] -... -===> Generating temporary packing list -===> Installing xchat docs in /usr/X11R6/share/doc/xchat -===> Registering installation for xchat-1.3.8 -&prompt.root;</screen> - - <para>Once you are returned to your prompt, you should be able to - run the application you just installed.</para> - - <note> - <para>You can save an extra step by just running <command>make - install</command> instead of <command>make</command> and - <command>make install</command> as two separate steps.</para> - </note> - - <note> - <para>Please be aware that the licenses of a few ports do not - allow for inclusion on the CDROM. This could be for various - reasons, including things such as as registration form needs - to be filled out before downloading, if redistribution is not - allowed, and so on. If you wish to install a port not - included on the CDROM, you will need to be online in order to - do so (see the <link linkend="ports-inet">next - section</link>).</para> - </note> - </sect3> - - <sect3 id="ports-inet"> - <title>Installing ports from the Internet</title> - - <para>As with the last section, this section makes an assumption - that you have a working Internet connection. If you do not, - you will need to do the <link linkend="ports-cd">CDROM - installation</link>.</para> - - <para>Installing a port from the Internet is done exactly the same - way as it would be if you were installing from a CDROM. The - only difference between the two is that the program's source - code is downloaded from the Internet instead of pulled from the - CDROM.</para> - - <para>The steps involved are identical:</para> - - <screen>&prompt.root; <userinput>make install</userinput> ->> xchat-1.3.8.tar.bz2 doesn't seem to exist on this system. ->> Attempting to fetch from http://xchat.org/files/v1.3/. -Receiving xchat-1.3.8.tar.bz2 (305543 bytes): 100% -305543 bytes transferred in 2.9 seconds (102.81 Kbytes/s) -===> Extracting for xchat-1.3.8 ->> Checksum OK for xchat-1.3.8.tar.bz2. -===> xchat-1.3.8 depends on executable: bzip2 - found -===> xchat-1.3.8 depends on executable: gmake - found -===> xchat-1.3.8 depends on shared library: gtk12.2 - found -===> xchat-1.3.8 depends on shared library: Imlib.5 - found -===> xchat-1.3.8 depends on shared library: X11.6 - found -===> Patching for xchat-1.3.8 -===> Applying FreeBSD patches for xchat-1.3.8 -===> Configuring for xchat-1.3.8 -... -[configure output snipped] -... -===> Building for xchat-1.3.8 -... -[compilation snipped] -... -===> Installing for xchat-1.3.8 -===> xchat-1.3.8 depends on shared library: gtk12.2 - found -===> xchat-1.3.8 depends on shared library: Imlib.5 - found -===> xchat-1.3.8 depends on shared library: X11.6 - found -... -[install routines snipped] -... -===> Generating temporary packing list -===> Installing xchat docs in /usr/X11R6/share/doc/xchat -===> Registering installation for xchat-1.3.8 -&prompt.root;</screen> - - <para>As you can see, the only difference is the line that tells - you where the system is fetching the port from.</para> - - <para>That about does it for installing ports onto your system. - In the section you will learn how to remove a port from your - system.</para> - </sect3> - </sect2> - - <sect2 id="ports-removing"> - <title>Removing Installed Ports</title> - - <para>Now that you know how to install ports, you are probably - wondering how to remove them, just in case you install one and - later on you decide that you installed the wrong port. The next - few paragraphs will cover just that.</para> - - <para>Now we will remove our previous example (which was xchat for - those of you not paying attention). As with installing ports, - the first thing you must do is change to the port directory, - which if you remember was - <filename>/usr/ports/irc/xchat</filename>. After you change - directories, you are ready to uninstall xchat. This is done with - the <command>make deinstall</command> command (makes sense - right?):</para> - - <screen>&prompt.root; <userinput>cd /usr/ports/irc/xchat</userinput> -&prompt.root; <userinput>make deinstall</userinput> -===> Deinstalling for xchat-1.3.8 -&prompt.root;</screen> - - <para>That was easy enough. You have now managed to remove xchat - from your system. If you would like to reinstall it, you can do - so by running <command>make reinstall</command> from the - <filename>/usr/ports/irc/xchat</filename> directory.</para> - </sect2> - </sect1> - - <sect1 id="ports-trouble"> - <title>Troubleshooting</title> - - <para>The following sections cover some of the more frequently asked - questions about the Ports collection and some basic troubleshooting - techniques, and what do to if a <link - linkend="ports-broken">port is broken.</link></para> - - <sect2 id="ports-questions"> - <title>Some Questions and Answers</title> - - <qandaset> - <qandaentry> - <question> - <para>I thought this was going to be a discussion about - modems??!</para> - </question> - - <answer> - <para>Ah, you must be thinking of the serial ports on the back - of your computer. We are using <quote>port</quote> here to - mean the result of <quote>porting</quote> a program from one - version of UNIX to another.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I thought you were supposed to use packages to install - extra programs?</para> - </question> - - <answer> - <para>Yes, that is usually the quickest and easiest way of - doing it.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>So why bother with ports then?</para> - </question> - - <answer> - <para>Several reasons:</para> - - <orderedlist> - <listitem> - <para>The licensing conditions of some software - distributions forbid binary distribution. They must be - distributed as source code.</para> - </listitem> - - <listitem> - <para>Some people do not trust binary distributions. At - least with source code, you can (in theory) read through - it and look for potential problems yourself.</para> - </listitem> - - <listitem> - <para>If you have local patches, you will need the source in - order to apply them.</para> - </listitem> - - <listitem> - <para>You might have opinions on how a program should be - compiled that differ from the person who did the - package—some people have strong views on what - optimization settings should be used, whether to build - debug versions and then strip them or not, and so on.</para> - </listitem> - - <listitem> - <para>Packages are normally built with quite conservative - settings. If a port has a compilation option to use code - for a specific processor, or a particular add-on board you - can enable this yourself in the port, without the people - making the package having to produce many, many different - packaged versions.</para> - - <para>The most obvious exception to this rule is paper sizes. - If a package can be provided with default support for - different paper sizes we will often provide multiple - packages, one per paper size.</para> - </listitem> - - <listitem> - <para>Some people like having code around, so they can read - it if they get bored, hack it, borrow from it (license - permitting, of course), and so on.</para> - </listitem> - - <listitem> - <para>If you ain't got the source, it ain't software! - <!-- smiley -->;-)</para> - </listitem> - </orderedlist> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para id="ports-patch">What is a patch?</para> - </question> - - <answer> - <para>A patch is a small file that specifies how to go from - one version of a file to another. It contains plain text, - and basically says things like <quote>delete line 23</quote>, - <quote>add these two lines after line 468</quote>, or - <quote>change line 197 to this</quote>. They are also known - as diffs because they are generated by the - <application>diff</application> program.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para id="ports-tarball">What is all this about - tarballs?</para> - </question> - - <answer> - <para>It is a file ending in <filename>.tar</filename>, or - with variations such as <filename>.tar.gz</filename>, - <filename>.tar.Z</filename>, <filename>.tar.bz2</filename>, - and even <filename>.tgz</filename>.</para> - - <para>Basically, it is a directory tree that has been archived - into a single file (<filename>.tar</filename>) and - optionally compressed (<filename>.gz</filename>). This - technique was originally used for <emphasis>T</emphasis>ape - <emphasis>AR</emphasis>chives (hence the name - <command>tar</command>), but it is a widely used way of - distributing program source code around the Internet.</para> - - <para>You can see what files are in them, or even extract them - yourself by using the standard UNIX tar program, which comes - with the base FreeBSD system, like this:</para> - - <screen>&prompt.user; <userinput>tar tvzf foobar.tar.gz</userinput> -&prompt.user; <userinput>tar xzvf foobar.tar.gz</userinput> -&prompt.user; <userinput>tar tvf foobar.tar</userinput> -&prompt.user; <userinput>tar xvf foobar.tar</userinput></screen> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para id="ports-checksum">And a checksum?</para> - </question> - - <answer> - <para>It is a number generated by adding up all the data in - the file you want to check. If any of the characters - change, the checksum will no longer be equal to the total, - so a simple comparison will allow you to spot the - difference.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I did what you said for compiling ports from a CDROM and - it worked great until I tried to install the kermit - port.</para> - - <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> - - <para>Why can it not be found? Have I got a dud CDROM?</para> - </question> - - <answer> - <para>As was explained in the <link - linkend="ports-cd">compiling ports from CDROM</link> - section, some ports cannot be put on the CDROM set - due to licensing restrictions. Kermit is an example of - that. The licensing terms for kermit do not allow us to put - the tarball for it on the CDROM, so you will have to fetch - it by hand—sorry!</para> - - <para>The reason why you got all those error messages was - because you were not connected to the Internet at the time. - Once you have downloaded it from any of the MASTER_SITES - (listed in the Makefile), you can restart the install - process.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I did that, but when I tried to put it into - <filename>/usr/ports/distfiles</filename> I got some error - about not having permission.</para> - </question> - - <answer> - <para>The ports mechanism looks for the tarball in - <filename>/usr/ports/distfiles</filename>, but you will not - be able to copy anything there because it is symlinked to - the CDROM, which is read-only. You can tell it to look - somewhere else by doing:</para> - - <screen>&prompt.root; <userinput>make DISTDIR=<replaceable>/where/you/put/it</replaceable> install</userinput></screen> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Does the ports scheme only work if you have everything - in <filename>/usr/ports</filename>? My system administrator - says I must put everything under - <filename>/u/people/guests/wurzburger</filename>, but it - does not seem to work.</para> - </question> - - <answer> - <para>You can use the <makevar>PORTSDIR</makevar> and - <makevar>PREFIX</makevar> variables to tell the ports - mechanism to use different directories. For - instance,</para> - - <screen>&prompt.root; <userinput>make PORTSDIR=/u/people/guests/wurzburger/ports install</userinput></screen> - - <para>will compile the port in - <filename>/u/people/guests/wurzburger/ports</filename> and - install everything under - <filename>/usr/local</filename>.</para> - - <screen>&prompt.root; <userinput>make PREFIX=/u/people/guests/wurzburger/local install</userinput></screen> - - <para>will compile it in <filename>/usr/ports</filename> and - install it in - <filename>/u/people/guests/wurzburger/local</filename>.</para> - - <para>And of course,</para> - - <screen>&prompt.root; <userinput>make PORTSDIR=../ports PREFIX=../local install</userinput></screen> - - <para>will combine the two (it is too long to write fully on - the page, but it should give you the general idea).</para> - - <para>If you do not fancy typing all that in every time you - install a port, it is a good idea to put these variables - into your environment. Read the man page for your shell for - instructions on doing so.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I do not have a FreeBSD CDROM, but I would like to have - all the tarballs handy on my system so I do not have to wait - for a download every time I install a port. Is there any - way to get them all at once?</para> - </question> - - <answer> - <para>To get every single tarball for the Ports collection, - do:</para> - - <screen>&prompt.root; <userinput>cd /usr/ports</userinput> -&prompt.root; <userinput>make fetch</userinput></screen> - - <para>For all the tarballs for a single ports directory, - do:</para> - - <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput> -&prompt.root; <userinput>make fetch</userinput></screen> - - <para>and for just one port—well, I think you have - guessed already.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I know it is probably faster to fetch the tarballs from - one of the FreeBSD mirror sites close by. Is there any way - to tell the port to fetch them from servers other than the - ones listed in the MASTER_SITES?</para> - </question> - - <answer> - <para>Yes. If you know, for example, that <hostid - role="fqdn">ftp.FreeBSD.org</hostid> is much closer to you - than the sites listed in <makevar>MASTER_SITES</makevar>, - do as follows:</para> - - <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput> -&prompt.root; <userinput>make MASTER_SITE_OVERRIDE= \ -ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I want to know what files <command>make</command> is - going to need before it tries to pull them down.</para> - </question> - - <answer> - <para><command>make fetch-list</command> will display a list - of the files needed for a port.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Is there any way to stop the port from compiling? I - want to do some hacking on the source before I install it, - but it is a bit tiresome to watch it and hit control-C every - time.</para> - </question> - - <answer> - <para>Doing <command>make extract</command> will stop it - after it has fetched and extracted the source code.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I am trying to make my own port and I want to be able - to stop it compiling until I have had a chance to see if my - patches worked properly. Is there something like - <command>make extract</command>, but for patches?</para> - </question> - - <answer> - <para>Yep, <command>make patch</command> is what you want. - You will probably find the <makevar>PATCH_DEBUG</makevar> - option useful as well. And by the way, thank you for your - efforts!</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I have heard that some compiler options can cause bugs. - Is this true? How can I make sure that I compile ports - with the right settings?</para> - </question> - - <answer> - <para>Yes, with version 2.6.3 of <command>gcc</command> (the - version shipped with FreeBSD 2.1.0 and 2.1.5), the - <option>-O2</option> option could result in buggy code - unless you used the <option>-fno-strength-reduce</option> - option as well. (Most of the ports do not use - <option>-O2</option>). You <emphasis>should</emphasis> be - able to specify the compiler options used by something - like:</para> - - <screen>&prompt.root; <userinput>make CFLAGS='-O2 -fno-strength-reduce' install</userinput></screen> - - <para>or by editing <filename>/etc/make.conf</filename>, but - unfortunately not all ports respect this. The surest way - is to do <command>make configure</command>, then go into - the source directory and inspect the Makefiles by hand, but - this can get tedious if the source has lots of - sub-directories, each with their own Makefiles.</para> - - <para>The default FreeBSD compiler options are quite conservative, - so if you have not changed them you should not have any - problems.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>There are so many ports it is hard to find the one I - want. Is there a list anywhere of what ports are - available?</para> - </question> - - <answer> - <para>Look in the <filename>INDEX</filename> file in - <filename>/usr/ports</filename>. If you would like to - search the ports collection for a keyword, you can do that - too. For example, you can find ports relevant to the LISP - programming language using:</para> - - <screen>&prompt.user; <userinput>cd /usr/ports</userinput> -&prompt.user; <userinput>make search key=lisp</userinput></screen> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I went to install the <literal>foo</literal> port but - the system suddenly stopped compiling it and starting - compiling the <literal>bar</literal> port. What is going - on?</para> - </question> - - <answer> - <para>The <literal>foo</literal> port needs something that is - supplied with <literal>bar</literal> — for instance, - if <literal>foo</literal> uses graphics, - <literal>bar</literal> might have a library with useful - graphics processing routines. Or <literal>bar</literal> - might be a tool that is needed to compile the - <literal>foo</literal> port.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para id="ports-remove"> I installed the - <literal>grizzle</literal> program from the ports and - frankly it is a complete waste of disk space. I want to - delete it but I do not know where it put all the files. - Any clues?</para> - </question> - - <answer> - <para>No problem, just do:</para> - - <screen>&prompt.root; <userinput>pkg_delete grizzle-6.5</userinput></screen> - - <para>Alternatively, you can do:</para> - - <screen>&prompt.root; <userinput>cd <replaceable>/usr/ports/somewhere/grizzle</replaceable></userinput> -&prompt.root; <userinput>make deinstall</userinput></screen> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Hang on a minute, you have to know the version number - to use that command. You do not seriously expect me to - remember that, do you??</para> - </question> - - <answer> - <para>Not at all, you can find it out by doing:</para> - - <screen>&prompt.root; <userinput>pkg_info -a | grep grizzle</userinput> -Information for grizzle-6.5: -grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up -arcade game.</screen> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Talking of disk space, the ports directory seems to be - taking up an awful lot of room. Is it safe to go in there - and delete things?</para> - </question> - - <answer> - <para>Yes, if you have installed the program and are fairly - certain you will not need the source again, there is no - point in keeping it hanging around. The best way to do - this is:</para> - - <screen>&prompt.root; <userinput>cd /usr/ports</userinput> -&prompt.root; <userinput>make clean</userinput></screen> - - <para>which will go through all the ports subdirectories and - delete everything except the skeletons for each - port.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I tried that and it still left all those tarballs or - whatever you called them in the - <filename>distfiles</filename> directory. Can I delete - those as well?</para> - </question> - - <answer> - <para>Yes, if you are sure you have finished with them, - those can go as well. They can be removed manually, or by - using <command>make distclean</command>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I like having lots and lots of programs to play with. - Is there any way of installing all the ports in one - go?</para> - </question> - - <answer> - <para>Just do:</para> - - <screen>&prompt.root; <userinput>cd /usr/ports</userinput> -&prompt.root; <userinput>make install</userinput></screen> - - <para>Be careful, as some ports may install files with the same - name. If you install two graphics ports and they both install - <filename>/usr/local/bin/plot</filename> then you will obviously - have problems.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>OK, I tried that, but I thought it would take a very - long time so I went to bed and left it to get on with it. - When I looked at the computer this morning, it had only - done three and a half ports. Did something go - wrong?</para> - </question> - - <answer> - <para>No, the problem is that some of the ports need to ask - you questions that we cannot answer for you (e.g., <quote>Do - you want to print on A4 or US letter sized paper?</quote>) - and they need to have someone on hand to answer - them.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>I really do not want to spend all day staring at the - monitor. Any better ideas?</para> - </question> - - <answer> - <para>OK, do this before you go to bed/work/the local - park:</para> - - <screen>&prompt.root <userinput>cd /usr/ports</userinput> -&prompt.root; <userinput>make -DBATCH install</userinput></screen> - - <para>This will install every port that does - <emphasis>not</emphasis> require user input. Then, when - you come back, do:</para> - - <screen>&prompt.root; <userinput>cd /usr/ports</userinput> -&prompt.root; <userinput>make -DIS_INTERACTIVE install</userinput></screen> - - <para>to finish the job.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>At work, we are using <literal>frobble</literal>, which - is in your Ports collection, but we have altered it quite a - bit to get it to do what we need. Is there any way of making - our own packages, so we can distribute it more easily around - our sites?</para> - </question> - - <answer> - <para>No problem, assuming you know how to make patches for - your changes:</para> - - <screen>&prompt.root; <userinput>cd <replaceable>/usr/ports/somewhere/frobble</replaceable></userinput> -&prompt.root; <userinput>make extract</userinput> -&prompt.root; <userinput>cd work/frobble-2.8</userinput> -[Apply your patches] -&prompt.root; <userinput>cd ../..</userinput> -&prompt.root; <userinput>make package</userinput></screen> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>This ports stuff is really clever. I am desperate to - find out how you did it. What is the secret?</para> - </question> - - <answer> - <para>Nothing secret about it at all, just look at the - <filename>bsd.port.mk</filename> and - <filename>bsd.port.subdir.mk</filename> files in your - <ulink url="file://localhost/usr/ports/Mk/">makefiles - directory.</ulink></para> - - <para>(Readers with an aversion to intricate shell-scripts are - advised not to follow this link...)</para> - </answer> - </qandaentry> - </qandaset> - </sect2> - - <sect2 id="ports-broken"> - <title>Help! This port is broken!</title> - - <para>If you come across a port that doesn't work for you, there are - a few things you can do, including:</para> - - <orderedlist> - <listitem> - <para>Fix it! The <link linkend="porting"><quote>how to make a - port</quote></link> section should help you do this.</para> - </listitem> - - <listitem> - <para>Gripe—<emphasis>by email only!</emphasis> Send - email to the maintainer of the port first. Type <command>make - maintainer</command> or read the <filename>Makefile</filename> - to find the maintainer's email address. Remember to include - the name and version of the port (send the - <literal>$FreeBSD:</literal> line from the - <filename>Makefile</filename>) and the output leading up to the - error when you email the maintainer. If you do not get a - response from the maintainer, you can use - <command>send-pr</command> to submit a bug report.</para> - </listitem> - - <listitem> - <para>Forget about it. This is the easiest route—very - few ports can be classified as <quote>essential</quote>. There's - also a good chance any problems will be fixed in the next - version when the port is updated.</para> - </listitem> - - <listitem> - <para>Grab the package from an ftp site near you. The - <quote>master</quote> package collection is on <hostid - role="fqdn">ftp.FreeBSD.org</hostid> in the <ulink - URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">packages - directory</ulink>, but be sure to check your local mirror - <emphasis>first!</emphasis> These are more likely to work - than trying to compile from source and are a lot faster as - well. Use the &man.pkg.add.1; program to install the package - on your system.</para> - </listitem> - </orderedlist> - </sect2> - </sect1> - - <sect1 id="porting"> - <title>Advanced Topics</title> - - <para>The documentation that was here has been moved to its own <ulink - url="../porters-handbook/index.html">Porter's Handbook</ulink> for ease of - reference. Please go there if you wish to create and submit your own - ports.</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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml b/en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml deleted file mode 100644 index e0109d7e5d..0000000000 --- a/en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml +++ /dev/null @@ -1,2616 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/ppp-and-slip/chapter.sgml,v 1.24 2000/06/08 01:56:15 jim Exp $ ---> - -<chapter id="ppp-and-slip"> - <title>PPP and SLIP</title> - - <para><emphasis>Restructured, reorganized, and updated by &a.jim;, - 1 March 2000.</emphasis></para> - - <sect1> - <title>Synopsis</title> - - <para>If you are connecting to the Internet via modem, or wish to - provide dial-up connections to the Internet for others using FreeBSD, - you have the option of using PPP or SLIP.</para> - - <para>This chapter covers three varieties of PPP; - <emphasis>user</emphasis>, <emphasis>kernel</emphasis>, and - <emphasis>PPPoE</emphasis> (PPP over Ethernet). It also covers - setting up a SLIP client and server.</para> - - <para>The first variety of PPP that will be covered is User PPP. User - PPP was introduced into FreeBSD in 2.0.5-RELEASE as an addition to - the already existing kernel implementation of PPP.</para> - - <para>You may be wondering what the main difference is between User - PPP and kernel PPP. The answer is simple; user PPP does not run as - a daemon, and can run as and when desired. No PPP interface needs - to be compiled into their kernel; it runs as a user process, and uses - the tunnel device driver (<devicename>tun</devicename>) to get data - into and out of the kernel.</para> - - <para>From here on out in this chapter, user ppp will simply be - referred to as ppp unless a distinction needs to be made between it - and and any other PPP software such as <command>pppd</command>. - Unless otherwise stated, all of the commands explained in this - section should be executed as root.</para> - </sect1> - - <sect1 id="userppp"> - <title>Using User PPP</title> - - <para><emphasis>Originally contributed by &a.brian;, with input - from &a.nik;, &a.dirkvangulik;, and &a.pjc;.</emphasis></para> - - <sect2> - <title>User PPP</title> - - <sect3> - <title>Assumptions</title> - - <para>This document assumes you have the following:</para> - - <itemizedlist> - <listitem> - <para>An account with an Internet Service Provider (ISP) which - you connect to using PPP. Further, you have a modem or - other device connected to your system and configured - correctly, which allows you to connect to your ISP.</para> - </listitem> - - <listitem> - <para>The dial-up number(s) of your ISP.</para> - </listitem> - - <listitem> - <para>Your login name and password. This can be either a - regular UNIX-style login and password pair, or a PAP or CHAP - login and password pair.</para> - </listitem> - - <listitem> - <para>The IP address(es) of one or more name servers. - Normally, you will be given two IP addresses by your ISP to - use for this. If they have not given you at least one, then - you can use the <command>enable dns</command> command in - your <filename>ppp.conf</filename> file to tell - <application>ppp</application> to set the name servers for - you.</para> - </listitem> - </itemizedlist> - - <para>The following information may be supplied by your ISP, but - is not completely necessary:</para> - - <itemizedlist> - <listitem> - <para>The IP address of your ISP's gateway. The gateway is - the machine to which you will connect and will be set up as - your <emphasis>default route</emphasis>. If you do not have - this information, we can make one up and your ISP's PPP - server will tell us the correct value when we connect.</para> - - <para>This IP number is referred to as - <literal>HISADDR</literal> by - <application>ppp</application>.</para> - </listitem> - - <listitem> - <para>The netmask you should use. If your ISP has not - provided you with one, you can safely use <hostid - role="netmask">255.255.255.0</hostid>.</para> - </listitem> - - <listitem> - <para>If your ISP provides you with a static IP address and - hostname, you can enter it. Otherwise, we simply let the - peer assign whatever IP address it sees fit.</para> - </listitem> - </itemizedlist> - - <para>If you do not have any of the required information, contact - your ISP and make sure they provide it to you.</para> - </sect3> - - <sect3> - <title>Preparing the Kernel</title> - - <para>As previously mentioned, <application>ppp</application> - users the <devicename>tun</devicename> device. It is necessary - to make sure that your kernel has support for this device - compiled into it.</para> - - <para>To check, go to your kernel compile directory - (<filename>/sys/i386/conf</filename> or - <filename>/sys/pc98/conf</filename>) and examine your - configuration file. It should have the following line somewhere - in it:</para> - - <programlisting> -pseudo-device tun 1</programlisting> - - <para>If this line is not present, you will need to add it to the - configuration file and recompile your kernel. The stock - <filename>GENERIC</filename> kernel has this included, so if you - have not installed a custom kernel or do not have a - <filename>/sys</filename> directory, you do not have to change - anything. If you do need to recompile your kernel, please refer - to the <link linkend="kernelconfig">kernel configuration</link> - section for more information.</para> - - <para>You can check how many tunnel devices your current kernel - has by typing the following:</para> - - <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> - - <para>This case shows four tunnel devices, two of which are - currently configured and being used. It should be noted that - the <literal>RUNNING</literal> flag above indicates that the - interface has been used at some point—it is not an error - if your interface does not show up as - <literal>RUNNING</literal>.</para> - - <para>If for some reason you have a kernel that does not have the - <devicename>tun</devicename> device in it and cannot recompile - the kernel, all is not lost. You should be able to dynamically - load the code. Please refer to the appropriate - &man.modload.8; and &man.lkm.4; man pages for further - details.</para> - </sect3> - - <sect3> - <title>Check the <devicename>tun</devicename> device</title> - - <para>Under normal circumstances, most users will only require one - <devicename>tun</devicename> device - (<filename>/dev/tun0</filename>). If you have specified more - than one on the <literal>pseudo-device</literal> line for - <devicename>tun</devicename> in your kernel configuration file, - then alter all references to <devicename>tun0</devicename> below - to reflect whichever device number you are using (e.g., - <devicename>tun2</devicename>).</para> - - <para>The easiest way to make sure that the - <devicename>tun0</devicename> device is configured correctly, - is to remake the device. This process is quite easy. To remake - the device, do the following:</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>./MAKEDEV tun0</userinput></screen> - - <para>If you need 16 tunnel devices in your kernel, you will need - to create them. This can be done by executing the following - commands:</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>./MAKEDEV tun15</userinput></screen> - - <para>To confirm that the kernel is configured correctly, issue - the follow command and compare the results:</para> - - <screen>&prompt.root; <userinput>ifconfig tun0</userinput> -tun0: flags=8050<POINTOPOINT,RUNNING,MULTICAST> mut 1500</screen> - - <para>The <literal>RUNNING</literal> flag may not yet be set, in - which case you will see:</para> - - <screen>&prompt.root; <userinput>ifconfig tun0</userinput> -tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500</screen> - </sect3> - - <sect3> - <title>Name Resolution Configuration</title> - - <para>The resolver is the part of the system that turns IP - addresses into hostnames and vice versa. It can be configured - to look for maps that describe IP to hostname mappings in one of - two places. The first is a file called - <filename>/etc/hosts</filename>. Read &man.hosts.5; for more - information. The second is the Internet Domain Name Service - (DNS), a distributed data base, the discussion of which is - beyond the scope of this document.</para> - - <para>The resolver is a set of system calls that do the name - mappings, but you have to tell them where to find their - information. You do this by first editing the file - <filename>/etc/host.conf</filename>. Do <emphasis>not</emphasis> - call this file <filename>/etc/hosts.conf</filename> (note the - extra <literal>s</literal>) as the results can be - confusing.</para> - - <sect4> - <title>Edit <filename>/etc/host.conf</filename></title> - - <para>This file should contain the following two lines (in this - order):</para> - - <programlisting> -hosts -bind</programlisting> - - <para>These instruct the resolver to first look in the file - <filename>/etc/hosts</filename>, and then to consult the DNS - if the name was not found.</para> - </sect4> - - <sect4> - <title>Edit <filename>/etc/hosts</filename></title> - - <para>This file should contain the IP addresses and names of - machines on your network. At a bare minimum it should contain - entries for the machine which will be running ppp. Assuming - that your machine is called <hostid - role="fqdn">foo.bar.com</hostid> with the IP address <hostid - role="ipaddr">10.0.0.1</hostid>, - <filename>/etc/hosts</filename> should contain:</para> - - <programlisting> -127.0.0.1 localhost.bar.com localhost -127.0.0.1 localhost.bar.com. -10.0.0.1 foo.bar.com foo -10.0.0.1 foo.bar.com.</programlisting> - - <para>The first two lines define the alias - <hostid>localhost</hostid> as a synonym for the current - machine. Regardless of your own IP address, the IP address - for this line should always be <hostid - role="ipaddr">127.0.0.1</hostid>. The second two lines map - the name <hostid role="fqdn">foo.bar.com</hostid> (and the - shorthand <hostid>foo</hostid>) to the IP address <hostid - role="ipaddr">10.0.0.1</hostid>.</para> - - <para>If your provider allocates you a static IP address and - name, use them in place of the <hostid - role="ipaddr">10.0.0.1</hostid> entry.</para> - </sect4> - - <sect4> - <title>Edit <filename>/etc/resolv.conf</filename></title> - - <para>The <filename>/etc/resolv.conf</filename> file tells the - resolver how to behave. If you are running your own DNS, you - may leave this file empty. Normally, you will need to enter - the following line(s):</para> - - <programlisting> -domain <replaceable>bar.com</replaceable> -nameserver <replaceable>x.x.x.x</replaceable> -nameserver <replaceable>y.y.y.y</replaceable></programlisting> - - <para>The <hostid - role="ipaddr"><replaceable>x.x.x.x</replaceable></hostid> and - <hostid role="ipaddr"><replaceable>y.y.y.y</replaceable></hostid> - addresses are those given to you by your ISP. Add as many - <literal>nameserver</literal> lines as your ISP provides. The - <literal>domain</literal> line defaults to your hostname's - domain, and is probably unnecessary. Refer to the - &man.resolv.conf.5; manual page for details of other possible - entries in this file.</para> - - <para>If you are running PPP version 2 or greater, the - <command>enable dns</command> command will tell PPP to request - that your ISP confirms the nameserver values. If your ISP - supplies different addresses (or if there are no nameserver - lines in <filename>/etc/resolv.conf</filename>), PPP will - rewrite the file with the ISP-supplied values.</para> - </sect4> - </sect3> - - <sect3> - <title><application>PPP</application> Configuration</title> - - <para>Both <command>ppp</command> and <command>pppd</command> - (the kernel level implementation of PPP) use the configuration - files located in the <filename>/etc/ppp</filename> directory. - The sample configuration files provided are a good reference, - so do not delete them.</para> - - <para>Configuring <command>ppp</command> requires that you edit a - number of files, depending on your requirements. What you put - in them depends to some extent on whether your ISP allocates IP - addresses statically (i.e., you get given one IP address, and - always use that one) or dynamically (i.e., your IP address - changes each time you connect to your ISP).</para> - - <sect4 id="userppp-staticIP"> - <title>PPP and Static IP Addresses</title> - - <para>You will need to create a configuration file called - <filename>/etc/ppp/ppp.conf</filename>. It should look - similar to the example below.</para> - - <note> - <para>Lines that end in a <literal>:</literal> start in the - first column, all other lines should be indented as shown - using spaces or tabs.</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 "(123) 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>Do not include the line numbers, they are just for - reference in this discussion.</para> - - <variablelist> - <varlistentry> - <term>Line 1:</term> - - <listitem> - <para>Identifies the default entry. Commands in this - entry are executed automatically when ppp is run.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Line 2:</term> - - <listitem> - <para>Identifies the device to which the modem is - connected. <devicename>COM1</devicename> is - <filename>/dev/cuaa0</filename> and - <devicename>COM2</devicename> is - <filename>/dev/cuaa1</filename>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Line 3:</term> - - <listitem> - <para>Sets the speed you want to connect at. If 115200 - does not work (it should with any reasonably new modem), - try 38400 instead.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Line 4:</term> - - <listitem> - <para>The dial string. User PPP uses an expect-send - syntax similar to the &man.chat.8; program. Refer to - the manual page for information on the features of this - language.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Line 5:</term> - - <listitem> - <para>Identifies an entry for a provider called - <quote>provider</quote>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Line 6:</term> - - <listitem> - <para>Sets the phone number for this provider. Multiple - phone numbers may be specified using the colon - (<literal>:</literal>) or pipe character - (<literal>|</literal>)as a separator. The difference - between the two separators is described in &man.ppp.8;. - To summarize, if you want to rotate through the numbers, - use a colon. If you want to always attempt to dial the - first number first and only use the other numbers if the - first number fails, use the pipe character. Always - quote the entire set of phone numbers as shown.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Line 7:</term> - - <listitem> - <para>The login string is of the same chat-like syntax as - the dial string. In this example, the string works for - a service whose login session looks like this:</para> - - <screen>J. Random Provider -login: <replaceable>foo</replaceable> -password: <replaceable>bar</replaceable> -protocol: ppp</screen> - - <para>You will need to alter this script to suit your own - needs. When you write this script for the first time, - you should enable <quote>chat</quote> logging to ensure - that the conversation is going as expected.</para> - - <para>If you are using PAP or CHAP, there will be no login - at this point, so your login string can be left blank. - See <link linkend="userppp-PAPnCHAP">PAP and CHAP - authentication</link> for further details.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Line 8:</term> - - <listitem> - <para>Sets the default timeout (in seconds) for the - connection. Here, the connection will be closed - automatically after 300 seconds of inactivity. If you - never want to timeout, set this value to zero.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Line 9:</term> - - <listitem> - <para>Sets the interface addresses. The string - <replaceable>x.x.x.x</replaceable> should be replaced by - the IP address that your provider has allocated to you. - The string <replaceable>y.y.y.y</replaceable> should be - replaced by the IP address that your ISP indicated for - their gateway (the machine to which you connect). If - your ISP hasn't given you a gateway address, use <hostid - role="netmask">10.0.0.2/0</hostid>. If you need to use - a <quote>guessed</quote> address, make sure that you - create an entry in - <filename>/etc/ppp/ppp.linkup</filename> as per the - instructions for <link linkend="userppp-dynamicIP">PPP - and Dynamic IP addresses</link>. If this line is - omitted, <command>ppp</command> cannot run in - <option>-auto</option> or <option>-dynamic</option> - mode.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Line 10:</term> - - <listitem> - <para>Adds a default route to your ISP's gateway. The - special word <literal>HISADDR</literal> is replaced with - the gateway address specified on line 9. It is - important that this line appears after line 9, - otherwise <literal>HISADDR</literal> will not yet be - initialized.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Line 11:</term> - - <listitem> - <para>This line tells PPP to ask your ISP to confirm that - your nameserver addresses are correct. If your ISP - supports this facility, PPP can then update - <filename>/etc/resolv.conf</filename> with the correct - nameserver entries.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>It is not necessary to add an entry to - <filename>ppp.linkup</filename> when you have a static IP - address as your routing table entries are already correct - before you connect. You may however wish to create an entry - to invoke programs after connection. This is explained later - with the sendmail example.</para> - - <para>Example configuration files can be found in the - <filename>/etc/ppp</filename> directory.</para> - </sect4> - - <sect4 id="userppp-dynamicIP"> - <title>PPP and Dynamic IP Addresses</title> - - <para>If your service provider does not assign static IP - addresses, <command>ppp</command> can be configured to - negotiate the local and remote addresses. This is done by - <quote>guessing</quote> an IP address and allowing - <command>ppp</command> to set it up correctly using the IP - Configuration Protocol (IPCP) after connecting. The - <filename>ppp.conf</filename> configuration is the same as - <link linkend="userppp-staticIP">PPP and Static IP - Addresses</link>, with the following change:</para> - - <programlisting> -9 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0</programlisting> - - <para>Again, do not include the line numbers, they are just for - reference. Indentation of at least one space is - required.</para> - - <variablelist> - <varlistentry> - <term>Line 9:</term> - - <listitem> - <para>The number after the <literal>/</literal> character - is the number of bits of the address that ppp will - insist on. You may wish to use IP numbers more - appropriate to your circumstances, but the above example - will always work.</para> - - <para>The last argument (<literal>0.0.0.0</literal>) tells - PPP to negotiate using address <hostid - role="ipaddr">0.0.0.0</hostid> rather than <hostid - role="ipaddr">10.0.0.1</hostid>. Do not use - <literal>0.0.0.0</literal> as the first argument to - <command>set ifaddr</command> as it prevents PPP from - setting up an initial route in <option>-auto</option> - mode.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>If you are running version 1.x of PPP, you will also need - to create an entry in <filename>/etc/ppp/ppp.linkup</filename>. - <filename>ppp.linkup</filename> is used after a connection has - been established. At this point, <command>ppp</command> will - know what IP addresses should <emphasis>really</emphasis> be - used. The following entry will delete the existing bogus - routes, and create correct ones:</para> - - <programlisting> -1 provider: -2 delete ALL -3 add 0 0 HISADDR</programlisting> - - <variablelist> - <varlistentry> - <term>Line 1:</term> - - <listitem> - <para>On establishing a connection, <command>ppp</command> - will look for an entry in <filename>ppp.linkup</filename> - according to the following rules: First, try to match - the same label as we used in - <filename>ppp.conf</filename>. If that fails, look for - an entry for the IP address of our gateway. This entry - is a four-octet IP style label. If we still have not - found an entry, look for the <literal>MYADDR</literal> - entry.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Line 2:</term> - - <listitem> - <para>This line tells <command>ppp</command> to delete all - of the existing routes for the acquired - <devicename>tun</devicename> interface (except the - direct route entry).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Line 3:</term> - - <listitem> - <para>This line tells <command>ppp</command> to add a - default route that points to <literal>HISADDR</literal>. - <literal>HISADDR</literal> will be replaced with the IP - number of the gateway as negotiated in the IPCP.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>See the pmdemand entry in the files - <filename>/etc/ppp/ppp.conf.sample</filename> and - <filename>/etc/ppp/ppp.linkup.sample</filename> for a - detailed example.</para> - - <para>Version 2 of PPP introduces <quote>sticky routes</quote>. - Any <literal>add</literal> or <literal>delete</literal> lines - that contain <literal>MYADDR</literal> or - <literal>HISADDR</literal> will be remembered, and any time - the actual values of <literal>MYADDR</literal> or - <literal>HISADDR</literal> change, the routes will be - reapplied. This removes the necessity of repeating these - lines in <filename>ppp.linkup</filename>.</para> - </sect4> - - <sect4> - <title>Receiving Incoming Calls</title> - - <para>When you configure <application>ppp</application> to - receive incoming calls on a machine connected to a LAN, you - must decide if you wish to forward packets to the LAN. If you - do, you should allocate the peer an IP number from your LAN's - subnet, and use the command <command>enable proxy</command> in - your <filename>/etc/ppp/ppp.conf</filename> file. You should - also confirm that the <filename>/etc/rc.conf</filename> file - contains the following:</para> - - <programlisting> -gateway="YES"</programlisting> - - <sect5> - <title>Which getty?</title> - - <para><link linkend="dialup">Configuring FreeBSD for Dial-up - Services</link> provides a good description on enabling - dial-up services using getty.</para> - - <para>An alternative to <command>getty</command> is <ulink - url="http://www.leo.org/~doering/mgetty/index.html">mgetty</ulink>, - a smarter version of <command>getty</command> designed with - dial-up lines in mind.</para> - - <para>The advantages of using <command>mgetty</command> is - that it actively <emphasis>talks</emphasis> to modems, - meaning if port is turned off in - <filename>/etc/ttys</filename> then your modem will not answer - the phone.</para> - - <para>Later versions of <command>mgetty</command> (from - 0.99beta onwards) also support the automatic detection of - PPP streams, allowing your clients script-less access to - your server.</para> - - <para>Refer to <link linkend="userppp-mgetty">Mgetty and - AutoPPP</link> for more information on - <command>mgetty</command>.</para> - </sect5> - - <sect5> - <title><application>PPP</application> Permissions</title> - - <para>The <command>ppp</command> command must normally be run - as user id 0. If however, you wish to allow - <command>ppp</command> to run in server mode as a normal - user by executing <command>ppp</command> as described below, - that user must be given permission to run - <command>ppp</command> by adding them to the - <username>network</username> group in - <filename>/etc/group</filename>.</para> - - <para>You will also need to give them access to one or more - sections of the configuration file using the - <command>allow</command> command:</para> - - <programlisting> -allow users fred mary</programlisting> - - <para>If this command is used in the <literal>default</literal> - section, it gives the specified users access to - everything.</para> - </sect5> - - <sect5> - <title>PPP Shells for Dynamic-IP Users</title> - - <para>Create a file called - <filename>/etc/ppp/ppp-shell</filename> containing the - following:</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 for $CALLEDAS on $TTY" -echo "Starting PPP for $IDENT" - -exec /usr/sbin/ppp -direct $IDENT</programlisting> - - <para>This script should be executable. Now make a symbolic - link called <filename>ppp-dialup</filename> to this script - using the following commands:</para> - - <screen>&prompt.root; <userinput>ln -s ppp-shell /etc/ppp/ppp-dialup</userinput></screen> - - <para>You should use this script as the - <emphasis>shell</emphasis> for all of your dialup users. - This is an example from <filename>/etc/password</filename> - for a dialup PPP user with username - <username>pchilds</username> (remember don't directly edit - the password file, use <command>vipw</command>).</para> - - <programlisting> -pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup</programlisting> - - <para>Create a <filename>/home/ppp</filename> directory that - is world readable containing the following 0 byte - files:</para> - - <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> - - <para>which prevents <filename>/etc/motd</filename> from being - displayed.</para> - </sect5> - - <sect5> - <title>PPP shells for Static-IP Users</title> - - <para>Create the <filename>ppp-shell</filename> file as above - and for each account with statically assigned IPs create a - symbolic link to <filename>ppp-shell</filename>.</para> - - <para>For example, if you have three dialup customers - <username>fred</username>, <username>sam</username>, and - <username>mary</username>, that you route class C networks - for, you would type the following:</para> - - <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> - - <para>Each of these users dialup accounts should have their - shell set to the symbolic link created above (i.e., - <username>mary</username>'s shell should be - <filename>/etc/ppp/ppp-mary</filename>).</para> - </sect5> - - <sect5> - <title>Setting up ppp.conf for dynamic-IP users</title> - - <para>The <filename>/etc/ppp/ppp.conf</filename> file should - contain something along the lines of:</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>The indenting is important.</para> - </note> - - <para>The <literal>default:</literal> section is loaded for - each session. For each dialup line enabled in - <filename>/etc/ttys</filename> create an entry similar to - the one for <literal>ttyd0:</literal> above. Each line - should get a unique IP address from your pool of IP - addresses for dynamic users.</para> - </sect5> - - <sect5> - <title>Setting up <filename>ppp.conf</filename> for static-IP - users</title> - - <para>Along with the contents of the sample - <filename>/etc/ppp/ppp.conf</filename> above you should add - a section for each of the statically assigned dialup users. - We will continue with our <username>fred</username>, - <username>sam</username>, and <username>mary</username> - example.</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>The file <filename>/etc/ppp/ppp.linkup</filename> should - also contain routing information for each static IP user if - required. The line below would add a route for the <hostid - role="ipaddr">203.14.101.0</hostid> class C via the - client's ppp link.</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> - </sect5> - </sect4> - - <sect4> - <title>More on <command>mgetty</command>, AutoPPP, and MS - extensions</title> - - <sect5 id="userppp-mgetty"> - <title><command>mgetty</command> and AutoPPP</title> - - <para>Configuring and compiling <command>mgetty</command> with - the <literal>AUTO_PPP</literal> option enabled allows - <command>mgetty</command> to detect the LCP phase of PPP - connections and automatically spawn off a ppp shell. - However, since the default login/password sequence does not - occur it is necessary to authenticate users using either PAP - or CHAP.</para> - - <para>This section assumes the user has successfully - configured, compiled, and installed a version of - <command>mgetty</command> with the - <literal>AUTO_PPP</literal> option (v0.99beta or - later).</para> - - <para>Make sure your - <filename>/usr/local/etc/mgetty+sendfax/login.config</filename> - file has the following in it:</para> - - <programlisting> -/AutoPPP/ - - /etc/ppp/ppp-pap-dialup</programlisting> - - <para>This will tell <command>mgetty</command> to run the - <filename>ppp-pap-dialup</filename> script for detected PPP - connections.</para> - - <para>Create a file called - <filename>/etc/ppp/ppp-pap-dialup</filename> containing the - following (the file should be executable):</para> - - <programlisting> -#!/bin/sh -exec /usr/sbin/ppp -direct pap$IDENT</programlisting> - - <para>For each dialup line enabled in - <filename>/etc/ttys</filename>, create a corresponding entry - in <filename>/etc/ppp/ppp.conf</filename>. This will - happily co-exist with the definitions we created - above.</para> - - <programlisting> -pap: - enable pap - set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40 - enable proxy</programlisting> - - <para>Each user logging in with this method will need to have - a username/password in - <filename>/etc/ppp/ppp.secret</filename> file, or - alternatively add the following option to authenticate users - via PAP from <filename>/etc/password</filename> file.</para> - - <programlisting> -enable passwdauth</programlisting> - - <para>If you wish to assign some users a static IP number, you - can specify the number as the third argument in - <filename>/etc/ppp/ppp.secret</filename>. See - <filename>/etc/ppp/ppp.secret.sample</filename> for - examples.</para> - </sect5> - - <sect5> - <title>MS extensions</title> - - <para>It is possible to configure PPP to supply DNS and - NetBIOS nameserver addresses on demand.</para> - - <para>To enable these extensions with PPP version 1.x, the - following lines might be added to the relevant section of - <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>And for PPP version 2 and above:</para> - - <programlisting> -accept dns -set dns 203.14.100.1 203.14.100.2 -set nbns 203.14.100.5</programlisting> - - <para>This will tell the clients the primary and secondary - name server addresses, and a netbios nameserver host.</para> - - <para>In version 2 and above, if the - <literal>set dns</literal> line is omitted, PPP will use the - values found in <filename>/etc/resolv.conf</filename>.</para> - </sect5> - </sect4> - - <sect4 id="userppp-PAPnCHAP"> - <title>PAP and CHAP authentication</title> - - <para>Some ISPs set their system up so that the authentication - part of your connection is done using either of the PAP or - CHAP authentication mechanisms. If this is the case, your ISP - will not give a <prompt>login:</prompt> prompt when you - connect, but will start talking PPP immediately.</para> - - <para>PAP is less secure than CHAP, but security is not normally - an issue here as passwords, although being sent as plain text - with PAP, are being transmitted down a serial line only. - There's not much room for crackers to - <quote>eavesdrop</quote>.</para> - - <para>Referring back to the <link linkend="userppp-staticIP">PPP - and Static IP addresses</link> or <link - linkend="userppp-dynamicIP">PPP and Dynamic IP addresses</link> - sections, the following alterations must be made:</para> - - <programlisting> -7 set login -… -12 set authname <replaceable>MyUserName</replaceable> -13 set authkey <replaceable>MyPassword</replaceable></programlisting> - - <para>As always, do not include the line numbers, they are just - for reference in this discussion. Indentation of at least one - space is required.</para> - - <variablelist> - <varlistentry> - <term>Line 7:</term> - - <listitem> - <para>Your ISP will not normally require that you log into - the server if you're using PAP or CHAP. You must - therefore disable your <quote>set login</quote> - string.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Line 12:</term> - - <listitem> - <para>This line specifies your PAP/CHAP user name. You - will need to insert the correct value for - <replaceable>MyUserName</replaceable>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Line 13:</term> - - <listitem> - <para>This line specifies your PAP/CHAP password. You - will need to insert the correct value for - <replaceable>MyPassword</replaceable>. You may want to - add an additional line, such as:</para> - - <programlisting> -15 accept PAP</programlisting> - - <para>or</para> - - <programlisting> -15 accept CHAP</programlisting> - - <para>to make it obvious that this is the intention, but - PAP and CHAP are both accepted by default.</para> - </listitem> - </varlistentry> - </variablelist> - </sect4> - - <sect4> - <title>Changing your <command>ppp</command> configuration on the - fly</title> - - <para>It is possible to talk to the <command>ppp</command> - program while it is running in the background, but only if a - suitable diagnostic port has been set up. To do this, add the - following line to your configuration:</para> - - <programlisting> -set server /var/run/ppp-tun%d DiagnosticPassword 0177</programlisting> - - <para>This will tell PPP to listen to the specified unix-domain - socket, asking clients for the specified password before - allowing access. The <literal>%d</literal> in the name is - replaced with the <devicename>tun</devicename> device number - that is in use.</para> - - <para>Once a socket has been set up, the &man.pppctl.8; program - may be used in scripts that wish to manipulate the running - program.</para> - </sect4> - </sect3> - - <sect3 id="userppp-final"> - <title>Final system configuration</title> - - <para>You now have <command>ppp</command> configured, but there - are a few more things to do before it is ready to work. They - all involve editing the <filename>/etc/rc.conf</filename> - file.</para> - - <para>Working from the top down in this file, make sure the - <literal>hostname=</literal> line is set, e.g.:</para> - - <programlisting> -hostname="foo.bar.com"</programlisting> - - <para>If your ISP has supplied you with a static IP address and - name, it's probably best that you use this name as your host - name.</para> - - <para>Look for the <literal>network_interfaces</literal> variable. - If you want to configure your system to dial your ISP on demand, - make sure the <devicename>tun0</devicename> device is added to - the list, otherwise remove it.</para> - - <programlisting> -network_interfaces="lo0 tun0" ifconfig_tun0=</programlisting> - - <note> - <para>The <literal>ifconfig_tun0</literal> variable should be - empty, and a file called - <filename>/etc/start_if.tun0</filename> should be created. - This file should contain the line:</para> - - <programlisting> -ppp -auto mysystem</programlisting> - - <para>This script is executed at network configuration time, - starting your ppp daemon in automatic mode. If you have a LAN - for which this machine is a gateway, you may also wish to use - the <option>-alias</option> switch. Refer to the manual page - for further details.</para> - </note> - - <para>Set the router program to <literal>NO</literal> with - following line in your <filename>/etc/rc.conf</filename>:</para> - - <programlisting> -router_enable="NO"</programlisting> - - <para>It is important that the <command>routed</command> daemon is - not started (it is started by default), as it - <command>routed</command> tends to delete the default routing - table entries created by <command>ppp</command>.</para> - - <para>It is probably worth your while ensuring that the - <literal>sendmail_flags</literal> line does not include the - <option>-q</option> option, otherwise - <command>sendmail</command> will attempt to do a network lookup - every now and then, possibly causing your machine to dial out. - You may try:</para> - - <programlisting> -sendmail_flags="-bd"</programlisting> - - <para>The downside of this is that you must force - <command>sendmail</command> to re-examine the mail queue - whenever the ppp link is up by typing:</para> - - <screen>&prompt.root; <userinput>/usr/sbin/sendmail -q</userinput></screen> - - <para>You may wish to use the <command>!bg</command> command in - <filename>ppp.linkup</filename> to do this automatically:</para> - - <programlisting> -1 provider: -2 delete ALL -3 add 0 0 HISADDR -4 !bg sendmail -bd -q30m</programlisting> - - <para>If you don't like this, it is possible to set up a - <quote>dfilter</quote> to block SMTP traffic. Refer to the - sample files for further details.</para> - - <para>Now the only thing left to do is reboot the machine.</para> - - <para>All that is left is to reboot the machine. After rebooting, - you can now either type:</para> - - <screen>&prompt.root; <userinput>ppp</userinput></screen> - - <para>and then <command>dial provider</command> to start the PPP - session, or, if you want <command>ppp</command> to establish - sessions automatically when there is outbound traffic (and - you have not created the <filename>start_if.tun0</filename> - script), type:</para> - - <screen>&prompt.root; <userinput>ppp -auto provider</userinput></screen> - </sect3> - - <sect3> - <title>Summary</title> - - <para>To recap, the following steps are necessary when setting up - ppp for the first time:</para> - - <para>Client side:</para> - - <procedure> - <step> - <para>Ensure that the <devicename>tun</devicename> device is - built into your kernel.</para> - </step> - - <step> - <para>Ensure that the - <filename>tun<replaceable>X</replaceable></filename> device - file is available in the <filename>/dev</filename> - directory.</para> - </step> - - <step> - <para>Create an entry in - <filename>/etc/ppp/ppp.conf</filename>. The - <filename>pmdemand</filename> example should suffice for - most ISPs.</para> - </step> - - <step> - <para>If you have a dynamic IP address, create an entry in - <filename>/etc/ppp/ppp.linkup</filename>.</para> - </step> - - <step> - <para>Update your <filename>/etc/rc.conf</filename> - file.</para> - </step> - - <step> - <para>Create a <filename>start_if.tun0</filename> script if - you require demand dialing.</para> - </step> - </procedure> - - <para>Server side:</para> - - <procedure> - <step> - <para>Ensure that the <devicename>tun</devicename> device is - built into your kernel.</para> - </step> - - <step> - <para>Ensure that the - <filename>tun<replaceable>X</replaceable></filename> device - file is available in the <filename>/dev</filename> - directory.</para> - </step> - - <step> - <para>Create an entry in <filename>/etc/passwd</filename> - (using the &man.vipw.8; program).</para> - </step> - - <step> - <para>Create a profile in this users home directory that runs - <command>ppp -direct direct-server</command> or - similar.</para> - </step> - - <step> - <para>Create an entry in - <filename>/etc/ppp/ppp.conf</filename>. The - <filename>direct-server</filename> example should - suffice.</para> - </step> - - <step> - <para>Create an entry in - <filename>/etc/ppp/ppp.linkup</filename>.</para> - </step> - - <step> - <para>Update your <filename>/etc/rc.conf</filename> - file.</para> - </step> - </procedure> - </sect3> - </sect2> - </sect1> - - <sect1 id="ppp"> - <title>Using Kernel PPP</title> - - <para><emphasis>Parts originally contributed by &a.gena; and - &a.rhuff;.</emphasis></para> - - <sect2> - <title>Setting up Kernel PPP</title> - - <para>Before you start setting up PPP on your machine make sure - that <command>pppd</command> is located in - <filename>/usr/sbin</filename> and the directory - <filename>/etc/ppp</filename> exists.</para> - - <para><command>pppd</command> can work in two modes:</para> - - <orderedlist> - <listitem> - <para>As a <quote>client</quote>, i.e., you want to connect your - machine to the outside world via a PPP serial connection or - modem line.</para> - </listitem> - - <listitem> - <para>as a <quote>server</quote>, i.e. your machine is located on - the network and used to connect other computers using - PPP.</para> - </listitem> - </orderedlist> - - <para>In both cases you will need to set up an options file - (<filename>/etc/ppp/options</filename> or - <filename>~/.ppprc</filename> if you have more than one user on - your machine that uses PPP).</para> - - <para>You also will need some modem/serial software (preferably - kermit) so you can dial and establish a connection with the - remote host.</para> - </sect2> - - <sect2> - <title>Using <command>pppd</command> as a client</title> - - <para>I used the following <filename>/etc/ppp/options</filename> to - connect to CISCO terminal server PPP line.</para> - - <programlisting> -crtscts # enable hardware flow control -modem # modem control line -noipdefault # remote PPP server must supply your IP address. - # if the remote host doesn't send your IP during IPCP - # negotiation , remove this option -passive # wait for LCP packets -domain ppp.foo.com # put your domain name here - -:<remote_ip> # put the IP of remote PPP host here - # it will be used to route packets via PPP link - # if you didn't specified the noipdefault option - # change this line to <local_ip>:<remote_ip> - -defaultroute # put this if you want that PPP server will be your - # default router</programlisting> - - <para>To connect:</para> - - <procedure> - <step> - <para>Dial to the remote host using kermit (or some other modem - program), and enter your user name and password (or whatever - is needed to enable PPP on the remote host).</para> - </step> - - <step> - <para>Exit kermit (without hanging up the line).</para> - </step> - - <step> - <para>Enter the following:</para> - - <screen>&prompt.root; <userinput>/usr/src/usr.sbin/pppd.new/pppd <replaceable>/dev/tty01</replaceable> <replaceable>19200</replaceable></userinput></screen> - - <para>Be sure to use the appropriate speed and device name.</para> - </step> - </procedure> - - <para>Now your computer is connected with PPP. If the connection - fails, you can add the <option>debug</option> option to the - <filename>/etc/ppp/options</filename> file and check messages on - the console to track the problem.</para> - - <para>Following <filename>/etc/ppp/pppup</filename> script will make - all 3 stages automatically:</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 'killing 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 'killing 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> is a kermit script - that dials and makes all necessary authorization on the remote - host (an example of such a script is attached to the end of this - document).</para> - - <para>Use the following <filename>/etc/ppp/pppdown</filename> script - to disconnect the PPP line:</para> - - <programlisting> -#!/bin/sh -pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'` -if [ X${pid} != "X" ] ; then - echo 'killing 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 'killing 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>Check to see if PPP is still running by executing - <filename>/usr/etc/ppp/ppptest</filename>, which should look like - this:</para> - - <programlisting> -#!/bin/sh -pid=`ps ax| grep pppd |grep -v grep|awk '{print $1;}'` -if [ X${pid} != "X" ] ; then - echo 'pppd running: PID=' ${pid-NONE} -else - echo 'No pppd running.' -fi -set -x -netstat -n -I ppp0 -ifconfig ppp0</programlisting> - - <para>To hang up the modem, execute - <filename>/etc/ppp/kermit.hup</filename>, which should - contain:</para> - - <programlisting> -set line /dev/tty01 ; put your modem device here -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>Here is an alternate method using <command>chat</command> - instead of <command>kermit</command>.</para> - - <para>The following two files are sufficient to accomplish a pppd - connection.</para> - - <para><filename>/etc/ppp/options</filename>:</para> - - <programlisting> -/dev/cuaa1 115200 - -crtscts # enable hardware flow control -modem # modem control line -connect "/usr/bin/chat -f /etc/ppp/login.chat.script" -noipdefault # remote PPP serve must supply your IP address. - # if the remote host doesn't send your IP during - # IPCP negotiation, remove this option -passive # wait for LCP packets -domain <your.domain> # put your domain name here - -: # put the IP of remote PPP host here - # it will be used to route packets via PPP link - # if you didn't specified the noipdefault option - # change this line to <local_ip>:<remote_ip> - -defaultroute # put this if you want that PPP server will be - # your default router</programlisting> - - <para><filename>/etc/ppp/login.chat.script</filename>:</para> - - <note> - <para>The following should go on a single line.</para> - </note> - - <programlisting> -ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT<phone.number> - CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: <login-id> - TIMEOUT 5 sword: <password></programlisting> - - <para>Once these are installed and modified correctly, all you need - to do is run <command>pppd</command>, like so:</para> - - <screen>&prompt.root; <userinput>pppd</userinput></screen> - - <para>This sample is based primarily on information provided by: - Trev Roydhouse <Trev.Roydhouse@f401.n711.z3.fidonet.org> - and used with permission.</para> - </sect2> - - <sect2> - <title>Using <command>pppd</command> as a server</title> - - <para><filename>/etc/ppp/options</filename> should contain something - similar to the following:</para> - - <programlisting> -crtscts # Hardware flow control -netmask 255.255.255.0 # netmask ( not required ) -192.114.208.20:192.114.208.165 # ip's of local and remote hosts - # local ip must be different from one - # you assigned to the ethernet ( or other ) - # interface on your machine. - # remote IP is ip address that will be - # assigned to the remote machine -domain ppp.foo.com # your domain -passive # wait for LCP -modem # modem line</programlisting> - - <para>The following <filename>/etc/ppp/pppserv</filename> script - will enable tell <application>pppd</application> to behave as a - server:</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 'killing 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 'killing kermit, PID=' ${pid} - kill -9 ${pid} -fi - -# reset ppp interface -ifconfig ppp0 down -ifconfig ppp0 delete - -# enable autoanswer mode -kermit -y /etc/ppp/kermit.ans - -# run ppp -pppd /dev/tty01 19200</programlisting> - - <para>Use this <filename>/etc/ppp/pppservdown</filename> script to - stop the server:</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 'killing 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 'killing kermit, PID=' ${pid} - kill -9 ${pid} -fi -ifconfig ppp0 down -ifconfig ppp0 delete - -kermit -y /etc/ppp/kermit.noans</programlisting> - - <para>The following kermit script - (<filename>/etc/ppp/kermit.ans</filename>) will enable/disable - autoanswer mode on your modem. It should look like this:</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 ; change this to out ATS0=0\13 if you want to disable - ; autoanswer mod -inp 5 OK -echo \13 -exit</programlisting> - - <para>A script named <filename>/etc/ppp/kermit.dial</filename> is - used for dialing and authenticating on the remote host. You will - need to customize it for your needs. Put your login and password - in this script; you will also need to change the input statement - depending on responses from your modem and remote host.</para> - - <programlisting> -; -; put the com line attached to the modem here: -; -set line /dev/tty01 -; -; put the modem speed here: -; -set speed 19200 -set file type binary ; full 8 bit file xfer -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 ; Then SET CARRIER if necessary, -set dial display on ; Then SET DIAL if necessary, -set input echo on -set input timeout proceed -set input case ignore -def \%x 0 ; login prompt counter -goto slhup - -:slcmd ; put the modem in command mode -echo Put the modem in command mode. -clear ; Clear unread characters from input buffer -pause 1 -output +++ ; hayes escape sequence -input 1 OK\13\10 ; wait for OK -if success goto slhup -output \13 -pause 1 -output at\13 -input 1 OK\13\10 -if fail goto slcmd ; if modem doesn't answer OK, try again - -:slhup ; hang up the phone -clear ; Clear unread characters from input buffer -pause 1 -echo Hanging up the phone. -output ath0\13 ; hayes command for on hook -input 2 OK\13\10 -if fail goto slcmd ; if no OK answer, put modem in command mode - -:sldial ; dial the number -pause 1 -echo Dialing. -output atdt9,550311\13\10 ; put phone number here -assign \%x 0 ; zero the time counter - -:look -clear ; Clear unread characters from input buffer -increment \%x ; Count the seconds -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 ; login -assign \%x 0 ; zero the time counter -pause 1 -echo Looking for login prompt. - -:slloop -increment \%x ; Count the seconds -clear ; Clear unread characters from input buffer -output \13 -; -; put your expected login prompt here: -; -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 ; try 10 times to get a login prompt -else goto slhup ; hang up and start again if 10 failures - -:sluid -; -; put your userid here: -; -output ppp-login\13 -input 1 {Password: } -; -; put your password here: -; -output ppp-password\13 -input 1 {Entering SLIP mode.} -echo -quit - -:slnodial -echo \7No dialtone. Check the telephone line!\7 -exit 1 - -; local variables: -; mode: csh -; comment-start: "; " -; comment-start-skip: "; " -; end:</programlisting> - </sect2> - </sect1> - - <sect1 id="pppoe"> - <title>Using PPP over Ethernet (PPPoE)</title> - - <para><emphasis>Contributed by &a.jim; (from <ulink - url="http://www-dev.node.to/freebsd/how-tos/how-to-freebsd-pppoe.html">node.to</ulink>) 10 Jan 2000.</emphasis></para> - - <para>The following describes how to set up PPP over Ethernet, a.k.a, - PPPoE.</para> - - <sect2> - <title>Prerequisites</title> - - <para>There are a few requirements that your system will need to meet - in order for PPPoE to function properly. They are:</para> - - <itemizedlist> - <listitem> - <para>Kernel source for FreeBSD 3.4 or later</para> - </listitem> - - <listitem> - <para><application>ppp</application> from FreeBSD 3.4 or later</para> - </listitem> - </itemizedlist> - </sect2> - - <sect2> - <title>Kernel Configuration</title> - - <para>You will need to set the following options in your kernel - configuration file and then <link linkend="kernelconfig">compile a new - kernel</link>.</para> - - <itemizedlist> - <listitem> - <para>options NETGRAPH</para> - </listitem> - </itemizedlist> - - <para>Optionally, you can add</para> - - <itemizedlist> - <listitem> - <para>options NETGRAPH_PPPOE</para> - </listitem> - <listitem> - <para>options NETGRAPH_SOCKET</para> - </listitem> - </itemizedlist> - - <para> - although if this functionality is not available at runtime, - <application>ppp</application> will load the relevant modules - on demand - </para> - </sect2> - - <sect2> - <title>Setting up <filename>ppp.conf</filename></title> - - <para>Here is an example of a working - <filename>ppp.conf</filename>:</para> - - <programlisting> -default: # or name_of_service_provider - set device PPPoE:xl1 # replace xl1 with your ethernet device - set mru 1492 - set mtu 1492 - set authname YOURLOGINNAME - set authkey YOURPASSWORD - set log Phase tun command # you can add more detailed logging if you wish - set dial - set login - set ifaddr 10.0.0.1/0 10.0.0.2/0 - add default HISADDR - nat enable yes # if you want to enable nat for your local net - -papchap: - set authname YOURLOGINNAME - set authkey YOURPASSWORD</programlisting> - - <para> - Care should be taken when running <ulink - url="../FAQ/ppp.html#PPPoEwithNAT">PPPoE with the - <option>-nat</option> option</ulink>. - </para> - - </sect2> - - <sect2> - <title>Running <application>PPP</application></title> - - <para>As root, you can run:</para> - - <screen>&prompt.root; <userinput>ppp -ddial name_of_service_provider</userinput></screen> - - </sect2> - - <sect2> - <title>Starting <application>PPP</application> at Boot</title> - - <para>Add the following to your <filename>/etc/rc.conf</filename> - file:</para> - - <programlisting> -ppp_enable="YES" -ppp_mode="ddial" -ppp_nat="YES" -ppp_profile="default" # or your provider</programlisting> - </sect2> - </sect1> - - <sect1 id="slip"> - <title>Using SLIP</title> - - <para><emphasis>Originally contributed by &a.asami; and - &a.ghelmer;, with input from &a.wilko; and - &a.piero;.</emphasis></para> - - <sect2 id="slipc"> - <title>Setting up a SLIP Client</title> - - <para>The following is one way to set up a FreeBSD machine for SLIP - on a static host network. For dynamic hostname assignments (i.e., - your address changes each time you dial up), you probably need to - do something much fancier.</para> - - <para>First, determine which serial port your modem is connected to. - I have a symbolic link to <filename>/dev/modem</filename> from - <filename>/dev/cuaa1</filename>, and only use the modem name in - my configuration files. It can become quite cumbersome when you - need to fix a bunch of files in <filename>/etc</filename> and - <filename>.kermrc</filename>'s all over the system!</para> - - <note> - <para><filename>/dev/cuaa0</filename> is - <devicename>COM1</devicename>, <filename>cuaa1</filename> is - <devicename>COM2</devicename>, etc.</para> - </note> - - <para>Make sure you have the following in your kernel configuration - file:</para> - - <programlisting> -pseudo-device sl 1</programlisting> - - <para>It is included in the <filename>GENERIC</filename> kernel, so - this should not be a problem unless you have deleted it.</para> - - <sect3> - <title>Things you have to do only once</title> - - <procedure> - <step> - <para>Add your home machine, the gateway and nameservers to - your <filename>/etc/hosts</filename> file. Mine looks like - this:</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> - </step> - - <step> - <para>Make sure you have <option>hosts</option> before - <option>bind</option> in your - <filename>/etc/host.conf</filename>. Otherwise, funny - things may happen.</para> - </step> - - <step> - <para>Edit the <filename>/etc/rc.conf</filename> file.</para> - - <orderedlist> - <listitem> - <para>Set your hostname by editing the line that - says:</para> - - <programlisting> -hostname=<quote>myname.my.domain</quote></programlisting> - - <para>You should give it your full Internet - hostname.</para> - </listitem> - - <listitem> - <para>Add sl0 to the list of network interfaces by - changing the line that says:</para> - - <programlisting> -network_interfaces="lo0"</programlisting> - - <para>to:</para> - - <programlisting> -network_interfaces=<quote>lo0 sl0</quote></programlisting> - </listitem> - - <listitem> - <para>Set the startup flags of sl0 by adding a - line:</para> - - <programlisting> -ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up"</programlisting> - </listitem> - - <listitem> - <para>Designate the default router by changing the - line:</para> - - <programlisting> -defaultrouter=<quote>NO</quote></programlisting> - - <para>to:</para> - - <programlisting> -defaultrouter=<quote>slip-gateway</quote></programlisting> - </listitem> - </orderedlist> - </step> - - <step> - <para>Make a file <filename>/etc/resolv.conf</filename> which - contains:</para> - - <programlisting> -domain HIP.Berkeley.EDU -nameserver 128.32.136.9 -nameserver 128.32.136.12</programlisting> - - <para>As you can see, these set up the nameserver hosts. Of - course, the actual domain names and addresses depend on your - environment.</para> - </step> - - <step> - <para>Set the password for root and toor (and any other - accounts that do not have a password). Use passwd or - &man.vipw.8;, do not edit the - <filename>/etc/passwd</filename> or - <filename>/etc/master.passwd</filename> files!</para> - </step> - - <step> - <para>Reboot your machine and make sure it comes up with the - correct hostname.</para> - </step> - </procedure> - </sect3> - - <sect3> - <title>Making a SLIP connection</title> - - <procedure> - <step> - <para>Dial up, type <command>slip</command> at the prompt, - enter your machine name and password. The things you need - to enter depends on your environment. I use kermit, with a - script like this:</para> - - <programlisting> -# kermit setup -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 -# The next macro will dial up and login -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>Of course, you have to change the hostname and password - to fit yours. After doing so, you can just type - <command>slip</command> from the kermit prompt to get - connected.</para> - - <note> - <para>Leaving your password in plain text anywhere in the - filesystem is generally a BAD idea. Do it at your own - risk.</para> - </note> - </step> - - <step> - <para>Leave the kermit there (you can suspend it by - <command>z</command>) and as root, type:</para> - - <screen>&prompt.root; <userinput>slattach -h -c -s 115200 /dev/modem</userinput></screen> - - <para>If you are able to <command>ping</command> hosts on the - other side of the router, you are connected! If it does not - work, you might want to try <option>-a</option> instead of - <option>-c</option> as an argument to slattach.</para> - </step> - </procedure> - </sect3> - - <sect3> - <title>How to shutdown the connection</title> - - <para>Do the following:</para> - - <screen>&prompt.root; <userinput>kill -INT `cat /var/run/slattach.modem.pid`</userinput></screen> - - <para>to kill slattach. Keep in mind you must be - <username>root</username> to do the above. Then go back to - kermit (<command>fg</command> if you suspended it) and exit from - it (<command>q</command>).</para> - - <para>The slattach man page says you have to use <command>ifconfig - sl0 down</command> to mark the interface down, but this does not - seem to make any difference for me. - (<command>ifconfig sl0</command> reports the same thing.)</para> - - <para>Some times, your modem might refuse to drop the carrier - (mine often does). In that case, simply start kermit and quit - it again. It usually goes out on the second try.</para> - </sect3> - - <sect3> - <title>Troubleshooting</title> - - <para>If it does not work, feel free to ask me. The things that - people tripped over so far:</para> - - <itemizedlist> - <listitem> - <para>Not using <option>-c</option> or <option>-a</option> in - slattach (I have no idea why this can be fatal, but adding - this flag solved the problem for at least one - person).</para> - </listitem> - - <listitem> - <para>Using <option>s10</option> instead of - <option>sl0</option> (might be hard to see the difference on - some fonts).</para> - </listitem> - - <listitem> - <para>Try <command>ifconfig sl0</command> to see your - interface status. I get:</para> - - <screen>&prompt.root; <userinput>ifconfig sl0</userinput> -sl0: flags=10<POINTOPOINT> - inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00</screen> - </listitem> - - <listitem> - <para>Also, <command>netstat -r</command> will give the - routing table, in case you get the <quote>no route to - host</quote> messages from ping. Mine looks like:</para> - - <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> - - <para>This is after transferring a bunch of files, your - numbers should be smaller).</para> - </listitem> - </itemizedlist> - </sect3> - </sect2> - - <sect2 id="slips"> - <title>Setting up a SLIP Server</title> - - <para>This document provides suggestions for setting up SLIP Server - services on a FreeBSD system, which typically means configuring - your system to automatically startup connections upon login for - remote SLIP clients. The author has written this document based - on his experience; however, as your system and needs may be - different, this document may not answer all of your questions, and - the author cannot be responsible if you damage your system or lose - data due to attempting to follow the suggestions here.</para> - - <sect3 id="slips-prereqs"> - <title>Prerequisites</title> - - <para>This document is very technical in nature, so background - knowledge is required. It is assumed that you are familiar with - the TCP/IP network protocol, and in particular, network and node - addressing, network address masks, subnetting, routing, and - routing protocols, such as RIP. Configuring SLIP services on a - dial-up server requires a knowledge of these concepts, and if - you are not familiar with them, please read a copy of either - Craig Hunt's <emphasis>TCP/IP Network Administration</emphasis> - published by O'Reilly & Associates, Inc. (ISBN Number - 0-937175-82-X), or Douglas Comer's books on the TCP/IP - protocol.</para> - - <para>It is further assumed that you have already setup your - modem(s) and configured the appropriate system files to allow - logins through your modems. If you have not prepared your - system for this yet, please see the tutorial for configuring - dialup services; if you have a World-Wide Web browser available, - browse the list of tutorials at <ulink - url="http://www.FreeBSD.org/">http://www.FreeBSD.org/</ulink>. - You may also want to check the manual pages for &man.sio.4; for - information on the serial port device driver and &man.ttys.5;, - &man.gettytab.5;, &man.getty.8;, & &man.init.8; for - information relevant to configuring the system to accept logins - on modems, and perhaps &man.stty.1; for information on setting - serial port parameters (such as <literal>clocal</literal> for - directly-connected serial interfaces).</para> - </sect3> - - <sect3> - <title>Quick Overview</title> - - <para>In its typical configuration, using FreeBSD as a SLIP server - works as follows: a SLIP user dials up your FreeBSD SLIP Server - system and logs in with a special SLIP login ID that uses - <filename>/usr/sbin/sliplogin</filename> as the special user's - shell. The <command>sliplogin</command> program browses the - file <filename>/etc/sliphome/slip.hosts</filename> to find a - matching line for the special user, and if it finds a match, - connects the serial line to an available SLIP interface and then - runs the shell script - <filename>/etc/sliphome/slip.login</filename> to configure the - SLIP interface.</para> - - <sect4> - <title>An Example of a SLIP Server Login</title> - - <para>For example, if a SLIP user ID were - <username>Shelmerg</username>, <username>Shelmerg</username>'s - entry in <filename>/etc/master.passwd</filename> would look - something like this (except it would be all on one - line):</para> - - <programlisting> -Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin</programlisting> - - <para>When <username>Shelmerg</username> logs in, - <command>sliplogin</command> will search - <filename>/etc/sliphome/slip.hosts</filename> for a line that - had a matching user ID; for example, there may be a line in - <filename>/etc/sliphome/slip.hosts</filename> that - reads:</para> - - <programlisting> -Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp</programlisting> - - <para><command>sliplogin</command> will find that matching line, - hook the serial line into the next available SLIP interface, - and then execute <filename>/etc/sliphome/slip.login</filename> - like this:</para> - - <programlisting> -/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp</programlisting> - - <para>If all goes well, - <filename>/etc/sliphome/slip.login</filename> will issue an - <command>ifconfig</command> for the SLIP interface to which - <command>sliplogin</command> attached itself (slip interface - 0,in the above example, which was the first parameter in the - list given to <filename>slip.login</filename>) to set the - local IP address (<hostid>dc-slip</hostid>), remote IP address - (<hostid>sl-helmer</hostid>), network mask for the SLIP - interface (<hostid role="netmask">0xfffffc00</hostid>), and - any additional flags (<literal>autocomp</literal>). If - something goes wrong, <command>sliplogin</command> usually - logs good informational messages via the - <literal>daemon</literal> syslog facility, which usually goes - into <filename>/var/log/messages</filename> (see the manual - pages for &man.syslogd.8; and &man.syslog.conf.5; and perhaps - check <filename>/etc/syslog.conf</filename> to see to which - files <command>syslogd</command> is logging).</para> - - <para>OK, enough of the examples — let us dive into - setting up the system.</para> - </sect4> - </sect3> - - <sect3> - <title>Kernel Configuration</title> - - <para>FreeBSD's default kernels usually come with two SLIP - interfaces defined (<devicename>sl0</devicename> and - <devicename>sl1</devicename>); you can use <command>netstat - -i</command> to see whether these interfaces are defined in your - kernel.</para> - - <para>Sample output from <command>netstat -i</command>:</para> - - <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> - - <para>The <devicename>sl0</devicename> and - <devicename>sl1</devicename> interfaces shown in - <command>netstat -i</command>'s output indicate that there are - two SLIP interfaces built into the kernel. (The asterisks after - the <literal>sl0</literal> and <literal>sl1</literal> indicate - that the interfaces are <quote>down</quote>.)</para> - - <para>However, FreeBSD's default kernels do not come configured - to forward packets (ie, your FreeBSD machine will not act as a - router) due to Internet RFC requirements for Internet hosts (see - RFCs 1009 [Requirements for Internet Gateways], 1122 - [Requirements for Internet Hosts — Communication Layers], - and perhaps 1127 [A Perspective on the Host Requirements RFCs]), - so if you want your FreeBSD SLIP Server to act as a router, you - will have to edit the <filename>/etc/rc.conf</filename> file and - change the setting of the <literal>gateway</literal> variable to - <option>YES</option>.</para> - - <para>You will then need to reboot for the new settings to take - effect.</para> - - <para>You will notice that near the end of the default kernel - configuration file (<filename>/sys/i386/conf/GENERIC</filename>) - is a line that reads:</para> - - <programlisting> -pseudo-device sl 2</programlisting> - - <para>This is the line that defines the number of SLIP devices - available in the kernel; the number at the end of the line is - the maximum number of SLIP connections that may be operating - simultaneously.</para> - - <para>Please refer to <link linkend="kernelconfig">Configuring the - FreeBSD Kernel</link> for help in reconfiguring your - kernel.</para> - </sect3> - - <sect3> - <title>Sliplogin Configuration</title> - - <para>As mentioned earlier, there are three files in the - <filename>/etc/sliphome</filename> directory that are part of - the configuration for <filename>/usr/sbin/sliplogin</filename> - (see &man.sliplogin.8; for the actual manual page for - <command>sliplogin</command>): <filename>slip.hosts</filename>, - which defines the SLIP users & their associated IP - addresses; <filename>slip.login</filename>, which usually just - configures the SLIP interface; and (optionally) - <filename>slip.logout</filename>, which undoes - <filename>slip.login</filename>'s effects when the serial - connection is terminated.</para> - - <sect4> - <title><filename>slip.hosts</filename> Configuration</title> - - <para><filename>/etc/sliphome/slip.hosts</filename> contains - lines which have at least four items, separated by - whitespace:</para> - - <itemizedlist> - <listitem> - <para>SLIP user's login ID</para> - </listitem> - - <listitem> - <para>Local address (local to the SLIP server) of the SLIP - link</para> - </listitem> - - <listitem> - <para>Remote address of the SLIP link</para> - </listitem> - - <listitem> - <para>Network mask</para> - </listitem> - </itemizedlist> - - <para>The local and remote addresses may be host names (resolved - to IP addresses by <filename>/etc/hosts</filename> or by the - domain name service, depending on your specifications in - <filename>/etc/host.conf</filename>), and I believe the - network mask may be a name that can be resolved by a lookup - into <filename>/etc/networks</filename>. On a sample system, - <filename>/etc/sliphome/slip.hosts</filename> looks like - this:</para> - - <programlisting> -# -# login local-addr remote-addr mask opt1 opt2 -# (normal,compress,noicmp) -# -Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp</programlisting> - - <para>At the end of the line is one or more of the - options.</para> - - <itemizedlist> - <listitem> - <para><option>normal</option> — no header - compression</para> - </listitem> - - <listitem> - <para><option>compress</option> — compress - headers</para> - </listitem> - - <listitem> - <para><option>autocomp</option> — compress headers if - the remote end allows it</para> - </listitem> - - <listitem> - <para><option>noicmp</option> — disable ICMP packets - (so any <quote>ping</quote> packets will be dropped instead - of using up your bandwidth)</para> - </listitem> - </itemizedlist> - - <para>Note that <command>sliplogin</command> under early releases - of FreeBSD 2 ignored the options that FreeBSD 1.x recognized, - so the options <option>normal</option>, - <option>compress</option>, <option>autocomp</option>, and - <option>noicmp</option> had no effect until support was added - in FreeBSD 2.2 (unless your <filename>slip.login</filename> - script included code to make use of the flags).</para> - - <para>Your choice of local and remote addresses for your SLIP - links depends on whether you are going to dedicate a TCP/IP - subnet or if you are going to use <quote>proxy ARP</quote> on - your SLIP server (it is not <quote>true</quote> proxy ARP, but - that is the terminology used in this document to describe it). - If you are not sure which method to select or how to assign IP - addresses, please refer to the TCP/IP books referenced in the - <link linkend="slips-prereqs">slips-prereqs</link> section - and/or consult your IP network manager.</para> - - <para>If you are going to use a separate subnet for your SLIP - clients, you will need to allocate the subnet number out of - your assigned IP network number and assign each of your SLIP - client's IP numbers out of that subnet. Then, you will - probably either need to configure a static route to the SLIP - subnet via your SLIP server on your nearest IP router, or - install <command>gated</command> on your FreeBSD SLIP server - and configure it to talk the appropriate routing protocols to - your other routers to inform them about your SLIP server's - route to the SLIP subnet.</para> - - <para>Otherwise, if you will use the <quote>proxy ARP</quote> - method, you will need to assign your SLIP client's IP - addresses out of your SLIP server's Ethernet subnet, and you - will also need to adjust your - <filename>/etc/sliphome/slip.login</filename> and - <filename>/etc/sliphome/slip.logout</filename> scripts to use - &man.arp.8; to manage the proxy-ARP entries in the SLIP - server's ARP table.</para> - </sect4> - - <sect4> - <title><filename>slip.login</filename> Configuration</title> - - <para>The typical <filename>/etc/sliphome/slip.login</filename> - file looks like this:</para> - - <programlisting> -#!/bin/sh - -# -# @(#)slip.login 5.1 (Berkeley) 7/1/90 - -# -# generic login file for a slip line. sliplogin invokes this with -# the parameters: -# 1 2 3 4 5 6 7-n -# slipunit ttyspeed loginname local-addr remote-addr mask opt-args -# -/sbin/ifconfig sl$1 inet $4 $5 netmask $6</programlisting> - - <para>This <filename>slip.login</filename> file merely - <command>ifconfig</command>'s the appropriate SLIP interface - with the local and remote addresses and network mask of the - SLIP interface.</para> - - <para>If you have decided to use the <quote>proxy ARP</quote> - method (instead of using a separate subnet for your SLIP - clients), your <filename>/etc/sliphome/slip.login</filename> - file will need to look something like this:</para> - - <programlisting> -#!/bin/sh - -# -# @(#)slip.login 5.1 (Berkeley) 7/1/90 - -# -# generic login file for a slip line. sliplogin invokes this with -# the parameters: -# 1 2 3 4 5 6 7-n -# slipunit ttyspeed loginname local-addr remote-addr mask opt-args -# -/sbin/ifconfig sl$1 inet $4 $5 netmask $6 -# Answer ARP requests for the SLIP client with our Ethernet addr -/usr/sbin/arp -s $5 00:11:22:33:44:55 pub</programlisting> - - <para>The additional line in this - <filename>slip.login</filename>, <command>arp -s - $5 00:11:22:33:44:55 pub</command>, creates an ARP entry - in the SLIP server's ARP table. This ARP entry causes the - SLIP server to respond with the SLIP server's Ethernet MAC - address whenever a another IP node on the Ethernet asks to - speak to the SLIP client's IP address.</para> - - <para>When using the example above, be sure to replace the - Ethernet MAC address (<hostid - role="mac">00:11:22:33:44:55</hostid>) with the MAC address of - your system's Ethernet card, or your <quote>proxy ARP</quote> - will definitely not work! You can discover your SLIP server's - Ethernet MAC address by looking at the results of running - <command>netstat -i</command>; the second line of the output - should look something like:</para> - - <screen>ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116</screen> - - <para>This indicates that this particular system's Ethernet MAC - address is <hostid role="mac">00:02:c1:28:5f:4a</hostid> - — the periods in the Ethernet MAC address given by - <command>netstat -i</command> must be changed to colons and - leading zeros should be added to each single-digit hexadecimal - number to convert the address into the form that &man.arp.8; - desires; see the manual page on &man.arp.8; for complete - information on usage.</para> - - <note> - <para>When you create - <filename>/etc/sliphome/slip.login</filename> and - <filename>/etc/sliphome/slip.logout</filename>, the - <quote>execute</quote> bit (ie, <command>chmod 755 - /etc/sliphome/slip.login /etc/sliphome/slip.logout</command>) - must be set, or <command>sliplogin</command> will be unable - to execute it.</para> - </note> - </sect4> - - <sect4> - <title><filename>slip.logout</filename> Configuration</title> - - <para><filename>/etc/sliphome/slip.logout</filename> is not - strictly needed (unless you are implementing <quote>proxy - ARP</quote>), but if you decide to create it, this is an - example of a basic - <filename>slip.logout</filename> script:</para> - - <programlisting> -#!/bin/sh - -# -# slip.logout - -# -# logout file for a slip line. sliplogin invokes this with -# the parameters: -# 1 2 3 4 5 6 7-n -# slipunit ttyspeed loginname local-addr remote-addr mask opt-args -# -/sbin/ifconfig sl$1 down</programlisting> - - <para>If you are using <quote>proxy ARP</quote>, you will want to - have <filename>/etc/sliphome/slip.logout</filename> remove the - ARP entry for the SLIP client:</para> - - <programlisting> -#!/bin/sh - -# -# @(#)slip.logout - -# -# logout file for a slip line. sliplogin invokes this with -# the parameters: -# 1 2 3 4 5 6 7-n -# slipunit ttyspeed loginname local-addr remote-addr mask opt-args -# -/sbin/ifconfig sl$1 down -# Quit answering ARP requests for the SLIP client -/usr/sbin/arp -d $5</programlisting> - - <para>The <command>arp -d $5</command> removes the ARP entry - that the <quote>proxy ARP</quote> - <filename>slip.login</filename> added when the SLIP client - logged in.</para> - - <para>It bears repeating: make sure - <filename>/etc/sliphome/slip.logout</filename> has the execute - bit set for after you create it (ie, <command>chmod 755 - /etc/sliphome/slip.logout</command>).</para> - </sect4> - </sect3> - - <sect3> - <title>Routing Considerations</title> - - <para>If you are not using the <quote>proxy ARP</quote> method for - routing packets between your SLIP clients and the rest of your - network (and perhaps the Internet), you will probably either - have to add static routes to your closest default router(s) to - route your SLIP client subnet via your SLIP server, or you will - probably need to install and configure <command>gated</command> - on your FreeBSD SLIP server so that it will tell your routers - via appropriate routing protocols about your SLIP subnet.</para> - - <sect4> - <title>Static Routes</title> - - <para>Adding static routes to your nearest default routers can - be troublesome (or impossible, if you do not have authority to - do so...). If you have a multiple-router network in your - organization, some routers, such as Cisco and Proteon, may - not only need to be configured with the static route to the - SLIP subnet, but also need to be told which static routes to - tell other routers about, so some expertise and - troubleshooting/tweaking may be necessary to get - static-route-based routing to work.</para> - </sect4> - - <sect4> - <title>Running <command>gated</command></title> - - <para>An alternative to the headaches of static routes is to - install <command>gated</command> on your FreeBSD SLIP server - and configure it to use the appropriate routing protocols - (RIP/OSPF/BGP/EGP) to tell other routers about your SLIP - subnet. You can use <command>gated</command> from the <link - linkend="ports">ports collection</link> or retrieve and build - it yourself from <ulink - url="ftp://ftp.gated.merit.edu/research.and.development/gated/">the - GateD anonymous ftp site</ulink>; I believe the current version - as of this writing is - <filename>gated-R3_5Alpha_8.tar.Z</filename>, which includes - support for FreeBSD <quote>out-of-the-box</quote>. Complete - information and documentation on <command>gated</command> is - available on the Web starting at <ulink - url="http://www.gated.merit.edu/">the Merit GateD - Consortium</ulink>. Compile and install it, and then write a - <filename>/etc/gated.conf</filename> file to configure your - gated; here is a sample, similar to what the author used on a - FreeBSD SLIP server:</para> - - <programlisting> -# -# gated configuration file for dc.dsu.edu; for gated version 3.5alpha5 -# Only broadcast RIP information for xxx.xxx.yy out the ed Ethernet interface -# -# -# tracing options -# -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 ; -} ; - -# -# Turn on a bunch of tracing info for the interface to the kernel: -kernel { - traceoptions remnants request routes info interface ; -} ; - -# -# Propagate the route to xxx.xxx.yy out the Ethernet interface via RIP -# - -export proto rip interface ed { - proto direct { - <replaceable>xxx.xxx.yy</replaceable> mask 255.255.252.0 metric 1; # SLIP connections - } ; -} ; - -# -# Accept routes from RIP via ed Ethernet interfaces - -import proto rip interface ed { - all ; -} ;</programlisting> - - <para>The above sample <filename>gated.conf</filename> file - broadcasts routing information regarding the SLIP subnet - <replaceable>xxx.xxx.yy</replaceable> via RIP onto the - Ethernet; if you are using a different Ethernet driver than - the <devicename>ed</devicename> driver, you will need to - change the references to the <devicename>ed</devicename> - interface appropriately. This sample file also sets up - tracing to <filename>/var/tmp/gated.output</filename> for - debugging <command>gated</command>'s activity; you can - certainly turn off the tracing options if - <command>gated</command> works OK for you. You will need to - change the <replaceable>xxx.xxx.yy</replaceable>'s into the - network address of your own SLIP subnet (be sure to change the - net mask in the <literal>proto direct</literal> clause as - well).</para> - - <para>When you get <command>gated</command> built and installed - and create a configuration file for it, you will need to run - <command>gated</command> in place of <command>routed</command> - on your FreeBSD system; change the - <filename>routed/gated</filename> startup parameters in - <filename>/etc/netstart</filename> as appropriate for your - system. Please see the manual page for - <command>gated</command> for information on - <command>gated</command>'s command-line parameters.</para> - </sect4> - </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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/en_US.ISO8859-1/books/handbook/printing/chapter.sgml b/en_US.ISO8859-1/books/handbook/printing/chapter.sgml deleted file mode 100644 index d403e08700..0000000000 --- a/en_US.ISO8859-1/books/handbook/printing/chapter.sgml +++ /dev/null @@ -1,4610 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/printing/chapter.sgml,v 1.29 2000/06/13 01:01:17 jim Exp $ ---> - -<chapter id="printing"> - <title>Printing</title> - - <para><emphasis>Contributed by &a.kelly;, 30 September 1995. - Restructured and updated by &a.jim;, March 2000.</emphasis></para> - - <sect1> - <title>Synopsis</title> - - <para>In order to use printers with FreeBSD, you will need to set them - up to work with the Berkeley line printer spooling system, also - known as the LPD spooling system. It is the standard printer - control system in FreeBSD. This chapter introduces the LPD spooling - system, often simply called LPD, and will guide you through its - configuration.</para> - - <para>If you are already familiar with LPD or another printer spooling - system, you may wish to skip to section <link - linkend="printing-intro-setup">Setting up the spooling - system</link>.</para> - </sect1> - - <sect1 id="printing-intro-spooler"> - <title>Introduction</title> - - <para>LPD controls everything about a host's printers. It is - responsible for a number of things:</para> - - <itemizedlist> - <listitem> - <para>It controls access to attached printers and printers - attached to other hosts on the network.</para> - </listitem> - - <listitem> - <para>It enables users to submit files to be printed; these - submissions are known as <emphasis>jobs</emphasis>.</para> - </listitem> - - <listitem> - <para>It prevents multiple users from accessing a printer at the - same time by maintaining a <emphasis>queue</emphasis> for each - printer.</para> - </listitem> - - <listitem> - <para>It can print <emphasis>header pages</emphasis> (also known - as <emphasis>banner</emphasis> or <emphasis>burst</emphasis> - pages) so users can easily find jobs they have printed in a - stack of printouts.</para> - </listitem> - - <listitem> - <para>It takes care of communications parameters for printers - connected on serial ports.</para> - </listitem> - - <listitem> - <para>It can send jobs over the network to a LPD spooler on - another host.</para> - </listitem> - - <listitem> - <para>It can run special filters to format jobs to be printed for - various printer languages or printer capabilities.</para> - </listitem> - - <listitem> - <para>It can account for printer usage.</para> - </listitem> - </itemizedlist> - - <para>Through a configuration file - (<filename>/etc/printcap</filename>), and by providing the special - filter programs, you can enable the LPD system to do all or some - subset of the above for a great variety of printer hardware.</para> - - <sect2 id="printing-intro-why"> - <title>Why You Should Use the Spooler</title> - - <para>If you are the sole user of your system, you may be wondering - why you should bother with the spooler when you do not need access - control, header pages, or printer accounting. While it is - possible to enable direct access to a printer, you should use the - spooler anyway since:</para> - - <itemizedlist> - <listitem> - <para>LPD prints jobs in the background; you do not have to wait - for data to be copied to the printer.</para> - </listitem> - - <listitem> - <para>LPD can conveniently run a job to be printed through - filters to add date/time headers or convert a special file - format (such as a TeX DVI file) into a format the printer will - understand. You will not have to do these steps - manually.</para> - </listitem> - - <listitem> - <para>Many free and commercial programs that provide a print - feature usually expect to talk to the spooler on your system. - By setting up the spooling system, you will more easily - support other software you may later add or already - have.</para> - </listitem> - </itemizedlist> - </sect2> - </sect1> - - <sect1 id="printing-intro-setup"> - <title>Basic Setup</title> - - <para>To use printers with the LPD spooling system, you will need to - set up both your printer hardware and the LPD software. This - document describes two levels of setup:</para> - - <itemizedlist> - <listitem> - <para>See section <link linkend="printing-simple">Simple Printer - Setup</link> to learn how to connect a printer, tell LPD how to - communicate with it, and print plain text files to the - printer.</para> - </listitem> - - <listitem> - <para>See section <link linkend="printing-advanced">Advanced - Printer Setup</link> to find out how to print a variety of - special file formats, to print header pages, to print across a - network, to control access to printers, and to do printer - accounting.</para> - </listitem> - </itemizedlist> - - <sect2 id="printing-simple"> - <title>Simple Printer Setup</title> - - <para>This section tells how to configure printer hardware and the - LPD software to use the printer. It teaches the basics:</para> - - <itemizedlist> - <listitem> - <para>Section <link linkend="printing-hardware">Hardware - Setup</link> gives some hints on connecting the printer to a - port on your computer.</para> - </listitem> - - <listitem> - <para>Section <link linkend="printing-software">Software - Setup</link> shows how to setup the LPD spooler configuration - file (<filename>/etc/printcap</filename>).</para> - </listitem> - </itemizedlist> - - <para>If you are setting up a printer that uses a network protocol - to accept data to print instead of a serial or parallel interface, - see <link linkend="printing-advanced-network-net-if">Printers With - Networked Data Stream Interfaces</link>.</para> - - <para>Although this section is called <quote>Simple Printer - Setup</quote>, it is actually fairly complex. Getting the printer - to work with your computer and the LPD spooler is the hardest - part. The advanced options like header pages and accounting are - fairly easy once you get the printer working.</para> - - <sect3 id="printing-hardware"> - <title>Hardware Setup</title> - - <para>This section tells about the various ways you can connect a - printer to your PC. It talks about the kinds of ports and - cables, and also the kernel configuration you may need to enable - FreeBSD to speak to the printer.</para> - - <para>If you have already connected your printer and have - successfully printed with it under another operating system, you - can probably skip to section <link - linkend="printing-software">Software Setup</link>.</para> - - <sect4 id="printing-ports"> - <title>Ports and Cables</title> - - <para>Nearly all printers you can get for a PC today support one - or both of the following interfaces:</para> - - <itemizedlist> - <listitem> - <para><emphasis>Serial</emphasis> interfaces use a serial - port on your computer to send data to the printer. Serial - interfaces are common in the computer industry and cables - are readily available and also easy to construct. Serial - interfaces sometimes need special cables and might require - you to configure somewhat complex communications - options.</para> - </listitem> - - <listitem> - <para><emphasis>Parallel</emphasis> interfaces use a - parallel port on your computer to send data to the - printer. Parallel interfaces are common in the PC market. - Cables are readily available but more difficult to - construct by hand. There are usually no communications - options with parallel interfaces, making their - configuration exceedingly simple.</para> - - <para>Parallel interfaces are sometimes known as - <quote>Centronics</quote> interfaces, named after the - connector type on the printer.</para> - </listitem> - </itemizedlist> - - <para>In general, serial interfaces are slower than parallel - interfaces. Parallel interfaces usually offer just - one-way communication (computer to printer) while serial - gives you two-way. Many newer parallel ports and printers - can communicate in both directions under FreeBSD when a - IEEE1284 compliant cable is used.</para> - - <para>Usually, the only time you need two-way communication with - the printer is if the printer speaks PostScript. PostScript - printers can be very verbose. In fact, PostScript jobs are - actually programs sent to the printer; they need not produce - paper at all and may return results directly to the computer. - PostScript also uses two-way communication to tell the - computer about problems, such as errors in the PostScript - program or paper jams. Your users may be appreciative of such - information. Furthermore, the best way to do effective - accounting with a PostScript printer requires two-way - communication: you ask the printer for its page count (how - many pages it has printed in its lifetime), then send the - user's job, then ask again for its page count. Subtract the - two values and you know how much paper to charge the - user.</para> - </sect4> - - <sect4 id="printing-parallel"> - <title>Parallel Ports</title> - - <para>To hook up a printer using a parallel interface, connect - the Centronics cable between the printer and the computer. - The instructions that came with the printer, the computer, or - both should give you complete guidance.</para> - - <para>Remember which parallel port you used on the computer. - The first parallel port is <filename>/dev/lpt0</filename> to - FreeBSD; the second is <filename>/dev/lpt1</filename>, and so - on.</para> - </sect4> - - <sect4 id="printing-serial"> - <title>Serial Ports</title> - - <para>To hook up a printer using a serial interface, connect the - proper serial cable between the printer and the computer. The - instructions that came with the printer, the computer, or both - should give you complete guidance.</para> - - <para>If you are unsure what the <quote>proper serial - cable</quote> is, you may wish to try one of the following - alternatives:</para> - - <itemizedlist> - <listitem> - <para>A <emphasis>modem</emphasis> cable connects each pin - of the connector on one end of the cable straight through - to its corresponding pin of the connector on the other - end. This type of cable is also known as a - <quote>DTE-to-DCE</quote> cable.</para> - </listitem> - - <listitem> - <para>A <emphasis>null-modem</emphasis> cable connects some - pins straight through, swaps others (send data to receive - data, for example), and shorts some internally in each - connector hood. This type of cable is also known as a - <quote>DTE-to-DTE</quote> cable.</para> - </listitem> - - <listitem> - <para>A <emphasis>serial printer</emphasis> cable, required - for some unusual printers, is like the null modem cable, - but sends some signals to their counterparts instead of - being internally shorted.</para> - </listitem> - </itemizedlist> - - <para>You should also set up the communications parameters for - the printer, usually through front-panel controls or DIP - switches on the printer. Choose the highest - <literal>bps</literal> (bits per second, sometimes - <emphasis>baud rate</emphasis>) rate that both your computer - and the printer can support. Choose 7 or 8 data bits; none, - even, or odd parity; and 1 or 2 stop bits. Also choose a flow - control protocol: either none, or XON/XOFF (also known as - <quote>in-band</quote> or <quote>software</quote>) flow control. - Remember these settings for the software configuration that - follows.</para> - </sect4> - </sect3> - - <sect3 id="printing-software"> - <title>Software Setup</title> - - <para>This section describes the software setup necessary to print - with the LPD spooling system in FreeBSD.</para> - - <para>Here is an outline of the steps involved:</para> - - <procedure> - <step> - <para>Configure your kernel, if necessary, for the port you - are using for the printer; section <link - linkend="printing-kernel">Kernel Configuration</link> tells - you what you need to do.</para> - </step> - - <step> - <para>Set the communications mode for the parallel port, if - you are using a parallel port; section <link - linkend="printing-parallel-port-mode">Setting the - Communication Mode for the Parallel Port</link> gives - details.</para> - </step> - - <step> - <para>Test if the operating system can send data to the printer. - Section <link linkend="printing-testing">Checking Printer - Communications</link> gives some suggestions on how to do - this.</para> - </step> - - <step> - <para>Set up LPD for the printer by modifying the file - <filename>/etc/printcap</filename>. You will find out how - to do this later in this chapter.</para> - </step> - </procedure> - - <sect4 id="printing-kernel"> - <title>Kernel Configuration</title> - - <para>The operating system kernel is compiled to work with a - specific set of devices. The serial or parallel interface for - your printer is a part of that set. Therefore, it might be - necessary to add support for an additional serial or parallel - port if your kernel is not already configured for one.</para> - - <para>To find out if the kernel you are currently using supports - a serial interface, type:</para> - - <screen>&prompt.root; <userinput>dmesg | grep sio<replaceable>N</replaceable></userinput></screen> - - <para>Where <replaceable>N</replaceable> is the number of the - serial port, starting from zero. If you see output similar to - the following:</para> - - <screen>sio2 at 0x3e8-0x3ef irq 5 on isa -sio2: type 16550A</screen> - - <para>then the kernel supports the port.</para> - - <para>To find out if the kernel supports a parallel interface, - type:</para> - - <screen>&prompt.root; <userinput>dmesg | grep lpt<replaceable>N</replaceable></userinput></screen> - - <para>Where <replaceable>N</replaceable> is the number of the - parallel port, starting from zero. If you see output similar - to the following <screen>lpt0 at 0x378-0x37f on isa</screen> - then the kernel supports the port.</para> - - <para>You might have to reconfigure your kernel in order for the - operating system to recognize and use the parallel or serial - port you are using for the printer.</para> - - <para>To add support for a serial port, see the section on - kernel configuration. To add support for a parallel port, see - that section <emphasis>and</emphasis> the section that - follows.</para> - </sect4> - </sect3> - - <sect3 id="printing-dev-ports"> - <title>Adding <filename>/dev</filename> Entries for the - Ports</title> - - <para>Even though the kernel may support communication along a - serial or parallel port, you will still need a software - interface through which programs running on the system can - send and receive data. That is what entries in the - <filename>/dev</filename> directory are for.</para> - - <para><emphasis>To add a <filename>/dev</filename> entry for a - port:</emphasis></para> - - <procedure> - <step> - <para>Become root with the &man.su.1; command. Enter the - root password when prompted.</para> - </step> - - <step> - <para>Change to the <filename>/dev</filename> - directory:</para> - - <screen>&prompt.root; cd <filename>/dev</filename></screen> - </step> - - <step> - <para>Type:</para> - - <screen>&prompt.root; <userinput>./MAKEDEV <replaceable>port</replaceable></userinput></screen> - - <para>Where <replaceable>port</replaceable> is the device - entry for the port you want to make. Use - <literal>lpt0</literal> for the first parallel port, - <literal>lpt1</literal> for the second, and so on; use - <literal>ttyd0</literal> for the first serial port, - <literal>ttyd1</literal> for the second, and so on.</para> - </step> - - <step> - <para>Type:</para> - - <screen>&prompt.root; <userinput>ls -l <replaceable>port</replaceable></userinput></screen> - - <para>to make sure the device entry got created.</para> - </step> - </procedure> - - <sect4 id="printing-parallel-port-mode"> - <title>Setting the Communication Mode for the Parallel - Port</title> - - <para>When you are using the parallel interface, you can choose - whether FreeBSD should use interrupt-driven or polled - communication with the printer.</para> - - <itemizedlist> - <listitem> - <para>The <emphasis>interrupt-driven</emphasis> method is - the default with the GENERIC kernel. With this method, - the operating system uses an IRQ line to determine when - the printer is ready for data.</para> - </listitem> - - <listitem> - <para>The <emphasis>polled</emphasis> method directs the - operating system to repeatedly ask the printer if it is - ready for more data. When it responds ready, the kernel - sends more data.</para> - </listitem> - </itemizedlist> - - <para>The interrupt-driven method is somewhat faster but uses up - a precious IRQ line. You should use whichever one - works.</para> - - <para>You can set the communications mode in two ways: by - configuring the kernel or by using the &man.lptcontrol.8; - program.</para> - - <para><emphasis>To set the communications mode by configuring - the kernel:</emphasis></para> - - <procedure> - <step> - <para>Edit your kernel configuration file. Look for or add - an <literal>lpt0</literal> entry. If you are setting up - the second parallel port, use <literal>lpt1</literal> - instead. Use <literal>lpt2</literal> for the third port, - and so on.</para> - - <itemizedlist> - <listitem> - <para>If you want interrupt-driven mode, add the - <literal>irq</literal> specifier:</para> - - <programlisting> -device lpt0 at isa? port? tty irq <replaceable>N</replaceable> vector lptintr</programlisting> - - <para>Where <replaceable>N</replaceable> is the IRQ - number for your computer's parallel port.</para> - </listitem> - - <listitem> - <para>If you want polled mode, do not add the - <literal>irq</literal> specifier:</para> - - <programlisting> -device lpt0 at isa? port? tty vector lptintr</programlisting> - </listitem> - </itemizedlist> - </step> - - <step> - <para>Save the file. Then configure, build, and install the - kernel, then reboot. See <link - linkend="kernelconfig">kernel configuration</link> for - more details.</para> - </step> - </procedure> - - <para><emphasis>To set the communications mode with</emphasis> - &man.lptcontrol.8;:</para> - - <procedure> - <step> - <para>Type:</para> - - <screen>&prompt.root; <userinput>lptcontrol -i -u <replaceable>N</replaceable></userinput></screen> - - <para>to set interrupt-driven mode for - <literal>lpt<replaceable>N</replaceable></literal>.</para> - </step> - - <step> - <para>Type:</para> - - <screen>&prompt.root; <userinput>lptcontrol -p -u <replaceable>N</replaceable></userinput></screen> - - <para>to set polled-mode for - <literal>lpt<replaceable>N</replaceable></literal>.</para> - </step> - </procedure> - - <para>You could put these commands in your - <filename>/etc/rc.local</filename> file to set the mode each - time your system boots. See &man.lptcontrol.8; for more - information.</para> - </sect4> - - <sect4 id="printing-testing"> - <title>Checking Printer Communications</title> - - <para>Before proceeding to configure the spooling system, you - should make sure the operating system can successfully send - data to your printer. It is a lot easier to debug printer - communication and the spooling system separately.</para> - - <para>To test the printer, we will send some text to it. For - printers that can immediately print characters sent to them, - the program &man.lptest.1; is perfect: it generates all 96 - printable ASCII characters in 96 lines.</para> - - <para>For a PostScript (or other language-based) printer, we - will need a more sophisticated test. A small PostScript - program, such as the following, will suffice:</para> - - <programlisting> -%!PS -100 100 moveto 300 300 lineto stroke -310 310 moveto /Helvetica findfont 12 scalefont setfont -(Is this thing working?) show -showpage</programlisting> - - <note> - <para>When this document refers to a printer language, it is - assuming a language like PostScript, and not Hewlett - Packard's PCL. Although PCL has great functionality, you - can intermingle plain text with its escape sequences. - PostScript cannot directly print plain text, and that is the - kind of printer language for which we must make special - accommodations.</para> - </note> - - <sect5 id="printing-checking-parallel"> - <title>Checking a Parallel Printer</title> - - <para>This section tells you how to check if FreeBSD can - communicate with a printer connected to a parallel - port.</para> - - <para><emphasis>To test a printer on a parallel - port:</emphasis></para> - - <procedure> - <step> - <para>Become root with &man.su.1;.</para> - </step> - - <step> - <para>Send data to the printer.</para> - - <itemizedlist> - <listitem> - <para>If the printer can print plain text, then use - &man.lptest.1;. Type:</para> - - <screen>&prompt.root; <userinput>lptest > /dev/lpt<replaceable>N</replaceable></userinput></screen> - - <para>Where <replaceable>N</replaceable> is the number - of the parallel port, starting from zero.</para> - </listitem> - - <listitem> - <para>If the printer understands PostScript or other - printer language, then send a small program to the - printer. Type:</para> - - <screen>&prompt.root; <userinput>cat > /dev/lpt<replaceable>N</replaceable></userinput></screen> - - <para>Then, line by line, type the program - <emphasis>carefully</emphasis> as you cannot edit a - line once you have pressed <literal>RETURN</literal> - or <literal>ENTER</literal>. When you have finished - entering the program, press - <literal>CONTROL+D</literal>, or whatever your end - of file key is.</para> - - <para>Alternatively, you can put the program in a file - and type:</para> - - <screen>&prompt.root; <userinput>cat <replaceable>file</replaceable> > /dev/lpt<replaceable>N</replaceable></userinput></screen> - - <para>Where <replaceable>file</replaceable> is the - name of the file containing the program you want to - send to the printer.</para> - </listitem> - </itemizedlist> - </step> - </procedure> - - <para>You should see something print. Do not worry if the - text does not look right; we will fix such things - later.</para> - </sect5> - - <sect5 id="printing-checking-serial"> - <title>Checking a Serial Printer</title> - - <para>This section tells you how to check if FreeBSD can - communicate with a printer on a serial port.</para> - - <para><emphasis>To test a printer on a serial - port:</emphasis></para> - - <procedure> - <step> - <para>Become root with &man.su.1;.</para> - </step> - - <step> - <para>Edit the file <filename>/etc/remote</filename>. Add - the following entry:</para> - - <programlisting> -printer:dv=/dev/<replaceable>port</replaceable>:br#<replaceable>bps-rate</replaceable>:pa=<replaceable>parity</replaceable></programlisting> - - <para>Where <replaceable>port</replaceable> is the device - entry for the serial port (<literal>ttyd0</literal>, - <literal>ttyd1</literal>, etc.), - <replaceable>bps-rate</replaceable> is the - bits-per-second rate at which the printer communicates, - and <replaceable>parity</replaceable> is the parity - required by the printer (either <literal>even</literal>, - <literal>odd</literal>, <literal>none</literal>, or - <literal>zero</literal>).</para> - - <para>Here is a sample entry for a printer connected via - a serial line to the third serial port at 19200 bps with - no parity:</para> - - <programlisting> -printer:dv=/dev/ttyd2:br#19200:pa=none</programlisting> - </step> - - <step> - <para>Connect to the printer with &man.tip.1;. - Type:</para> - - <screen>&prompt.root; <userinput>tip printer</userinput></screen> - - <para>If this step does not work, edit the file - <filename>/etc/remote</filename> again and try using - <filename>/dev/cuaa<replaceable>N</replaceable></filename> - instead of - <filename>/dev/ttyd<replaceable>N</replaceable></filename>.</para> - </step> - - <step> - <para>Send data to the printer.</para> - - <itemizedlist> - <listitem> - <para>If the printer can print plain text, then use - &man.lptest.1;. Type:</para> - - <screen><prompt>~</prompt><userinput>$lptest</userinput></screen> - </listitem> - - <listitem> - <para>If the printer understands PostScript or other - printer language, then send a small program to the - printer. Type the program, line by line, - <emphasis>very carefully</emphasis> as backspacing - or other editing keys may be significant to the - printer. You may also need to type a special - end-of-file key for the printer so it knows it - received the whole program. For PostScript - printers, press <literal>CONTROL+D</literal>.</para> - - <para>Alternatively, you can put the program in a file - and type:</para> - - <screen><prompt>~</prompt><userinput>><replaceable>file</replaceable></userinput></screen> - - <para>Where <replaceable>file</replaceable> is the - name of the file containing the program. After - &man.tip.1; sends the file, press any required - end-of-file key.</para> - </listitem> - </itemizedlist> - </step> - </procedure> - - <para>You should see something print. Do not worry if the - text does not look right; we will fix that later.</para> - </sect5> - </sect4> - </sect3> - - <sect3 id="printing-printcap"> - <title>Enabling the Spooler: The <filename>/etc/printcap</filename> - File</title> - - <para>At this point, your printer should be hooked up, your kernel - configured to communicate with it (if necessary), and you have - been able to send some simple data to the printer. Now, we are - ready to configure LPD to control access to your printer.</para> - - <para>You configure LPD by editing the file - <filename>/etc/printcap</filename>. The LPD spooling system - reads this file each time the spooler is used, so updates to the - file take immediate effect.</para> - - <para>The format of the &man.printcap.5; file is straightforward. - Use your favorite text editor to make changes to - <filename>/etc/printcap</filename>. The format is identical to - other capability files like - <filename>/usr/share/misc/termcap</filename> and - <filename>/etc/remote</filename>. For complete information - about the format, see the &man.cgetent.3;.</para> - - <para>The simple spooler configuration consists of the following - steps:</para> - - <procedure> - <step> - <para>Pick a name (and a few convenient aliases) for the - printer, and put them in the - <filename>/etc/printcap</filename> file; see the - <link linkend="printing-naming">Naming the Printer</link> - section for more information on naming.</para> - </step> - - <step> - <para>Turn off header pages (which are on by default) by - inserting the <literal>sh</literal> capability; see the - <link linkend="printing-no-header-pages">Suppressing Header - Pages</link> section for more information.</para> - </step> - - <step> - <para>Make a spooling directory, and specify its location with - the <literal>sd</literal> capability; see the <link - linkend="printing-spooldir">Making the Spooling - Directory</link> section for more information.</para> - </step> - - <step> - <para>Set the <filename>/dev</filename> entry to use for the - printer, and note it in <filename>/etc/printcap</filename> - with the <literal>lp</literal> capability; see the <link - linkend="printing-device">Identifying the Printer - Device</link> for more information. Also, if the printer is - on a serial port, set up the communication parameters with - the <literal>fs</literal>, <literal>fc</literal>, - <literal>xs</literal>, and <literal>xc</literal> - capabilities; which is discussed in the <link - linkend="printing-commparam">Configuring Spooler - Communications Parameters</link> section.</para> - </step> - - <step> - <para>Install a plain text input filter; see the <link - linkend="printing-textfilter">Installing the Text - Filter</link> section for details.</para> - </step> - - <step> - <para>Test the setup by printing something with the - &man.lpr.1; command. More details are available in the - <link linkend="printing-trying">Trying It Out</link> and - <link - linkend="printing-troubleshooting">Troubleshooting</link> - sections.</para> - </step> - </procedure> - - <note> - <para>Language-based printers, such as PostScript printers, - cannot directly print plain text. The simple setup outlined - above and described in the following sections assumes that if - you are installing such a printer you will print only files - that the printer can understand.</para> - </note> - - <para>Users often expect that they can print plain text to any of - the printers installed on your system. Programs that interface - to LPD to do their printing usually make the same assumption. - If you are installing such a printer and want to be able to - print jobs in the printer language <emphasis>and</emphasis> - print plain text jobs, you are strongly urged to add an - additional step to the simple setup outlined above: install an - automatic plain-text-to-PostScript (or other printer language) - conversion program. The section entitled <link - linkend="printing-advanced-if-conversion">Accommodating Plain - Text Jobs on PostScript Printers</link> tells how to do - this.</para> - - <sect4 id="printing-naming"> - <title>Naming the Printer</title> - - <para>The first (easy) step is to pick a name for your printer - It really does not matter whether you choose functional or - whimsical names since you can also provide a number of aliases - for the printer.</para> - - <para>At least one of the printers specified in the - <filename>/etc/printcap</filename> should have the alias - <literal>lp</literal>. This is the default printer's name. - If users do not have the <envar>PRINTER</envar> environment - variable nor specify a printer name on the command line of any - of the LPD commands, then <literal>lp</literal> will be the - default printer they get to use.</para> - - <para>Also, it is common practice to make the last alias for a - printer be a full description of the printer, including make - and model.</para> - - <para>Once you have picked a name and some common aliases, put - them in the <filename>/etc/printcap</filename> file. The name - of the printer should start in the leftmost column. Separate - each alias with a vertical bar and put a colon after the last - alias.</para> - - <para>In the following example, we start with a skeletal - <filename>/etc/printcap</filename> that defines two printers - (a Diablo 630 line printer and a Panasonic KX-P4455 PostScript - laser printer):</para> - - <programlisting> -# -# /etc/printcap for host rose -# -rattan|line|diablo|lp|Diablo 630 Line Printer: - -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:</programlisting> - - <para>In this example, the first printer is named - <literal>rattan</literal> and has as aliases - <literal>line</literal>, <literal>diablo</literal>, - <literal>lp</literal>, and <literal>Diablo 630 Line - Printer</literal>. Since it has the alias - <literal>lp</literal>, it is also the default printer. The - second is named <literal>bamboo</literal>, and has as aliases - <literal>ps</literal>, <literal>PS</literal>, - <literal>S</literal>, <literal>panasonic</literal>, and - <literal>Panasonic KX-P4455 PostScript v51.4</literal>.</para> - </sect4> - - <sect4 id="printing-no-header-pages"> - <title>Suppressing Header Pages</title> - - <para>The LPD spooling system will by default print a - <emphasis>header page</emphasis> for each job. The header - page contains the user name who requested the job, the host - from which the job came, and the name of the job, in nice - large letters. Unfortunately, all this extra text gets in the - way of debugging the simple printer setup, so we will suppress - header pages.</para> - - <para>To suppress header pages, add the <literal>sh</literal> - capability to the entry for the printer in - <filename>/etc/printcap</filename>. Here is an example - <filename>/etc/printcap</filename> with <literal>sh</literal> - added:</para> - - <programlisting> -# -# /etc/printcap for host rose - no header pages anywhere -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :sh: - -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :sh:</programlisting> - - <para>Note how we used the correct format: the first line starts - in the leftmost column, and subsequent lines are indented with - a single TAB. Every line in an entry except the last ends in - a backslash character.</para> - </sect4> - - <sect4 id="printing-spooldir"> - <title>Making the Spooling Directory</title> - - <para>The next step in the simple spooler setup is to make a - <emphasis>spooling directory</emphasis>, a directory where - print jobs reside until they are printed, and where a number - of other spooler support files live.</para> - - <para>Because of the variable nature of spooling directories, it - is customary to put these directories under - <filename>/var/spool</filename>. It is not necessary to - backup the contents of spooling directories, either. - Recreating them is as simple as running &man.mkdir.1;.</para> - - <para>It is also customary to make the directory with a name - that is identical to the name of the printer, as shown - below:</para> - - <screen>&prompt.root; <userinput>mkdir /var/spool/<replaceable>printer-name</replaceable></userinput></screen> - - <para>However, if you have a lot of printers on your network, - you might want to put the spooling directories under a single - directory that you reserve just for printing with LPD. We - will do this for our two example printers - <literal>rattan</literal> and - <literal>bamboo</literal>:</para> - - <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> - - <note> - <para>If you are concerned about the privacy of jobs that - users print, you might want to protect the spooling - directory so it is not publicly accessible. Spooling - directories should be owned and be readable, writable, and - searchable by user daemon and group daemon, and no one else. - We will do this for our example printers:</para> - - <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> - </note> - - <para>Finally, you need to tell LPD about these directories - using the <filename>/etc/printcap</filename> file. You - specify the pathname of the spooling directory with the - <literal>sd</literal> capability:</para> - - <programlisting> -# -# /etc/printcap for host rose - added spooling directories -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :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>Note that the name of the printer starts in the first - column but all other entries describing the printer should be - indented with a tab and each line escaped with a - backslash.</para> - - <para>If you do not specify a spooling directory with - <literal>sd</literal>, the spooling system will use - <filename>/var/spool/lpd</filename> as a default.</para> - </sect4> - - <sect4 id="printing-device"> - <title>Identifying the Printer Device</title> - - <para>In the <link linkend="printing-dev-ports">Adding - <filename>/dev</filename> Entries for the Ports</link> - section, we identified which entry in the - <filename>/dev</filename> directory FreeBSD will use to - communicate with the printer. Now, we tell LPD that - information. When the spooling system has a job to print, it - will open the specified device on behalf of the filter program - (which is responsible for passing data to the printer).</para> - - <para>List the <filename>/dev</filename> entry pathname in the - <filename>/etc/printcap</filename> file using the - <literal>lp</literal> capability.</para> - - <para>In our running example, let us assume that - <hostid>rattan</hostid> is on the first parallel port, and - <hostid>bamboo</hostid> is on a sixth serial port; here are - the additions to <filename>/etc/printcap</filename>:</para> - - <programlisting> -# -# /etc/printcap for host rose - identified what devices to use -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :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>If you do not specify the <literal>lp</literal> capability - for a printer in your <filename>/etc/printcap</filename> file, - LPD uses <filename>/dev/lp</filename> as a default. - <filename>/dev/lp</filename> currently does not exist in - FreeBSD.</para> - - <para>If the printer you are installing is connected to a - parallel port, skip to the section entitled, <link - linkend="printing-textfilter">Installing the Text - Filter</link>. Otherwise, be sure to follow the instructions - in the next section.</para> - </sect4> - - <sect4 id="printing-commparam"> - <title>Configuring Spooler Communication Parameters</title> - - <para>For printers on serial ports, LPD can set up the bps rate, - parity, and other serial communication parameters on behalf of - the filter program that sends data to the printer. This is - advantageous since:</para> - - <itemizedlist> - <listitem> - <para>It lets you try different communication parameters by - simply editing the <filename>/etc/printcap</filename> - file; you do not have to recompile the filter - program.</para> - </listitem> - - <listitem> - <para>It enables the spooling system to use the same filter - program for multiple printers which may have different - serial communication settings.</para> - </listitem> - </itemizedlist> - - <para>The following <filename>/etc/printcap</filename> - capabilities control serial communication parameters of the - device listed in the <literal>lp</literal> capability:</para> - - <variablelist> - <varlistentry> - <term><literal>br#<replaceable>bps-rate</replaceable></literal></term> - - <listitem> - <para>Sets the communications speed of the device to - <replaceable>bps-rate</replaceable>, where - <replaceable>bps-rate</replaceable> can be 50, 75, 110, - 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, - 19200, or 38400 bits-per-second.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>fc#<replaceable>clear-bits</replaceable></literal></term> - - <listitem> - <para>Clears the flag bits - <replaceable>clear-bits</replaceable> in the - <replaceable>sgttyb</replaceable> structure after - opening the device.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>fs#<replaceable>set-bits</replaceable></literal></term> - - <listitem> - <para>Sets the flag bits - <replaceable>set-bits</replaceable> in the - <replaceable>sgttyb</replaceable> structure.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>xc#<replaceable>clear-bits</replaceable></literal></term> - - <listitem> - <para>Clears local mode bits - <replaceable>clear-bits</replaceable> after opening the - device.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>xs#<replaceable>set-bits</replaceable></literal></term> - - <listitem> - <para>Sets local mode bits - <replaceable>set-bits</replaceable>.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>For more information on the bits for the - <literal>fc</literal>, <literal>fs</literal>, - <literal>xc</literal>, and <literal>xs</literal> capabilities, - see the file - <filename>/usr/include/sys/ioctl_compat.h</filename>.</para> - - <para>When LPD opens the device specified by the - <literal>lp</literal> capability, it reads the flag bits in - the <literal>sgttyb</literal> structure; it clears any bits in - the <literal>fc</literal> capability, then sets bits in the - <literal>fs</literal> capability, then applies the resultant - setting. It does the same for the local mode bits as - well.</para> - - <para>Let us add to our example printer on the sixth serial - port. We will set the bps rate to 38400. For the flag bits, - we will set the <literal>TANDEM</literal>, - <literal>ANYP</literal>, <literal>LITOUT</literal>, - <literal>FLUSHO</literal>, and <literal>PASS8</literal> flags. - For the local mode bits, we will set the - <literal>LITOUT</literal> and <literal>PASS8</literal> - flags:</para> - - <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> - </sect4> - - <sect4 id="printing-textfilter"> - <title>Installing the Text Filter</title> - - <para>We are now ready to tell LPD what text filter to use to - send jobs to the printer. A <emphasis>text filter</emphasis>, - also known as an <emphasis>input filter</emphasis>, is a - program that LPD runs when it has a job to print. When LPD - runs the text filter for a printer, it sets the filter's - standard input to the job to print, and its standard output to - the printer device specified with the <literal>lp</literal> - capability. The filter is expected to read the job from - standard input, perform any necessary translation for the - printer, and write the results to standard output, which will - get printed. For more information on the text filter, see - the <link linkend="printing-advanced-filters">Filters</link> - section.</para> - - <para>For our simple printer setup, the text filter can be a - small shell script that just executes - <command>/bin/cat</command> to send the job to the printer. - FreeBSD comes with another filter called - <filename>lpf</filename> that handles backspacing and - underlining for printers that might not deal with such - character streams well. And, of course, you can use any other - filter program you want. The filter <command>lpf</command> is - described in detail in section entitled <link - linkend="printing-advanced-lpf">lpf: a Text - Filter</link>.</para> - - <para>First, let us make the shell script - <filename>/usr/local/libexec/if-simple</filename> be a simple - text filter. Put the following text into that file with your - favorite text editor:</para> - - <programlisting> -#!/bin/sh -# -# if-simple - Simple text input filter for lpd -# Installed in /usr/local/libexec/if-simple -# -# Simply copies stdin to stdout. Ignores all filter arguments. - -/bin/cat && exit 0 -exit 2</programlisting> - - <para>Make the file executable:</para> - - <screen>&prompt.root; <userinput>chmod 555 /usr/local/libexec/if-simple</userinput></screen> - - <para>And then tell LPD to use it by specifying it with the - <literal>if</literal> capability in - <filename>/etc/printcap</filename>. We will add it to the two - printers we have so far in the example - <filename>/etc/printcap</filename>:</para> - - <programlisting> -# -# /etc/printcap for host rose - added text filter -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :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> - <title>Turn on LPD</title> - - <para>&man.lpd.8; is run from <filename>/etc/rc</filename>, - controlled by the <literal>lpd_enable</literal> variable. This - variable defaults to <literal>NO</literal>. If you have not done - so already, add the line:</para> - - <programlisting>lpd_enable="YES"</programlisting> - - <para>to <filename>/etc/rc.conf</filename>, and then either restart - your machine, or just run &man.lpd.8;.</para> - - <screen>&prompt.root; <userinput>lpd</userinput></screen> - </sect4> - - <sect4 id="printing-trying"> - <title>Trying It Out</title> - - <para>You have reached the end of the simple LPD setup. - Unfortunately, congratulations are not quite yet in order, - since we still have to test the setup and correct any - problems. To test the setup, try printing something. To - print with the LPD system, you use the command &man.lpr.1;, - which submits a job for printing.</para> - - <para>You can combine &man.lpr.1; with the &man.lptest.1; - program, introduced in section <link - linkend="printing-testing">Checking Printer - Communications</link> to generate some test text.</para> - - <para><emphasis>To test the simple LPD setup:</emphasis></para> - - <para>Type:</para> - - <screen>&prompt.root; <userinput>lptest 20 5 | lpr -P<replaceable>printer-name</replaceable></userinput></screen> - - <para>Where <replaceable>printer-name</replaceable> is a the - name of a printer (or an alias) specified in - <filename>/etc/printcap</filename>. To test the default - printer, type &man.lpr.1; without any <option>-P</option> - argument. Again, if you are testing a printer that expects - PostScript, send a PostScript program in that language instead - of using &man.lptest.1;. You can do so by putting the program - in a file and typing <command>lpr - <replaceable>file</replaceable></command>.</para> - - <para>For a PostScript printer, you should get the results of - the program. If you are using &man.lptest.1;, then your - results should look like the following:</para> - - <programlisting> -!"#$%&'()*+,-./01234 -"#$%&'()*+,-./012345 -#$%&'()*+,-./0123456 -$%&'()*+,-./01234567 -%&'()*+,-./012345678</programlisting> - - <para>To further test the printer, try downloading larger - programs (for language-based printers) or running - &man.lptest.1; with different arguments. For example, - <command>lptest 80 60</command> will produce 60 lines of 80 - characters each.</para> - - <para>If the printer did not work, see the <link - linkend="printing-troubleshooting">Troubleshooting</link> - section.</para> - </sect4> - </sect3> - </sect2> - </sect1> - - <sect1 id="printing-advanced"> - <title>Advanced Printer Setup</title> - - <para>This section describes filters for printing specially formatted - files, header pages, printing across networks, and restricting and - accounting for printer usage.</para> - - <sect2 id="printing-advanced-filter-intro"> - <title>Filters</title> - - <para>Although LPD handles network protocols, queuing, access control, - and other aspects of printing, most of the <emphasis>real</emphasis> - work happens in the <emphasis>filters</emphasis>. Filters are - programs that communicate with the printer and handle its device - dependencies and special requirements. In the simple printer setup, - we installed a plain text filter—an extremely simple one that - should work with most printers (section <link - linkend="printing-textfilter">Installing the Text - Filter</link>).</para> - - <para>However, in order to take advantage of format conversion, printer - accounting, specific printer quirks, and so on, you should understand - how filters work. It will ultimately be the filter's responsibility - to handle these aspects. And the bad news is that most of the time - <emphasis>you</emphasis> have to provide filters yourself. The good - news is that many are generally available; when they are not, they are - usually easy to write.</para> - - <para>Also, FreeBSD comes with one, - <filename>/usr/libexec/lpr/lpf</filename>, that works with many - printers that can print plain text. (It handles backspacing and tabs - in the file, and does accounting, but that is about all it does.) - There are also several filters and filter components in the FreeBSD - ports collection.</para> - - <para>Here is what you will find in this section:</para> - - <itemizedlist> - <listitem> - <para>Section <link linkend="printing-advanced-filters">How Filters - Work</link>, tries to give an overview of a filter's role in the - printing process. You should read this section to get an - understanding of what is happening <quote>under the hood</quote> - when LPD uses filters. This knowledge could help you anticipate - and debug problems you might encounter as you install more and - more filters on each of your printers.</para> - </listitem> - - <listitem> - <para>LPD expects every printer to be able to print plain text by - default. This presents a problem for PostScript (or other - language-based printers) which cannot directly print plain text. - Section <link - linkend="printing-advanced-if-conversion">Accommodating - Plain Text Jobs on PostScript Printers</link> tells you what you - should do to overcome this problem. I recommend reading this - section if you have a PostScript printer.</para> - </listitem> - - <listitem> - <para>PostScript is a popular output format for many programs. Even - some people (myself included) write PostScript code directly. But - PostScript printers are expensive. Section <link - linkend="printing-advanced-ps">Simulating PostScript on - Non-PostScript Printers</link> tells how you can further modify - a printer's text filter to accept and print PostScript data on a - <emphasis>non-PostScript</emphasis> printer. I recommend reading - this section if you do not have a PostScript printer.</para> - </listitem> - - <listitem> - <para>Section <link - linkend="printing-advanced-convfilters">Conversion - Filters</link> tells about a way you can automate the conversion - of specific file formats, such as graphic or typesetting data, - into formats your printer can understand. After reading this - section, you should be able to set up your printers such that - users can type <command>lpr -t</command> to print troff data, or - <command>lpr -d</command> to print TeX DVI data, or <command>lpr - -v</command> to print raster image data, and so forth. I - recommend reading this section.</para> - </listitem> - - <listitem> - <para>Section <link linkend="printing-advanced-of">Output - Filters</link> tells all about a not often used feature of LPD: - output filters. Unless you are printing header pages (see <link - linkend="printing-advanced-header-pages">Header Pages</link>), - you can probably skip that section altogether.</para> - </listitem> - - <listitem> - <para>Section <link linkend="printing-advanced-lpf">lpf: a Text - Filter</link> describes <command>lpf</command>, a fairly - complete if simple text filter for line printers (and laser - printers that act like line printers) that comes with FreeBSD. If - you need a quick way to get printer accounting working for plain - text, or if you have a printer which emits smoke when it sees - backspace characters, you should definitely consider - <command>lpf</command>.</para> - </listitem> - </itemizedlist> - - <sect3 id="printing-advanced-filters"> - <title>How Filters Work</title> - - <para>As mentioned before, a filter is an executable program started - by LPD to handle the device-dependent part of communicating with the - printer.</para> - - <para>When LPD wants to print a file in a job, it starts a filter - program. It sets the filter's standard input to the file to print, - its standard output to the printer, and its standard error to the - error logging file (specified in the <literal>lf</literal> - capability in <filename>/etc/printcap</filename>, or - <filename>/dev/console</filename> by default).</para> - - <para>Which filter LPD starts and the filter's arguments depend on - what is listed in the <filename>/etc/printcap</filename> file and - what arguments the user specified for the job on the - &man.lpr.1; command line. For example, if the user typed - <command>lpr -t</command>, LPD would start the troff filter, listed - in the <literal>tf</literal> capability for the destination printer. - If the user wanted to print plain text, it would start the - <literal>if</literal> filter (this is mostly true: see <link - linkend="printing-advanced-of">Output Filters</link> for - details).</para> - - <para>There are three kinds of filters you can specify in - <filename>/etc/printcap</filename>:</para> - - <itemizedlist> - <listitem> - <para>The <emphasis>text filter</emphasis>, confusingly called the - <emphasis>input filter</emphasis> in LPD documentation, handles - regular text printing. Think of it as the default filter. LPD - expects every printer to be able to print plain text by default, - and it is the text filter's job to make sure backspaces, tabs, - or other special characters do not confuse the printer. If you - are in an environment where you have to account for printer - usage, the text filter must also account for pages printed, - usually by counting the number of lines printed and comparing - that to the number of lines per page the printer supports. The - text filter is started with the following argument list: - - <cmdsynopsis> - <command>filter-name</command> - <arg>-c</arg> - <arg choice="plain">-w<replaceable>width</replaceable></arg> - <arg choice="plain">-l<replaceable>length</replaceable></arg> - <arg choice="plain">-i<replaceable>indent</replaceable></arg> - <arg choice="plain">-n <replaceable>login</replaceable></arg> - <arg choice="plain">-h <replaceable>host</replaceable></arg> - <arg choice="plain"><replaceable>acct-file</replaceable></arg> - </cmdsynopsis> - - where - - <variablelist> - <varlistentry> - <term><option>-c</option></term> - - <listitem> - <para>appears if the job's submitted with <command>lpr - -l</command></para> - </listitem> - </varlistentry> - - <varlistentry> - <term><replaceable>width</replaceable></term> - - <listitem> - <para>is the value from the <literal>pw</literal> (page - width) capability specified in - <filename>/etc/printcap</filename>, default 132</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><replaceable>length</replaceable></term> - - <listitem> - <para>is the value from the <literal>pl</literal> (page - length) capability, default 66</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><replaceable>indent</replaceable></term> - - <listitem> - <para>is the amount of the indentation from <command>lpr - -i</command>, default 0</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><replaceable>login</replaceable></term> - - <listitem> - <para>is the account name of the user printing the - file</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><replaceable>host</replaceable></term> - - <listitem> - <para>is the host name from which the job was - submitted</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><replaceable>acct-file</replaceable></term> - - <listitem> - <para>is the name of the accounting file from the - <literal>af</literal> capability.</para> - </listitem> - </varlistentry> - </variablelist> - </para> - </listitem> - - <listitem> - <para>A <emphasis>conversion filter</emphasis> converts a specific - file format into one the printer can render onto paper. For - example, ditroff typesetting data cannot be directly printed, - but you can install a conversion filter for ditroff files to - convert the ditroff data into a form the printer can digest and - print. Section <link - linkend="printing-advanced-convfilters">Conversion - Filters</link> tells all about them. Conversion filters also - need to do accounting, if you need printer accounting. - Conversion filters are started with the following arguments: - - <cmdsynopsis> - <command>filter-name</command> - <arg - choice="plain">-x<replaceable>pixel-width</replaceable></arg> - <arg choice="plain">-y<replaceable>pixel-height</replaceable></arg> - <arg choice="plain">-n <replaceable>login</replaceable></arg> - <arg choice="plain">-h <replaceable>host</replaceable></arg> - <arg choice="plain"><replaceable>acct-file</replaceable></arg> - </cmdsynopsis> - - where <replaceable>pixel-width</replaceable> is the value - from the <literal>px</literal> capability (default 0) and - <replaceable>pixel-height</replaceable> is the value from the - <literal>py</literal> capability (default 0).</para> - </listitem> - - <listitem> - <para>The <emphasis>output filter</emphasis> is used only if there - is no text filter, or if header pages are enabled. In my - experience, output filters are rarely used. Section <link - linkend="printing-advanced-of">Output Filters</link> describe - them. There are only two arguments to an output filter: - - <cmdsynopsis> - <command>filter-name</command> - <arg choice="plain">-w<replaceable>width</replaceable></arg> - <arg choice="plain">-l<replaceable>length</replaceable></arg> - </cmdsynopsis> - - which are identical to the text filters <option>-w</option> and - <option>-l</option> arguments.</para> - </listitem> - </itemizedlist> - - <para>Filters should also <emphasis>exit</emphasis> with the - following exit status:</para> - - <variablelist> - <varlistentry> - <term>exit 0</term> - - <listitem> - <para>If the filter printed the file successfully.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>exit 1</term> - - <listitem> - <para>If the filter failed to print the file but wants LPD to - try to print the file again. LPD will restart a filter if it - exits with this status.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>exit 2</term> - - <listitem> - <para>If the filter failed to print the file and does not want - LPD to try again. LPD will throw out the file.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>The text filter that comes with the FreeBSD release, - <filename>/usr/libexec/lpr/lpf</filename>, takes advantage of the - page width and length arguments to determine when to send a form - feed and how to account for printer usage. It uses the login, host, - and accounting file arguments to make the accounting entries.</para> - - <para>If you are shopping for filters, see if they are LPD-compatible. - If they are, they must support the argument lists described above. - If you plan on writing filters for general use, then have them - support the same argument lists and exit codes.</para> - </sect3> - - <sect3 id="printing-advanced-if-conversion"> - <title>Accommodating Plain Text Jobs on PostScript Printers</title> - - <para>If you are the only user of your computer and PostScript (or - other language-based) printer, and you promise to never send plain - text to your printer and to never use features of various programs - that will want to send plain text to your printer, then you do not - need to worry about this section at all.</para> - - <para>But, if you would like to send both PostScript and plain text - jobs to the printer, then you are urged to augment your printer - setup. To do so, we have the text filter detect if the arriving job - is plain text or PostScript. All PostScript jobs must start with - <literal>%!</literal> (for other printer languages, see your printer - documentation). If those are the first two characters in the job, - we have PostScript, and can pass the rest of the job directly. If - those are not the first two characters in the file, then the filter - will convert the text into PostScript and print the result.</para> - - <para>How do we do this?</para> - - <para>If you have got a serial printer, a great way to do it is to - install <command>lprps</command>. <command>lprps</command> is a - PostScript printer filter which performs two-way communication with - the printer. It updates the printer's status file with verbose - information from the printer, so users and administrators can see - exactly what the state of the printer is (such as <errorname>toner - low</errorname> or <errorname>paper jam</errorname>). But more - importantly, it includes a program called <command>psif</command> - which detects whether the incoming job is plain text and calls - <command>textps</command> (another program that comes with - <command>lprps</command>) to convert it to PostScript. It then uses - <command>lprps</command> to send the job to the printer.</para> - - <para><command>lprps</command> is part of the FreeBSD ports collection - (see <link linkend="ports">The Ports Collection</link>). You can - fetch, build and install it yourself, of course. After installing - <command>lprps</command>, just specify the pathname to the - <command>psif</command> program that is part of - <command>lprps</command>. If you installed <command>lprps</command> - from the ports collection, use the following in the serial - PostScript printer's entry in - <filename>/etc/printcap</filename>:</para> - - <programlisting> -:if=/usr/local/libexec/psif:</programlisting> - - <para>You should also specify the <literal>rw</literal> capability; - that tells LPD to open the printer in read-write mode.</para> - - <para>If you have a parallel PostScript printer (and therefore cannot - use two-way communication with the printer, which - <command>lprps</command> needs), you can use the following shell - script as the text filter:</para> - - <programlisting> -#!/bin/sh -# -# psif - Print PostScript or plain text on a PostScript printer -# Script version; NOT the version that comes with lprps -# Installed in /usr/local/libexec/psif -# - -read first_line -first_two_chars=`expr "$first_line" : '\(..\)'` - -if [ "$first_two_chars" = "%!" ]; then - # - # PostScript job, print it. - # - echo "$first_line" && cat && printf "\004" && exit 0 - exit 2 -else - # - # Plain text, convert it, then print it. - # - ( echo "$first_line"; cat ) | /usr/local/bin/textps && printf "\004" && exit 0 - exit 2 -fi</programlisting> - - <para>In the above script, <command>textps</command> is a program we - installed separately to convert plain text to PostScript. You can - use any text-to-PostScript program you wish. The FreeBSD ports - collection (see <link linkend="ports">The Ports Collection</link>) - includes a full featured text-to-PostScript program called - <literal>a2ps</literal> that you might want to investigate.</para> - </sect3> - - <sect3 id="printing-advanced-ps"> - <title>Simulating PostScript on Non-PostScript Printers</title> - - <para>PostScript is the <emphasis>de facto</emphasis> standard for - high quality typesetting and printing. PostScript is, however, an - <emphasis>expensive</emphasis> standard. Thankfully, Alladin - Enterprises has a free PostScript work-alike called - <application>Ghostscript</application> that runs with FreeBSD. - Ghostscript can read most PostScript files and can render their - pages onto a variety of devices, including many brands of - non-PostScript printers. By installing Ghostscript and using a - special text filter for your printer, you can make your - non-PostScript printer act like a real PostScript printer.</para> - - <para>Ghostscript is in the FreeBSD ports collection, if you - would like to install it from there. You can fetch, build, and - install it quite easily yourself, as well.</para> - - <para>To simulate PostScript, we have the text filter detect if it is - printing a PostScript file. If it is not, then the filter will pass - the file directly to the printer; otherwise, it will use Ghostscript - to first convert the file into a format the printer will - understand.</para> - - <para>Here is an example: the following script is a text filter - for Hewlett Packard DeskJet 500 printers. For other printers, - substitute the <option>-sDEVICE</option> argument to the - <command>gs</command> (Ghostscript) command. (Type <command>gs - -h</command> to get a list of devices the current installation of - Ghostscript supports.)</para> - - <programlisting> -#!/bin/sh -# -# ifhp - Print Ghostscript-simulated PostScript on a DeskJet 500 -# Installed in /usr/local/libexec/hpif - -# -# Treat LF as CR+LF: -# -printf "\033&k2G" || exit 2 - -# -# Read first two characters of the file -# -read first_line -first_two_chars=`expr "$first_line" : '\(..\)'` - -if [ "$first_two_chars" = "%!" ]; then - # - # It is PostScript; use Ghostscript to scan-convert and print it. - # - # Note that PostScript files are actually interpreted programs, - # and those programs are allowed to write to stdout, which will - # mess up the printed output. So, we redirect stdout to stderr - # and then make descriptor 3 go to stdout, and have Ghostscript - # write its output there. Exercise for the clever reader: - # capture the stderr output from Ghostscript and mail it back to - # the user originating the print job. - # - exec 3>&1 1>&2 - /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \ - -sOutputFile=/dev/fd/3 - && exit 0 - - # - /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 -sOutputFile=- - \ - && exit 0 -else - # - # Plain text or HP/PCL, so just print it directly; print a form - # at the end to eject the last page. - # - echo $first_line && cat && printf "\033&l0H" && -exit 0 -fi - -exit 2</programlisting> - - <para>Finally, you need to notify LPD of the filter via the - <literal>if</literal> capability:</para> - - <programlisting> -:if=/usr/local/libexec/hpif:</programlisting> - - <para>That is it. You can type <command>lpr plain.text</command> and - <filename>lpr whatever.ps</filename> and both should print - successfully.</para> - </sect3> - - <sect3 id="printing-advanced-convfilters"> - <title>Conversion Filters</title> - - <para>After completing the simple setup described in <link - linkend="printing-simple">Simple Printer Setup</link>, the first - thing you will probably want to do is install conversion filters for - your favorite file formats (besides plain ASCII text).</para> - - <sect4> - <title>Why Install Conversion Filters?</title> - - <para>Conversion filters make printing various kinds of files easy. - As an example, suppose we do a lot of work with the TeX - typesetting system, and we have a PostScript printer. Every time - we generate a DVI file from TeX, we cannot print it directly until - we convert the DVI file into PostScript. The command sequence - goes like this:</para> - - <screen>&prompt.user; <userinput>dvips seaweed-analysis.dvi</userinput> -&prompt.user; <userinput>lpr seaweed-analysis.ps</userinput></screen> - - <para>By installing a conversion filter for DVI files, we can skip - the hand conversion step each time by having LPD do it for us. - Now, each time we get a DVI file, we are just one step away from - printing it:</para> - - <screen>&prompt.user; <userinput>lpr -d seaweed-analysis.dvi</userinput></screen> - - <para>We got LPD to do the DVI file conversion for us by specifying - the <option>-d</option> option. Section <link - linkend="printing-lpr-options-format">Formatting and Conversion - Options</link> lists the conversion options.</para> - - <para>For each of the conversion options you want a printer to - support, install a <emphasis>conversion filter</emphasis> and - specify its pathname in <filename>/etc/printcap</filename>. A - conversion filter is like the text filter for the simple printer - setup (see section <link linkend="printing-textfilter">Installing - the Text Filter</link>) except that instead of printing plain - text, the filter converts the file into a format the printer can - understand.</para> - </sect4> - - <sect4> - <title>Which Conversions Filters Should I Install?</title> - - <para>You should install the conversion filters you expect to use. - If you print a lot of DVI data, then a DVI conversion filter is in - order. If you have got plenty of troff to print out, then you - probably want a troff filter.</para> - - <para>The following table summarizes the filters that LPD works - with, their capability entries for the - <filename>/etc/printcap</filename> file, and how to invoke them - with the <command>lpr</command> command:</para> - - <informaltable frame="none"> - <tgroup cols="3"> - <thead> - <row> - <entry>File type</entry> - <entry><filename>/etc/printcap</filename> capability</entry> - <entry><command>lpr</command> option</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>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>FORTRAN text</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>raster</entry> - <entry><literal>vf</literal></entry> - <entry><option>-v</option></entry> - </row> - - <row> - <entry>plain text</entry> - <entry><literal>if</literal></entry> - <entry>none, <option>-p</option>, or - <option>-l</option></entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>In our example, using <command>lpr -d</command> means the - printer needs a <literal>df</literal> capability in its entry in - <filename>/etc/printcap</filename>.</para> - - <para>Despite what others might contend, formats like FORTRAN text - and plot are probably obsolete. At your site, you can give new - meanings to these or any of the formatting options just by - installing custom filters. For example, suppose you would like to - directly print Printerleaf files (files from the Interleaf desktop - publishing program), but will never print plot files. You could - install a Printerleaf conversion filter under the - <literal>gf</literal> capability and then educate your users that - <command>lpr -g</command> mean <quote>print Printerleaf - files.</quote></para> - </sect4> - - <sect4> - <title>Installing Conversion Filters</title> - - <para>Since conversion filters are programs you install outside of - the base FreeBSD installation, they should probably go under - <filename>/usr/local</filename>. The directory - <filename>/usr/local/libexec</filename> is a popular location, - since they are specialized programs that only LPD will run; - regular users should not ever need to run them.</para> - - <para>To enable a conversion filter, specify its pathname under the - appropriate capability for the destination printer in - <filename>/etc/printcap</filename>.</para> - - <para>In our example, we will add the DVI conversion filter to the - entry for the printer named <literal>bamboo</literal>. Here is - the example <filename>/etc/printcap</filename> file again, with - the new <literal>df</literal> capability for the printer - <literal>bamboo</literal>.</para> - - <programlisting> -# -# /etc/printcap for host rose - added df filter for bamboo -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :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>The DVI filter is a shell script named - <filename>/usr/local/libexec/psdf</filename>. Here is that - script:</para> - - <programlisting> -#!bin/sh -# -# psdf - DVI to PostScript printer filter -# Installed in /usr/local/libexec/psdf -# -# Invoked by lpd when user runs lpr -d -# -exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"</programlisting> - - <para>This script runs <command>dvips</command> in filter mode (the - <option>-f</option> argument) on standard input, which is the job - to print. It then starts the PostScript printer filter - <command>lprps</command> (see section <link - linkend="printing-advanced-if-conversion">Accommodating Plain - Text Jobs on PostScript Printers</link>) with the arguments LPD - passed to this script. <command>lprps</command> will use those - arguments to account for the pages printed.</para> - </sect4> - - <sect4> - <title>More Conversion Filter Examples</title> - - <para>Since there is no fixed set of steps to install conversion - filters, let me instead provide more examples. Use these as - guidance to making your own filters. Use them directly, if - appropriate.</para> - - <para>This example script is a raster (well, GIF file, actually) - conversion filter for a Hewlett Packard LaserJet III-Si - printer:</para> - - <programlisting> -#!/bin/sh -# -# hpvf - Convert GIF files into HP/PCL, then print -# Installed in /usr/local/libexec/hpvf - -PATH=/usr/X11R6/bin:$PATH; export PATH -giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \ - && exit 0 \ - || exit 2</programlisting> - - <para>It works by converting the GIF file into a portable anymap, - converting that into a portable graymap, converting that into a - portable bitmap, and converting that into LaserJet/PCL-compatible - data.</para> - - <para>Here is the <filename>/etc/printcap</filename> file with an - entry for a printer using the above filter:</para> - - <programlisting> -# -# /etc/printcap for host orchid -# -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>The following script is a conversion filter for troff data - from the groff typesetting system for the PostScript printer named - <literal>bamboo</literal>:</para> - - <programlisting> -#!/bin/sh -# -# pstf - Convert groff's troff data into PS, then print. -# Installed in /usr/local/libexec/pstf -# -exec grops | /usr/local/libexec/lprps "$@"</programlisting> - - <para>The above script makes use of <command>lprps</command> again - to handle the communication with the printer. If the printer were - on a parallel port, we would use this script instead:</para> - - <programlisting> -#!/bin/sh -# -# pstf - Convert groff's troff data into PS, then print. -# Installed in /usr/local/libexec/pstf -# -exec grops</programlisting> - - <para>That is it. Here is the entry we need to add to - <filename>/etc/printcap</filename> to enable the filter:</para> - - <programlisting> -:tf=/usr/local/libexec/pstf:</programlisting> - - <para>Here is an example that might make old hands at FORTRAN blush. - It is a FORTRAN-text filter for any printer that can directly - print plain text. We will install it for the printer - <literal>teak</literal>:</para> - - <programlisting> -#!/bin/sh -# -# hprf - FORTRAN text filter for LaserJet 3si: -# Installed in /usr/local/libexec/hprf -# - -printf "\033&k2G" && fpr && printf "\033&l0H" && - exit 0 -exit 2</programlisting> - - <para>And we will add this line to the - <filename>/etc/printcap</filename> for the printer - <literal>teak</literal> to enable this filter:</para> - - <programlisting> -:rf=/usr/local/libexec/hprf:</programlisting> - - <para>Here is one final, somewhat complex example. We will add a - DVI filter to the LaserJet printer <literal>teak</literal> - introduced earlier. First, the easy part: updating - <filename>/etc/printcap</filename> with the location of the DVI - filter:</para> - - <programlisting> -:df=/usr/local/libexec/hpdf:</programlisting> - - <para>Now, for the hard part: making the filter. For that, we need - a DVI-to-LaserJet/PCL conversion program. The FreeBSD ports - collection (see <link linkend="ports">The Ports Collection</link>) - has one: <command>dvi2xx</command> is the name of the package. - Installing this package gives us the program we need, - <command>dvilj2p</command>, which converts DVI into LaserJet IIp, - LaserJet III, and LaserJet 2000 compatible codes.</para> - - <para><command>dvilj2p</command> makes the filter - <command>hpdf</command> quite complex since - <command>dvilj2p</command> cannot read from standard input. It - wants to work with a filename. What is worse, the filename has to - end in <filename>.dvi</filename> so using - <filename>/dev/fd/0</filename> for standard input is problematic. - We can get around that problem by linking (symbolically) a - temporary file name (one that ends in <filename>.dvi</filename>) - to <filename>/dev/fd/0</filename>, thereby forcing - <command>dvilj2p</command> to read from standard input.</para> - - <para>The only other fly in the ointment is the fact that we cannot - use <filename>/tmp</filename> for the temporary link. Symbolic - links are owned by user and group <username>bin</username>. The - filter runs as user <username>daemon</username>. And the - <filename>/tmp</filename> directory has the sticky bit set. The - filter can create the link, but it will not be able clean up when - done and remove it since the link will belong to a different - user.</para> - - <para>Instead, the filter will make the symbolic link in the current - working directory, which is the spooling directory (specified by - the <literal>sd</literal> capability in - <filename>/etc/printcap</filename>). This is a perfect place for - filters to do their work, especially since there is (sometimes) - more free disk space in the spooling directory than under - <filename>/tmp</filename>.</para> - - <para>Here, finally, is the filter:</para> - - <programlisting> -#!/bin/sh -# -# hpdf - Print DVI data on HP/PCL printer -# Installed in /usr/local/libexec/hpdf - -PATH=/usr/local/bin:$PATH; export PATH - -# -# Define a function to clean up our temporary files. These exist -# in the current directory, which will be the spooling directory -# for the printer. -# -cleanup() { - rm -f hpdf$$.dvi -} - -# -# Define a function to handle fatal errors: print the given message -# and exit 2. Exiting with 2 tells LPD to do not try to reprint the -# job. -# -fatal() { - echo "$@" 1>&2 - cleanup - exit 2 -} - -# -# If user removes the job, LPD will send SIGINT, so trap SIGINT -# (and a few other signals) to clean up after ourselves. -# -trap cleanup 1 2 15 - -# -# Make sure we are not colliding with any existing files. -# -cleanup - -# -# Link the DVI input file to standard input (the file to print). -# -ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0" - -# -# Make LF = CR+LF -# -printf "\033&k2G" || fatal "Cannot initialize printer" - -# -# Convert and print. Return value from dvilj2p does not seem to be -# reliable, so we ignore it. -# -dvilj2p -M1 -q -e- dfhp$$.dvi - -# -# Clean up and exit -# -cleanup -exit 0</programlisting> - </sect4> - - <sect4 id="printing-advanced-autoconv"> - <title>Automated Conversion: An Alternative To Conversion - Filters</title> - - <para>All these conversion filters accomplish a lot for your - printing environment, but at the cost forcing the user to specify - (on the &man.lpr.1; command line) which one to use. - If your users are not particularly computer literate, having to - specify a filter option will become annoying. What is worse, - though, is that an incorrectly specified filter option may run a - filter on the wrong type of file and cause your printer to spew - out hundreds of sheets of paper.</para> - - <para>Rather than install conversion filters at all, you might want - to try having the text filter (since it is the default filter) - detect the type of file it has been asked to print and then - automatically run the right conversion filter. Tools such as - <command>file</command> can be of help here. Of course, it will - be hard to determine the differences between - <emphasis>some</emphasis> file types—and, of course, you can - still provide conversion filters just for them.</para> - - <para>The FreeBSD ports collection has a text filter that performs - automatic conversion called <command>apsfilter</command>. It can - detect plain text, PostScript, and DVI files, run the proper - conversions, and print.</para> - </sect4> - </sect3> - - <sect3 id="printing-advanced-of"> - <title>Output Filters</title> - - <para>The LPD spooling system supports one other type of filter that - we have not yet explored: an output filter. An output filter is - intended for printing plain text only, like the text filter, but - with many simplifications. If you are using an output filter but no - text filter, then:</para> - - <itemizedlist> - <listitem> - <para>LPD starts an output filter once for the entire job instead - of once for each file in the job.</para> - </listitem> - - <listitem> - <para>LPD does not make any provision to identify the start or the - end of files within the job for the output filter.</para> - </listitem> - - <listitem> - <para>LPD does not pass the user's login or host to the filter, so - it is not intended to do accounting. In fact, it gets only two - arguments:</para> - - <cmdsynopsis> - <command>filter-name</command> - <arg choice="plain">-w<replaceable>width</replaceable></arg> - <arg choice="plain">-l<replaceable>length</replaceable></arg> - </cmdsynopsis> - - <para>Where <replaceable>width</replaceable> is from the - <literal>pw</literal> capability and - <replaceable>length</replaceable> is from the - <literal>pl</literal> capability for the printer in - question.</para> - </listitem> - </itemizedlist> - - <para>Do not be seduced by an output filter's simplicity. If you - would like each file in a job to start on a different page an output - filter <emphasis>will not work</emphasis>. Use a text filter (also - known as an input filter); see section <link - linkend="printing-textfilter">Installing the Text Filter</link>. - Furthermore, an output filter is actually <emphasis>more - complex</emphasis> in that it has to examine the byte stream being - sent to it for special flag characters and must send signals to - itself on behalf of LPD.</para> - - <para>However, an output filter is <emphasis>necessary</emphasis> if - you want header pages and need to send escape sequences or other - initialization strings to be able to print the header page. (But it - is also <emphasis>futile</emphasis> if you want to charge header - pages to the requesting user's account, since LPD does not give any - user or host information to the output filter.)</para> - - <para>On a single printer, LPD allows both an output filter and text - or other filters. In such cases, LPD will start the output filter - to print the header page (see section <link - linkend="printing-advanced-header-pages">Header Pages</link>) - only. LPD then expects the output filter to <emphasis>stop - itself</emphasis> by sending two bytes to the filter: ASCII 031 - followed by ASCII 001. When an output filter sees these two bytes - (031, 001), it should stop by sending SIGSTOP to itself. When LPD's - done running other filters, it will restart the output filter by - sending SIGCONT to it.</para> - - <para>If there is an output filter but <emphasis>no</emphasis> text - filter and LPD is working on a plain text job, LPD uses the output - filter to do the job. As stated before, the output filter will - print each file of the job in sequence with no intervening form - feeds or other paper advancement, and this is probably - <emphasis>not</emphasis> what you want. In almost all cases, you - need a text filter.</para> - - <para>The program <command>lpf</command>, which we introduced earlier - as a text filter, can also run as an output filter. If you need a - quick-and-dirty output filter but do not want to write the byte - detection and signal sending code, try <command>lpf</command>. You - can also wrap <command>lpf</command> in a shell script to handle any - initialization codes the printer might require.</para> - </sect3> - - <sect3 id="printing-advanced-lpf"> - <title><command>lpf</command>: a Text Filter</title> - - <para>The program <filename>/usr/libexec/lpr/lpf</filename> that comes - with FreeBSD binary distribution is a text filter (input filter) - that can indent output (job submitted with <command>lpr - -i</command>), allow literal characters to pass (job submitted - with <command>lpr -l</command>), adjust the printing position for - backspaces and tabs in the job, and account for pages printed. It - can also act like an output filter.</para> - - <para><command>lpf</command> is suitable for many printing - environments. And although it has no capability to send - initialization sequences to a printer, it is easy to write a shell - script to do the needed initialization and then execute - <command>lpf</command>.</para> - - <para>In order for <command>lpf</command> to do page accounting - correctly, it needs correct values filled in for the - <literal>pw</literal> and <literal>pl</literal> capabilities in the - <filename>/etc/printcap</filename> file. It uses these values to - determine how much text can fit on a page and how many pages were in - a user's job. For more information on printer accounting, see <link - linkend="printing-advanced-acct">Accounting for Printer - Usage</link>.</para> - </sect3> - </sect2> - - <sect2 id="printing-advanced-header-pages"> - <title>Header Pages</title> - - <para>If you have <emphasis>lots</emphasis> of users, all of them using - various printers, then you probably want to consider <emphasis>header - pages</emphasis> as a necessary evil.</para> - - <para>Header pages, also known as <emphasis>banner</emphasis> or - <emphasis>burst pages</emphasis> identify to whom jobs belong after - they are printed. They are usually printed in large, bold letters, - perhaps with decorative borders, so that in a stack of printouts they - stand out from the real documents that comprise users' jobs. They - enable users to locate their jobs quickly. The obvious drawback to a - header page is that it is yet one more sheet that has to be printed - for every job, their ephemeral usefulness lasting not more than a few - minutes, ultimately finding themselves in a recycling bin or rubbish - heap. (Note that header pages go with each job, not each file in a - job, so the paper waste might not be that bad.)</para> - - <para>The LPD system can provide header pages automatically for your - printouts <emphasis>if</emphasis> your printer can directly print - plain text. If you have a PostScript printer, you will need an - external program to generate the header page; see <link - linkend="printing-advanced-header-pages-ps">Header Pages on - PostScript Printers</link>.</para> - - <sect3 id="printing-advanced-header-pages-enabling"> - <title>Enabling Header Pages</title> - - <para>In the <link linkend="printing-simple">Simple Printer - Setup</link>, we turned off header pages by specifying - <literal>sh</literal> (meaning <quote>suppress header</quote>) in the - <filename>/etc/printcap</filename> file. To enable header pages for - a printer, just remove the <literal>sh</literal> capability.</para> - - <para>Sounds too easy, right?</para> - - <para>You are right. You <emphasis>might</emphasis> have to provide - an output filter to send initialization strings to the printer. - Here is an example output filter for Hewlett Packard PCL-compatible - printers:</para> - - <programlisting> -#!/bin/sh -# -# hpof - Output filter for Hewlett Packard PCL-compatible printers -# Installed in /usr/local/libexec/hpof - -printf "\033&k2G" || exit 2 -exec /usr/libexec/lpr/lpf</programlisting> - - <para>Specify the path to the output filter in the - <literal>of</literal> capability. See <link - linkend="printing-advanced-of">Output Filters</link> for more - information.</para> - - <para>Here is an example <filename>/etc/printcap</filename> file for - the printer <literal>teak</literal> that we introduced earlier; we - enabled header pages and added the above output filter:</para> - - <programlisting> -# -# /etc/printcap for host 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>Now, when users print jobs to <literal>teak</literal>, they get - a header page with each job. If users want to spend time searching - for their printouts, they can suppress header pages by submitting - the job with <command>lpr -h</command>; see <link - linkend="printing-lpr-options-misc">Header Page Options</link> for - more &man.lpr.1; options.</para> - - <note> - <para>LPD prints a form feed character after the header page. If - your printer uses a different character or sequence of characters - to eject a page, specify them with the <literal>ff</literal> - capability in <filename>/etc/printcap</filename>.</para> - </note> - </sect3> - - <sect3 id="printing-advanced-header-pages-controlling"> - <title>Controlling Header Pages</title> - - <para>By enabling header pages, LPD will produce a <emphasis>long - header</emphasis>, a full page of large letters identifying the - user, host, and job. Here is an example (kelly printed the job - named outline from host 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 appends a form feed after this text so the job starts on a - new page (unless you have <literal>sf</literal> (suppress form - feeds) in the destination printer's entry in - <filename>/etc/printcap</filename>).</para> - - <para>If you prefer, LPD can make a <emphasis>short header</emphasis>; - specify <literal>sb</literal> (short banner) in the - <filename>/etc/printcap</filename> file. The header page will look - like this:</para> - - <programlisting> -rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995</programlisting> - - <para>Also by default, LPD prints the header page first, then the job. - To reverse that, specify <literal>hl</literal> (header last) in - <filename>/etc/printcap</filename>.</para> - </sect3> - - <sect3 id="printing-advanced-header-pages-accounting"> - <title>Accounting for Header Pages</title> - - <para>Using LPD's built-in header pages enforces a particular paradigm - when it comes to printer accounting: header pages must be - <emphasis>free of charge</emphasis>.</para> - - <para>Why?</para> - - <para>Because the output filter is the only external program that will - have control when the header page is printed that could do - accounting, and it is not provided with any <emphasis>user or - host</emphasis> information or an accounting file, so it has no - idea whom to charge for printer use. It is also not enough to just - <quote>add one page</quote> to the text filter or any of the - conversion filters (which do have user and host information) since - users can suppress header pages with <command>lpr -h</command>. - They could still be charged for header pages they did not print. - Basically, <command>lpr -h</command> will be the preferred option of - environmentally-minded users, but you cannot offer any incentive to - use it.</para> - - <para>It is <emphasis>still not enough</emphasis> to have each of the - filters generate their own header pages (thereby being able to - charge for them). If users wanted the option of suppressing the - header pages with <command>lpr -h</command>, they will still get - them and be charged for them since LPD does not pass any knowledge - of the <option>-h</option> option to any of the filters.</para> - - <para>So, what are your options?</para> - - <para>You can:</para> - - <itemizedlist> - <listitem> - <para>Accept LPD's paradigm and make header pages free.</para> - </listitem> - - <listitem> - <para>Install an alternative to LPD, such as LPRng. Section - <link linkend="printing-lpd-alternatives">Alternatives to the - Standard Spooler</link> tells more about other spooling - software you can substitute for LPD.</para> - </listitem> - - <listitem> - <para>Write a <emphasis>smart</emphasis> output filter. Normally, - an output filter is not meant to do anything more than - initialize a printer or do some simple character conversion. It - is suited for header pages and plain text jobs (when there is no - text (input) filter). But, if there is a text filter for the - plain text jobs, then LPD will start the output filter only for - the header pages. And the output filter can parse the header - page text that LPD generates to determine what user and host to - charge for the header page. The only other problem with this - method is that the output filter still does not know what - accounting file to use (it is not passed the name of the file - from the <literal>af</literal> capability), but if you have a - well-known accounting file, you can hard-code that into the - output filter. To facilitate the parsing step, use the - <literal>sh</literal> (short header) capability in - <filename>/etc/printcap</filename>. Then again, all that might - be too much trouble, and users will certainly appreciate the - more generous system administrator who makes header pages - free.</para> - </listitem> - </itemizedlist> - </sect3> - - <sect3 id="printing-advanced-header-pages-ps"> - <title>Header Pages on PostScript Printers</title> - - <para>As described above, LPD can generate a plain text header page - suitable for many printers. Of course, PostScript cannot directly - print plain text, so the header page feature of LPD is - useless—or mostly so.</para> - - <para>One obvious way to get header pages is to have every conversion - filter and the text filter generate the header page. The filters - should should use the user and host arguments to generate a suitable - header page. The drawback of this method is that users will always - get a header page, even if they submit jobs with <command>lpr - -h</command>.</para> - - <para>Let us explore this method. The following script takes three - arguments (user login name, host name, and job name) and makes a - simple PostScript header page:</para> - - <programlisting> -#!/bin/sh -# -# make-ps-header - make a PostScript header page on stdout -# Installed in /usr/local/libexec/make-ps-header -# - -# -# These are PostScript units (72 to the inch). Modify for A4 or -# whatever size paper you are using: -# -page_width=612 -page_height=792 -border=72 - -# -# Check arguments -# -if [ $# -ne 3 ]; then - echo "Usage: `basename $0` <user> <host> <job>" 1>&2 - exit 1 -fi - -# -# Save these, mostly for readability in the PostScript, below. -# -user=$1 -host=$2 -job=$3 -date=`date` - -# -# Send the PostScript code to stdout. -# -exec cat <<EOF -%!PS - -% -% Make sure we do not interfere with user's job that will follow -% -save - -% -% Make a thick, unpleasant border around the edge of the paper. -% -$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 - -% -% Display user's login name, nice and large and prominent -% -/Helvetica-Bold findfont 64 scalefont setfont -$page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto -($user) show - -% -% Now show the boring particulars -% -/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 - -% -% That is it -% -restore -showpage -EOF</programlisting> - - <para>Now, each of the conversion filters and the text filter can call - this script to first generate the header page, and then print the - user's job. Here is the DVI conversion filter from earlier in this - document, modified to make a header page:</para> - - <programlisting> -#!/bin/sh -# -# psdf - DVI to PostScript printer filter -# Installed in /usr/local/libexec/psdf -# -# Invoked by lpd when user runs 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 "No login name" -[ "$host" ] || fail "No host name" - -( /usr/local/libexec/make-ps-header $login $host "DVI File" - /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args</programlisting> - - <para>Notice how the filter has to parse the argument list in order to - determine the user and host name. The parsing for the other - conversion filters is identical. The text filter takes a slightly - different set of arguments, though (see section <link - linkend="printing-advanced-filters">How Filters - Work</link>).</para> - - <para>As we have mentioned before, the above scheme, though fairly - simple, disables the <quote>suppress header page</quote> option (the - <option>-h</option> option) to <command>lpr</command>. If users - wanted to save a tree (or a few pennies, if you charge for header - pages), they would not be able to do so, since every filter's going - to print a header page with every job.</para> - - <para>To allow users to shut off header pages on a per-job basis, you - will need to use the trick introduced in section <link - linkend="printing-advanced-header-pages-accounting">Accounting for - Header Pages</link>: write an output filter that parses the - LPD-generated header page and produces a PostScript version. If the - user submits the job with <command>lpr -h</command>, then LPD will - not generate a header page, and neither will your output filter. - Otherwise, your output filter will read the text from LPD and send - the appropriate header page PostScript code to the printer.</para> - - <para>If you have a PostScript printer on a serial line, you can make - use of <command>lprps</command>, which comes with an output filter, - <command>psof</command>, which does the above. Note that - <command>psof</command> does not charge for header pages.</para> - </sect3> - </sect2> - - <sect2 id="printing-advanced-network-printers"> - <title>Networked Printing</title> - - <para>FreeBSD supports networked printing: sending jobs to remote - printers. Networked printing generally refers to two different - things:</para> - - <itemizedlist> - <listitem> - <para>Accessing a printer attached to a remote host. You install a - printer that has a conventional serial or parallel interface on - one host. Then, you set up LPD to enable access to the printer - from other hosts on the network. Section <link - linkend="printing-advanced-network-rm">Printers Installed on - Remote Hosts</link> tells how to do this.</para> - </listitem> - - <listitem> - <para>Accessing a printer attached directly to a network. The - printer has a network interface in addition (or in place of) a - more conventional serial or parallel interface. Such a printer - might work as follows:</para> - - <itemizedlist> - <listitem> - <para>It might understand the LPD protocol and can even queue - jobs from remote hosts. In this case, it acts just like a - regular host running LPD. Follow the same procedure in - section <link linkend="printing-advanced-network-rm">Printers - Installed on Remote Hosts</link> to set up such a - printer.</para> - </listitem> - - <listitem> - <para>It might support a data stream network connection. In this - case, you <quote>attach</quote> the printer to one host on the - network by making that host responsible for spooling jobs and - sending them to the printer. Section <link - linkend="printing-advanced-network-net-if">Printers with - Networked Data Stream Interfaces</link> gives some - suggestions on installing such printers.</para> - </listitem> - </itemizedlist> - </listitem> - </itemizedlist> - - <sect3 id="printing-advanced-network-rm"> - <title>Printers Installed on Remote Hosts</title> - - <para>The LPD spooling system has built-in support for sending jobs to - other hosts also running LPD (or are compatible with LPD). This - feature enables you to install a printer on one host and make it - accessible from other hosts. It also works with printers that have - network interfaces that understand the LPD protocol.</para> - - <para>To enable this kind of remote printing, first install a printer - on one host, the <emphasis>printer host</emphasis>, using the simple - printer setup described in <link linkend="printing-simple">Simple - Printer Setup</link>. Do any advanced setup in <link - linkend="printing-advanced">Advanced Printer Setup</link> that you - need. Make sure to test the printer and see if it works with the - features of LPD you have enabled. Also ensure that the - <emphasis>local host</emphasis> has authorization to use the LPD - service in the <emphasis>remote host</emphasis> (see <link - linkend="printing-advanced-restricting-remote">Restricting Jobs - from Remote Printers</link>).</para> - - <para>If you are using a printer with a network interface that is - compatible with LPD, then the <emphasis>printer host</emphasis> in - the discussion below is the printer itself, and the - <emphasis>printer name</emphasis> is the name you configured for the - printer. See the documentation that accompanied your printer and/or - printer-network interface.</para> - - <tip> - <para>If you are using a Hewlett Packard Laserjet then the printer - name <literal>text</literal> will automatically perform the LF to - CRLF conversion for you, so you will not require the - <filename>hpif</filename> script.</para> - </tip> - - <para>Then, on the other hosts you want to have access to the printer, - make an entry in their <filename>/etc/printcap</filename> files with - the following:</para> - - <orderedlist> - <listitem> - <para>Name the entry anything you want. For simplicity, though, - you probably want to use the same name and aliases as on the - printer host.</para> - </listitem> - - <listitem> - <para>Leave the <literal>lp</literal> capability blank, explicitly - (<literal>:lp=:</literal>).</para> - </listitem> - - <listitem> - <para>Make a spooling directory and specify its location in the - <literal>sd</literal> capability. LPD will store jobs here - before they get sent to the printer host.</para> - </listitem> - - <listitem> - <para>Place the name of the printer host in the - <literal>rm</literal> capability.</para> - </listitem> - - <listitem> - <para>Place the printer name on the <emphasis>printer - host</emphasis> in the <literal>rp</literal> - capability.</para> - </listitem> - </orderedlist> - - <para>That is it. You do not need to list conversion filters, page - dimensions, or anything else in the - <filename>/etc/printcap</filename> file.</para> - - <para>Here is an example. The host <hostid>rose</hostid> has two - printers, <literal>bamboo</literal> and <literal>rattan</literal>. - We will enable users on the host orchid to print to those printers. - Here is the <filename>/etc/printcap</filename> file for - <hostid>orchid</hostid> (back from section <link - linkend="printing-advanced-header-pages-enabling">Enabling Header - Pages</link>). It already had the entry for the printer - <literal>teak</literal>; we have added entries for the two printers - on the host rose:</para> - - <programlisting> -# -# /etc/printcap for host orchid - added (remote) printers on rose -# - -# -# teak is local; it is connected directly to 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 is connected to rose; send jobs for rattan to rose: -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: - -# -# bamboo is connected to rose as well: -# -bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ - :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:</programlisting> - - <para>Then, we just need to make spooling directories on - <hostid>orchid</hostid>:</para> - - <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> - - <para>Now, users on <hostid>orchid</hostid> can print to - <literal>rattan</literal> and <literal>bamboo</literal>. If, for - example, a user on orchid typed - - <screen>&prompt.user; <userinput>lpr -P bamboo -d sushi-review.dvi</userinput></screen> - - the LPD system on orchid would copy the job to the spooling - directory <filename>/var/spool/lpd/bamboo</filename> and note that - it was a DVI job. As soon as the host rose has room in its - <hostid>bamboo</hostid> spooling directory, the two LPDs would - transfer the file to rose. The file would wait in rose's queue - until it was finally printed. It would be converted from DVI to - PostScript (since bamboo is a PostScript printer) on rose.</para> - </sect3> - - <sect3 id="printing-advanced-network-net-if"> - <title>Printers with Networked Data Stream Interfaces</title> - - <para>Often, when you buy a network interface card for a printer, you - can get two versions: one which emulates a spooler (the more - expensive version), or one which just lets you send data to it as if - you were using a serial or parallel port (the cheaper version). - This section tells how to use the cheaper version. For the more - expensive one, see the previous section <link - linkend="printing-advanced-network-rm">Printers Installed on - Remote Hosts</link>.</para> - - <para>The format of the <filename>/etc/printcap</filename> file lets - you specify what serial or parallel interface to use, and (if you - are using a serial interface), what baud rate, whether to use flow - control, delays for tabs, conversion of newlines, and more. But - there is no way to specify a connection to a printer that is - listening on a TCP/IP or other network port.</para> - - <para>To send data to a networked printer, you need to develop a - communications program that can be called by the text and conversion - filters. Here is one such example: the script - <command>netprint</command> takes all data on standard input and - sends it to a network-attached printer. We specify the hostname of - the printer as the first argument and the port number to which to - connect as the second argument to <command>netprint</command>. Note - that this supports one-way communication only (FreeBSD to printer); - many network printers support two-way communication, and you might - want to take advantage of that (to get printer status, perform - accounting, etc.).</para> - - <programlisting> -#!/usr/bin/perl -# -# netprint - Text filter for printer attached to network -# Installed in /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 "Can't create TCP/IP stream socket: $!"; -connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!"; -while (<STDIN>) { print PRINTER; } -exit 0;</programlisting> - - <para>We can then use this script in various filters. Suppose we had - a Diablo 750-N line printer connected to the network. The printer - accepts data to print on port number 5100. The host name of the - printer is scrivener. Here is the text filter for the - printer:</para> - - <programlisting> -#!/bin/sh -# -# diablo-if-net - Text filter for Diablo printer `scrivener' listening -# on port 5100. Installed in /usr/local/libexec/diablo-if-net -# -exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100</programlisting> - </sect3> - </sect2> - - <sect2 id="printing-advanced-restricting"> - <title>Restricting Printer Usage</title> - - <para>This section gives information on restricting printer usage. The - LPD system lets you control who can access a printer, both locally or - remotely, whether they can print multiple copies, how large their jobs - can be, and how large the printer queues can get.</para> - - <sect3 id="printing-advanced-restricting-copies"> - <title>Restricting Multiple Copies</title> - - <para>The LPD system makes it easy for users to print multiple copies - of a file. Users can print jobs with <command>lpr -#5</command> - (for example) and get five copies of each file in the job. Whether - this is a good thing is up to you.</para> - - <para>If you feel multiple copies cause unnecessary wear and tear on - your printers, you can disable the <option>-#</option> option to - &man.lpr.1; by adding the <literal>sc</literal> capability to the - <filename>/etc/printcap</filename> file. When users submit jobs - with the <option>-#</option> option, they will see:</para> - - <screen>lpr: multiple copies are not allowed</screen> - - - <para>Note that if you have set up access to a printer remotely (see - section <link linkend="printing-advanced-network-rm">Printers - Installed on Remote Hosts</link>), you need the - <literal>sc</literal> capability on the remote - <filename>/etc/printcap</filename> files as well, or else users will - still be able to submit multiple-copy jobs by using another - host.</para> - - <para>Here is an example. This is the - <filename>/etc/printcap</filename> file for the host - <hostid>rose</hostid>. The printer <literal>rattan</literal> is - quite hearty, so we will allow multiple copies, but the laser - printer <literal>bamboo</literal>'s a bit more delicate, so we will - disable multiple copies by adding the <literal>sc</literal> - capability:</para> - - <programlisting> -# -# /etc/printcap for host rose - restrict multiple copies on bamboo -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :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>Now, we also need to add the <literal>sc</literal> capability on - the host <hostid>orchid</hostid>'s - <filename>/etc/printcap</filename> (and while we are at it, let us - disable multiple copies for the printer - <literal>teak</literal>):</para> - - <programlisting> -# -# /etc/printcap for host orchid - no multiple copies for local -# printer teak or remote printer 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|Diablo 630 Line Printer:\ - :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>By using the <literal>sc</literal> capability, we prevent the - use of <command>lpr -#</command>, but that still does not prevent - users from running &man.lpr.1; - multiple times, or from submitting the same file multiple times in - one job like this:</para> - - <screen>&prompt.user; <userinput>lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign</userinput></screen> - - <para>There are many ways to prevent this abuse (including ignoring - it) which you are free to explore.</para> - </sect3> - - <sect3 id="printing-advanced-restricting-access"> - <title>Restricting Access To Printers</title> - - <para>You can control who can print to what printers by using the UNIX - group mechanism and the <literal>rg</literal> capability in - <filename>/etc/printcap</filename>. Just place the users you want - to have access to a printer in a certain group, and then name that - group in the <literal>rg</literal> capability.</para> - - <para>Users outside the group (including root) will be greeted with - - <errorname>lpr: Not a member of the restricted group</errorname> - - if they try to print to the controlled printer.</para> - - <para>As with the <literal>sc</literal> (suppress multiple copies) - capability, you need to specify <literal>rg</literal> on remote - hosts that also have access to your printers, if you feel it is - appropriate (see section <link - linkend="printing-advanced-network-rm">Printers Installed on - Remote Hosts</link>).</para> - - <para>For example, we will let anyone access the printer - <literal>rattan</literal>, but only those in group - <literal>artists</literal> can use <literal>bamboo</literal>. Here - is the familiar <filename>/etc/printcap</filename> for host - <hostid>rose</hostid>:</para> - - <programlisting> -# -# /etc/printcap for host rose - restricted group for bamboo -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :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>Let us leave the other example - <filename>/etc/printcap</filename> file (for the host - <hostid>orchid</hostid>) alone. Of course, anyone on - <hostid>orchid</hostid> can print to <literal>bamboo</literal>. It - might be the case that we only allow certain logins on - <hostid>orchid</hostid> anyway, and want them to have access to the - printer. Or not.</para> - - <note> - <para>There can be only one restricted group per printer.</para> - </note> - </sect3> - - <sect3 id="printing-advanced-restricting-sizes"> - <title>Controlling Sizes of Jobs Submitted</title> - - <para>If you have many users accessing the printers, you probably need - to put an upper limit on the sizes of the files users can submit to - print. After all, there is only so much free space on the - filesystem that houses the spooling directories, and you also need - to make sure there is room for the jobs of other users.</para> - - <para>LPD enables you to limit the maximum byte size a file in a job - can be with the <literal>mx</literal> capability. The units are in - BUFSIZ blocks, which are 1024 bytes. If you put a zero for this - capability, there will be no limit on file size; however, if no - <literal>mx</literal> capability is specified, then a default limit - of 1000 blocks will be used.</para> - - <note> - <para>The limit applies to <emphasis>files</emphasis> in a job, and - <emphasis>not</emphasis> the total job size.</para> - </note> - - <para>LPD will not refuse a file that is larger than the limit you - place on a printer. Instead, it will queue as much of the file up - to the limit, which will then get printed. The rest will be - discarded. Whether this is correct behavior is up for - debate.</para> - - <para>Let us add limits to our example printers - <literal>rattan</literal> and <literal>bamboo</literal>. Since - those artists' PostScript files tend to be large, we will limit them - to five megabytes. We will put no limit on the plain text line - printer:</para> - - <programlisting> -# -# /etc/printcap for host rose -# - -# -# No limit on job size: -# -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :sh:mx#0:sd=/var/spool/lpd/rattan:\ - :lp=/dev/lpt0:\ - :if=/usr/local/libexec/if-simple: - -# -# Limit of five megabytes: -# -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>Again, the limits apply to the local users only. If you have - set up access to your printers remotely, remote users will not get - those limits. You will need to specify the <literal>mx</literal> - capability in the remote <filename>/etc/printcap</filename> files as - well. See section <link - linkend="printing-advanced-network-rm">Printers Installed on - Remote Hosts</link> for more information on remote - printing.</para> - - <para>There is another specialized way to limit job sizes from remote - printers; see section <link - linkend="printing-advanced-restricting-remote">Restricting Jobs - from Remote Printers</link>.</para> - </sect3> - - <sect3 id="printing-advanced-restricting-remote"> - <title>Restricting Jobs from Remote Printers</title> - - <para>The LPD spooling system provides several ways to restrict print - jobs submitted from remote hosts:</para> - - <variablelist> - <varlistentry> - <term>Host restrictions</term> - - <listitem> - <para>You can control from which remote hosts a local LPD - accepts requests with the files - <filename>/etc/hosts.equiv</filename> and - <filename>/etc/hosts.lpd</filename>. LPD checks to see if an - incoming request is from a host listed in either one of these - files. If not, LPD refuses the request.</para> - - <para>The format of these files is simple: one host name per - line. Note that the file - <filename>/etc/hosts.equiv</filename> is also used by the - &man.ruserok.3; protocol, and affects programs like - &man.rsh.1; and &man.rcp.1;, so be careful.</para> - - <para>For example, here is the - <filename>/etc/hosts.lpd</filename> file on the host - <hostid>rose</hostid>:</para> - - <programlisting> -orchid -violet -madrigal.fishbaum.de</programlisting> - - <para>This means <hostid>rose</hostid> will accept requests from - the hosts <hostid>orchid</hostid>, <hostid>violet</hostid>, - and <hostid role="fqdn">madrigal.fishbaum.de</hostid>. If any - other host tries to access <hostid>rose</hostid>'s - LPD, the job will be refused.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Size restrictions</term> - - <listitem> - <para>You can control how much free space there needs to remain - on the filesystem where a spooling directory resides. Make a - file called <filename>minfree</filename> in the spooling - directory for the local printer. Insert in that file a number - representing how many disk blocks (512 bytes) of free space - there has to be for a remote job to be accepted.</para> - - <para>This lets you insure that remote users will not fill your - filesystem. You can also use it to give a certain priority to - local users: they will be able to queue jobs long after the - free disk space has fallen below the amount specified in the - <filename>minfree</filename> file.</para> - - <para>For example, let us add a <filename>minfree</filename> - file for the printer <hostid>bamboo</hostid>. We examine - <filename>/etc/printcap</filename> to find the spooling - directory for this printer; here is <hostid>bamboo</hostid>'s - entry:</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>The spooling directory is the given in the - <literal>sd</literal> capability. We will make three - megabytes (which is 6144 disk blocks) the amount of free disk - space that must exist on the filesystem for LPD to accept - remote jobs:</para> - - <screen>&prompt.root; <userinput>echo 6144 > /var/spool/lpd/bam -boo/minfree</userinput></screen> - </listitem> - </varlistentry> - - <varlistentry> - <term>User restrictions</term> - - <listitem> - <para>You can control which remote users can print to local - printers by specifying the <literal>rs</literal> capability in - <filename>/etc/printcap</filename>. When - <literal>rs</literal> appears in the entry for a - locally-attached printer, LPD will accept jobs from remote - hosts <emphasis>if</emphasis> the user submitting the job also - has an account of the same login name on the local host. - Otherwise, LPD refuses the job.</para> - - <para>This capability is particularly useful in an environment - where there are (for example) different departments sharing a - network, and some users transcend departmental boundaries. By - giving them accounts on your systems, they can use your - printers from their own departmental systems. If you would - rather allow them to use <emphasis>only</emphasis> your - printers and not your compute resources, you can give them - <quote>token</quote> accounts, with no home directory and a - useless shell like <filename>/usr/bin/false</filename>.</para> - </listitem> - </varlistentry> - </variablelist> - </sect3> - </sect2> - - <sect2 id="printing-advanced-acct"> - <title>Accounting for Printer Usage</title> - - <para>So, you need to charge for printouts. And why not? Paper and ink - cost money. And then there are maintenance costs—printers are - loaded with moving parts and tend to break down. You have examined - your printers, usage patterns, and maintenance fees and have come up - with a per-page (or per-foot, per-meter, or per-whatever) cost. Now, - how do you actually start accounting for printouts?</para> - - <para>Well, the bad news is the LPD spooling system does not provide - much help in this department. Accounting is highly dependent on the - kind of printer in use, the formats being printed, and - <emphasis>your</emphasis> requirements in charging for printer - usage.</para> - - <para>To implement accounting, you have to modify a printer's text - filter (to charge for plain text jobs) and the conversion filters (to - charge for other file formats), to count pages or query the printer - for pages printed. You cannot get away with using the simple output - filter, since it cannot do accounting. See section <link - linkend="printing-advanced-filter-intro">Filters</link>.</para> - - <para>Generally, there are two ways to do accounting:</para> - - <itemizedlist> - <listitem> - <para><emphasis>Periodic accounting</emphasis> is the more common - way, possibly because it is easier. Whenever someone prints a - job, the filter logs the user, host, and number of pages to an - accounting file. Every month, semester, year, or whatever time - period you prefer, you collect the accounting files for the - various printers, tally up the pages printed by users, and charge - for usage. Then you truncate all the logging files, starting with - a clean slate for the next period.</para> - </listitem> - - <listitem> - <para><emphasis>Timely accounting</emphasis> is less common, - probably because it is more difficult. This method has the - filters charge users for printouts as soon as they use the - printers. Like disk quotas, the accounting is immediate. You can - prevent users from printing when their account goes in the red, - and might provide a way for users to check and adjust their - <quote>print quotas.</quote> But this method requires some database - code to track users and their quotas.</para> - </listitem> - </itemizedlist> - - <para>The LPD spooling system supports both methods easily: since you - have to provide the filters (well, most of the time), you also have to - provide the accounting code. But there is a bright side: you have - enormous flexibility in your accounting methods. For example, you - choose whether to use periodic or timely accounting. You choose what - information to log: user names, host names, job types, pages printed, - square footage of paper used, how long the job took to print, and so - forth. And you do so by modifying the filters to save this - information.</para> - - <sect3> - <title>Quick and Dirty Printer Accounting</title> - - <para>FreeBSD comes with two programs that can get you set up with - simple periodic accounting right away. They are the text filter - <command>lpf</command>, described in section <link - linkend="printing-advanced-lpf">lpf: a Text Filter</link>, and - &man.pac.8;, a program to gather and total - entries from printer accounting files.</para> - - <para>As mentioned in the section on filters (<link - linkend="printing-advanced-filters">Filters</link>), LPD starts - the text and the conversion filters with the name of the accounting - file to use on the filter command line. The filters can use this - argument to know where to write an accounting file entry. The name - of this file comes from the <literal>af</literal> capability in - <filename>/etc/printcap</filename>, and if not specified as an - absolute path, is relative to the spooling directory.</para> - - <para>LPD starts <command>lpf</command> with page width and length - arguments (from the <literal>pw</literal> and <literal>pl</literal> - capabilities). <command>lpf</command> uses these arguments to - determine how much paper will be used. After sending the file to - the printer, it then writes an accounting entry in the accounting - file. The entries look like this:</para> - - <programlisting> -2.00 rose:andy -3.00 rose:kelly -3.00 orchid:mary -5.00 orchid:mary -2.00 orchid:zhang</programlisting> - - <para>You should use a separate accounting file for each printer, as - <command>lpf</command> has no file locking logic built into it, and - two <command>lpf</command>s might corrupt each other's entries if - they were to write to the same file at the same time. A easy way to - insure a separate accounting file for each printer is to use - <literal>af=acct</literal> in <filename>/etc/printcap</filename>. - Then, each accounting file will be in the spooling directory for a - printer, in a file named <filename>acct</filename>.</para> - - <para>When you are ready to charge users for printouts, run the - &man.pac.8; program. Just change to the spooling directory for - the printer you want to collect on and type <literal>pac</literal>. - You will get a dollar-centric summary like the following:</para> - - <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> - - <para>These are the arguments &man.pac.8; expects:</para> - - <variablelist> - <varlistentry> - <term><option>-P<replaceable>printer</replaceable></option></term> - - <listitem> - <para>Which <replaceable>printer</replaceable> to summarize. - This option works only if there is an absolute path in the - <literal>af</literal> capability in - <filename>/etc/printcap</filename>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-c</option></term> - - <listitem> - <para>Sort the output by cost instead of alphabetically by user - name.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-m</option></term> - - <listitem> - <para>Ignore host name in the accounting files. With this - option, user <username>smith</username> on host - <hostid>alpha</hostid> is the same user - <username>smith</username> on host <hostid>gamma</hostid>. - Without, they are different users.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-p<replaceable>price</replaceable></option></term> - - <listitem> - <para>Compute charges with <replaceable>price</replaceable> - dollars per page or per foot instead of the price from the - <literal>pc</literal> capability in - <filename>/etc/printcap</filename>, or two cents (the - default). You can specify <replaceable>price</replaceable> as - a floating point number.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-r</option></term> - - <listitem> - <para>Reverse the sort order.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-s</option></term> - - <listitem> - <para>Make an accounting summary file and truncate the - accounting file.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><replaceable>name</replaceable> - <replaceable>…</replaceable></term> - - <listitem> - <para>Print accounting information for the given user - <replaceable>names</replaceable> only.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>In the default summary that &man.pac.8; produces, you see the - number of pages printed by each user from various hosts. If, at - your site, host does not matter (because users can use any host), - run <command>pac -m</command>, to produce the following - summary:</para> - - <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> - - - <para>To compute the dollar amount due, - &man.pac.8; uses the <literal>pc</literal> capability in the - <filename>/etc/printcap</filename> file (default of 200, or 2 cents - per page). Specify, in hundredths of cents, the price per page or - per foot you want to charge for printouts in this capability. You - can override this value when you run &man.pac.8; with the - <option>-p</option> option. The units for the <option>-p</option> - option are in dollars, though, not hundredths of cents. For - example, - - <screen>&prompt.root; <userinput>pac -p1.50</userinput></screen> - - makes each page cost one dollar and fifty cents. You can really - rake in the profits by using this option.</para> - - <para>Finally, running <command>pac -s</command> will save the summary - information in a summary accounting file, which is named the same as - the printer's accounting file, but with <literal>_sum</literal> - appended to the name. It then truncates the accounting file. When - you run &man.pac.8; again, it rereads the - summary file to get starting totals, then adds information from the - regular accounting file.</para> - </sect3> - - <sect3> - <title>How Can You Count Pages Printed?</title> - - <para>In order to perform even remotely accurate accounting, you need - to be able to determine how much paper a job uses. This is the - essential problem of printer accounting.</para> - - <para>For plain text jobs, the problem is not that hard to solve: you - count how many lines are in a job and compare it to how many lines - per page your printer supports. Do not forget to take into account - backspaces in the file which overprint lines, or long logical lines - that wrap onto one or more additional physical lines.</para> - - <para>The text filter <command>lpf</command> (introduced in <link - linkend="printing-advanced-lpf">lpf: a Text Filter</link>) takes - into account these things when it does accounting. If you are - writing a text filter which needs to do accounting, you might want - to examine <command>lpf</command>'s source code.</para> - - <para>How do you handle other file formats, though?</para> - - <para>Well, for DVI-to-LaserJet or DVI-to-PostScript conversion, you - can have your filter parse the diagnostic output of - <command>dvilj</command> or <command>dvips</command> and look to see - how many pages were converted. You might be able to do similar - things with other file formats and conversion programs.</para> - - <para>But these methods suffer from the fact that the printer may not - actually print all those pages. For example, it could jam, run out - of toner, or explode—and the user would still get - charged.</para> - - <para>So, what can you do?</para> - - <para>There is only one <emphasis>sure</emphasis> way to do - <emphasis>accurate</emphasis> accounting. Get a printer that can - tell you how much paper it uses, and attach it via a serial line or - a network connection. Nearly all PostScript printers support this - notion. Other makes and models do as well (networked Imagen laser - printers, for example). Modify the filters for these printers to - get the page usage after they print each job and have them log - accounting information based on that value - <emphasis>only</emphasis>. There is no line counting nor - error-prone file examination required.</para> - - <para>Of course, you can always be generous and make all printouts - free.</para> - </sect3> - </sect2> - </sect1> - - <sect1 id="printing-using"> - <title>Using Printers</title> - - <para>This section tells you how to use printers you have setup with - FreeBSD. Here is an overview of the user-level commands:</para> - - <variablelist> - <varlistentry> - <term>&man.lpr.1;</term> - - <listitem> - <para>Print jobs</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&man.lpq.1;</term> - - <listitem> - <para>Check printer queues</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&man.lprm.1;</term> - - <listitem> - <para>Remove jobs from a printer's queue</para> - </listitem> - </varlistentry> - </variablelist> - - <para>There is also an administrative command, &man.lpc.8;, described in - the section <link linkend="printing-lpc">Administrating the LPD - Spooler</link>, used to control printers and their queues.</para> - - <para>All three of the commands &man.lpr.1;, &man.lprm.1;, and &man.lpq.1; - accept an option <option>-P - <replaceable>printer-name</replaceable></option> to specify on which - printer/queue to operate, as listed in the - <filename>/etc/printcap</filename> file. This enables you to submit, - remove, and check on jobs for various printers. If you do not use the - <option>-P</option> option, then these commands use the printer - specified in the <envar>PRINTER</envar> environment variable. Finally, - if you do not have a <envar>PRINTER</envar> environment variable, these - commands default to the printer named <literal>lp</literal>.</para> - - <para>Hereafter, the terminology <emphasis>default printer</emphasis> - means the printer named in the <envar>PRINTER</envar> environment - variable, or the printer named <literal>lp</literal> when there is no - <envar>PRINTER</envar> environment variable.</para> - - <sect2 id="printing-lpr"> - <title>Printing Jobs</title> - - <para>To print files, type:</para> - - <screen>&prompt.user; <userinput>lpr <replaceable>filename</replaceable> <replaceable>...</replaceable></userinput></screen> - - <para>This prints each of the listed files to the default printer. If - you list no files, &man.lpr.1; reads data to - print from standard input. For example, this command prints some - important system files:</para> - - <screen>&prompt.user; <userinput>lpr /etc/host.conf /etc/hosts.equiv</userinput></screen> - - <para>To select a specific printer, type:</para> - - <screen>&prompt.user; <userinput>lpr -P <replaceable>printer-name</replaceable> <replaceable>filename</replaceable> <replaceable>...</replaceable></userinput></screen> - - <para>This example prints a long listing of the current directory to the - printer named <literal>rattan</literal>:</para> - - <screen>&prompt.user; <userinput>ls -l | lpr -P rattan</userinput></screen> - - <para>Because no files were listed for the - &man.lpr.1; command, <command>lpr</command> read the data to print - from standard input, which was the output of the <command>ls - -l</command> command.</para> - - <para>The &man.lpr.1; command can also accept a wide variety of options - to control formatting, apply file conversions, generate multiple - copies, and so forth. For more information, see the section <link - linkend="printing-lpr-options">Printing Options</link>.</para> - </sect2> - - <sect2 id="printing-lpq"> - <title>Checking Jobs</title> - - <para>When you print with &man.lpr.1;, the data you wish to print is put - together in a package called a <quote>print job</quote>, which is sent - to the LPD spooling system. Each printer has a queue of jobs, and - your job waits in that queue along with other jobs from yourself and - from other users. The printer prints those jobs in a first-come, - first-served order.</para> - - <para>To display the queue for the default printer, type &man.lpq.1;. - For a specific printer, use the <option>-P</option> option. For - example, the command - - <screen>&prompt.user; <userinput>lpq -P bamboo</userinput></screen> - - shows the queue for the printer named <hostid>bamboo</hostid>. Here - is an example of the output of the <command>lpq</command> - command:</para> - - <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> - - <para>This shows three jobs in the queue for <literal>bamboo</literal>. - The first job, submitted by user kelly, got assigned <quote>job - number</quote> 9. Every job for a printer gets a unique job number. - Most of the time you can ignore the job number, but you will need it - if you want to cancel the job; see section <link - linkend="printing-lprm">Removing Jobs</link> for details.</para> - - <para>Job number nine consists of two files; multiple files given on the - &man.lpr.1; command line are treated as part of a single job. It - is the currently active job (note the word <literal>active</literal> - under the <quote>Rank</quote> column), which means the printer should - be currently printing that job. The second job consists of data - passed as the standard input to the &man.lpr.1; command. The third - job came from user <username>mary</username>; it is a much larger - job. The pathname of the files she's trying to print is too long to - fit, so the &man.lpq.1; command just shows three dots.</para> - - <para>The very first line of the output from &man.lpq.1; is also useful: - it tells what the printer is currently doing (or at least what LPD - thinks the printer is doing).</para> - - <para>The &man.lpq.1; command also support a <option>-l</option> option - to generate a detailed long listing. Here is an example of - <command>lpq -l</command>:</para> - - <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> - </sect2> - - <sect2 id="printing-lprm"> - <title>Removing Jobs</title> - - <para>If you change your mind about printing a job, you can remove the - job from the queue with the &man.lprm.1; command. Often, you can - even use &man.lprm.1; to remove an active job, but some or all of the - job might still get printed.</para> - - <para>To remove a job from the default printer, first use - &man.lpq.1; to find the job number. Then type:</para> - - <screen>&prompt.user; <userinput>lprm <replaceable>job-number</replaceable></userinput></screen> - - <para>To remove the job from a specific printer, add the - <option>-P</option> option. The following command removes job number - 10 from the queue for the printer <hostid>bamboo</hostid>:</para> - - <screen>&prompt.user; <userinput>lprm -P bamboo 10</userinput></screen> - - <para>The &man.lprm.1; command has a few shortcuts:</para> - - <variablelist> - <varlistentry> - <term>lprm -</term> - - <listitem> - <para>Removes all jobs (for the default printer) belonging to - you.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>lprm <replaceable>user</replaceable></term> - - <listitem> - <para>Removes all jobs (for the default printer) belonging to - <replaceable>user</replaceable>. The superuser can remove other - users' jobs; you can remove only your own jobs.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>lprm</term> - - <listitem> - <para>With no job number, user name, or <option>-</option> - appearing on the command line, - &man.lprm.1; removes the currently active job on the - default printer, if it belongs to you. The superuser can remove - any active job.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Just use the <option>-P</option> option with the above shortcuts - to operate on a specific printer instead of the default. For example, - the following command removes all jobs for the current user in the - queue for the printer named <literal>rattan</literal>:</para> - - <screen>&prompt.user; <userinput>lprm -P rattan -</userinput></screen> - - <note> - <para>If you are working in a networked environment, &man.lprm.1; will - let you remove jobs only from the - host from which the jobs were submitted, even if the same printer is - available from other hosts. The following command sequence - demonstrates this:</para> - - <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> - </note> - </sect2> - - <sect2 id="printing-lpr-options"> - <title>Beyond Plain Text: Printing Options</title> - - <para>The &man.lpr.1; command supports a number of options that control - formatting text, converting graphic and other file formats, producing - multiple copies, handling of the job, and more. This section - describes the options.</para> - - <sect3 id="printing-lpr-options-format"> - <title>Formatting and Conversion Options</title> - - <para>The following &man.lpr.1; options control formatting of the - files in the job. Use these options if the job does not contain - plain text or if you want plain text formatted through the - &man.pr.1; utility.</para> - - <para>For example, the following command prints a DVI file (from the - TeX typesetting system) named <filename>fish-report.dvi</filename> - to the printer named <literal>bamboo</literal>:</para> - - <screen>&prompt.user; <userinput>lpr -P bamboo -d fish-report.dvi</userinput></screen> - - <para>These options apply to every file in the job, so you cannot mix - (say) DVI and ditroff files together in a job. Instead, submit the - files as separate jobs, using a different conversion option for each - job.</para> - - <note> - <para>All of these options except <option>-p</option> and - <option>-T</option> require conversion filters installed for the - destination printer. For example, the <option>-d</option> option - requires the DVI conversion filter. Section <link - linkend="printing-advanced-convfilters">Conversion - Filters</link> gives details.</para> - </note> - - <variablelist> - <varlistentry> - <term><option>-c</option></term> - - <listitem> - <para>Print cifplot files.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-d</option></term> - - <listitem> - <para>Print DVI files.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-f</option></term> - - <listitem> - <para>Print FORTRAN text files.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-g</option></term> - - <listitem> - <para>Print plot data.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-i <replaceable>number</replaceable></option></term> - - <listitem> - <para>Indent the output by <replaceable>number</replaceable> - columns; if you omit <replaceable>number</replaceable>, indent - by 8 columns. This option works only with certain conversion - filters.</para> - - <note> - <para>Do not put any space between the <option>-i</option> and - the number.</para> - </note> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-l</option></term> - - <listitem> - <para>Print literal text data, including control - characters.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-n</option></term> - - <listitem> - <para>Print ditroff (device independent troff) data.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>-p</term> - - <listitem> - <para>Format plain text with &man.pr.1; before printing. See - &man.pr.1; for more information.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-T <replaceable>title</replaceable></option></term> - - <listitem> - <para>Use <replaceable>title</replaceable> on the - &man.pr.1; header instead of the file name. This option has - effect only when used with the <option>-p</option> - option.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-t</option></term> - - <listitem> - <para>Print troff data.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-v</option></term> - - <listitem> - <para>Print raster data.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Here is an example: this command prints a nicely formatted - version of the &man.ls.1; manual page on the default printer:</para> - - <screen>&prompt.user; <userinput>zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t</userinput></screen> - - <para>The &man.zcat.1; command uncompresses the source of the - &man.ls.1; manual page and passes it to the &man.troff.1; - command, which formats that source and makes GNU troff - output and passes it to &man.lpr.1;, which submits the job - to the LPD spooler. Because we used the <option>-t</option> - option to &man.lpr.1;, the spooler will convert the GNU - troff output into a format the default printer can - understand when it prints the job.</para> - </sect3> - - <sect3 id="printing-lpr-options-job-handling"> - <title>Job Handling Options</title> - - <para>The following options to &man.lpr.1; tell LPD to handle the job - specially:</para> - - <variablelist> - <varlistentry> - <term>-# <replaceable>copies</replaceable></term> - - <listitem> - <para>Produce a number of <replaceable>copies</replaceable> of - each file in the job instead of just one copy. An - administrator may disable this option to reduce printer - wear-and-tear and encourage photocopier usage. See section - <link - linkend="printing-advanced-restricting-copies">Restricting - Multiple Copies</link>.</para> - - <para>This example prints three copies of - <filename>parser.c</filename> followed by three copies of - <filename>parser.h</filename> to the default printer:</para> - - <screen>&prompt.user; <userinput>lpr -#3 parser.c parser.h</userinput></screen> - </listitem> - </varlistentry> - - <varlistentry> - <term>-m</term> - - <listitem> - <para>Send mail after completing the print job. With this - option, the LPD system will send mail to your account when it - finishes handling your job. In its message, it will tell you - if the job completed successfully or if there was an error, - and (often) what the error was.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>-s</term> - - <listitem> - <para>Do not copy the files to the spooling directory, but make - symbolic links to them instead.</para> - - <para>If you are printing a large job, you probably want to use - this option. It saves space in the spooling directory (your - job might overflow the free space on the filesystem where the - spooling directory resides). It saves time as well since LPD - will not have to copy each and every byte of your job to the - spooling directory.</para> - - <para>There is a drawback, though: since LPD will refer to the - original files directly, you cannot modify or remove them - until they have been printed.</para> - - <note> - <para>If you are printing to a remote printer, LPD will - eventually have to copy files from the local host to the - remote host, so the <option>-s</option> option will save - space only on the local spooling directory, not the remote. - It is still useful, though.</para> - </note> - </listitem> - </varlistentry> - - <varlistentry> - <term>-r</term> - - <listitem> - <para>Remove the files in the job after copying them to the - spooling directory, or after printing them with the - <option>-s</option> option. Be careful with this - option!</para> - </listitem> - </varlistentry> - </variablelist> - </sect3> - - <sect3 id="printing-lpr-options-misc"> - <title>Header Page Options</title> - - <para>These options to &man.lpr.1; adjust the text that normally - appears on a job's header page. If header pages are suppressed for - the destination printer, these options have no effect. See section - <link linkend="printing-advanced-header-pages">Header Pages</link> - for information about setting up header pages.</para> - - <variablelist> - <varlistentry> - <term>-C <replaceable>text</replaceable></term> - - <listitem> - <para>Replace the hostname on the header page with - <replaceable>text</replaceable>. The hostname is normally the - name of the host from which the job was submitted.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>-J <replaceable>text</replaceable></term> - - <listitem> - <para>Replace the job name on the header page with - <replaceable>text</replaceable>. The job name is normally the - name of the first file of the job, or - <filename>stdin</filename> if you are printing standard - input.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>-h</term> - - <listitem> - <para>Do not print any header page.</para> - - <note> - <para>At some sites, this option may have no effect due to the - way header pages are generated. See <link - linkend="printing-advanced-header-pages">Header - Pages</link> for details.</para> - </note> - </listitem> - </varlistentry> - </variablelist> - </sect3> - </sect2> - - <sect2 id="printing-lpc"> - <title>Administrating Printers</title> - - <para>As an administrator for your printers, you have had to install, - set up, and test them. Using the &man.lpc.8; command, you - can interact with your printers in yet more ways. With &man.lpc.8;, - you can</para> - - <itemizedlist> - <listitem> - <para>Start and stop the printers</para> - </listitem> - - <listitem> - <para>Enable and disable their queues</para> - </listitem> - - <listitem> - <para>Rearrange the order of the jobs in each queue.</para> - </listitem> - </itemizedlist> - - <para>First, a note about terminology: if a printer is - <emphasis>stopped</emphasis>, it will not print anything in its queue. - Users can still submit jobs, which will wait in the queue until the - printer is <emphasis>started</emphasis> or the queue is - cleared.</para> - - <para>If a queue is <emphasis>disabled</emphasis>, no user (except root) - can submit jobs for the printer. An <emphasis>enabled</emphasis> - queue allows jobs to be submitted. A printer can be - <emphasis>started</emphasis> for a disabled queue, in which case it - will continue to print jobs in the queue until the queue is - empty.</para> - - <para>In general, you have to have root privileges to use the - &man.lpc.8; command. Ordinary users can use the &man.lpc.8; command - to get printer status and to restart a hung printer only.</para> - - <para>Here is a summary of the &man.lpc.8; commands. Most of the - commands takes a <replaceable>printer-name</replaceable> argument to - tell on which printer to operate. You can use <literal>all</literal> - for the <replaceable>printer-name</replaceable> to mean all printers - listed in <filename>/etc/printcap</filename>.</para> - - <variablelist> - <varlistentry> - <term><command>abort - <replaceable>printer-name</replaceable></command></term> - - <listitem> - <para>Cancel the current job and stop the printer. Users can - still submit jobs if the queue's enabled.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>clean - <replaceable>printer-name</replaceable></command></term> - - <listitem> - <para>Remove old files from the printer's spooling directory. - Occasionally, the files that make up a job are not properly - removed by LPD, particularly if there have been errors during - printing or a lot of administrative activity. This command - finds files that do not belong in the spooling directory and - removes them.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>disable - <replaceable>printer-name</replaceable></command></term> - - <listitem> - <para>Disable queuing of new jobs. If the printer's started, it - will continue to print any jobs remaining in the queue. The - superuser (root) can always submit jobs, even to a disabled - queue.</para> - - <para>This command is useful while you are testing a new printer - or filter installation: disable the queue and submit jobs as - root. Other users will not be able to submit jobs until you - complete your testing and re-enable the queue with the - <command>enable</command> command.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>down <replaceable>printer-name</replaceable> - <replaceable>message</replaceable></command></term> - - <listitem> - <para>Take a printer down. Equivalent to - <command>disable</command> followed by <command>stop</command>. - The <replaceable>message</replaceable> appears as the printer's - status whenever a user checks the printer's queue with - &man.lpq.1; or status with <command>lpc - status</command>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>enable - <replaceable>printer-name</replaceable></command></term> - - <listitem> - <para>Enable the queue for a printer. Users can submit jobs but - the printer will not print anything until it is started.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>help - <replaceable>command-name</replaceable></command></term> - - <listitem> - <para>Print help on the command - <replaceable>command-name</replaceable>. With no - <replaceable>command-name</replaceable>, print a summary of the - commands available.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>restart - <replaceable>printer-name</replaceable></command></term> - - <listitem> - <para>Start the printer. Ordinary users can use this command if - some extraordinary circumstance hangs LPD, but they cannot start - a printer stopped with either the <command>stop</command> or - <command>down</command> commands. The - <command>restart</command> command is equivalent to - <command>abort</command> followed by - <command>start</command>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>start - <replaceable>printer-name</replaceable></command></term> - - <listitem> - <para>Start the printer. The printer will print jobs in its - queue.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>stop - <replaceable>printer-name</replaceable></command></term> - - <listitem> - <para>Stop the printer. The printer will finish the current job - and will not print anything else in its queue. Even though the - printer is stopped, users can still submit jobs to an enabled - queue.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>topq <replaceable>printer-name</replaceable> - <replaceable>job-or-username</replaceable></command></term> - - <listitem> - <para>Rearrange the queue for - <replaceable>printer-name</replaceable> by placing the jobs with - the listed <replaceable>job</replaceable> numbers or the jobs - belonging to <replaceable>username</replaceable> at the top of - the queue. For this command, you cannot use - <literal>all</literal> as the - <replaceable>printer-name</replaceable>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>up - <replaceable>printer-name</replaceable></command></term> - - <listitem> - <para>Bring a printer up; the opposite of the - <command>down</command> command. Equivalent to - <command>start</command> followed by - <command>enable</command>.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>&man.lpc.8; accepts the above commands on the command line. If - you do not enter any commands, &man.lpc.8; enters an interactive mode, - where you can enter commands until you type <command>exit</command>, - <command>quit</command>, or end-of-file.</para> - </sect2> - </sect1> - - <sect1 id="printing-lpd-alternatives"> - <title>Alternatives to the Standard Spooler</title> - - <para>If you have been reading straight through this manual, by now you - have learned just about everything there is to know about the LPD - spooling system that comes with FreeBSD. You can probably appreciate - many of its shortcomings, which naturally leads to the question: - <quote>What other spooling systems are out there (and work with - FreeBSD)?</quote></para> - - <variablelist> - <varlistentry> - <term>LPRng</term> - - <listitem> - <para>LPRng, which purportedly means <quote>LPR: the Next - Generation</quote> is a complete rewrite of PLP. Patrick Powell - and Justin Mason (the principal maintainer of PLP) collaborated to - make LPRng. The main site for LPRng is <ulink - url="http://www.astart.com/lprng/LPRng.html">http://www.astart.com/lprng/LPRng.html</ulink>.</para> - </listitem> - </varlistentry> - </variablelist> - </sect1> - - <sect1 id="printing-troubleshooting"> - <title>Troubleshooting</title> - - <para>After performing the simple test with &man.lptest.1;, you might - have gotten one of the following results instead of the correct - printout:</para> - - <variablelist> - <varlistentry> - <term>It worked, after awhile; or, it did not eject a full - sheet.</term> - - <listitem> - <para>The printer printed the above, but it sat for awhile and - did nothing. In fact, you might have needed to press a - PRINT REMAINING or FORM FEED button on the printer to get any - results to appear.</para> - - <para>If this is the case, the printer was probably waiting to - see if there was any more data for your job before it printed - anything. To fix this problem, you can have the text filter - send a FORM FEED character (or whatever is necessary) to the - printer. This is usually sufficient to have the printer - immediately print any text remaining in its internal buffer. - It is also useful to make sure each print job ends on a full - sheet, so the next job does not start somewhere on the middle - of the last page of the previous job.</para> - - <para>The following replacement for the shell script - <filename>/usr/local/libexec/if-simple</filename> prints a - form feed after it sends the job to the printer:</para> - - <programlisting> -#!/bin/sh -# -# if-simple - Simple text input filter for lpd -# Installed in /usr/local/libexec/if-simple -# -# Simply copies stdin to stdout. Ignores all filter arguments. -# Writes a form feed character (\f) after printing job. - -/bin/cat && printf "\f" && exit 0 -exit 2</programlisting> - </listitem> - </varlistentry> - - <varlistentry> - <term>It produced the <quote>staircase effect.</quote></term> - - <listitem> - <para>You got the following on paper:</para> - - <programlisting> -!"#$%&'()*+,-./01234 - "#$%&'()*+,-./012345 - #$%&'()*+,-./0123456</programlisting> - - <para>You have become another victim of the <emphasis>staircase - effect</emphasis>, caused by conflicting interpretations of - what characters should indicate a new line. UNIX-style - operating systems use a single character: ASCII code 10, the - line feed (LF). MS-DOS, OS/2, and others uses a pair of - characters, ASCII code 10 <emphasis>and</emphasis> ASCII code - 13 (the carriage return or CR). Many printers use the MS-DOS - convention for representing new-lines.</para> - - <para>When you print with FreeBSD, your text used just the line - feed character. The printer, upon seeing a line feed - character, advanced the paper one line, but maintained the - same horizontal position on the page for the next character - to print. That is what the carriage return is for: to move - the location of the next character to print to the left edge - of the paper.</para> - - <para>Here is what FreeBSD wants your printer to do:</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <tbody> - <row> - <entry>Printer received CR</entry> - <entry>Printer prints CR</entry> - </row> - - <row> - <entry>Printer received LF</entry> - <entry>Printer prints CR + LF</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>Here are some ways to achieve this:</para> - - <itemizedlist> - <listitem> - <para>Use the printer's configuration switches or control - panel to alter its interpretation of these characters. - Check your printer's manual to find out how to do - this.</para> - - <note> - <para>If you boot your system into other operating systems - besides FreeBSD, you may have to - <emphasis>reconfigure</emphasis> the printer to use a an - interpretation for CR and LF characters that those other - operating systems use. You might prefer one of the other - solutions, below.</para> - </note> - </listitem> - - <listitem> - <para>Have FreeBSD's serial line driver automatically - convert LF to CR+LF. Of course, this works with printers - on serial ports <emphasis>only</emphasis>. To enable this - feature, set the CRMOD bit in <literal>fs</literal> - capability in the <filename>/etc/printcap</filename> file - for the printer.</para> - </listitem> - - <listitem> - <para>Send an <emphasis>escape code</emphasis> to the - printer to have it temporarily treat LF characters - differently. Consult your printer's manual for escape - codes that your printer might support. When you find the - proper escape code, modify the text filter to send the - code first, then send the print job.</para> - - <para>Here is an example text filter for printers that - understand the Hewlett-Packard PCL escape codes. This - filter makes the printer treat LF characters as a LF and - CR; then it sends the job; then it sends a form feed to - eject the last page of the job. It should work with - nearly all Hewlett Packard printers.</para> - - <programlisting> -#!/bin/sh -# -# hpif - Simple text input filter for lpd for HP-PCL based printers -# Installed in /usr/local/libexec/hpif -# -# Simply copies stdin to stdout. Ignores all filter arguments. -# Tells printer to treat LF as CR+LF. Ejects the page when done. - -printf "\033&k2G" && cat && printf "\033&l0H" && exit 0 -exit 2</programlisting> - - <para>Here is an example <filename>/etc/printcap</filename> - from a host called orchid. It has a single printer - attached to its first parallel port, a Hewlett Packard - LaserJet 3Si named <hostid>teak</hostid>. It is using the - above script as its text filter:</para> - - <programlisting> -# -# /etc/printcap for host 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> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>It overprinted each line.</term> - - <listitem> - <para>The printer never advanced a line. All of the lines of - text were printed on top of each other on one line.</para> - - <para>This problem is the <quote>opposite</quote> of the - staircase effect, described above, and is much rarer. - Somewhere, the LF characters that FreeBSD uses to end a line - are being treated as CR characters to return the print - location to the left edge of the paper, but not also down a - line.</para> - - <para>Use the printer's configuration switches or control panel - to enforce the following interpretation of LF and CR - characters:</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Printer receives</entry> - <entry>Printer prints</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>The printer lost characters.</term> - - <listitem> - <para>While printing, the printer did not print a few characters - in each line. The problem might have gotten worse as the - printer ran, losing more and more characters.</para> - - <para>The problem is that the printer cannot keep up with the - speed at which the computer sends data over a serial line - (this problem should not occur with printers on parallel - ports). There are two ways to overcome the problem:</para> - - <itemizedlist> - <listitem> - <para>If the printer supports XON/XOFF flow control, have - FreeBSD use it by specifying the TANDEM bit in the - <literal>fs</literal> capability.</para> - </listitem> - - <listitem> - <para>If the printer supports carrier flow control, specify - the MDMBUF bit in the <literal>fs</literal> capability. - Make sure the cable connecting the printer to the computer - is correctly wired for carrier flow control.</para> - </listitem> - - <listitem> - <para>If the printer does not support any flow control, use - some combination of the NLDELAY, TBDELAY, CRDELAY, VTDELAY, - and BSDELAY bits in the <literal>fs</literal> capability - to add appropriate delays to the stream of data sent to - the printer.</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - - <varlistentry> - <term>It printed garbage.</term> - - <listitem> - <para>The printer printed what appeared to be random garbage, - but not the desired text.</para> - - <para>This is usually another symptom of incorrect - communications parameters with a serial printer. Double-check - the bps rate in the <literal>br</literal> capability, and the - parity bits in the <literal>fs</literal> and - <literal>fc</literal> capabilities; make sure the printer is - using the same settings as specified in the - <filename>/etc/printcap</filename> file.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Nothing happened.</term> - - <listitem> - <para>If nothing happened, the problem is probably within - FreeBSD and not the hardware. Add the log file - (<literal>lf</literal>) capability to the entry for the - printer you are debugging in the - <filename>/etc/printcap</filename> file. For example, here is - the entry for <literal>rattan</literal>, with the - <literal>lf</literal> capability:</para> - - <programlisting> -rattan|line|diablo|lp|Diablo 630 Line Printer:\ - :sh:sd=/var/spool/lpd/rattan:\ - :lp=/dev/lpt0:\ - :if=/usr/local/libexec/if-simple:\ - :lf=/var/log/rattan.log</programlisting> - - <para>Then, try printing again. Check the log file (in our - example, <filename>/var/log/rattan.log</filename>) to see any - error messages that might appear. Based on the messages you - see, try to correct the problem.</para> - - <para>If you do not specify a <literal>lf</literal> capability, - LPD uses <filename>/dev/console</filename> as a - default.</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: ("../book.sgml" "part" "chapter") - End: ---> - - diff --git a/en_US.ISO8859-1/books/handbook/security/chapter.sgml b/en_US.ISO8859-1/books/handbook/security/chapter.sgml deleted file mode 100644 index 8eb93b5cde..0000000000 --- a/en_US.ISO8859-1/books/handbook/security/chapter.sgml +++ /dev/null @@ -1,2762 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/security/chapter.sgml,v 1.33 2000/06/12 21:27:18 jim Exp $ ---> - -<chapter id="security"> - <title>Security</title> - - <para><emphasis>Much of this chapter has been taken from the - &man.security.7; man page, originally written by - &a.dillon;.</emphasis></para> - - <sect1> - <title>Synopsis</title> - - <para>The following chapter will provide a basic introduction to - system security concepts, some general good rules of thumb, and some - advanced topics such as S/Key, OpenSSL, Kerberos, and others.</para> - </sect1> - - <sect1 id="security-intro"> - <title>Introduction</title> - - <para>Security is a function that begins and ends with the system - administrator. While all BSD UNIX multi-user systems have some - inherent security, the job of building and maintaining additional - security mechanisms to keep those users <quote>honest</quote> is - probably one of the single largest undertakings of the sysadmin. - Machines are only as secure as you make them, and security concerns - are ever competing with the human necessity for convenience. UNIX - systems, in general, are capable of running a huge number of - simultaneous processes and many of these processes operate as - servers – meaning that external entities can connect and talk - to them. As yesterday's mini-computers and mainframes become - today's desktops, and as computers become networked and - internetworked, security becomes an ever bigger issue.</para> - - <para>Security is best implemented through a layered - <quote>onion</quote> approach. In a nutshell, what you want to do is - to create as many layers of security as are convenient and then - carefully monitor the system for intrusions. You do not want to - overbuild your security or you will interfere with the detection - side, and detection is one of the single most important aspects of - any security mechanism. For example, it makes little sense to set - the schg flags (see &man.chflags.1;) on every system binary because - while this may temporarily protect the binaries, it prevents a - hacker who has broken in from making an easily detectable change - that may result in your security mechanisms not detecting the hacker - at all.</para> - - <para>System security also pertains to dealing with various forms of - attack, including attacks that attempt to crash or otherwise make a - system unusable but do not attempt to break root. Security concerns - can be split up into several categories:</para> - - <orderedlist> - <listitem> - <para>Denial of service attacks.</para> - </listitem> - - <listitem> - <para>User account compromises.</para> - </listitem> - - <listitem> - <para>Root compromise through accessible servers.</para> - </listitem> - - <listitem> - <para>Root compromise via user accounts.</para> - </listitem> - - <listitem> - <para>Backdoor creation.</para> - </listitem> - </orderedlist> - - <para>A denial of service attack is an action that deprives the - machine of needed resources. Typically, D.O.S. attacks are - brute-force mechanisms that attempt to crash or otherwise make a - machine unusable by overwhelming its servers or network stack. Some - D.O.S. attacks try to take advantages of bugs in the networking - stack to crash a machine with a single packet. The latter can only - be fixed by applying a bug fix to the kernel. Attacks on servers - can often be fixed by properly specifying options to limit the load - the servers incur on the system under adverse conditions. - Brute-force network attacks are harder to deal with. A - spoofed-packet attack, for example, is nearly impossible to stop - short of cutting your system off from the internet. It may not be - able to take your machine down, but it can fill up internet - pipe.</para> - - <para>A user account compromise is even more common then a D.O.S. - attack. Many sysadmins still run standard telnetd, rlogind, rshd, - and ftpd servers on their machines. These servers, by default, do - not operate over encrypted connections. The result is that if you - have any moderate-sized user base, one or more of your users logging - into your system from a remote location (which is the most common - and convenient way to login to a system) will have his or her - password sniffed. The attentive system admin will analyze his - remote access logs looking for suspicious source addresses even for - successful logins.</para> - - <para>One must always assume that once an attacker has access to a - user account, the attacker can break root. However, the reality is - that in a well secured and maintained system, access to a user - account does not necessarily give the attacker access to root. The - distinction is important because without access to root the attacker - cannot generally hide his tracks and may, at best, be able to do - nothing more then mess with the user's files or crash the machine. - User account compromises are very common because users tend not to - take the precautions that sysadmins take.</para> - - <para>System administrators must keep in mind that there are - potentially many ways to break root on a machine. The attacker - may know the root password, the attacker may find a bug in a - root-run server and be able to break root over a network - connection to that server, or the attacker may know of a bug in - an suid-root program that allows the attacker to break root once - he has broken into a user's account. If an attacker has found a - a way to break root on a machine, the attacker may not have a need - to install a backdoor. Many of the root holes - found and closed to date involve a considerable amount of work - by the hacker to cleanup after himself, so most hackers install - backdoors. Backdoors provide the attacker with a way to easily - regain root access to the system, but it also gives the smart - system administrator a convenient way to detect the intrusion. - Making it impossible for a hacker to install a backdoor may - actually be detrimental to your security because it will not - close off the hole the hacker found to break in the first - place.</para> - - <para>Security remedies should always be implemented with a - multi-layered <quote>onion peel</quote> approach and can be - categorized as follows:</para> - - <orderedlist> - <listitem> - <para>Securing root and staff accounts.</para> - </listitem> - - <listitem> - <para>Securing root – root-run servers and suid/sgid - binaries.</para> - </listitem> - - <listitem> - <para>Securing user accounts.</para> - </listitem> - - <listitem> - <para>Securing the password file.</para> - </listitem> - - <listitem> - <para>Securing the kernel core, raw devices, and - filesystems.</para> - </listitem> - - <listitem> - <para>Quick detection of inappropriate changes made to the - system.</para> - </listitem> - - <listitem> - <para>Paranoia.</para> - </listitem> - </orderedlist> - - <para>The next section of this chapter will cover the above bullet - items in greater depth.</para> - </sect1> - - <sect1 id="securing-freebsd"> - <title>Securing FreeBSD</title> - - <para>The sections that follow will cover the methods of securing your - FreeBSD system that were mentioned in the <link - linkend="security-intro">last section</link> of this chapter.</para> - - <sect2 id="securing-root-and-staff"> - <title>Securing the root account and staff accounts</title> - - <para>First off, do not bother securing staff accounts if you have - not secured the root account. Most systems have a password - assigned to the root account. The first thing you do is assume - that the password is <emphasis>always</emphasis> compromised. - This does not mean that you should remove the password. The - password is almost always necessary for console access to the - machine. What it does mean is that you should not make it - possible to use the password outside of the console or possibly - even with the &man.su.1; command. For example, make sure that - your pty's are specified as being unsecure in the - <filename>/etc/ttys</filename> file so that direct root logins - via <command>telnet</command> or <command>rlogin</command> are - disallowed. If using other login services such as - <application>sshd</application>, make sure that direct root logins - are disabled there as well. Consider every access method – - services such as FTP often fall through the cracks. Direct root - logins should only be allowed via the system console.</para> - - <para>Of course, as a sysadmin you have to be able to get to root, - so we open up a few holes. But we make sure these holes require - additional password verification to operate. One way to make root - accessible is to add appropriate staff accounts to the - <literal>wheel</literal> group (in - <filename>/etc/group</filename>). The staff members placed in the - <literal>wheel</literal> group are allowed to - <literal>su</literal> to root. You should never give staff - members native wheel access by putting them in the - <literal>wheel</literal> group in their password entry. Staff - accounts should be placed in a <literal>staff</literal> group, and - then added to the <literal>wheel</literal> group via the - <filename>/etc/group</filename> file. Only those staff members - who actually need to have root access should be placed in the - <literal>wheel</literal> group. It is also possible, when using - an authentication method such as kerberos, to use kerberos' - <filename>.k5login</filename> file in the root account to allow a - &man.ksu.1; to root without having to place anyone at all in the - <literal>wheel</literal> group. This may be the better solution - since the <literal>wheel</literal> mechanism still allows an - intruder to break root if the intruder has gotten hold of your - password file and can break into a staff account. While having - the <literal>wheel</literal> mechanism is better then having - nothing at all, it is not necessarily the safest option.</para> - - <para>An indirect way to secure the root account is to secure your - staff accounts by using an alternative login access method and - <literal>*</literal>'ing out the crypted password for the staff - accounts. This way an intruder may be able to steal the password - file but will not be able to break into any staff accounts (or, - indirectly, root, even if root has a crypted password associated - with it). Staff members get into their staff accounts through a - secure login mechanism such as &man.kerberos.1; or &man.ssh.1; - using a private/public key pair. When you use something like - kerberos, you generally must secure the machines which run the - kerberos servers and your desktop workstation. When you use a - public/private key pair with <application>ssh</application>, you - must generally secure the machine you are logging in - <emphasis>from</emphasis> (typically your workstation), but you - can also add an additional layer of protection to the key pair by - password protecting the keypair when you create it with - &man.ssh-keygen.1;. Being able to <literal>*</literal> out the - passwords for staff accounts also guarantees that staff members can - only login through secure access methods that you have setup. You - can thus force all staff members to use secure, encrypted - connections for all of their sessions which closes an important - hole used by many intruders: That of sniffing the network from an - unrelated, less secure machine.</para> - - <para>The more indirect security mechanisms also assume that you are - logging in from a more restrictive server to a less restrictive - server. For example, if your main box is running all sorts of - servers, your workstation should not be running any. In order for - your workstation to be reasonably secure you should run as few - servers as possible, up to and including no servers at all, and - you should run a password-protected screen blanker. Of course, - given physical access to a workstation an attacker can break any - sort of security you put on it. This is definitely a problem that - you should consider but you should also consider the fact that the - vast majority of break-ins occur remotely, over a network, from - people who do not have physical access to your workstation or - servers.</para> - - <para>Using something like kerberos also gives you the ability to - disable or change the password for a staff account in one place - and have it immediately effect all the machine the staff member - may have an account on. If a staff member's account gets - compromised, the ability to instantly change his password on all - machines should not be underrated. With discrete passwords, - changing a password on N machines can be a mess. You can also - impose re-passwording restrictions with kerberos: not only can a - kerberos ticket be made to timeout after a while, but the kerberos - system can require that the user choose a new password after a - certain period of time (say, once a month).</para> - </sect2> - - <sect2> - <title>Securing Root-run Servers and SUID/SGID Binaries</title> - - <para>The prudent sysadmin only runs the servers he needs to, no - more, no less. Be aware that third party servers are often the - most bug-prone. For example, running an old version of imapd or - popper is like giving a universal root ticket out to the entire - world. Never run a server that you have not checked out - carefully. Many servers do not need to be run as root. For - example, the <application>ntalk</application>, - <application>comsat</application>, and - <application>finger</application> daemons can be run in special - user <literal>sandboxes</literal>. A sandbox isn't perfect unless - you go to a large amount of trouble, but the onion approach to - security still stands: If someone is able to break in through - a server running in a sandbox, they still have to break out of the - sandbox. The more layers the attacker must break through, the - lower the likelihood of his success. Root holes have historically - been found in virtually every server ever run as root, including - basic system servers. If you are running a machine through which - people only login via <application>sshd</application> and never - login via <application>telnetd</application> or - <application>rshd</application> or - <application>rlogind</application>, then turn off those - services!</para> - - <para>FreeBSD now defaults to running - <application>ntalkd</application>, - <application>comsat</application>, and - <application>finger</application> in a sandbox. Another program - which may be a candidate for running in a sandbox is &man.named.8;. - The default <filename>rc.conf</filename> includes the arguments - necessary to run <application>named</application> in a sandbox in a - commented-out form. Depending on whether you are installing a new - system or upgrading an existing system, the special user accounts - used by these sandboxes may not be installed. The prudent - sysadmin would research and implement sandboxes for servers - whenever possible.</para> - - <para>There are a number of other servers that typically do not run - in sandboxes: <application>sendmail</application>, - <application>popper</application>, - <application>imapd</application>, <application>ftpd</application>, - and others. There are alternatives to some of these, but - installing them may require more work then you are willing to - perform (the convenience factor strikes again). You may have to - run these servers as root and rely on other mechanisms to detect - break-ins that might occur through them.</para> - - <para>The other big potential root hole in a system are the - suid-root and sgid binaries installed on the system. Most of - these binaries, such as <application>rlogin</application>, reside - in <filename>/bin</filename>, <filename>/sbin</filename>, - <filename>/usr/bin</filename>, or <filename>/usr/sbin</filename>. - While nothing is 100% safe, the system-default suid and sgid - binaries can be considered reasonably safe. Still, root holes are - occasionally found in these binaries. A root hole was found in - <literal>Xlib</literal> in 1998 that made - <application>xterm</application> (which is typically suid) - vulnerable. It is better to be safe then sorry and the prudent - sysadmin will restrict suid binaries that only staff should run to - a special group that only staff can access, and get rid of - (<command>chmod 000</command>) any suid binaries that nobody uses. - A server with no display generally does not need an - <application>xterm</application> binary. Sgid binaries can be - almost as dangerous. If an intruder can break an sgid-kmem binary - the intruder might be able to read <filename>/dev/kmem</filename> - and thus read the crypted password file, potentially compromising - any passworded account. Alternatively an intruder who breaks - group <literal>kmem</literal> can monitor keystrokes sent through - pty's, including pty's used by users who login through secure - methods. An intruder that breaks the tty group can write to - almost any user's tty. If a user is running a terminal program or - emulator with a keyboard-simulation feature, the intruder can - potentially generate a data stream that causes the user's terminal - to echo a command, which is then run as that user.</para> - </sect2> - - <sect2 id="secure-users"> - <title>Securing User Accounts</title> - - <para>User accounts are usually the most difficult to secure. While - you can impose Draconian access restrictions on your staff and - <literal>*</literal> out their passwords, you may not be able to - do so with any general user accounts you might have. If you do - have sufficient control then you may win out and be able to secure - the user accounts properly. If not, you simply have to be more - vigilant in your monitoring of those accounts. Use of - <application>ssh</application> and kerberos for user accounts is - more problematic due to the extra administration and technical - support required, but still a very good solution compared to a - crypted password file.</para> - </sect2> - - <sect2> - <title>Securing the Password File</title> - - <para>The only sure fire way is to <literal>*</literal> out as many - passwords as you can and use <application>ssh</application> or - kerberos for access to those accounts. Even though the crypted - password file (<filename>/etc/spwd.db</filename>) can only be read - by root, it may be possible for an intruder to obtain read access - to that file even if the attacker cannot obtain root-write - access.</para> - - <para>Your security scripts should always check for and report - changes to the password file (see <link - linkend="security-integrity">Checking file integrity</link> - below).</para> - </sect2> - - <sect2> - <title>Securing the Kernel Core, Raw Devices, and - Filesystems</title> - - <para>If an attacker breaks root he can do just about anything, but - there are certain conveniences. For example, most modern kernels - have a packet sniffing device driver built in. Under FreeBSD it - is called the <devicename>bpf</devicename> device. An intruder - will commonly attempt to run a packet sniffer on a compromised - machine. You do not need to give the intruder the capability and - most systems should not have the bpf device compiled in.</para> - - <para>But even if you turn off the bpf device, you still have - <filename>/dev/mem</filename> and <filename>/dev/kmem</filename> - to worry about. For that matter, the intruder can still write to - raw disk devices. Also, there is another kernel feature called - the module loader, &man.kldload.8;. An enterprising intruder can - use a KLD module to install his own bpf device or other sniffing - device on a running kernel. To avoid these problems you have to - run the kernel at a higher secure level, at least securelevel 1. - The securelevel can be set with a <command>sysctl</command> on - the <literal>kern.securelevel</literal> variable. Once you have - set the securelevel to 1, write access to raw devices will be - denied and special chflags flags, such as <literal>schg</literal>, - will be enforced. You must also ensure that the - <literal>schg</literal> flag is set on critical startup binaries, - directories, and script files – everything that gets run up - to the point where the securelevel is set. This might be overdoing - it, and upgrading the system is much more difficult when you - operate at a higher secure level. You may compromise and run the - system at a higher secure level but not set the - <literal>schg</literal> flag for every system file and directory - under the sun. Another possibility is to simply mount - <filename>/</filename> and <filename>/usr</filename> read-only. - It should be noted that being too draconian in what you attempt to - protect may prevent the all-important detection of an - intrusion.</para> - </sect2> - - <sect2 id="security-integrity"> - <title>Checking File Integrity: Binaries, Configuration Files, - Etc.</title> - - <para>When it comes right down to it, you can only protect your core - system configuration and control files so much before the - convenience factor rears its ugly head. For example, using - <command>chflags</command> to set the <literal>schg</literal> bit - on most of the files in <filename>/</filename> and - <filename>/usr</filename> is probably counterproductive because - while it may protect the files, it also closes a detection window. - The last layer of your security onion is perhaps the most - important – detection. The rest of your security is pretty - much useless (or, worse, presents you with a false sense of - safety) if you cannot detect potential incursions. Half the job - of the onion is to slow down the attacker rather then stop him in - order to give the detection side of the equation a chance to catch - him in the act.</para> - - <para>The best way to detect an incursion is to look for modified, - missing, or unexpected files. The best way to look for modified - files is from another (often centralized) limited-access system. - Writing your security scripts on the extra-secure limited-access - system makes them mostly invisible to potential hackers, and this - is important. In order to take maximum advantage you generally - have to give the limited-access box significant access to the - other machines in the business, usually either by doing a - read-only NFS export of the other machines to the limited-access - box, or by setting up <application>ssh</application> keypairs to - allow the limit-access box to <application>ssh</application> to - the other machines. Except for its network traffic, NFS is the - least visible method – allowing you to monitor the - filesystems on each client box virtually undetected. If your - limited-access server is connected to the client boxes through a - switch, the NFS method is often the better choice. If your - limited-access server is connected to the client boxes through a - hub or through several layers of routing, the NFS method may be - too insecure (network-wise) and using - <application>ssh</application> may be the better choice even with - the audit-trail tracks that <application>ssh</application> - lays.</para> - - <para>Once you give a limit-access box at least read access to the - client systems it is supposed to monitor, you must write scripts - to do the actual monitoring. Given an NFS mount, you can write - scripts out of simple system utilities such as &man.find.1; and - &man.md5.1;. It is best to physically md5 the client-box files - boxes at least once a day, and to test control files such as those - found in <filename>/etc</filename> and - <filename>/usr/local/etc</filename> even more often. When - mismatches are found relative to the base md5 information the - limited-access machine knows is valid, it should scream at a - sysadmin to go check it out. A good security script will also - check for inappropriate suid binaries and for new or deleted files - on system partitions such as <filename>/</filename> and - <filename>/usr</filename>.</para> - - <para>When using <application>ssh</application> rather then NFS, - writing the security script is much more difficult. You - essentially have to scp the scripts to the client box in order to - run them, making them visible, and for safety you also need to - <command>scp</command> the binaries (such as find) that those - scripts use. The <application>ssh</application> daemon on the - client box may already be compromised. All in all, using - <application>ssh</application> may be necessary when running over - unsecure links, but it's also a lot harder to deal with.</para> - - <para>A good security script will also check for changes to user and - staff members access configuration files: - <filename>.rhosts</filename>, <filename>.shosts</filename>, - <filename>.ssh/authorized_keys</filename> and so forth… - files that might fall outside the purview of the - <literal>MD5</literal> check.</para> - - <para>If you have a huge amount of user disk space it may take too - long to run through every file on those partitions. In this case, - setting mount flags to disallow suid binaries and devices on those - partitions is a good idea. The <literal>nodev</literal> and - <literal>nosuid</literal> options (see &man.mount.8;) are what you - want to look into. I would scan them anyway at least once a week, - since the object of this layer is to detect a break-in whether or - not the break-in is effective.</para> - - <para>Process accounting (see &man.accton.8;) is a relatively - low-overhead feature of the operating system which I recommend - using as a post-break-in evaluation mechanism. It is especially - useful in tracking down how an intruder has actually broken into - a system, assuming the file is still intact after the break-in - occurs.</para> - - <para>Finally, security scripts should process the log files and the - logs themselves should be generated in as secure a manner as - possible – remote syslog can be very useful. An intruder - tries to cover his tracks, and log files are critical to the - sysadmin trying to track down the time and method of the initial - break-in. One way to keep a permanent record of the log files is - to run the system console to a serial port and collect the - information on a continuing basis through a secure machine - monitoring the consoles.</para> - </sect2> - - <sect2> - <title>Paranoia</title> - - <para>A little paranoia never hurts. As a rule, a sysadmin can add - any number of security features as long as they do not effect - convenience, and can add security features that do effect - convenience with some added thought. Even more importantly, a - security administrator should mix it up a bit – if you use - recommendations such as those given by this document verbatim, you - give away your methodologies to the prospective hacker who also - has access to this document.</para> - </sect2> - - <sect2> - <title>Denial of Service Attacks</title> - - <para>This section covers Denial of Service attacks. A DOS attack - is typically a packet attack. While there is not much you can do - about modern spoofed packet attacks that saturate your network, - you can generally limit the damage by ensuring that the attacks - cannot take down your servers.</para> - - <orderedlist> - <listitem> - <para>Limiting server forks.</para> - </listitem> - - <listitem> - <para>Limiting springboard attacks (ICMP response attacks, ping - broadcast, etc.).</para> - </listitem> - - <listitem> - <para>Kernel Route Cache.</para> - </listitem> - </orderedlist> - - <para>A common DOS attack is against a forking server that attempts - to cause the server to eat processes, file descriptors, and memory - until the machine dies. Inetd (see &man.inetd.8;) has several - options to limit this sort of attack. It should be noted that - while it is possible to prevent a machine from going down it is - not generally possible to prevent a service from being disrupted - by the attack. Read the inetd manual page carefully and pay - specific attention to the <option>-c</option>, <option>-C</option>, - and <option>-R</option> options. Note that spoofed-IP attacks - will circumvent the <option>-C</option> option to inetd, so - typically a combination of options must be used. Some standalone - servers have self-fork-limitation parameters.</para> - - <para><application>Sendmail</application> has its - <option>-OMaxDaemonChildren</option> option which tends to work - much better than trying to use sendmail's load limiting options - due to the load lag. You should specify a - <literal>MaxDaemonChildren</literal> parameter when you start - <application>sendmail</application> high enough to handle your - expected load but no so high that the computer cannot handle that - number of <application>sendmails</application> without falling on - its face. It is also prudent to run sendmail in queued mode - (<option>-ODeliveryMode=queued</option>) and to run the daemon - (<command>sendmail -bd</command>) separate from the queue-runs - (<command>sendmail -q15m</command>). If you still want real-time - delivery you can run the queue at a much lower interval, such as - <option>-q1m</option>, but be sure to specify a reasonable - <literal>MaxDaemonChildren</literal> option for that sendmail to - prevent cascade failures.</para> - - <para><application>Syslogd</application> can be attacked directly - and it is strongly recommended that you use the <option>-s</option> - option whenever possible, and the <option>-a</option> option - otherwise.</para> - - <para>You should also be fairly careful with connect-back services - such as <application>tcpwrapper</application>'s reverse-identd, - which can be attacked directly. You generally do not want to use - the reverse-ident feature of - <application>tcpwrappers</application> for this reason.</para> - - <para>It is a very good idea to protect internal services from - external access by firewalling them off at your border routers. - The idea here is to prevent saturation attacks from outside your - LAN, not so much to protect internal services from network-based - root compromise. Always configure an exclusive firewall, i.e., - <quote>firewall everything <emphasis>except</emphasis> ports A, B, - C, D, and M-Z</quote>. This way you can firewall off all of your - low ports except for certain specific services such as - <application>named</application> (if you are primary for a zone), - <application>ntalkd</application>, - <application>sendmail</application>, and other internet-accessible - services. If you try to configure the firewall the other way - – as an inclusive or permissive firewall, there is a good - chance that you will forget to <quote>close</quote> a couple of - services or that you will add a new internal service and forget - to update the firewall. You can still open up the high-numbered - port range on the firewall to allow permissive-like operation - without compromising your low ports. Also take note that FreeBSD - allows you to control the range of port numbers used for dynamic - binding via the various <literal>net.inet.ip.portrange</literal> - <command>sysctl</command>'s (<command>sysctl -a | fgrep - portrange</command>), which can also ease the complexity of your - firewall's configuration. I usually use a normal first/last range - of 4000 to 5000, and a hiport range of 49152 to 65535, then block - everything under 4000 off in my firewall (except for certain - specific internet-accessible ports, of course).</para> - - <para>Another common DOS attack is called a springboard attack - – to attack a server in a manner that causes the server to - generate responses which then overload the server, the local - network, or some other machine. The most common attack of this - nature is the <emphasis>ICMP ping broadcast attack</emphasis>. - The attacker spoofs ping packets sent to your LAN's broadcast - address with the source IP address set to the actual machine they - wish to attack. If your border routers are not configured to - stomp on ping's to broadcast addresses, your LAN winds up - generating sufficient responses to the spoofed source address to - saturate the victim, especially when the attacker uses the same - trick on several dozen broadcast addresses over several dozen - different networks at once. Broadcast attacks of over a hundred - and twenty megabits have been measured. A second common - springboard attack is against the ICMP error reporting system. - By constructing packets that generate ICMP error responses, an - attacker can saturate a server's incoming network and cause the - server to saturate its outgoing network with ICMP responses. This - type of attack can also crash the server by running it out of - mbuf's, especially if the server cannot drain the ICMP responses - it generates fast enough. The FreeBSD kernel has a new kernel - compile option called ICMP_BANDLIM which limits the effectiveness - of these sorts of attacks. The last major class of springboard - attacks is related to certain internal inetd services such as the - udp echo service. An attacker simply spoofs a UDP packet with the - source address being server A's echo port, and the destination - address being server B's echo port, where server A and B are both - on your LAN. The two servers then bounce this one packet back and - forth between each other. The attacker can overload both servers - and their LANs simply by injecting a few packets in this manner. - Similar problems exist with the internal chargen port. A - competent sysadmin will turn off all of these inetd-internal test - services.</para> - - <para>Spoofed packet attacks may also be used to overload the kernel - route cache. Refer to the <literal>net.inet.ip.rtexpire</literal>, - <literal>rtminexpire</literal>, and <literal>rtmaxcache</literal> - <command>sysctl</command> parameters. A spoofed packet attack - that uses a random source IP will cause the kernel to generate a - temporary cached route in the route table, viewable with - <command>netstat -rna | fgrep W3</command>. These routes - typically timeout in 1600 seconds or so. If the kernel detects - that the cached route table has gotten too big it will dynamically - reduce the rtexpire but will never decrease it to less then - rtminexpire. There are two problems:</para> - - <orderedlist> - <listitem> - <para>The kernel does not react quickly enough when a lightly - loaded server is suddenly attacked.</para> - </listitem> - - <listitem> - <para>The <literal>rtminexpire</literal> is not low enough for - the kernel to survive a sustained attack.</para> - </listitem> - </orderedlist> - - <para>If your servers are connected to the internet via a T3 or - better it may be prudent to manually override both - <literal>rtexpire</literal> and <literal>rtminexpire</literal> - via &man.sysctl.8;. Never set either parameter to zero (unless - you want to crash the machine <!-- smiley -->:-). Setting both - parameters to 2 seconds should be sufficient to protect the route - table from attack.</para> - </sect2> - - <sect2> - <title>Access Issues with Kerberos and SSH</title> - - <para>There are a few issues with both kerberos and - <application>ssh</application> that need to be addressed if - you intend to use them. Kerberos V is an excellent - authentication protocol but there are bugs in the kerberized - <application>telnet</application> and - <application>rlogin</application> applications that make them - unsuitable for dealing with binary streams. Also, by default - kerberos does not encrypt a session unless you use the - <option>-x</option> option. <application>ssh</application> - encrypts everything by default.</para> - - <para><application>ssh</application> works quite well in every - respect except that it forwards encryption keys by default. What - this means is that if you have a secure workstation holding keys - that give you access to the rest of the system, and you - <application>ssh</application> to an unsecure machine, your keys - becomes exposed. The actual keys themselves are not exposed, but - <application>ssh</application> installs a forwarding port for the - duration of your login and if a hacker has broken root on the - unsecure machine he can utilize that port to use your keys to gain - access to any other machine that your keys unlock.</para> - - <para>We recommend that you use <application>ssh</application> in - combination with kerberos whenever possible for staff logins. - <application>ssh</application> can be compiled with kerberos - support. This reduces your reliance on potentially exposable - <application>ssh</application> keys while at the same time - protecting passwords via kerberos. <application>ssh</application> - keys should only be used for automated tasks from secure machines - (something that kerberos is unsuited to). We also recommend that - you either turn off key-forwarding in the - <application>ssh</application> configuration, or that you make use - of the <literal>from=IP/DOMAIN</literal> option that - <application>ssh</application> allows in its - <filename>authorized_keys</filename> file to make the key only - usable to entities logging in from specific machines.</para> - </sect2> - </sect1> - - <sect1 id="crypt"> - <title>DES, MD5, and Crypt</title> - - <para><emphasis>Parts rewritten and updated by &a.unfurl;, 21 March - 2000.</emphasis></para> - - <para>Every user on a UNIX system has a password associated with - their account. It seems obvious that these passwords need to be - known only to the user and the actual operating system. In - order to keep these passwords secret, they are encrypted with - what is known as a <quote>one-way hash</quote>, that is, they can - only be easily encrypted but not decrypted. In other words, what - we told you a moment ago was obvious is not even true: the - operating system itself does not <emphasis>really</emphasis> know - the password. It only knows the <emphasis>encrypted</emphasis> - form of the password. The only way to get the - <quote>plain-text</quote> password is by a brute force search of the - space of possible passwords.</para> - - <para>Unfortunately the only secure way to encrypt passwords when - UNIX came into being was based on DES, the Data Encryption - Standard. This is not such a problem for users that live in - the US, but since the source code for DES cannot be exported - outside the US, FreeBSD had to find a way to both comply with - US law and retain compatibility with all the other UNIX - variants that still use DES.</para> - - <para>The solution was to divide up the encryption libraries - so that US users could install the DES libraries and use - DES but international users still had an encryption method - that could be exported abroad. This is how FreeBSD came to - use MD5 as its default encryption method. MD5 is believed to - be more secure than DES, so installing DES is offered primarily - for compatibility reasons.</para> - - <sect2> - <title>Recognizing your crypt mechanism</title> - - <para>It is pretty easy to identify which encryption method - FreeBSD is set up to use. Examining the encrypted passwords in - the <filename>/etc/master.passwd</filename> file is one way. - Passwords encrypted with the MD5 hash are longer than those with - encrypted with the DES hash and also begin with the characters - <literal>$1$</literal>. DES password strings do not - have any particular identifying characteristics, but they are - shorter than MD5 passwords, and are coded in a 64-character - alphabet which does not include the <literal>$</literal> - character, so a relatively short string which does not begin with - a dollar sign is very likely a DES password.</para> - - <para>The libraries can identify the passwords this way as well. - As a result, the DES libraries are able to identify MD5 - passwords, and use MD5 to check passwords that were encrypted - that way, and DES for the rest. They are able to do this - because the DES libraries also contain MD5. Unfortunately, the - reverse is not true, so the MD5 libraries cannot authenticate - passwords that were encrypted with DES.</para> - - <para>Identifying which library is being used by the programs on - your system is easy as well. Any program that uses crypt is linked - against libcrypt which for each type of library is a symbolic link - to the appropriate implementation. For example, on a system using - the DES versions:</para> - - <screen>&prompt.user; <userinput>ls -l /usr/lib/libcrypt*</userinput> -lrwxr-xr-x 1 root wheel 13 Mar 19 06:56 libcrypt.a -> libdescrypt.a -lrwxr-xr-x 1 root wheel 18 Mar 19 06:56 libcrypt.so.2.0 -> libdescrypt.so.2.0 -lrwxr-xr-x 1 root wheel 15 Mar 19 06:56 libcrypt_p.a -> libdescrypt_p.a</screen> - - <para>On a system using the MD5-based libraries, the same links will - be present, but the target will be <filename>libscrypt</filename> - rather than <filename>libdescrypt</filename>.</para> - </sect2> - </sect1> - - <sect1 id="skey"> - <title>S/Key</title> - - <para>S/Key is a one-time password scheme based on a one-way hash - function. FreeBSD uses the MD4 hash for compatibility but other - systems have used MD5 and DES-MAC. S/Key has been part of the - FreeBSD base system since version 1.1.5 and is also used on a - growing number of other operating systems. S/Key is a registered - trademark of Bell Communications Research, Inc.</para> - - <para>There are three different sorts of passwords which we will talk - about in the discussion below. The first is your usual UNIX-style or - Kerberos password; we will call this a <quote>UNIX password</quote>. - The second sort is the one-time password which is generated by the - S/Key <command>key</command> program and accepted by the - <command>keyinit</command> program and the login prompt; we will - call this a <quote>one-time password</quote>. The final sort of - password is the secret password which you give to the - <command>key</command> program (and sometimes the - <command>keyinit</command> program) which it uses to generate - one-time passwords; we will call it a <quote>secret password</quote> - or just unqualified <quote>password</quote>.</para> - - <para>The secret password does not have anything to do with your UNIX - password; they can be the same but this is not recommended. S/Key - secret passwords are not limited to 8 characters like UNIX passwords, - they can be as long as you like. Passwords of six or seven word - long phrases are fairly common. For the most part, the S/Key system - operates completely independently of the UNIX password - system.</para> - - <para>Besides the password, there are two other pieces of data that - are important to S/Key. One is what is known as the - <quote>seed</quote> or <quote>key</quote> and consists of two letters - and five digits. The other is what is called the <quote>iteration - count</quote> and is a number between 1 and 100. S/Key creates the - one-time password by concatenating the seed and the secret password, - then applying the MD4 hash as many times as specified by the - iteration count and turning the result into six short English words. - These six English words are your one-time password. The - <command>login</command> and <command>su</command> programs keep - track of the last one-time password used, and the user is - authenticated if the hash of the user-provided password is equal to - the previous password. Because a one-way hash is used it is - impossible to generate future one-time passwords if a successfully - used password is captured; the iteration count is decremented after - each successful login to keep the user and the login program in - sync. When the iteration count gets down to 1 S/Key must be - reinitialized.</para> - - <para>There are four programs involved in the S/Key system which we - will discuss below. The <command>key</command> program accepts an - iteration count, a seed, and a secret password, and generates a - one-time password. The <command>keyinit</command> program is used - to initialized S/Key, and to change passwords, iteration counts, or - seeds; it takes either a secret password, or an iteration count, - seed, and one-time password. The <command>keyinfo</command> program - examines the <filename>/etc/skeykeys</filename> file and prints out - the invoking user's current iteration count and seed. Finally, the - <command>login</command> and <command>su</command> programs contain - the necessary logic to accept S/Key one-time passwords for - authentication. The <command>login</command> program is also - capable of disallowing the use of UNIX passwords on connections - coming from specified addresses.</para> - - <para>There are four different sorts of operations we will cover. The - first is using the <command>keyinit</command> program over a secure - connection to set up S/Key for the first time, or to change your - password or seed. The second operation is using the - <command>keyinit</command> program over an insecure connection, in - conjunction with the <command>key</command> program over a secure - connection, to do the same. The third is using the - <command>key</command> program to log in over an insecure - connection. The fourth is using the <command>key</command> program - to generate a number of keys which can be written down or printed - out to carry with you when going to some location without secure - connections to anywhere.</para> - - <sect2> - <title>Secure connection initialization</title> - - <para>To initialize S/Key for the first time, change your password, - or change your seed while logged in over a secure connection - (e.g., on the console of a machine or via ssh), use the - <command>keyinit</command> command without any parameters while - logged in as yourself:</para> - - <screen>&prompt.user; <userinput>keyinit</userinput> -Adding unfurl: -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. -Enter secret password: -Again secret password: - -ID unfurl s/key is 99 to17757 -DEFY CLUB PRO NASH LACE SOFT</screen> - - <para>At the <prompt>Enter secret password:</prompt> prompt you - should enter a password or phrase. Remember, this is not the - password that you will use to login with, this is used to generate - your one-time login keys. The <quote>ID</quote> line gives the - parameters of your particular S/Key instance; your login name, the - iteration count, and seed. When logging in with S/Key, the system - will remember these parameters and present them back to you so you - do not have to remember them. The last line gives the particular - one-time password which corresponds to those parameters and your - secret password; if you were to re-login immediately, this - one-time password is the one you would use.</para> - </sect2> - - <sect2> - <title>Insecure connection initialization</title> - - <para>To initialize S/Key or change your secret password over an - insecure connection, you will need to already have a secure - connection to some place where you can run the - <command>key</command> program; this might be in the form of a - desk accessory on a Macintosh, or a shell prompt on a machine you - trust. You will also need to make up an iteration count (100 is - probably a good value), and you may make up your own seed or use a - randomly-generated one. Over on the insecure connection (to the - machine you are initializing), use the <command>keyinit - -s</command> command:</para> - - <screen>&prompt.user; <userinput>keyinit -s</userinput> -Updating unfurl: -Old key: to17758 -Reminder you need the 6 English words from the key command. -Enter sequence count from 1 to 9999: <userinput>100</userinput> -Enter new key [default to17759]: -s/key 100 to 17759 -s/key access password:</screen> - - <para>To accept the default seed (which the - <command>keyinit</command> program confusingly calls a - <literal>key</literal>), press return. Then before entering an - access password, move over to your secure connection or S/Key desk - accessory, and give it the same parameters:</para> - - <screen>&prompt.user; <userinput>key 100 to17759</userinput> -Reminder - Do not use this program while logged in via telnet or rlogin. -Enter secret password: <userinput><secret password></userinput> -CURE MIKE BANE HIM RACY GORE</screen> - - <para>Now switch back over to the insecure connection, and copy the - one-time password generated by <command>key</command> over to the - <command>keyinit</command> program:</para> - - <screen>s/key access password:<userinput>CURE MIKE BANE HIM RACY GORE</userinput> -ID unfurl s/key is 100 to17759 -CURE MIKE BANE HIM RACY GORE</screen> - - <para>The rest of the description from the previous section applies - here as well.</para> - </sect2> - - <sect2> - <title>Generating a single one-time password</title> - - <para>Once you've initialized S/Key, when you login you will be - presented with a prompt like this:</para> - -<screen>&prompt.user; <userinput>telnet example.com</userinput> -Trying 10.0.0.1... -Connected to example.com -Escape character is '^]'. - -FreeBSD/i386 (example.com) (ttypa) - -login: <userinput><username></userinput> -s/key 97 fw13894 -Password: </screen> - - <para>As a side note, the S/Key prompt has a useful feature - (not shown here): if you press return at the password prompt, the - login program will turn echo on, so you can see what you are - typing. This can be extremely useful if you are attempting to - type in an S/Key by hand, such as from a printout. Also, if this - machine were configured to disallow UNIX passwords over a - connection from my machine, the prompt would have also included - the annotation <literal>(s/key required)</literal>, indicating - that only S/Key one-time passwords will be accepted.</para> - - <para>At this point you need to generate your one-time password to - answer this login prompt. This must be done on a trusted system - that you can run the <command>key</command> command on. (There - are versions of the <command>key</command> program from DOS, - Windows and MacOS as well.) The <command>key</command> program - needs both the iteration count and the seed as command line - options. You can cut-and-paste these right from the login prompt - on the machine that you are logging in to.</para> - - <para>On the trusted system:</para> - - <screen>&prompt.user; <userinput>key 97 fw13894</userinput> -Reminder - Do not use this program while logged in via telnet or rlogin. -Enter secret password: -WELD LIP ACTS ENDS ME HAAG</screen> - - <para>Now that you have your one-time password you can continue - logging in:</para> - - <screen>login: <userinput><username></userinput> -s/key 97 fw13894 -Password: <userinput><return to enable echo></userinput> -s/key 97 fw13894 -Password [echo on]: WELD LIP ACTS ENDS ME HAAG -Last login: Tue Mar 21 11:56:41 from 10.0.0.2 ... </screen> - - <para>This is the easiest mechanism <emphasis>if</emphasis> you have - a trusted machine. There is a Java S/Key <command>key</command> - applet, <ulink - url="http://www.cs.umd.edu/~harry/jotp/src.html">The Java OTP - Calculator</ulink>, that you can download and run locally on any - Java supporting browser.</para> - </sect2> - - <sect2> - <title>Generating multiple one-time passwords</title> - - <para>Sometimes you have have to go places where you do not have - access to a trusted machine or secure connection. In this case, - it is possible to use the <command>key</command> command to - generate a number of one-time passwords before hand to be printed - out and taken with you. For example:</para> - - <screen>&prompt.user; <userinput>key -n 5 30 zz99999</userinput> -Reminder - Do not use this program while logged in via telnet or rlogin. -Enter secret password: <userinput><secret password></userinput> -26: SODA RUDE LEA LIND BUDD SILT -27: JILT SPY DUTY GLOW COWL ROT -28: THEM OW COLA RUNT BONG SCOT -29: COT MASH BARR BRIM NAN FLAG -30: CAN KNEE CAST NAME FOLK BILK</screen> - - <para>The <option>-n 5</option> requests five keys in sequence, the - <option>30</option> specifies what the last iteration number - should be. Note that these are printed out in - <emphasis>reverse</emphasis> order of eventual use. If you are - really paranoid, you might want to write the results down by hand; - otherwise you can cut-and-paste into <command>lpr</command>. Note - that each line shows both the iteration count and the one-time - password; you may still find it handy to scratch off passwords as - you use them.</para> - </sect2> - - <sect2> - <title>Restricting use of UNIX passwords</title> - - <para>Restrictions can be placed on the use of UNIX passwords based - on the host name, user name, terminal port, or IP address of a - login session. These restrictions can be found in the - configuration file <filename>/etc/skey.access</filename>. The - &man.skey.access.5; manual page has more info on the complete - format of the file and also details some security cautions to be - aware of before depending on this file for security.</para> - - <para>If there is no <filename>/etc/skey.access</filename> file - (this is the FreeBSD default), then all users will be allowed to - use UNIX passwords. If the file exists, however, then all users - will be required to use S/Key unless explicitly permitted to do - otherwise by configuration statements in the - <filename>skey.access</filename> file. In all cases, UNIX - passwords are permitted on the console.</para> - - <para>Here is a sample configuration file which illustrates the - three most common sorts of configuration statements:</para> - - <programlisting> -permit internet 192.168.0.0 255.255.0.0 -permit user fnord -permit port ttyd0</programlisting> - - <para>The first line (<literal>permit internet</literal>) allows - users whose IP source address (which is vulnerable to spoofing) - matches the specified value and mask, to use UNIX passwords. This - should not be considered a security mechanism, but rather, a means - to remind authorized users that they are using an insecure network - and need to use S/Key for authentication.</para> - - <para>The second line (<literal>permit user</literal>) allows the - specified username, in this case <literal>fnord</literal>, to use - UNIX passwords at any time. Generally speaking, this should only - be used for people who are either unable to use the - <command>key</command> program, like those with dumb terminals, or - those who are uneducable.</para> - - <para>The third line (<literal>permit port</literal>) allows all - users logging in on the specified terminal line to use UNIX - passwords; this would be used for dial-ups.</para> - </sect2> - </sect1> - - <sect1 id="kerberos"> - <title>Kerberos</title> - - <para><emphasis>Contributed by &a.markm; (based on contribution by - &a.md;).</emphasis></para> - - <para>Kerberos is a network add-on system/protocol that allows users to - authenticate themselves through the services of a secure server. - Services such as remote login, remote copy, secure inter-system file - copying and other high-risk tasks are made considerably safer and more - controllable.</para> - - <para>The following instructions can be used as a guide on how to set up - Kerberos as distributed for FreeBSD. However, you should refer to the - relevant manual pages for a complete description.</para> - - <para>In FreeBSD, the Kerberos is not that from the original 4.4BSD-Lite, - distribution, but eBones, which had been previously ported to FreeBSD - 1.1.5.1, and was sourced from outside the USA/Canada, and is thus - available to system owners outside those countries.</para> - - <para>For those needing to get a legal foreign distribution of this - software, please <emphasis>do not</emphasis> get it from a USA or Canada - site. You will get that site in <emphasis>big</emphasis> trouble! A - legal copy of this is available from <hostid - role="fqdn">ftp.internat.FreeBSD.org</hostid>, which is in South - Africa and an official FreeBSD mirror site.</para> - - <sect2> - <title>Creating the initial database</title> - - <para>This is done on the Kerberos server only. First make sure that - you do not have any old Kerberos databases around. You should change - to the directory <filename>/etc/kerberosIV</filename> and check that - only the following files are present:</para> - - <screen>&prompt.root; <userinput>cd /etc/kerberosIV</userinput> -&prompt.root; <userinput>ls</userinput> -README krb.conf krb.realms</screen> - - <para>If any additional files (such as <filename>principal.*</filename> - or <filename>master_key</filename>) exist, then use the - <command>kdb_destroy</command> command to destroy the old Kerberos - database, of if Kerberos is not running, simply delete the extra - files.</para> - - <para>You should now edit the <filename>krb.conf</filename> and - <filename>krb.realms</filename> files to define your Kerberos realm. - In this case the realm will be <filename>GRONDAR.ZA</filename> and the - server is <filename>grunt.grondar.za</filename>. We edit or create - the <filename>krb.conf</filename> file:</para> - - <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> - - <para>In this case, the other realms do not need to be there. They are - here as an example of how a machine may be made aware of multiple - realms. You may wish to not include them for simplicity.</para> - - <para>The first line names the realm in which this system works. The - other lines contain realm/host entries. The first item on a line is a - realm, and the second is a host in that realm that is acting as a - <quote>key distribution center</quote>. The words <literal>admin - server</literal> following a hosts name means that host also - provides an administrative database server. For further explanation - of these terms, please consult the Kerberos man pages.</para> - - <para>Now we have to add <hostid role="fqdn">grunt.grondar.za</hostid> - to the <filename>GRONDAR.ZA</filename> realm and also add an entry to - put all hosts in the <hostid role="domainname">.grondar.za</hostid> - domain in the <filename>GRONDAR.ZA</filename> realm. The - <filename>krb.realms</filename> file would be updated as - follows:</para> - - <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> - - <para>Again, the other realms do not need to be there. They are here as - an example of how a machine may be made aware of multiple realms. You - may wish to remove them to simplify things.</para> - - <para>The first line puts the <emphasis>specific</emphasis> system into - the named realm. The rest of the lines show how to default systems of - a particular subdomain to a named realm.</para> - - <para>Now we are ready to create the database. This only needs to run - on the Kerberos server (or Key Distribution Center). Issue the - <command>kdb_init</command> command to do this:</para> - - <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. - -<prompt>Enter Kerberos master key:</prompt> </screen> - - <para>Now we have to save the key so that servers on the local machine - can pick it up. Use the <command>kstash</command> command to do - this.</para> - - <screen>&prompt.root; <userinput>kstash</userinput> - -<prompt>Enter Kerberos master key:</prompt> - -Current Kerberos master key version is 1. - -Master key entered. BEWARE!</screen> - - <para>This saves the encrypted master password in - <filename>/etc/kerberosIV/master_key</filename>.</para> - </sect2> - - <sect2> - <title>Making it all run</title> - - <para>Two principals need to be added to the database for - <emphasis>each</emphasis> system that will be secured with Kerberos. - Their names are <literal>kpasswd</literal> and <literal>rcmd</literal> - These two principals are made for each system, with the instance being - the name of the individual system.</para> - - <para>These daemons, <command>kpasswd</command> and - <command>rcmd</command> allow other systems to change Kerberos - passwords and run commands like <command>rcp</command>, - <command>rlogin</command> and <command>rsh</command>.</para> - - <para>Now let's add these entries:</para> - - <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> <---- enter RANDOM here -Verifying password - -<prompt>New Password:</prompt> <---- enter RANDOM here - -<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> <---- enter RANDOM here -Verifying password - -<prompt>New Password:</prompt> <---- enter RANDOM here - -<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> <---- null entry here will cause an exit</screen> - </sect2> - - <sect2> - <title>Creating the server file</title> - - <para>We now have to extract all the instances which define the services - on each machine. For this we use the <command>ext_srvtab</command> - command. This will create a file which must be copied or moved - <emphasis>by secure means</emphasis> to each Kerberos client's - /etc/kerberosIV directory. This file must be present on each server - and client, and is crucial to the operation of Kerberos.</para> - - - <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> - - <para>Now, this command only generates a temporary file which must be - renamed to <filename>srvtab</filename> so that all the server can pick - it up. Use the <command>mv</command> command to move it into place on - the original system:</para> - - <screen>&prompt.root; <userinput>mv grunt-new-srvtab srvtab</userinput></screen> - - <para>If the file is for a client system, and the network is not deemed - safe, then copy the - <filename><replaceable>client</replaceable>-new-srvtab</filename> to - removable media and transport it by secure physical means. Be sure to - rename it to <filename>srvtab</filename> in the client's - <filename>/etc/kerberosIV</filename> directory, and make sure it is - mode 600:</para> - - <screen>&prompt.root; <userinput>mv grumble-new-srvtab srvtab</userinput> -&prompt.root; <userinput>chmod 600 srvtab</userinput></screen> - </sect2> - - <sect2> - <title>Populating the database</title> - - <para>We now have to add some user entries into the database. First - let's create an entry for the user <username>jane</username>. Use the - <command>kdb_edit</command> command to do this:</para> - - <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>jane</userinput> -<prompt>Instance:</prompt> - -<Not found>, <prompt>Create [y] ?</prompt> <userinput>y</userinput> - -Principal: jane, Instance: , kdc_key_ver: 1 -<prompt>New Password:</prompt> <---- enter a secure password here -Verifying password - -<prompt>New Password:</prompt> <---- re-enter the password here -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> <---- null entry here will cause an exit</screen> - </sect2> - - <sect2> - <title>Testing it all out</title> - - <para>First we have to start the Kerberos daemons. NOTE that if you - have correctly edited your <filename>/etc/rc.conf</filename> then this - will happen automatically when you reboot. This is only necessary on - the Kerberos server. Kerberos clients will automagically get what - they need from the <filename>/etc/kerberosIV</filename> - directory.</para> - - <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 - -Current Kerberos master key version is 1. - -Master key entered. BEWARE!</screen> - - <para>Now we can try using the <command>kinit</command> command to get a - ticket for the id <username>jane</username> that we created - above:</para> - - <screen>&prompt.user; <userinput>kinit jane</userinput> -MIT Project Athena (grunt.grondar.za) -Kerberos Initialization for "jane" -<prompt>Password:</prompt> </screen> - - <para>Try listing the tokens using <command>klist</command> to see if we - really have them:</para> - - <screen>&prompt.user; <userinput>klist</userinput> -Ticket file: /tmp/tkt245 -Principal: jane@GRONDAR.ZA - - Issued Expires Principal -Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.GRONDAR.ZA@GRONDAR.ZA</screen> - - <para>Now try changing the password using <command>passwd</command> to - check if the kpasswd daemon can get authorization to the Kerberos - database:</para> - - <screen>&prompt.user; <userinput>passwd</userinput> -realm GRONDAR.ZA -<prompt>Old password for jane:</prompt> -<prompt>New Password for jane:</prompt> -Verifying password -<prompt>New Password for jane:</prompt> -Password changed.</screen> - </sect2> - - <sect2> - <title>Adding <command>su</command> privileges</title> - - <para>Kerberos allows us to give <emphasis>each</emphasis> user who - needs root privileges their own <emphasis>separate</emphasis> - <command>su</command>password. We could now add an id which is - authorized to <command>su</command> to <username>root</username>. - This is controlled by having an instance of <username>root</username> - associated with a principal. Using <command>kdb_edit</command> we can - create the entry <literal>jane.root</literal> in the Kerberos - database:</para> - - <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>jane</userinput> -<prompt>Instance:</prompt> <userinput>root</userinput> - -<Not found>, Create [y] ? y - -Principal: jane, Instance: root, kdc_key_ver: 1 -<prompt>New Password:</prompt> <---- enter a SECURE password here -Verifying password - -<prompt>New Password:</prompt> <---- re-enter the password here - -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> <--- Keep this short! -<prompt>Attributes [ 0 ] ?</prompt> -Edit O.K. -<prompt>Principal name:</prompt> <---- null entry here will cause an exit</screen> - - <para>Now try getting tokens for it to make sure it works:</para> - - <screen>&prompt.root; <userinput>kinit jane.root</userinput> -MIT Project Athena (grunt.grondar.za) -Kerberos Initialization for "jane.root" -<prompt>Password:</prompt></screen> - - <para>Now we need to add the user to root's <filename>.klogin</filename> - file:</para> - - <screen>&prompt.root; <userinput>cat /root/.klogin</userinput> -jane.root@GRONDAR.ZA</screen> - - <para>Now try doing the <command>su</command>:</para> - - <screen>&prompt.user; <prompt>su</prompt> -<prompt>Password:</prompt></screen> - - <para>and take a look at what tokens we have:</para> - - <screen>&prompt.root; klist -Ticket file: /tmp/tkt_root_245 -Principal: jane.root@GRONDAR.ZA - - Issued Expires Principal -May 2 20:43:12 May 3 04:43:12 krbtgt.GRONDAR.ZA@GRONDAR.ZA</screen> - </sect2> - - <sect2> - <title>Using other commands</title> - - <para>In an earlier example, we created a principal called - <literal>jane</literal> with an instance <literal>root</literal>. - This was based on a user with the same name as the principal, and this - is a Kerberos default; that a - <literal><principal>.<instance></literal> of the form - <literal><username>.</literal><literal>root</literal> will allow - that <literal><username></literal> to <command>su</command> to - root if the necessary entries are in the <filename>.klogin</filename> - file in <username>root</username>'s home directory:</para> - - <screen>&prompt.root; <userinput>cat /root/.klogin</userinput> -jane.root@GRONDAR.ZA</screen> - - <para>Likewise, if a user has in their own home directory lines of the - form:</para> - - <screen>&prompt.user; <userinput>cat ~/.klogin</userinput> -jane@GRONDAR.ZA -jack@GRONDAR.ZA</screen> - - <para>This allows anyone in the <filename>GRONDAR.ZA</filename> realm - who has authenticated themselves to <username>jane</username> or - <username>jack</username> (via <command>kinit</command>, see above) - access to <command>rlogin</command> to <username>jane</username>'s - account or files on this system (<hostid>grunt</hostid>) via - <command>rlogin</command>, <command>rsh</command> or - <command>rcp</command>.</para> - - <para>For example, Jane now logs into another system, using - Kerberos:</para> - - <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> - - <para>Or Jack logs into Jane's account on the same machine (Jane having - set up the <filename>.klogin</filename> file as above, and the person - in charge of Kerberos having set up principal - <emphasis>jack</emphasis> with a null instance:</para> - - <screen>&prompt.user; <userinput>kinit</userinput> -&prompt.user; <userinput>rlogin grunt -l jane</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> - </sect2> - </sect1> - - <sect1 id="firewalls"> - <title>Firewalls</title> - - <para><emphasis>Contributed by &a.gpalmer; and &a.alex;.</emphasis></para> - - <para>Firewalls are an area of increasing interest for people who are - connected to the Internet, and are even finding applications on private - networks to provide enhanced security. This section will hopefully - explain what firewalls are, how to use them, and how to use the - facilities provided in the FreeBSD kernel to implement them.</para> - - <note> - <para>People often think that having a firewall between your - internal network and the <quote>Big Bad Internet</quote> will solve all - your security problems. It may help, but a poorly setup firewall - system is more of a security risk than not having one at all. A - firewall can add another layer of security to your systems, but it - cannot stop a really determined cracker from penetrating your internal - network. If you let internal security lapse because you believe your - firewall to be impenetrable, you have just made the crackers job that - much easier.</para> - </note> - - <sect2> - <title>What is a firewall?</title> - - <para>There are currently two distinct types of firewalls in common use - on the Internet today. The first type is more properly called a - <emphasis>packet filtering router</emphasis>, where the kernel on a - multi-homed machine chooses whether to forward or block packets based - on a set of rules. The second type, known as a <emphasis>proxy - server</emphasis>, relies on daemons to provide authentication and to - forward packets, possibly on a multi-homed machine which has kernel - packet forwarding disabled.</para> - - <para>Sometimes sites combine the two types of firewalls, so that only a - certain machine (known as a <emphasis>bastion host</emphasis>) is - allowed to send packets through a packet filtering router onto an - internal network. Proxy services are run on the bastion host, which - are generally more secure than normal authentication - mechanisms.</para> - - <para>FreeBSD comes with a kernel packet filter (known as - <application>IPFW</application>), which is what the rest of this - section will concentrate on. Proxy servers can be built on FreeBSD - from third party software, but there is such a variety of proxy - servers available that it would be impossible to cover them in this - document.</para> - - <sect3 id="firewalls-packet-filters"> - <title>Packet filtering routers</title> - - <para>A router is a machine which forwards packets between two or more - networks. A packet filtering router has an extra piece of code in - its kernel which compares each packet to a list of rules before - deciding if it should be forwarded or not. Most modern IP routing - software has packet filtering code within it that defaults to - forwarding all packets. To enable the filters, you need to define a - set of rules for the filtering code so it can decide if the - packet should be allowed to pass or not.</para> - - <para>To decide whether a packet should be passed on, the code looks - through its set of rules for a rule which matches the contents of - this packets headers. Once a match is found, the rule action is - obeyed. The rule action could be to drop the packet, to forward the - packet, or even to send an ICMP message back to the originator. - Only the first match counts, as the rules are searched in order. - Hence, the list of rules can be referred to as a <quote>rule - chain</quote>.</para> - - <para>The packet matching criteria varies depending on the software - used, but typically you can specify rules which depend on the source - IP address of the packet, the destination IP address, the source - port number, the destination port number (for protocols which - support ports), or even the packet type (UDP, TCP, ICMP, - etc).</para> - </sect3> - - <sect3 id="firewalls-proxy-servers"> - <title>Proxy servers</title> - - <para>Proxy servers are machines which have had the normal system - daemons (telnetd, ftpd, etc) replaced with special servers. These - servers are called <emphasis>proxy servers</emphasis> as they - normally only allow onward connections to be made. This enables you - to run (for example) a proxy telnet server on your firewall host, - and people can telnet in to your firewall from the outside, go - through some authentication mechanism, and then gain access to the - internal network (alternatively, proxy servers can be used for - signals coming from the internal network and heading out).</para> - - <para>Proxy servers are normally more secure than normal servers, and - often have a wider variety of authentication mechanisms available, - including <quote>one-shot</quote> password systems so that even if - someone manages to discover what password you used, they will not be - able to use it to gain access to your systems as the password - instantly expires. As they do not actually give users access to the - host machine, it becomes a lot more difficult for someone to install - backdoors around your security system.</para> - - <para>Proxy servers often have ways of restricting access further, so - that only certain hosts can gain access to the servers, and often - they can be set up so that you can limit which users can talk to - which destination machine. Again, what facilities are available - depends largely on what proxy software you choose.</para> - </sect3> - </sect2> - - <sect2> - <title>What does IPFW allow me to do?</title> - - <para><application>IPFW</application>, the software supplied with - FreeBSD, is a packet filtering and accounting system which resides in - the kernel, and has a user-land control utility, - &man.ipfw.8;. Together, they allow you to define and query the - rules currently used by the kernel in its routing decisions.</para> - - <para>There are two related parts to <application>IPFW</application>. - The firewall section allows you to perform packet filtering. There is - also an IP accounting section which allows you to track usage of your - router, based on similar rules to the firewall section. This allows - you to see (for example) how much traffic your router is getting from - a certain machine, or how much WWW (World Wide Web) traffic it is - forwarding.</para> - - <para>As a result of the way that <application>IPFW</application> is - designed, you can use <application>IPFW</application> on non-router - machines to perform packet filtering on incoming and outgoing - connections. This is a special case of the more general use of - <application>IPFW</application>, and the same commands and techniques - should be used in this situation.</para> - </sect2> - - <sect2> - <title>Enabling IPFW on FreeBSD</title> - - <para>As the main part of the <application>IPFW</application> system - lives in the kernel, you will need to add one or more options to your - kernel configuration file, depending on what facilities you want, and - recompile your kernel. See <link linkend="kernelconfig">reconfiguring - the kernel</link> for more details on how to recompile your - kernel.</para> - - <para>There are currently three kernel configuration options relevant to - IPFW:</para> - - <variablelist> - <varlistentry> - <term><literal>options IPFIREWALL</literal></term> - - <listitem> - <para>Compiles into the kernel the code for packet - filtering.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>options IPFIREWALL_VERBOSE</literal></term> - - <listitem> - <para>Enables code to allow logging of packets through - &man.syslogd.8;. Without this option, even if you specify - that packets should be logged in the filter rules, nothing will - happen.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>options IPFIREWALL_VERBOSE_LIMIT=10</literal></term> - - <listitem> - <para>Limits the number of packets logged through - &man.syslogd.8; on a per entry basis. You may wish to use - this option in hostile environments in which you want to log - firewall activity, but do not want to be open to a denial of - service attack via syslog flooding.</para> - - <para>When a chain entry reaches the packet limit specified, - logging is turned off for that particular entry. To resume - logging, you will need to reset the associated counter using the - &man.ipfw.8; utility:</para> - - <screen>&prompt.root; <userinput>ipfw zero 4500</userinput></screen> - <para>Where 4500 is the chain entry you wish to continue - logging.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Previous versions of FreeBSD contained an - <literal>IPFIREWALL_ACCT</literal> option. This is now obsolete as - the firewall code automatically includes accounting - facilities.</para> - </sect2> - - <sect2> - <title>Configuring IPFW</title> - - <para>The configuration of the <application>IPFW</application> software - is done through the &man.ipfw.8; utility. The syntax for this - command looks quite complicated, but it is relatively simple once you - understand its structure.</para> - - <para>There are currently four different command categories used by the - utility: addition/deletion, listing, flushing, and clearing. - Addition/deletion is used to build the rules that control how packets - are accepted, rejected, and logged. Listing is used to examine the - contents of your rule set (otherwise known as the chain) and packet - counters (accounting). Flushing is used to remove all entries from - the chain. Clearing is used to zero out one or more accounting - entries.</para> - - <sect3> - <title>Altering the IPFW rules</title> - - <para>The syntax for this form of the command is: - <cmdsynopsis> - <command>ipfw</command> - <arg>-N</arg> - <arg choice="plain">command</arg> - <arg>index</arg> - <arg choice="plain">action</arg> - <arg>log</arg> - <arg choice="plain">protocol</arg> - <arg choice="plain">addresses</arg> - <arg>options</arg> - </cmdsynopsis></para> - - <para>There is one valid flag when using this form of the - command:</para> - - <variablelist> - <varlistentry> - <term>-N</term> - - <listitem> - <para>Resolve addresses and service names in output.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>The <emphasis>command</emphasis> given can be shortened to the - shortest unique form. The valid <emphasis>commands</emphasis> - are:</para> - - <variablelist> - <varlistentry> - <term>add</term> - - <listitem> - <para>Add an entry to the firewall/accounting rule list</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>delete</term> - - <listitem> - <para>Delete an entry from the firewall/accounting rule - list</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Previous versions of <application>IPFW</application> used - separate firewall and accounting entries. The present version - provides packet accounting with each firewall entry.</para> - - <para>If an <emphasis>index</emphasis> value is supplied, it used to - place the entry at a specific point in the chain. Otherwise, the - entry is placed at the end of the chain at an index 100 greater than - the last chain entry (this does not include the default policy, rule - 65535, deny).</para> - - <para>The <literal>log</literal> option causes matching rules to be - output to the system console if the kernel was compiled with - <literal>IPFIREWALL_VERBOSE</literal>.</para> - - <para>Valid <emphasis>actions</emphasis> are:</para> - - <variablelist> - <varlistentry> - <term>reject</term> - - <listitem> - <para>Drop the packet, and send an ICMP host or port unreachable - (as appropriate) packet to the source.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>allow</term> - - <listitem> - <para>Pass the packet on as normal. (aliases: - <literal>pass</literal> and - <literal>accept</literal>)</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>deny</term> - - <listitem> - <para>Drop the packet. The source is not notified via an - ICMP message (thus it appears that the packet never - arrived at the destination).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>count</term> - - <listitem> - <para>Update packet counters but do not allow/deny the packet - based on this rule. The search continues with the next chain - entry.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Each <emphasis>action</emphasis> will be recognized by the - shortest unambiguous prefix.</para> - - <para>The <emphasis>protocols</emphasis> which can be specified - are:</para> - - <variablelist> - <varlistentry> - <term>all</term> - - <listitem> - <para>Matches any IP packet</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>icmp</term> - - <listitem> - <para>Matches ICMP packets</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>tcp</term> - - <listitem> - <para>Matches TCP packets</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>udp</term> - - <listitem> - <para>Matches UDP packets</para> - </listitem> - </varlistentry> - </variablelist> - - <para>The <emphasis>address</emphasis> specification is:</para> - - <cmdsynopsis> - <arg choice="plain">from</arg> - <arg choice="plain"><replaceable>address/mask</replaceable></arg><arg><replaceable>port</replaceable></arg> - <arg choice="plain">to</arg> - <arg choice="plain"><replaceable>address/mask</replaceable></arg><arg><replaceable>port</replaceable></arg> - <arg>via <replaceable>interface</replaceable></arg> - </cmdsynopsis> - - <para>You can only specify <replaceable>port</replaceable> in - conjunction with <emphasis>protocols</emphasis> which support ports - (UDP and TCP).</para> - - <para>The <option>via</option> is optional and may specify the IP - address or domain name of a local IP interface, or an interface name - (e.g. <devicename>ed0</devicename>) to match only packets coming - through this interface. Interface unit numbers can be specified - with an optional wildcard. For example, <literal>ppp*</literal> - would match all kernel PPP interfaces.</para> - - <para>The syntax used to specify an - <replaceable>address/mask</replaceable> is: - - <screen><replaceable>address</replaceable></screen> - - or - - <screen><replaceable>address</replaceable>/<replaceable>mask-bits</replaceable></screen> - - or - - <screen><replaceable>address</replaceable>:<replaceable>mask-pattern</replaceable></screen> - </para> - - <para>A valid hostname may be specified in place of the IP address. - <option><replaceable>mask-bits</replaceable></option> is a decimal - number representing how many bits in the address mask should be set. - e.g. specifying <literal>192.216.222.1/24</literal> will create a - mask which will allow any address in a class C subnet (in this case, - 192.216.222) to be matched. - <option><replaceable>mask-pattern</replaceable></option> is an IP - address which will be logically AND'ed with the address given. The - keyword <literal>any</literal> may be used to specify <quote>any IP - address</quote>.</para> - - <para>The port numbers to be blocked are specified as: - - <cmdsynopsis> - <arg choice="plain"><replaceable>port</replaceable><arg>,<replaceable>port</replaceable><arg>,<replaceable>port</replaceable><arg>…</arg></arg></arg></arg> - </cmdsynopsis> - - to specify either a single port or a list of ports, or - - <cmdsynopsis> - <arg choice="plain"><replaceable>port</replaceable>-<replaceable>port</replaceable></arg> - </cmdsynopsis> - - to specify a range of ports. You may also combine a single range - with a list, but the range must always be specified first.</para> - - <para>The <emphasis>options</emphasis> available are:</para> - - <variablelist> - <varlistentry> - <term>frag</term> - - <listitem> - <para>Matches if the packet is not the first fragment of the - datagram.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>in</term> - - <listitem> - <para>Matches if the packet is on the way in.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>out</term> - - <listitem> - <para>Matches if the packet is on the way out.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>ipoptions <replaceable>spec</replaceable></term> - - <listitem> - <para>Matches if the IP header contains the comma separated list - of options specified in <replaceable>spec</replaceable>. The - supported list of IP options are: <literal>ssrr</literal> - (strict source route), <literal>lsrr</literal> (loose source - route), <literal>rr</literal> (record packet route), and - <literal>ts</literal> (time stamp). The absence of a - particular option may be denoted with a leading - <literal>!</literal>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>established</term> - - <listitem> - <para>Matches if the packet is part of an already established - TCP connection (i.e. it has the RST or ACK bits set). You can - optimize the performance of the firewall by placing - <emphasis>established</emphasis> rules early in the - chain.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>setup</term> - - <listitem> - <para>Matches if the packet is an attempt to establish a TCP - connection (the SYN bit set is set but the ACK bit is - not).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>tcpflags <replaceable>flags</replaceable></term> - - <listitem> - <para>Matches if the TCP header contains the comma separated - list of <replaceable>flags</replaceable>. The supported flags - are <literal>fin</literal>, <literal>syn</literal>, - <literal>rst</literal>, <literal>psh</literal>, - <literal>ack</literal>, and <literal>urg</literal>. The - absence of a particular flag may be indicated by a leading - <literal>!</literal>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>icmptypes <replaceable>types</replaceable></term> - - <listitem> - <para>Matches if the ICMP type is present in the list - <replaceable>types</replaceable>. The list may be specified - as any combination of ranges and/or individual types separated - by commas. Commonly used ICMP types are: <literal>0</literal> - echo reply (ping reply), <literal>3</literal> destination - unreachable, <literal>5</literal> redirect, - <literal>8</literal> echo request (ping request), and - <literal>11</literal> time exceeded (used to indicate TTL - expiration as with &man.traceroute.8;).</para> - </listitem> - </varlistentry> - </variablelist> - </sect3> - - <sect3> - <title>Listing the IPFW rules</title> - - <para>The syntax for this form of the command is: - <cmdsynopsis> - <command>ipfw</command> - <arg>-a</arg> - <arg>-t</arg> - <arg>-N</arg> - <arg choice="plain">l</arg> - </cmdsynopsis></para> - - <para>There are three valid flags when using this form of the - command:</para> - - <variablelist> - <varlistentry> - <term>-a</term> - - <listitem> - <para>While listing, show counter values. This option is the - only way to see accounting counters.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>-t</term> - - <listitem> - <para>Display the last match times for each chain entry. The - time listing is incompatible with the input syntax used by the - &man.ipfw.8; utility.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>-N</term> - - <listitem> - <para>Attempt to resolve given addresses and service - names.</para> - </listitem> - </varlistentry> - </variablelist> - </sect3> - - <sect3> - <title>Flushing the IPFW rules</title> - - <para>The syntax for flushing the chain is: - <cmdsynopsis> - <command>ipfw</command> - <arg choice="plain">flush</arg> - </cmdsynopsis></para> - - <para>This causes all entries in the firewall chain to be removed - except the fixed default policy enforced by the kernel (index - 65535). Use caution when flushing rules, the default deny policy - will leave your system cut off from the network until allow entries - are added to the chain.</para> - </sect3> - - <sect3> - <title>Clearing the IPFW packet counters</title> - - <para>The syntax for clearing one or more packet counters is: - <cmdsynopsis> - <command>ipfw</command> - <arg choice="plain">zero</arg> - <arg choice="opt"><replaceable>index</replaceable></arg> - </cmdsynopsis></para> - - <para>When used without an <replaceable>index</replaceable> argument, - all packet counters are cleared. If an - <replaceable>index</replaceable> is supplied, the clearing operation - only affects a specific chain entry.</para> - </sect3> - </sect2> - - <sect2> - <title>Example commands for ipfw</title> - - <para>This command will deny all packets from the host <hostid - role="fqdn">evil.crackers.org</hostid> to the telnet port of the - host <hostid role="fqdn">nice.people.org</hostid>:</para> - - <screen>&prompt.root <userinput>ipfw add deny tcp from evil.crackers.org to nice.people.org 23</userinput></screen> - - <para>The next example denies and logs any TCP traffic from the entire - <hostid role="domainname">crackers.org</hostid> network (a class C) to - the <hostid role="fqdn">nice.people.org</hostid> machine (any - port).</para> - - <screen>&prompt.root; <userinput>ipfw add deny log tcp from evil.crackers.org/24 to nice.people.org</userinput></screen> - - <para>If you do not want people sending X sessions to your internal - network (a subnet of a class C), the following command will do the - necessary filtering:</para> - - <screen>&prompt.root; <userinput>ipfw add deny tcp from any to my.org/28 6000 setup</userinput></screen> - - <para>To see the accounting records: - - <screen>&prompt.root; <userinput>ipfw -a list</userinput></screen> - - or in the short form - - <screen>&prompt.root; <userinput>ipfw -a l</userinput></screen> - </para> - - <para>You can also see the last time a chain entry was matched - with:</para> - - <screen>&prompt.root; <userinput>ipfw -at l</userinput></screen> - </sect2> - - <sect2> - <title>Building a packet filtering firewall</title> - - <note> - <para>The following suggestions are just that: suggestions. The - requirements of each firewall are different and I cannot tell you - how to build a firewall to meet your particular requirements.</para> - </note> - - <para>When initially setting up your firewall, unless you have a test - bench setup where you can configure your firewall host in a controlled - environment, I strongly recommend you use the logging version of the - commands and enable logging in the kernel. This will allow you to - quickly identify problem areas and cure them without too much - disruption. Even after the initial setup phase is complete, I - recommend using the logging for `deny' as it allows tracing of - possible attacks and also modification of the firewall rules if your - requirements alter.</para> - - <note> - <para>If you use the logging versions of the <command>accept</command> - command, it can generate <emphasis>large</emphasis> amounts of log - data as one log line will be generated for every packet that passes - through the firewall, so large ftp/http transfers, etc, will really - slow the system down. It also increases the latencies on those - packets as it requires more work to be done by the kernel before the - packet can be passed on. syslogd with also start using up a lot - more processor time as it logs all the extra data to disk, and it - could quite easily fill the partition <filename>/var/log</filename> - is located on.</para> - </note> - - <para>You should enable your firewall from - <filename>/etc/rc.conf.local</filename> or - <filename>/etc/rc.conf</filename>. The associated man page explains - which knobs to fiddle and lists some preset firewall configurations. - If you do not use a preset configuration, <command>ipfw list</command> - will output the current ruleset into a file that you can - pass to <filename>rc.conf</filename>. If you do not use - <filename>/etc/rc.conf.local</filename> or - <filename>/etc/rc.conf</filename> to enable your firewall, - it is important to make sure your firewall is enabled before - any IP interfaces are configured. - </para> - - <para>The next problem is what your firewall should actually - <emphasis>do</emphasis>! This is largely dependent on what access to - your network you want to allow from the outside, and how much access - to the outside world you want to allow from the inside. Some general - rules are:</para> - - <itemizedlist> - <listitem> - <para>Block all incoming access to ports below 1024 for TCP. This is - where most of the security sensitive services are, like finger, - SMTP (mail) and telnet.</para> - </listitem> - - <listitem> - <para>Block <emphasis>all</emphasis> incoming UDP traffic. There - are very few useful services that travel over UDP, and what useful - traffic there is is normally a security threat (e.g. Suns RPC and - NFS protocols). This has its disadvantages also, since UDP is a - connectionless protocol, denying incoming UDP traffic also blocks - the replies to outgoing UDP traffic. This can cause a problem for - people (on the inside) using external archie (prospero) servers. - If you want to allow access to archie, you'll have to allow - packets coming from ports 191 and 1525 to any internal UDP port - through the firewall. ntp is another service you may consider - allowing through, which comes from port 123.</para> - </listitem> - - <listitem> - <para>Block traffic to port 6000 from the outside. Port 6000 is the - port used for access to X11 servers, and can be a security threat - (especially if people are in the habit of doing <command>xhost - +</command> on their workstations). X11 can actually use a - range of ports starting at 6000, the upper limit being how many X - displays you can run on the machine. The upper limit as defined - by RFC 1700 (Assigned Numbers) is 6063.</para> - </listitem> - - <listitem> - <para>Check what ports any internal servers use (e.g. SQL servers, - etc). It is probably a good idea to block those as well, as they - normally fall outside the 1-1024 range specified above.</para> - </listitem> - </itemizedlist> - - <para>Another checklist for firewall configuration is available from - CERT at <ulink - url="ftp://ftp.cert.org/pub/tech_tips/packet_filtering">ftp://ftp.cert.org/pub/tech_tips/packet_filtering</ulink></para> - - <para>As I said above, these are only <emphasis>guidelines</emphasis>. - You will have to decide what filter rules you want to use on your - firewall yourself. I cannot accept ANY responsibility if someone - breaks into your network, even if you follow the advice given - above.</para> - </sect2> - </sect1> - - <sect1 id="openssl"> - <title>OpenSSL</title> - - <para>As of FreeBSD 4.0, the OpenSSL toolkit is a part of the base - system. <ulink url="http://www.openssl.org/">OpenSSL</ulink> - provides a general-purpose cryptography library, as well as the - Secure Sockets Layer v2/v3 (SSLv2/SSLv3) and Transport Layer - Security v1 (TLSv1) network security protocols.</para> - - <para>However, some of the algorithms (specifically, RSA and IDEA) - included in OpenSSL are protected by patents in the USA and - elsewhere, and are not available for unrestricted use (in - particular, IDEA is not available at all in FreeBSD's version of - OpenSSL). As a result, FreeBSD has available two different - versions of the OpenSSL RSA libraries depending on geographical - location (USA/non-USA).</para> - - <sect2> - <title>Source Code Installations</title> - - <para>OpenSSL is part of the <literal>src-crypto</literal> and - <literal>src-secure</literal> cvsup collections. See the <link - linkend="mirrors">Obtaining FreeBSD</link> section for more - information about obtaining and updating FreeBSD source - code.</para> - </sect2> - - <sect2> - <title>International (Non-USA) Users</title> - - <para>People who are located outside the USA, and who obtain their - crypto sources from <hostid - role="fqdn">internat.FreeBSD.org</hostid> (the International - Crypto Repository) or an international mirror site, will build a - version of OpenSSL which includes the <quote>native</quote> OpenSSL - implementation of - RSA, but does not include IDEA, because the latter is restricted - in certain locations elsewhere in the world. In the future a more - flexible geographical identification system may allow building of - IDEA in countries for which it is not restricted.</para> - - <para>Please be aware of any local restrictions on the import, use - and redistribution of cryptography which may exist in your - country.</para> - </sect2> - - <sect2> - <title>USA Users</title> - - <para>As noted above, RSA is patented in the USA, with terms - preventing general use without an appropriate license. Therefore - the standard OpenSSL RSA code may not be used in the USA, and has been - removed from the version of OpenSSL carried on USA mirror sites. - The RSA patent is due to expire on September 20, 2000, at which - time it is intended to add the <quote>full</quote> RSA code back to - the USA version of OpenSSL.</para> - - <para>However (and fortunately), the RSA patent holder (<ulink - url="http://www.rsasecurity.com/">RSA Security</ulink>, has - provided a <quote>RSA reference implementation</quote> toolkit - (RSAREF) which is available for <emphasis>certain classes of - use</emphasis>, including <emphasis>non-commercial use</emphasis> - (see the RSAREF license for their definition of - non-commercial).</para> - - <para>If you meet the conditions of the RSAREF license and wish to - use it in conjunction with OpenSSL to provide RSA support, you can - install the rsaref port, which is located in - <filename>/usr/ports/security/rsaref</filename>, or the - <literal>rsaref-2.0</literal> package. The OpenSSL library will - then automatically detect and use the RSAREF libraries. Please obtain - legal advice if you are unsure of your compliance with the license - terms.</para> - - <para> The RSAREF implementation is inferior to the - <quote>native</quote> OpenSSL implementation (it is much slower, - and cannot be used with keys larger than 1024 bits). If you are not - located in the USA then you are doing yourself a disadvantage by - using RSAREF.</para> - - <para>Users who have purchased an appropriate RSA source code - license from RSA Security may use the International version of - OpenSSL described above to obtain native RSA support.</para> - - <para>IDEA code is also removed from the USA version of OpenSSL for - patent reasons.</para> - </sect2> - - <sect2> - <title>Binary Installations</title> - - <para>If your FreeBSD installation was a binary installation (e.g., - installed from the Walnut Creek CDROM, or from a snapshot - downloaded from - <hostid role="fqdn">ftp.FreeBSD.org</hostid>) and you selected to - install the <literal>crypto</literal> collection, then the - <literal>sysinstall</literal> utility will automatically select - the correct version to install during the installation - process. If the international version was selected but could - not be installed during sysinstall (e.g. you have not - configured network access, and the version must be downloaded - from a FTP site) then you can add the international RSA library - after installation as a package.</para> - - <para>The <literal>librsaintl</literal> package contains the RSA - code for International (non-USA) users. This is not legal for - use in the USA, but international users should use this version - because the RSA implementation is faster and more flexible. It - is available from <hostid - role="fqdn">ftp.internat.FreeBSD.org</hostid> and does not - require RSAREF.</para> - </sect2> - </sect1> - - <sect1 id="ipsec"> - <title>IPsec</title> - <para><emphasis>Contributed by &a.shin;, 5 March - 2000.</emphasis></para> - - <para>IPsec mechanism provides secure communication either for IP - layer and socket layer communication. This section should - explain how to use them. About IPsec implementation, please - refer <link linkend="ipsec-implementation">section 23.5.4</link>.</para> - - <para>The current IPsec implementation supports both transport mode - and tunnel mode. However, tunnel mode comes with some restrictions. - <ulink url="http://www.kame.net/newsletter/">http://www.kame.net/newsletter/ - </ulink> has more comprehensive examples.</para> - - <sect2> - <title>Transport mode example with IPv4</title> - - <para>Let's setup security association to deploy a secure channel - between HOST A (10.2.3.4) and HOST B (10.6.7.8). Here we show a little - complicated example. From HOST A to HOST B, only old AH is used. - From HOST B to HOST A, new AH and new ESP are combined.</para> - - <para>Now we should choose algorithm to be used corresponding to - "AH"/"new AH"/"ESP"/"new ESP". Please refer to the &man.setkey.8; man - page to know algorithm names. Our choice is MD5 for AH, new-HMAC-SHA1 - for new AH, and new-DES-expIV with 8 byte IV for new ESP.</para> - - <para>Key length highly depends on each algorithm. For example, key - length must be equal to 16 bytes for MD5, 20 for new-HMAC-SHA1, - and 8 for new-DES-expIV. Now we choose "MYSECRETMYSECRET", - "KAMEKAMEKAMEKAMEKAME", "PASSWORD", respectively.</para> - - <para>OK, let's assign SPI (Security Parameter Index) for each protocol. - Please note that we need 3 SPIs for this secure channel since three - security headers are produced (one for from HOST A to HOST B, two for - from HOST B to HOST A). Please also note that SPI MUST be greater - than or equal to 256. We choose, 1000, 2000, and 3000, respectively. - </para> - - <screen> - - (1) - HOST A ------> HOST B - - (1)PROTO=AH - ALG=MD5(RFC1826) - KEY=MYSECRETMYSECRET - SPI=1000 - - (2.1) - HOST A <------ HOST B - <------ - (2.2) - - (2.1) - PROTO=AH - ALG=new-HMAC-SHA1(new AH) - KEY=KAMEKAMEKAMEKAMEKAME - SPI=2000 - - (2.2) - PROTO=ESP - ALG=new-DES-expIV(new ESP) - IV length = 8 - KEY=PASSWORD - SPI=3000 - - </screen> - - <para>Now, let's setup security association. Execute &man.setkey.8; - on both HOST A and B:</para> - - <screen> - -&prompt.root; <command>setkey -c</command> -add 10.2.3.4 10.6.7.8 ah-old 1000 -m transport -A keyed-md5 "MYSECRETMYSECRET" ; -add 10.6.7.8 10.2.3.4 ah 2000 -m transport -A hmac-sha1 "KAMEKAMEKAMEKAMEKAME" ; -add 10.6.7.8 10.2.3.4 esp 3000 -m transport -E des-cbc "PASSWORD" ; -^D - - </screen> - - <para>Actually, IPsec communication doesn't process until security policy - entries will be defined. In this case, you must setup each host.</para> - - <screen> - -At A: - -&prompt.root; <command>setkey -c</command> -spdadd 10.2.3.4 10.6.7.8 any -P out ipsec - ah/transport/10.2.3.4-10.6.7.8/require ; -^D - -At B: - -&prompt.root; <command>setkey -c</command> -spdadd 10.6.7.8 10.2.3.4 any -P out ipsec - esp/transport/10.6.7.8-10.2.3.4/require ; -spdadd 10.6.7.8 10.2.3.4 any -P out ipsec - ah/transport/10.6.7.8-10.2.3.4/require ; -^D - - - HOST A --------------------------------------> HOST E - 10.2.3.4 10.6.7.8 - | | - ========== old AH keyed-md5 ==========> - - <========= new AH hmac-sha1 =========== - <========= new ESP des-cbc ============ - - </screen> - </sect2> - - <sect2> - <title>Transport mode example with IPv6</title> - - <para>Another example using IPv6.</para> - - <para>ESP transport mode is recommended for TCP port number 110 between - Host-A and Host-B.</para> - - <screen> - - ============ ESP ============ - | | - Host-A Host-B - fec0::10 -------------------- fec0::11 - - </screen> - - <para>Encryption algorithm is blowfish-cbc whose key is "kamekame", and - authentication algorithm is hmac-sha1 whose key is "this is the test - key". Configuration at Host-A:</para> - - <screen> - - &prompt.root; <command>setkey -c</command> <<<filename>EOF</filename> - spdadd fec0::10[any] fec0::11[110] tcp -P out ipsec - esp/transport/fec0::10-fec0::11/use ; - spdadd fec0::11[110] fec0::10[any] tcp -P in ipsec - esp/transport/fec0::11-fec0::10/use ; - add fec0::10 fec0::11 esp 0x10001 - -m transport - -E blowfish-cbc "kamekame" - -A hmac-sha1 "this is the test key" ; - add fec0::11 fec0::10 esp 0x10002 - -m transport - -E blowfish-cbc "kamekame" - -A hmac-sha1 "this is the test key" ; - EOF - - </screen> - - <para>and at Host-B:</para> - - <screen> - &prompt.root; <command>setkey -c</command> <<<filename>EOF</filename> - spdadd fec0::11[110] fec0::10[any] tcp -P out ipsec - esp/transport/fec0::11-fec0::10/use ; - spdadd fec0::10[any] fec0::11[110] tcp -P in ipsec - esp/transport/fec0::10-fec0::11/use ; - add fec0::10 fec0::11 esp 0x10001 -m transport - -E blowfish-cbc "kamekame" - -A hmac-sha1 "this is the test key" ; - add fec0::11 fec0::10 esp 0x10002 -m transport - -E blowfish-cbc "kamekame" - -A hmac-sha1 "this is the test key" ; - EOF - - </screen> - - <para>Note the direction of SP.</para> - </sect2> - - <sect2> - <title>Tunnel mode example with IPv4</title> - - <para>Tunnel mode between two security gateways</para> - - <para>Security protocol is old AH tunnel mode, i.e. specified by - RFC1826, with keyed-md5 whose key is "this is the test" as - authentication algorithm.</para> - - <screen> - - ======= AH ======= - | | - Network-A Gateway-A Gateway-B Network-B - 10.0.1.0/24 ---- 172.16.0.1 ----- 172.16.0.2 ---- 10.0.2.0/24 - - </screen> - - <para>Configuration at Gateway-A:</para> - - <screen> - - &prompt.root; <command>setkey -c</command> <<<filename>EOF</filename> - spdadd 10.0.1.0/24 10.0.2.0/24 any -P out ipsec - ah/tunnel/172.16.0.1-172.16.0.2/require ; - spdadd 10.0.2.0/24 10.0.1.0/24 any -P in ipsec - ah/tunnel/172.16.0.2-172.16.0.1/require ; - add 172.16.0.1 172.16.0.2 ah-old 0x10003 -m any - -A keyed-md5 "this is the test" ; - add 172.16.0.2 172.16.0.1 ah-old 0x10004 -m any - -A keyed-md5 "this is the test" ; - - EOF - - </screen> - - <para>If port number field is omitted such above then "[any]" is - employed. `-m' specifies the mode of SA to be used. "-m any" means - wild-card of mode of security protocol. You can use this SA for both - tunnel and transport mode.</para> - - <para>and at Gateway-B:</para> - - <screen> - - &prompt.root; <command>setkey -c</command> <<<filename>EOF</filename> - spdadd 10.0.2.0/24 10.0.1.0/24 any -P out ipsec - ah/tunnel/172.16.0.2-172.16.0.1/require ; - spdadd 10.0.1.0/24 10.0.2.0/24 any -P in ipsec - ah/tunnel/172.16.0.1-172.16.0.2/require ; - add 172.16.0.1 172.16.0.2 ah-old 0x10003 -m any - -A keyed-md5 "this is the test" ; - add 172.16.0.2 172.16.0.1 ah-old 0x10004 -m any - -A keyed-md5 "this is the test" ; - - EOF - - </screen> - - <para>Making SA bundle between two security gateways</para> - - <para>AH transport mode and ESP tunnel mode is required between - Gateway-A and Gateway-B. In this case, ESP tunnel mode is applied first, - and AH transport mode is next.</para> - - <screen> - - ========== AH ========= - | ======= ESP ===== | - | | | | - Network-A Gateway-A Gateway-B Network-B - fec0:0:0:1::/64 --- fec0:0:0:1::1 ---- fec0:0:0:2::1 --- fec0:0:0:2::/64 - - </screen> - </sect2> - - <sect2> - <title>Tunnel mode example with IPv6</title> - - <para>Encryption algorithm is 3des-cbc, and authentication algorithm - for ESP is hmac-sha1. Authentication algorithm for AH is hmac-md5. - Configuration at Gateway-A:</para> - - <screen> - - &prompt.root; <command>setkey -c</command> <<<filename>EOF</filename> - spdadd fec0:0:0:1::/64 fec0:0:0:2::/64 any -P out ipsec - esp/tunnel/fec0:0:0:1::1-fec0:0:0:2::1/require - ah/transport/fec0:0:0:1::1-fec0:0:0:2::1/require ; - spdadd fec0:0:0:2::/64 fec0:0:0:1::/64 any -P in ipsec - esp/tunnel/fec0:0:0:2::1-fec0:0:0:1::1/require - ah/transport/fec0:0:0:2::1-fec0:0:0:1::1/require ; - add fec0:0:0:1::1 fec0:0:0:2::1 esp 0x10001 -m tunnel - -E 3des-cbc "kamekame12341234kame1234" - -A hmac-sha1 "this is the test key" ; - add fec0:0:0:1::1 fec0:0:0:2::1 ah 0x10001 -m transport - -A hmac-md5 "this is the test" ; - add fec0:0:0:2::1 fec0:0:0:1::1 esp 0x10001 -m tunnel - -E 3des-cbc "kamekame12341234kame1234" - -A hmac-sha1 "this is the test key" ; - add fec0:0:0:2::1 fec0:0:0:1::1 ah 0x10001 -m transport - -A hmac-md5 "this is the test" ; - - EOF - - </screen> - - <para>Making SAs with the different end</para> - - <para>ESP tunnel mode is required between Host-A and Gateway-A. Encryption - algorithm is cast128-cbc, and authentication algorithm for ESP is - hmac-sha1. ESP transport mode is recommended between Host-A and Host-B. - Encryption algorithm is rc5-cbc, and authentication algorithm for ESP is - hmac-md5.</para> - - <screen> - - ================== ESP ================= - | ======= ESP ======= | - | | | | - Host-A Gateway-A Host-B - fec0:0:0:1::1 ---- fec0:0:0:2::1 ---- fec0:0:0:2::2 - - </screen> - - <para>Configuration at Host-A:</para> - - <screen> - - &prompt.root; <command>setkey -c</command> <<<filename>EOF</filename> - spdadd fec0:0:0:1::1[any] fec0:0:0:2::2[80] tcp -P out ipsec - esp/transport/fec0:0:0:1::1-fec0:0:0:2::2/use - esp/tunnel/fec0:0:0:1::1-fec0:0:0:2::1/require ; - spdadd fec0:0:0:2::1[80] fec0:0:0:1::1[any] tcp -P in ipsec - esp/transport/fec0:0:0:2::2-fec0:0:0:l::1/use - esp/tunnel/fec0:0:0:2::1-fec0:0:0:1::1/require ; - add fec0:0:0:1::1 fec0:0:0:2::2 esp 0x10001 - -m transport - -E cast128-cbc "12341234" - -A hmac-sha1 "this is the test key" ; - add fec0:0:0:1::1 fec0:0:0:2::1 esp 0x10002 - -E rc5-cbc "kamekame" - -A hmac-md5 "this is the test" ; - add fec0:0:0:2::2 fec0:0:0:1::1 esp 0x10003 - -m transport - -E cast128-cbc "12341234" - -A hmac-sha1 "this is the test key" ; - add fec0:0:0:2::1 fec0:0:0:1::1 esp 0x10004 - -E rc5-cbc "kamekame" - -A hmac-md5 "this is the test" ; - - EOF - - </screen> - </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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/serialcomms/chapter.sgml b/en_US.ISO8859-1/books/handbook/serialcomms/chapter.sgml deleted file mode 100644 index 3cb7be6640..0000000000 --- a/en_US.ISO8859-1/books/handbook/serialcomms/chapter.sgml +++ /dev/null @@ -1,2742 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/serialcomms/chapter.sgml,v 1.18 2000/06/08 01:56:19 jim Exp $ ---> - -<chapter id="serialcomms"> - <title>Serial Communications</title> - - <sect1> - <title>Synopsis</title> - - <para>UNIX has always had support for serial communications. In fact, - the very first UNIX machines relied on serial lines for user input - and output. Things have changed a lot from the days when the average - <quote>terminal</quote> consisted of a 10-character-per-second serial - printer and a keyboard. This chapter will cover some of the ways in - which FreeBSD uses serial communications.</para> - </sect1> - - <sect1 id="serial"> - <title>Serial Basics</title> - - <para><emphasis>Assembled from FAQ.</emphasis></para> - - <para>This section should give you some general information about serial - ports. If you do not find what you want here, check into the Terminal - and Dial-up sections of the handbook.</para> - - <para>The <filename>ttyd<replaceable>X</replaceable></filename> (or - <filename>cuaa<replaceable>X</replaceable></filename>) device is the - regular device you will want to open for your applications. When a - process opens the device, it will have a default set of terminal I/O - settings. You can see these settings with the command</para> - - <screen>&prompt.root; <userinput>stty -a -f /dev/ttyd1</userinput></screen> - - <para>When you change the settings to this device, the settings are in - effect until the device is closed. When it is reopened, it goes back to - the default set. To make changes to the default set, you can open and - adjust the settings of the <quote>initial state</quote> device. For - example, to turn on <acronym>CLOCAL</acronym> mode, 8 bits, and - <emphasis>XON/XOFF</emphasis> flow control by default for ttyd5, - do:</para> - - <screen>&prompt.root; <userinput>stty -f /dev/ttyid5 clocal cs8 ixon ixoff</userinput></screen> - - <para>A good place to do this is in <filename>/etc/rc.serial</filename>. - Now, an application will have these settings by default when it opens - <filename>ttyd5</filename>. It can still change these settings to its - liking, though.</para> - - <para>You can also prevent certain settings from being changed by an - application by making adjustments to the <quote>lock state</quote> - device. For example, to lock the speed of <filename>ttyd5</filename> to - 57600 bps, do</para> - - <screen>&prompt.root; <userinput>stty -f /dev/ttyld5 57600</userinput></screen> - - <para>Now, an application that opens <filename>ttyd5</filename> and tries - to change the speed of the port will be stuck with 57600 bps.</para> - - <para>Naturally, you should make the initial state and lock state devices - writable only by <username>root</username>. The - <filename>MAKEDEV</filename> script does <emphasis>not</emphasis> do - this when it creates the device entries.</para> - </sect1> - - <sect1 id="term"> - <title>Terminals</title> - - <para><emphasis>Contributed by &a.kelly; 28 July 1996</emphasis></para> - - <para>Terminals provide a convenient and low-cost way to access the power - of your FreeBSD system when you are not at the computer's console or on - a connected network. This section describes how to use terminals with - FreeBSD.</para> - - <sect2 id="term-uses"> - <title>Uses and Types of Terminals</title> - - <para>The original Unix systems did not have consoles. Instead, people - logged in and ran programs through terminals that were connected to - the computer's serial ports. It is quite similar to using a modem and - some terminal software to dial into a remote system to do text-only - work.</para> - - <para>Today's PCs have consoles capable of high quality graphics, but - the ability to establish a login session on a serial port still exists - in nearly every Unix-style operating system today; FreeBSD is no - exception. By using a terminal attached to a unused serial port, you - can log in and run any text program that you would normally run on the - console or in an <command>xterm</command> window in the X Window - System.</para> - - <para>For the business user, you can attach many terminals to a FreeBSD - system and place them on your employees' desktops. For a home user, a - spare computer such as an older IBM PC or a Macintosh can be a - terminal wired into a more powerful computer running FreeBSD. You can - turn what might otherwise be a single-user computer into a powerful - multiple user system.</para> - - <para>For FreeBSD, there are three kinds of terminals:</para> - - <itemizedlist> - <listitem> - <para><link linkend="term-dumb">Dumb terminals</link></para> - </listitem> - - <listitem> - <para><link linkend="term-pcs">PCs acting as terminals</link></para> - </listitem> - - <listitem> - <para><link linkend="term-x">X terminals</link></para> - </listitem> - </itemizedlist> - - <para>The remaining subsections describe each kind.</para> - - <sect3 id="term-dumb"> - <title>Dumb Terminals</title> - - <para>Dumb terminals are specialized pieces of hardware that let you - connect to computers over serial lines. They are called - <quote>dumb</quote> because they have only enough computational power - to display, send, and receive text. You cannot run any programs on - them. It is the computer to which you connect them that has all the - power to run text editors, compilers, email, games, and so - forth.</para> - - <para>There are hundreds of kinds of dumb terminals made by many - manufacturers, including Digital Equipment Corporation's VT-100 and - Wyse's WY-75. Just about any kind will work with FreeBSD. Some - high-end terminals can even display graphics, but only certain - software packages can take advantage of these advanced - features.</para> - - <para>Dumb terminals are popular in work environments where workers do - not need access to graphic applications such as those provided by - the X Window System.</para> - </sect3> - - <sect3 id="term-pcs"> - <title>PCs Acting As Terminals</title> - - <para>If a <link linkend="term-dumb">dumb terminal</link> has just - enough ability to display, send, and receive text, then certainly - any spare personal computer can be a dumb terminal. All you need is - the proper cable and some <emphasis>terminal emulation</emphasis> - software to run on the computer.</para> - - <para>Such a configuration is popular in homes. For example, if your - spouse is busy working on your FreeBSD system's console, you can do - some text-only work at the same time from a less powerful personal - computer hooked up as a terminal to the FreeBSD system.</para> - </sect3> - - <sect3 id="term-x"> - <title>X Terminals</title> - - <para>X terminals are the most sophisticated kind of terminal - available. Instead of connecting to a serial port, they usually - connect to a network like Ethernet. Instead of being relegated to - text-only applications, they can display any X application.</para> - - <para>We introduce X terminals just for the sake of completeness. - However, this chapter does <emphasis>not</emphasis> cover setup, - configuration, or use of X terminals.</para> - </sect3> - </sect2> - - <sect2 id="term-cables-ports"> - <title>Cables and Ports</title> - - <para>To connect a terminal to your FreeBSD system, you need the right - kind of cable and a serial port to which to connect it. This section - tells you what to do. If you are already familiar with your terminal - and the cable it requires, skip to <link - linkend="term-config">Configuration</link>.</para> - - <sect3 id="term-cables"> - <title>Cables</title> - - <para>Because terminals use serial ports, you need to use - serial—also known as RS-232C—cables to connect the - terminal to the FreeBSD system.</para> - - <para>There are a couple of kinds of serial cables. Which one - you'll use depends on the terminal you want to connect:</para> - - <itemizedlist> - <listitem> - <para>If you are connecting a personal computer to act as a - terminal, use a <link linkend="term-null">null-modem</link> - cable. A null-modem cable connects two computers or terminals - together.</para> - </listitem> - - <listitem> - <para>If you have an actual terminal, your best source of - information on what cable to use is the documentation that - accompanied the terminal. If you do not have the documentation, - then try a <link linkend="term-null">null-modem</link> cable. - If that does not work, then try a <link - linkend="term-std">standard</link> cable.</para> - </listitem> - </itemizedlist> - - <para>Also, the serial port on <emphasis>both</emphasis> the terminal - and your FreeBSD system must have connectors that will fit the cable - you are using.</para> - - <sect4 id="term-null"> - <title>Null-modem cables</title> - - <para>A null-modem cable passes some signals straight through, like - <quote>signal ground,</quote> but switches other signals. For - example, the <quote>send data</quote> pin on one end goes to the - <quote>receive data</quote> pin on the other end.</para> - - <para>If you like making your own cables, here is a table showing a - recommended way to construct a null-modem cable for use with - terminals. This table shows the RS-232C signal names and the pin - numbers on a DB-25 connector.</para> - - <informaltable frame="none"> - <tgroup cols="5"> - <thead> - <row> - <entry>Signal</entry> - <entry>Pin #</entry> - <entry></entry> - <entry>Pin #</entry> - <entry>Signal</entry> - </row> - </thead> - - <tbody> - <row> - <entry>TxD</entry> - <entry>2</entry> - <entry>connects to</entry> - <entry>3</entry> - <entry>RxD</entry> - </row> - - <row> - <entry>RxD</entry> - <entry>3</entry> - <entry>connects to</entry> - <entry>2</entry> - <entry>TxD</entry> - </row> - - <row> - <entry>DTR</entry> - <entry>20</entry> - <entry>connects to</entry> - <entry>6</entry> - <entry>DSR</entry> - </row> - - <row> - <entry>DSR</entry> - <entry>6</entry> - <entry>connects to</entry> - <entry>20</entry> - <entry>DTR</entry> - </row> - - <row> - <entry>SG</entry> - <entry>7</entry> - <entry>connects to</entry> - <entry>7</entry> - <entry>SG</entry> - </row> - - <row> - <entry>DCD</entry> - <entry>8</entry> - <entry>connects to</entry> - <entry>4</entry> - <entry>RTS</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>connects to</entry> - <entry>8</entry> - <entry>DCD</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <note> - <para>For DCD to RTS, connect pins 4 to 5 internally in the - connector hood, and then to pin 8 in the remote - hood.</para> - </note> - </sect4> - - <sect4 id="term-std"> - <title>Standard RS-232C Cables</title> - - <para>A standard serial cable passes all the RS-232C signals - straight-through. That is, the <quote>send data</quote> pin on one - end of the cable goes to the <quote>send data</quote> pin on the - other end. This is the type of cable to connect a modem to your - FreeBSD system, and the type of cable needed for some - terminals.</para> - </sect4> - </sect3> - - <sect3 id="term-ports"> - <title>Ports</title> - - <para>Serial ports are the devices through which data is transferred - between the FreeBSD host computer and the terminal. This section - describes the kinds of ports that exist and how they are addressed - in FreeBSD.</para> - - <sect4 id="term-portkinds"> - <title>Kinds of Ports</title> - - <para>Several kinds of serial ports exist. Before you purchase or - construct a cable, you need to make sure it will fit the ports on - your terminal and on the FreeBSD system.</para> - - <para>Most terminals will have DB25 ports. Personal computers, - including PCs running FreeBSD, will have DB25 or DB9 ports. If you - have a multiport serial card for your PC, you may have RJ-12 or - RJ-45 ports.</para> - - <para>See the documentation that accompanied the hardware for - specifications on the kind of port in use. A visual inspection of - the port often works, too.</para> - </sect4> - - <sect4 id="term-portnames"> - <title>Port Names</title> - - <para>In FreeBSD, you access each serial port through an entry in - the <filename>/dev</filename> directory. There are two different - kinds of entries:</para> - - <itemizedlist> - <listitem> - <para>Call-in ports are named - <filename>/dev/ttyd<replaceable>X</replaceable></filename> - where <replaceable>X</replaceable> is the port number, - starting from zero. Generally, you use the call-in port for - terminals. Call-in ports require that the serial line assert - the data carrier detect (DCD) signal to work.</para> - </listitem> - - <listitem> - <para>Call-out ports are named - <filename>/dev/cuaa<replaceable>X</replaceable></filename>. - You usually do not use the call-out port for terminals, just - for modems. You may use the call-out port if the serial cable - or the terminal does not support the carrier detect - signal.</para> - </listitem> - </itemizedlist> - - <para>See the &man.sio.4; manual page for more information.</para> - - <para>If you have connected a terminal to the first serial port - (<devicename>COM1</devicename> in DOS parlance), then you want to - use <filename>/dev/ttyd0</filename> to refer to the terminal. If - it is on the second serial port (also known as - <devicename>COM2</devicename>), it is - <filename>/dev/ttyd1</filename>, and so forth.</para> - - <para>Note that you may have to configure your kernel to support - each serial port, especially if you have a multiport serial card. - See <link linkend="kernelconfig">Configuring the FreeBSD - Kernel</link> for more information.</para> - </sect4> - </sect3> - </sect2> - - <sect2 id="term-config"> - <title>Configuration</title> - - <para>This section describes what you need to configure on your FreeBSD - system to enable a login session on a terminal. It assumes you have - already configured your kernel to support the serial port to which the - terminal is connected—and that you have connected it.</para> - - <para>In a nutshell, you need to tell the <command>init</command> - process, which is responsible for process control and initialization, - to start a <command>getty</command> process, which is responsible for - reading a login name and starting the <command>login</command> - program.</para> - - <para>To do so, you have to edit the <filename>/etc/ttys</filename> - file. First, use the <command>su</command> command to become root. - Then, make the following changes to - <filename>/etc/ttys</filename>:</para> - - <procedure> - <step> - <para>Add an line to <filename>/etc/ttys</filename> for the entry in - the <filename>/dev</filename> directory for the serial port if it - is not already there.</para> - </step> - - <step> - <para>Specify that <filename>/usr/libexec/getty</filename> be run on - the port, and specify the appropriate - <replaceable>getty</replaceable> type from the - <filename>/etc/gettytab</filename> file.</para> - </step> - - <step> - <para>Specify the default terminal type.</para> - </step> - - <step> - <para>Set the port to <quote>on.</quote></para> - </step> - - <step> - <para>Specify whether the port should be - <quote>secure.</quote></para> - </step> - - <step> - <para>Force <command>init</command> to reread the - <filename>/etc/ttys</filename> file.</para> - </step> - </procedure> - - <para>As an optional step, you may wish to create a custom - <replaceable>getty</replaceable> type for use in step 2 by making an - entry in <filename>/etc/gettytab</filename>. This document does - not explain how to do so; you are encouraged to see the - &man.gettytab.5; and the &man.getty.8; manual pages for more - information.</para> - - <para>The remaining sections detail how to do these steps. We will use - a running example throughout these sections to illustrate what we need - to do. In our example, we will connect two terminals to the system: a - Wyse-50 and a old 286 IBM PC running Procomm terminal software - emulating a VT-100 terminal. We connect the Wyse to the second serial - port and the 286 to the sixth serial port (a port on a multiport - serial card).</para> - - <para>For more information on the <filename>/etc/ttys</filename> - file, see the &man.ttys.5; manual page.</para> - - <sect3 id="term-etcttys"> - <title>Adding an Entry to <filename>/etc/ttys</filename></title> - - <para>First, you need to add an entry to the - <filename>/etc/ttys</filename> file, unless one is already - there.</para> - - <para>The <filename>/etc/ttys</filename> file lists all of the ports - on your FreeBSD system where you want to allow logins. For example, - the first virtual console <filename>ttyv0</filename> has an entry in - this file. You can log in on the console using this entry. This - file contains entries for the other virtual consoles, serial ports, - and pseudo-ttys. For a hardwired terminal, just list the serial - port's <filename>/dev</filename> entry without the - <filename>/dev</filename> part.</para> - - <para>When you installed your FreeBSD system, the - <filename>/etc/ttys</filename> file included entries for the first - four serial ports: <filename>ttyd0</filename> through - <filename>ttyd3</filename>. If you are attaching a terminal on one - of those ports, you do not need to add an entry.</para> - - <para>In our example, we attached a Wyse-50 to the second serial port, - <filename>ttyd1</filename>, which is already in the file. We need - to add an entry for the 286 PC connected to the sixth serial port. - Here is an excerpt of the <filename>/etc/ttys</filename> file after - we add the new entry:</para> - - <programlisting> -ttyd1 "/usr/libexec/getty std.9600" unknown off secure -ttyd5</programlisting> - </sect3> - - <sect3 id="term-getty"> - <title>Specifying the <replaceable>getty</replaceable> Type</title> - - <para>Next, we need to specify what program will be run to handle the - logins on a terminal. For FreeBSD, the standard program to do that - is <filename>/usr/libexec/getty</filename>. It is what provides the - <prompt>login:</prompt> prompt.</para> - - <para>The program <command>getty</command> takes one (optional) - parameter on its command line, the <replaceable>getty</replaceable> - type. A <replaceable>getty</replaceable> type tells about - characteristics on the terminal line, like bps rate and parity. The - <command>getty</command> program reads these characteristics from - the file <filename>/etc/gettytab</filename>.</para> - - <para>The file <filename>/etc/gettytab</filename> contains lots of - entries for terminal lines both old and new. In almost all cases, - the entries that start with the text <literal>std</literal> will - work for hardwired terminals. These entries ignore parity. There is - a <literal>std</literal> entry for each bps rate from 110 to 115200. - Of course, you can add your own entries to this file. The manual - page &man.gettytab.5; provides more - information.</para> - - <para>When setting the <replaceable>getty</replaceable> type in the - <filename>/etc/ttys</filename> file, make sure that the - communications settings on the terminal match.</para> - - <para>For our example, the Wyse-50 uses no parity and connects at - 38400 bps. The 286 PC uses no parity and connects at 19200 bps. - Here is the <filename>/etc/ttys</filename> file so far (showing just - the two terminals in which we are interested):</para> - - <programlisting> -ttyd1 "/usr/libexec/getty std.38400" unknown off secure -ttyd5 "/usr/libexec/getty std.19200"</programlisting> - - <para>Note that the second field—where we specify what program - to run—appears in quotes. This is important, otherwise the - type argument to <command>getty</command> might be interpreted as - the next field.</para> - </sect3> - - <sect3 id="term-deftermtype"> - <title>Specifying the Default Terminal Type</title> - - <para>The third field in the <filename>/etc/ttys</filename> file lists - the default terminal type for the port. For dial-up ports, you - typically put <literal>unknown</literal> or - <literal>dialup</literal> in this field because users may dial up - with practically any kind of terminal or software. For hardwired - terminals, the terminal type does not change, so you can put a real - terminal type in this field.</para> - - <para>Users will usually use the <command>tset</command> program in - their <filename>.login</filename> or <filename>.profile</filename> - files to check the terminal type and prompt for one if necessary. - By setting a terminal type in the <filename>/etc/ttys</filename> - file, users can forego such prompting.</para> - - <para>To find out what terminal types FreeBSD supports, see the - file <filename>/usr/share/misc/termcap</filename>. It lists - about 600 terminal types. You can add more if you wish. See - the &man.termcap.5; manual page for information.</para> - - <para>In our example, the Wyse-50 is a Wyse-50 type of terminal - (although it can emulate others, we will leave it in Wyse-50 mode). - The 286 PC is running Procomm which will be set to emulate a VT-100. - Here are the pertinent yet unfinished entries from the - <filename>/etc/ttys</filename> file:</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>Enabling the Port</title> - - <para>The next field in <filename>/etc/ttys</filename>, the fourth - field, tells whether to enable the port. Putting - <literal>on</literal> here will have the <command>init</command> - process start the program in the second field, - <command>getty</command>, which will prompt for a login. If you put - <literal>off</literal> in the fourth field, there will be no - <command>getty</command>, and hence no logins on the port.</para> - - <para>So, naturally, you want an <literal>on</literal> in this field. - Here again is the <filename>/etc/ttys</filename> file. We have - turned each port <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>Specifying Secure Ports</title> - - <para>We have arrived at the last field (well, almost: there is an - optional <literal>window</literal> specifier, but we will ignore - that). The last field tells whether the port is secure.</para> - - <para>What does <quote>secure</quote> mean?</para> - - <para>It means that the root account (or any account with a user ID of - 0) may login on the port. Insecure ports do not allow root to - login.</para> - - <para>How do you use secure and insecure ports?</para> - - <para>By marking a port as insecure, the terminal to which it is - connected will not allow root to login. People who know the root - password to your FreeBSD system will first have to login using a - regular user account. To gain superuser privileges, they will then - have to use the <command>su</command> command.</para> - - <para>Because of this, you will have two records to help track down - possible compromises of root privileges: both the - <command>login</command> and the <command>su</command> command make - records in the system log (and logins are also recorded in the - <filename>wtmp</filename> file).</para> - - <para>By marking a port as secure, the terminal will allow root in. - People who know the root password will just login as root. You will - not have the potentially useful login and <command>su</command> - command records.</para> - - <para>Which should you use?</para> - - <para>Just use <quote>insecure.</quote> Use <quote>insecure</quote> - <emphasis>even</emphasis> for terminals <emphasis>not</emphasis> in - public user areas or behind locked doors. It is quite easy to login - and use <command>su</command> if you need superuser - privileges.</para> - - <para>Here finally are the completed entries in the - <filename>/etc/ttys</filename> file, with comments added to describe - where the terminals are:</para> - - <programlisting> -ttyd1 "/usr/libexec/getty std.38400" wy50 on insecure # Kitchen -ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure # Guest bathroom</programlisting> - </sect3> - - <sect3 id="term-hup"> - <title>Force <command>init</command> to Reread - <filename>/etc/ttys</filename></title> - - <para>When you boot FreeBSD, the first process, - <command>init</command>, will read the - <filename>/etc/ttys</filename> file and start the programs listed - for each enabled port to prompt for logins.</para> - - <para>After you edit <filename>/etc/ttys</filename>, you do not want - to have to reboot your system to get <command>init</command> to see - the changes. So, <command>init</command> will reread - <filename>/etc/ttys</filename> if it receives a SIGHUP (hangup) - signal.</para> - - <para>So, after you have saved your changes to - <filename>/etc/ttys</filename>, send <literal>SIGHUP</literal> to - <command>init</command> by typing:</para> - - <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen> - - <para>(The <command>init</command> process <emphasis>always</emphasis> - has process ID 1.)</para> - - <para>If everything is set up correctly, all cables are in place, and - the terminals are powered up, you should see login prompts. Your - terminals are ready for their first logins!</para> - </sect3> - </sect2> - - <sect2 id="term-debug"> - <title>Debugging your connection</title> - - <para>Even with the most meticulous attention to detail, something could - still go wrong while setting up a terminal. Here is a list of - symptoms and some suggested fixes.</para> - - <variablelist> - <varlistentry> - <term>No login prompt appears</term> - - <listitem> - <para>Make sure the terminal is plugged in and powered up. If it - is a personal computer acting as a terminal, make sure it is - running terminal emulation software on the correct serial - port.</para> - - <para>Make sure the cable is connected firmly to both the terminal - and the FreeBSD computer. Make sure it is the right kind of - cable.</para> - - <para>Make sure the terminal and FreeBSD agree on the bps rate and - parity settings. If you have a video display terminal, make - sure the contrast and brightness controls are turned up. If it - is a printing terminal, make sure paper and ink are in good - supply.</para> - - <para>Make sure that a <command>getty</command> process is running - and serving the terminal. Type <screen>&prompt.root; - <userinput>ps -axww|grep getty</userinput></screen> to get a - list of running <command>getty</command> processes. You should - see an entry for the terminal. For example, the display - - <screen>22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1</screen> - - shows that a <command>getty</command> is running on the second - serial port <literal>ttyd1</literal> and is using the - <literal>std.38400</literal> entry in - <filename>/etc/gettytab</filename>.</para> - - <para>If no <command>getty</command> process is running, make sure - you have enabled the port in <filename>/etc/ttys</filename>. - Make sure you have run <command>kill -HUP 1</command>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Garbage appears instead of a login prompt</term> - - <listitem> - <para>Make sure the terminal and FreeBSD agree on the bps rate and - parity settings. Check the getty processes to make sure the - correct <replaceable>getty</replaceable> type is in use. If - not, edit <filename>/etc/ttys</filename> and run <command>kill - -HUP 1</command>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Characters appear doubled; the password appears when - typed</term> - - <listitem> - <para>Switch the terminal (or the terminal emulation software) - from <quote>half duplex</quote> or <quote>local echo</quote> to - <quote>full duplex.</quote></para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - </sect1> - - <sect1 id="dialup"> - <title>Dial-in Service</title> - - <para><emphasis>Contributed by &a.ghelmer;.</emphasis></para> - - <para>This document provides suggestions for configuring a FreeBSD system - to handle dial-up modems. This document is written based on the author's - experience with FreeBSD versions 1.0, 1.1, and 1.1.5.1 (and experience - with dial-up modems on other UNIX-like operating systems); however, this - document may not answer all of your questions or provide examples - specific enough to your environment. The author cannot be responsible if - you damage your system or lose data due to attempting to follow the - suggestions here.</para> - - <sect2 id="dialup-prereqs"> - <title>Prerequisites</title> - - <para>To begin with, the author assumes you have some basic knowledge of - FreeBSD. You need to have FreeBSD installed, know how to edit files - in a UNIX-like environment, and how to look up manual pages on the - system. As discussed below, you will need certain versions of - FreeBSD, and knowledge of some terminology & modem and - cabling.</para> - - <sect3> - <title>FreeBSD Version</title> - - <para>First, it is assumed that you are using FreeBSD version 1.1 or - higher (including versions 2.x). FreeBSD version 1.0 included two - different serial drivers, which complicates the situation. Also, - the serial device driver (<devicename>sio</devicename>) has improved - in every release of FreeBSD, so more recent versions of FreeBSD are - assumed to have better and more efficient drivers than earlier - versions.</para> - </sect3> - - <sect3> - <title>Terminology</title> - - <para>A quick rundown of terminology:</para> - - <variablelist> - <varlistentry> - <term>bps</term> - - <listitem> - <para>Bits per Second — the rate at which data is - transmitted</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>DTE</term> - - <listitem> - <para>Data Terminal Equipment — for example, your - computer</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>DCE</term> - - <listitem> - <para>Data Communications Equipment — your modem</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>RS-232</term> - - <listitem> - <para>EIA standard for serial communications via hardware</para> - </listitem> - </varlistentry> - </variablelist> - - <para>If you need more information about these terms and data - communications in general, the author remembers reading that - <emphasis>The RS-232 Bible</emphasis> (anybody have an ISBN?) is a - good reference.</para> - - <para>When talking about communications data rates, the author does - not use the term <quote>baud</quote>. Baud refers to the number of - electrical state transitions that may be made in a period of time, - while <quote>bps</quote> (bits per second) is the - <quote>correct</quote> term to use (at least it does not seem to - bother the curmudgeons quite a much).</para> - </sect3> - - <sect3> - <title>External v.s. Internal Modems</title> - - <para>External modems seem to be more convenient for dial-up, because - external modems often can be semi-permanently configured via - parameters stored in non-volatile RAM and they usually provide - lighted indicators that display the state of important RS-232 - signals. Blinking lights impress visitors, but lights are also very - useful to see whether a modem is operating properly.</para> - - <para>Internal modems usually lack non-volatile RAM, so their - configuration may be limited only to setting DIP switches. If your - internal modem has any signal indicator lights, it is probably - difficult to view the lights when the system's cover is in - place.</para> - </sect3> - - <sect3> - <title>Modems and Cables</title> - - <para>A background knowledge of these items is assumed</para> - - <itemizedlist> - <listitem> - <para>You know how to connect your modem to your computer so that - the two can communicate (unless you have an internal modem, - which does not need such a cable)</para> - </listitem> - - <listitem> - <para>You are familiar with your modem's command set, or know - where to look up needed commands</para> - </listitem> - - <listitem> - <para>You know how to configure your modem (probably via a - terminal communications program) so you can set the non-volatile - RAM parameters</para> - </listitem> - </itemizedlist> - - <para>The first, connecting your modem, is usually simple — most - straight-through serial cables work without any problems. You need - to have a cable with appropriate connectors (DB-25 or DB-9, male or - female) on each end, and the cable must be a DCE-to-DTE cable with - these signals wired:</para> - - <itemizedlist> - <listitem> - <para>Transmitted Data (<acronym>SD</acronym>)</para> - </listitem> - - <listitem> - <para>Received Data (<acronym>RD</acronym>)</para> - </listitem> - - <listitem> - <para>Request to Send (<acronym>RTS</acronym>)</para> - </listitem> - - <listitem> - <para>Clear to Send (<acronym>CTS</acronym>)</para> - </listitem> - - <listitem> - <para>Data Set Ready (<acronym>DSR</acronym>)</para> - </listitem> - - <listitem> - <para>Data Terminal Ready (<acronym>DTR</acronym>)</para> - </listitem> - - <listitem> - <para>Carrier Detect (<acronym>CD</acronym>)</para> - </listitem> - - <listitem> - <para>Signal Ground (<acronym>SG</acronym>)</para> - </listitem> - </itemizedlist> - - <para>FreeBSD needs the <acronym>RTS</acronym> and - <acronym>CTS</acronym> signals for flow-control at speeds above - 2400bps, the <acronym>CD</acronym> signal to detect when a call has - been answered or the line has been hung up, and the - <acronym>DTR</acronym> signal to reset the modem after a session is - complete. Some cables are wired without all of the needed signals, - so if you have problems, such as a login session not going away when - the line hangs up, you may have a problem with your cable.</para> - - <para>The second prerequisite depends on the modem(s) you use. If you - do not know your modem's command set by heart, you will need to have - the modem's reference book or user's guide handy. Sample commands - for USR Sportster 14,400 external modems will be given, which you - may be able to use as a reference for your own modem's - commands.</para> - - <para>Lastly, you will need to know how to setup your modem so that it - will work well with FreeBSD. Like other UNIX-like operating - systems, FreeBSD uses the hardware signals to find out when a call - has been answered or a line has been hung up and to hangup and reset - the modem after a call. FreeBSD avoids sending commands to the - modem or watching for status reports from the modem. If you are - familiar with connecting modems to PC-based bulletin board systems, - this may seem awkward.</para> - </sect3> - - <sect3> - <title>Serial Interface Considerations</title> - - <para>FreeBSD supports NS8250-, NS16450-, NS16550-, and NS16550A-based - EIA RS-232C (CCITT V.24) communications interfaces. The 8250 and - 16450 devices have single-character buffers. The 16550 device - provides a 16-character buffer, which allows for better system - performance. (Bugs in plain 16550's prevent the use of the - 16-character buffer, so use 16550A's if possible). Because - single-character-buffer devices require more work by the operating - system than the 16-character-buffer devices, 16550A-based serial - interface cards are much preferred. If the system has many active - serial ports or will have a heavy load, 16550A-based cards are - better for low-error-rate communications.</para> - </sect3> - </sect2> - - <sect2> - <title>Quick Overview</title> - - <para>Here is the process that FreeBSD follows to accept dial-up logins. - A <command>getty</command> process, spawned by - <command>init</command>, patiently waits to open the assigned serial - port (<filename>/dev/ttyd0</filename>, for our example). The command - <command>ps ax</command> might show this:</para> - - <screen> 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0</screen> - - <para>When a user dials the modem's line and the modems connect, the - <acronym>CD</acronym> line is asserted by the modem. The kernel - notices that carrier has been detected and completes - <command>getty</command>'s open of the port. <command>getty</command> - sends a <prompt>login:</prompt> prompt at the specified initial line - speed. <command>getty</command> watches to see if legitimate - characters are received, and, in a typical configuration, if it finds - junk (probably due to the modem's connection speed being different - than <command>getty</command>'s speed), <command>getty</command> tries - adjusting the line speeds until it receives reasonable - characters.</para> - - <para>We hope <command>getty</command> finds the correct speed and the - user sees a <prompt>login:</prompt> prompt. After the user enters - his/her login name, <command>getty</command> executes - <filename>/usr/bin/login</filename>, which completes the login by - asking for the user's password and then starting the user's - shell.</para> - - <para>Let's dive into the configuration...</para> - </sect2> - - <sect2> - <title>Kernel Configuration</title> - - <para>FreeBSD kernels typically come prepared to search for four serial - ports, known in the PC-DOS world as <devicename>COM1:</devicename>, - <devicename>COM2:</devicename>, <devicename>COM3:</devicename>, and - <devicename>COM4:</devicename>. FreeBSD can presently also handle - <quote>dumb</quote> multiport serial interface cards, such as the Boca - Board 1008 and 2016 (please see the manual page &man.sio.4; for kernel - configuration information if you have a multiport serial card). The - default kernel only looks for the standard COM ports, though.</para> - - <para>To see if your kernel recognizes any of your serial ports, watch - for messages while the kernel is booting, or use the - <command>/sbin/dmesg</command> command to replay the kernel's boot - messages. In particular, look for messages that start with the - characters <literal>sio</literal>. Hint: to view just the messages - that have the word <literal>sio</literal>, use the command:</para> - - <screen>&prompt.root; <userinput>/sbin/dmesg | grep 'sio'</userinput></screen> - - <para>For example, on a system with four serial ports, these are the - serial-port specific kernel boot messages:</para> - - <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> - - <para>If your kernel does not recognize all of your serial ports, you - will probably need to configure a custom FreeBSD kernel for your - system.</para> - - <para>Please see the BSD System Manager's Manual chapter on - <quote>Building Berkeley Kernels with Config</quote> [the source for - which is in <filename>/usr/src/share/doc/smm</filename>] and - <quote>FreeBSD Configuration Options</quote> [in - <filename>/sys/conf/options</filename> and in - <filename>/sys/<replaceable>arch</replaceable>/conf/options.<replaceable>arch</replaceable></filename>, - with <emphasis>arch</emphasis> for example being - <filename>i386</filename>] for more information on configuring and - building kernels. You may have to unpack the kernel source - distribution if have not installed the system sources already - (<filename>srcdist/srcsys.??</filename> in FreeBSD 1.1, - <filename>srcdist/sys.??</filename> in FreeBSD 1.1.5.1, or the entire - source distribution in FreeBSD 2.0) to be able to configure and build - kernels.</para> - - <para>Create a kernel configuration file for your system (if you have - not already) by <command>cd</command>ing to - <filename>/sys/i386/conf</filename>. Then, if you are creating a new - custom configuration file, copy the file - <filename>GENERICAH</filename> (or <filename>GENERICBT</filename>, if - you have a BusTek SCSI controller on FreeBSD 1.x) to - <filename>YOURSYS</filename>, where <filename>YOURSYS</filename> is - the name of your system, but in upper-case letters. Edit the file, - and change the device lines:</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>You can comment-out or completely remove lines for devices you do - not have. If you have a multiport serial board, such as the Boca - Board BB2016, please see the &man.sio.4; man page for complete - information on how to write configuration lines for multiport boards. - Be careful if you are using a configuration file that was previously - used for a different version of FreeBSD because the device flags have - changed between versions.</para> - - <note> - <para><literal>port "IO_COM1"</literal> is a substitution for - <literal>port 0x3f8</literal>, <literal>IO_COM2</literal> is - <literal>0x2f8</literal>, <literal>IO_COM3</literal> is - <literal>0x3e8</literal>, and <literal>IO_COM4</literal> is - <literal>0x2e8</literal>, which are fairly common port addresses for - their respective serial ports; interrupts 4, 3, 5, and 9 are fairly - common interrupt request lines. Also note that regular serial ports - <emphasis>cannot</emphasis> share interrupts on ISA-bus PCs - (multiport boards have on-board electronics that allow all the - 16550A's on the board to share one or two interrupt request - lines).</para> - </note> - - <para>When you are finished adjusting the kernel configuration file, use - the program <command>config</command> as documented in <quote>Building - Berkeley Kernels with Config</quote> and the - &man.config.8; manual page to prepare a kernel building directory, - then build, install, and test the new kernel.</para> - </sect2> - - <sect2> - <title>Device Special Files</title> - - <para>Most devices in the kernel are accessed through <quote>device - special files</quote>, which are located in the - <filename>/dev</filename> directory. The <devicename>sio</devicename> - devices are accessed through the - <filename>/dev/ttyd<replaceable>?</replaceable></filename> (dial-in) - and <filename>/dev/cua0<replaceable>?</replaceable></filename> - (call-out) devices. On FreeBSD version 1.1.5 and higher, there are - also initialization devices - (<filename>/dev/ttyid<replaceable>?</replaceable></filename> and - <filename>/dev/cuai0<replaceable>?</replaceable></filename>) and - locking devices - (<filename>/dev/ttyld<replaceable>?</replaceable></filename> and - <filename>/dev/cual0<replaceable>?</replaceable></filename>). The - initialization devices are used to initialize communications port - parameters each time a port is opened, such as - <literal>crtscts</literal> for modems which use - <literal>CTS/RTS</literal> signaling for flow control. The locking - devices are used to lock flags on ports to prevent users or programs - changing certain parameters; see the manual pages &man.termios.4;, - &man.sio.4;, and &man.stty.1; for - information on the terminal settings, locking & initializing - devices, and setting terminal options, respectively.</para> - - <sect3> - <title>Making Device Special Files</title> - - <para>A shell script called <command>MAKEDEV</command> in the - <filename>/dev</filename> directory manages the device special - files. (The manual page for &man.MAKEDEV.8; on FreeBSD 1.1.5 is - fairly bogus in its discussion of <acronym>COM</acronym> ports, so - ignore it.) To use <command>MAKEDEV</command> to make dial-up device - special files for <devicename>COM1:</devicename> (port 0), - <command>cd</command> to <filename>/dev</filename> and issue the - command <command>MAKEDEV ttyd0</command>. Likewise, to make dial-up - device special files for <devicename>COM2:</devicename> (port 1), - use <command>MAKEDEV ttyd1</command>.</para> - - <para><command>MAKEDEV</command> not only creates the - <filename>/dev/ttyd<replaceable>?</replaceable></filename> device - special files, but also creates the - <filename>/dev/cua0<replaceable>?</replaceable></filename> (and all - of the initializing and locking special files under FreeBSD 1.1.5 - and up) and removes the hardwired terminal special file - <filename>/dev/tty0<replaceable>?</replaceable></filename>, if it - exists.</para> - - <para>After making new device special files, be sure to check the - permissions on the files (especially the - <filename>/dev/cua*</filename> files) to make sure that only users - who should have access to those device special files can read & - write on them — you probably do not want to allow your average - user to use your modems to dial-out. The default permissions on the - <filename>/dev/cua*</filename> files should be sufficient:</para> - - <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> - - <para>These permissions allow the user <username>uucp</username> and - users in the group <username>dialer</username> to use the call-out - devices.</para> - </sect3> - </sect2> - - <sect2> - <title>Configuration Files</title> - - <para>There are three system configuration files in the - <filename>/etc</filename> directory that you will probably need to - edit to allow dial-up access to your FreeBSD system. The first, - <filename>/etc/gettytab</filename>, contains configuration information - for the <filename>/usr/libexec/getty</filename> daemon. Second, - <filename>/etc/ttys</filename> holds information that tells - <filename>/sbin/init</filename> what <filename>tty</filename> devices - should have <command>getty</command> processes running on them. - Lastly, you can place port initialization commands in the - <filename>/etc/rc.serial</filename> script if you have FreeBSD 1.1.5.1 - or higher; otherwise, you can initialize ports in the - <filename>/etc/rc.local</filename> script.</para> - - <para>There are two schools of thought regarding dial-up modems on UNIX. - One group likes to configure their modems and system so that no matter - at what speed a remote user dials in, the local computer-to-modem - RS-232 interface runs at a locked speed. The benefit of this - configuration is that the remote user always sees a system login - prompt immediately. The downside is that the system does not know - what a user's true data rate is, so full-screen programs like Emacs - will not adjust their screen-painting methods to make their response - better for slower connections.</para> - - <para>The other school configures their modems' RS-232 interface to vary - its speed based on the remote user's connection speed. For example, - V.32bis (14.4 Kbps) connections to the modem might make the modem run - its RS-232 interface at 19.2 Kbps, while 2400 bps connections make the - modem's RS-232 interface run at 2400 bps. Because - <command>getty</command> does not understand any particular modem's - connection speed reporting, <command>getty</command> gives a - <prompt>login:</prompt> message at an initial speed and watches the - characters that come back in response. If the user sees junk, it is - assumed that they know they should press the - <literal><Enter></literal> key until they see a recognizable - prompt. If the data rates do not match, <command>getty</command> sees - anything the user types as <quote>junk</quote>, tries going to the next - speed and gives the <prompt>login:</prompt> prompt again. This - procedure can continue ad nauseum, but normally only takes a keystroke - or two before the user sees a good prompt. Obviously, this login - sequence does not look as clean as the former - <quote>locked-speed</quote> method, but a user on a low-speed - connection should receive better interactive response from full-screen - programs.</para> - - <para>The author will try to give balanced configuration information, - but is biased towards having the modem's data rate follow the - connection rate.</para> - - <sect3> - <title><filename>/etc/gettytab</filename></title> - - <para><filename>/etc/gettytab</filename> is a &man.termcap.5;-style - file of configuration information for &man.getty.8;. Please see the - &man.gettytab.5; manual page for complete information on the - format of the file and the list of capabilities.</para> - - <sect4> - <title>Locked-Speed Config</title> - - <para>If you are locking your modem's data communications rate at a - particular speed, you probably will not need to make any changes - to <filename>/etc/gettytab</filename>.</para> - </sect4> - - <sect4> - <title>Matching-Speed Config</title> - - <para>You will need to setup an entry in - <filename>/etc/gettytab</filename> to give - <command>getty</command> information about the speeds you wish to - use for your modem. If you have a 2400 bps modem, you can - probably use the existing <literal>D2400</literal> entry. This - entry already exists in the FreeBSD 1.1.5.1 - <filename>gettytab</filename> file, so you do not need to add it - unless it is missing under your version of FreeBSD:</para> - - <programlisting> -# -# Fast dialup terminals, 2400/1200/300 rotary (can start either way) -# -D2400|d2400|Fast-Dial-2400:\ - :nx=D1200:tc=2400-baud: -3|D1200|Fast-Dial-1200:\ - :nx=D300:tc=1200-baud: -5|D300|Fast-Dial-300:\ - :nx=D2400:tc=300-baud:</programlisting> - - <para>If you have a higher speed modem, you will probably need to - add an entry in <filename>/etc/gettytab</filename>; here is an - entry you could use for a 14.4 Kbps modem with a top interface - speed of 19.2 Kbps:</para> - - <programlisting> -# -# Additions for a V.32bis Modem -# -um|V300|High Speed Modem at 300,8-bit:\ - :nx=V19200:tc=std.300: -un|V1200|High Speed Modem at 1200,8-bit:\ - :nx=V300:tc=std.1200: -uo|V2400|High Speed Modem at 2400,8-bit:\ - :nx=V1200:tc=std.2400: -up|V9600|High Speed Modem at 9600,8-bit:\ - :nx=V2400:tc=std.9600: -uq|V19200|High Speed Modem at 19200,8-bit:\ - :nx=V9600:tc=std.19200:</programlisting> - - <para>On FreeBSD 1.1.5 and later, this will result in 8-bit, no - parity connections. Under FreeBSD 1.1, add - <literal>:np:</literal> parameters to the - <literal>std.<replaceable>xxx</replaceable></literal> entries at - the top of the file for 8 bits, no parity; otherwise, the default - is 7 bits, even parity.</para> - - <para>The example above starts the communications rate at 19.2 Kbps - (for a V.32bis connection), then cycles through 9600 bps (for - V.32), 2400 bps, 1200 bps, 300 bps, and back to 19.2 Kbps. - Communications rate cycling is implemented with the - <literal>nx=</literal> (<quote>next table</quote>) capability. - Each of the lines uses a <literal>tc=</literal> (<quote>table - continuation</quote>) entry to pick up the rest of the - <quote>standard</quote> settings for a particular data rate.</para> - - <para>If you have a 28.8 Kbps modem and/or you want to take - advantage of compression on a 14.4 Kbps modem, you need to use a - higher communications rate than 19.2 Kbps. Here is an example of - a <filename>gettytab</filename> entry starting a 57.6 Kbps:</para> - - <programlisting> -# -# Additions for a V.32bis or V.34 Modem -# Starting at 57.6 Kbps -# -vm|VH300|Very High Speed Modem at 300,8-bit:\ - :nx=VH57600:tc=std.300: -vn|VH1200|Very High Speed Modem at 1200,8-bit:\ - :nx=VH300:tc=std.1200: -vo|VH2400|Very High Speed Modem at 2400,8-bit:\ - :nx=VH1200:tc=std.2400: -vp|VH9600|Very High Speed Modem at 9600,8-bit:\ - :nx=VH2400:tc=std.9600: -vq|VH57600|Very High Speed Modem at 57600,8-bit:\ - :nx=VH9600:tc=std.57600:</programlisting> - - <para>If you have a slow CPU or a heavily loaded system and you do - not have 16550A-based serial ports, you may receive sio - <quote>silo</quote> errors at 57.6 Kbps.</para> - </sect4> - </sect3> - - <sect3 id="dialup-ttys"> - <title><filename>/etc/ttys</filename></title> - - <para><filename>/etc/ttys</filename> is the list of - <filename>ttys</filename> for <command>init</command> to monitor. - <filename>/etc/ttys</filename> also provides security information to - <command>login</command> (user <username>root</username> may only - login on ttys marked <literal>secure</literal>). See the manual - page for - &man.ttys.5; for more information.</para> - - <para>You will need to either modify existing lines in - <filename>/etc/ttys</filename> or add new lines to make - <command>init</command> run <command>getty</command> processes - automatically on your new dial-up ports. The general format of the - line will be the same, whether you are using a locked-speed or - matching-speed configuration:</para> - - <programlisting> -ttyd0 "/usr/libexec/getty xxx" dialup on</programlisting> - - <para>The first item in the above line is the device special file for - this entry — <literal>ttyd0</literal> means - <filename>/dev/ttyd0</filename> is the file that this - <command>getty</command> will be watching. The second item, - <literal>"/usr/libexec/getty - <replaceable>xxx</replaceable>"</literal> - (<replaceable>xxx</replaceable> will be replaced by the initial - <filename>gettytab</filename> capability) is the process - <command>init</command> will run on the device. The third item, - <literal>dialup</literal>, is the default terminal type. The fourth - parameter, <literal>on</literal>, indicates to - <command>init</command> that the line is operational. There can be - a fifth parameter, <literal>secure</literal>, but it should only be - used for terminals which are physically secure (such as the system - console).</para> - - <para>The default terminal type (<literal>dialup</literal> in the - example above) may depend on local preferences. - <literal>dialup</literal> is the traditional default terminal type - on dial-up lines so that users may customize their login scripts to - notice when the terminal is <literal>dialup</literal> and - automatically adjust their terminal type. However, the author finds - it easier at his site to specify <literal>vt102</literal> as the - default terminal type, since the users just use VT102 emulation on - their remote systems.</para> - - <para>After you have made changes to <filename>/etc/ttys</filename>, - you may send the <command>init</command> process a - <acronym>HUP</acronym> signal to re-read the file. You can use the - command <screen>&prompt.root; <userinput>kill -1 - 1</userinput></screen> to send the signal. If this is your - first time setting up the system, though, you may want to wait until - your modem(s) are properly configured and connected before signaling - <command>init</command>.</para> - - <sect4> - <title>Locked-Speed Config</title> - - <para>For a locked-speed configuration, your - <filename>ttys</filename> entry needs to have a fixed-speed entry - provided to <command>getty</command>. For a modem whose port - speed is locked at 19.2 Kbps, the <filename>ttys</filename> entry - might look like this:</para> - - <programlisting> -ttyd0 "/usr/libexec/getty std.19200" dialup on</programlisting> - - <para>If your modem is locked at a different data rate, substitute - the appropriate name for the - <literal>std.<replaceable>speed</replaceable></literal> entry for - <literal>std.19200</literal> from - <filename>/etc/gettytab</filename> for your modem's data - rate.</para> - </sect4> - - <sect4> - <title>Matching-Speed Config</title> - - <para>In a matching-speed configuration, your - <filename>ttys</filename> entry needs to reference the appropriate - beginning <quote>auto-baud</quote> (sic) entry in - <filename>/etc/gettytab</filename>. For example, if you added the - above suggested entry for a matching-speed modem that starts at - 19.2 Kbps (the <filename>gettytab</filename> entry containing the - <literal>V19200</literal> starting point), your - <filename>ttys</filename> entry might look like this:</para> - - <programlisting> -ttyd0 "/usr/libexec/getty V19200" dialup on</programlisting> - </sect4> - </sect3> - - <sect3> - <title><filename>/etc/rc.serial</filename> or - <filename>/etc/rc.local</filename></title> - - <para>High-speed modems, like V.32, V.32bis, and V.34 modems, need to - use hardware (<filename>RTS/CTS</filename>) flow control. You can - add <command>stty</command> commands to - <filename>/etc/rc.serial</filename> on FreeBSD 1.1.5.1 and up, or - <filename>/etc/rc.local</filename> on FreeBSD 1.1, to set the - hardware flow control flag in the FreeBSD kernel for the modem - ports.</para> - - <para>For example, on a sample FreeBSD 1.1.5.1 system, - <filename>/etc/rc.serial</filename> reads:</para> - - <programlisting> -#!/bin/sh -# -# Serial port initial configuration - -stty -f /dev/ttyid1 crtscts -stty -f /dev/cuai01 crtscts</programlisting> - - <para>This sets the <literal>termios</literal> flag - <literal>crtscts</literal> on serial port #1's - (<devicename>COM2:</devicename>) dial-in and dial-out initialization - devices.</para> - - <para>On an old FreeBSD 1.1 system, these entries were added to - <filename>/etc/rc.local</filename> to set the - <literal>crtscts</literal> flag on the devices:</para> - - <programlisting> -# Set serial ports to use RTS/CTS flow control -stty -f /dev/ttyd0 crtscts -stty -f /dev/ttyd1 crtscts -stty -f /dev/ttyd2 crtscts -stty -f /dev/ttyd3 crtscts</programlisting> - - <para>Since there is no initialization device special file on FreeBSD - 1.1, one has to just set the flags on the sole device special file - and hope the flags are not cleared by a miscreant.</para> - </sect3> - </sect2> - - <sect2> - <title>Modem Settings</title> - - <para>If you have a modem whose parameters may be permanently set in - non-volatile RAM, you will need to use a terminal program (such as - Telix under PC-DOS or <command>tip</command> under FreeBSD) to set the - parameters. Connect to the modem using the same communications speed - as the initial speed <command>getty</command> will use and configure - the modem's non-volatile RAM to match these requirements:</para> - - <itemizedlist> - <listitem> - <para><acronym>CD</acronym> asserted when connected</para> - </listitem> - - <listitem> - <para><acronym>DTR</acronym> asserted for operation; dropping DTR - hangs up line & resets modem</para> - </listitem> - - <listitem> - <para><acronym>CTS</acronym> transmitted data flow control</para> - </listitem> - - <listitem> - <para>Disable <acronym>XON/XOFF</acronym> flow control</para> - </listitem> - - <listitem> - <para><acronym>RTS</acronym> received data flow control</para> - </listitem> - - <listitem> - <para>Quiet mode (no result codes)</para> - </listitem> - - <listitem> - <para>No command echo</para> - </listitem> - </itemizedlist> - - <para>Please read the documentation for your modem to find out what - commands and/or DIP switch settings you need to give it.</para> - - <para>For example, to set the above parameters on a USRobotics - Sportster 14,400 external modem, one could give these commands to - the modem:</para> - - <programlisting> -ATZ -AT&C1&D2&H1&I0&R2&W</programlisting> - - <para>You might also want to take this opportunity to adjust other - settings in the modem, such as whether it will use V.42bis and/or MNP5 - compression.</para> - - <para>The USR Sportster 14,400 external modem also has some DIP switches - that need to be set; for other modems, perhaps you can use these - settings as an example:</para> - - <itemizedlist> - <listitem> - <para>Switch 1: UP — DTR Normal</para> - </listitem> - - <listitem> - <para>Switch 2: Do not care (Verbal Result Codes/Numeric Result - Codes)</para> - </listitem> - - <listitem> - <para>Switch 3: UP — Suppress Result Codes</para> - </listitem> - - <listitem> - <para>Switch 4: DOWN — No echo, offline commands</para> - </listitem> - - <listitem> - <para>Switch 5: UP — Auto Answer</para> - </listitem> - - <listitem> - <para>Switch 6: UP — Carrier Detect Normal</para> - </listitem> - - <listitem> - <para>Switch 7: UP — Load NVRAM Defaults</para> - </listitem> - - <listitem> - <para>Switch 8: Do not care (Smart Mode/Dumb Mode)</para> - </listitem> - </itemizedlist> - - <para>Result codes should be disabled/suppressed for dial-up modems to - avoid problems that can occur if <command>getty</command> mistakenly - gives a <prompt>login:</prompt> prompt to a modem that is in command - mode and the modem echoes the command or returns a result code. I - have heard this sequence can result in a extended, silly conversation - between <command>getty</command> and the modem.</para> - - <sect3> - <title>Locked-speed Config</title> - - <para>For a locked-speed configuration, you will need to configure the - modem to maintain a constant modem-to-computer data rate independent - of the communications rate. On a USR Sportster 14,400 external - modem, these commands will lock the modem-to-computer data rate at - the speed used to issue the commands:</para> - - <programlisting> -ATZ -AT&B1&W</programlisting> - </sect3> - - <sect3> - <title>Matching-speed Config</title> - - <para>For a variable-speed configuration, you will need to configure - your modem to adjust its serial port data rate to match the incoming - call rate. On a USR Sportster 14,400 external modem, these commands - will lock the modem's error-corrected data rate to the speed used to - issue the commands, but allow the serial port rate to vary for - non-error-corrected connections:</para> - - <programlisting> -ATZ -AT&B2&W</programlisting> - </sect3> - - <sect3> - <title>Checking the Modem's Configuration</title> - - <para>Most high-speed modems provide commands to view the modem's - current operating parameters in a somewhat human-readable fashion. - On the USR Sportster 14,400 external modems, the command - <command>ATI5</command> displays the settings that are stored in the - non-volatile RAM. To see the true operating parameters of the modem - (as influenced by the USR's DIP switch settings), use the commands - <command>ATZ</command> and then <command>ATI4</command>.</para> - - <para>If you have a different brand of modem, check your modem's - manual to see how to double-check your modem's configuration - parameters.</para> - </sect3> - </sect2> - - <sect2> - <title>Troubleshooting</title> - - <para>Here are a few steps you can follow to check out the dial-up modem - on your system.</para> - - <sect3> - <title>Checking out the FreeBSD system</title> - - <para>Hook up your modem to your FreeBSD system, boot the system, and, - if your modem has status indication lights, watch to see whether the - modem's <acronym>DTR</acronym> indicator lights when the - <prompt>login:</prompt> prompt appears on the system's console - — if it lights up, that should mean that FreeBSD has started a - <command>getty</command> process on the appropriate communications - port and is waiting for the modem to accept a call.</para> - - <para>If the <acronym>DTR</acronym> indicator doesn't light, login to - the FreeBSD system through the console and issue a <command>ps - ax</command> to see if FreeBSD is trying to run a - <command>getty</command> process on the correct port. You should see - a lines like this among the processes displayed:</para> - - <screen> 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0 - 115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1</screen> - - <para>If you see something different, like this:</para> - - <screen> 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0</screen> - - <para>and the modem has not accepted a call yet, this means that - <command>getty</command> has completed its open on the - communications port. This could indicate a problem with the cabling - or a mis-configured modem, because <command>getty</command> should - not be able to open the communications port until - <acronym>CD</acronym> (carrier detect) has been asserted by the - modem.</para> - - <para>If you do not see any <command>getty</command> processes waiting - to open the desired - <filename>ttyd<replaceable>?</replaceable></filename> port, - double-check your entries in <filename>/etc/ttys</filename> to see - if there are any mistakes there. Also, check the log file - <filename>/var/log/messages</filename> to see if there are any log - messages from <command>init</command> or <command>getty</command> - regarding any problems. If there are any messages, triple-check the - configuration files <filename>/etc/ttys</filename> and - <filename>/etc/gettytab</filename>, as well as the appropriate - device special files <filename>/dev/ttyd?</filename>, for any - mistakes, missing entries, or missing device special files.</para> - </sect3> - - <sect3> - <title>Try Dialing In</title> - - <para>Try dialing into the system; be sure to use 8 bits, no parity, 1 - stop bit on the remote system. If you do not get a prompt right - away, or get garbage, try pressing <literal><Enter></literal> - about once per second. If you still do not see a - <prompt>login:</prompt> prompt after a while, try sending a - <command>BREAK</command>. If you are using a high-speed modem to do - the dialing, try dialing again after locking the dialing modem's - interface speed (via <command>AT&B1</command> on a USR - Sportster, for example).</para> - - <para>If you still cannot get a <prompt>login:</prompt> prompt, check - <filename>/etc/gettytab</filename> again and double-check - that</para> - - <itemizedlist> - <listitem> - <para>The initial capability name specified in - <filename>/etc/ttys</filename> for the line matches a name of a - capability in <filename>/etc/gettytab</filename></para> - </listitem> - - <listitem> - <para>Each <literal>nx=</literal> entry matches another - <filename>gettytab</filename> capability name</para> - </listitem> - - <listitem> - <para>Each <literal>tc=</literal> entry matches another - <filename>gettytab</filename> capability name</para> - </listitem> - </itemizedlist> - - <para>If you dial but the modem on the FreeBSD system will not answer, - make sure that the modem is configured to answer the phone when - <acronym>DTR</acronym> is asserted. If the modem seems to be - configured correctly, verify that the <acronym>DTR</acronym> line is - asserted by checking the modem's indicator lights (if it has - any).</para> - - <para>If you have gone over everything several times and it still does - not work, take a break and come back to it later. If it still does - not work, perhaps you can send an electronic mail message to the - &a.questions;describing your modem and your problem, and the good - folks on the list will try to help.</para> - </sect3> - </sect2> - - <sect2> - <title>Acknowledgments</title> - - <para>Thanks to these people for comments and advice:</para> - - <variablelist> - <varlistentry> - <term>&a.kelly;</term> - - <listitem> - <para>for a number of good suggestions</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - </sect1> - - <sect1 id="dialout"> - <title>Dial-out Service</title> - - <para><emphasis>Information integrated from FAQ.</emphasis></para> - - <para>The following are tips to getting your host to be able to connect - over the modem to another computer. This is appropriate for - establishing a terminal session with a remote host.</para> - - <para>This is useful to log onto a BBS.</para> - - <para>This kind of connection can be extremely helpful to get a file on - the Internet if you have problems with PPP. If you need to FTP - something and PPP is broken, use the terminal session to FTP it. Then - use zmodem to transfer it to your machine.</para> - - <sect2> - <title>Why cannot I run <command>tip</command> or - <command>cu</command>?</title> - - <para>On your system, the programs <command>tip</command> and - <command>cu</command> are probably executable only by - <username>uucp</username> and group <username>dialer</username>. You - can use the group <username>dialer</username> to control who has - access to your modem or remote systems. Just add yourself to group - dialer.</para> - - <para>Alternatively, you can let everyone on your system run - <command>tip</command> and <command>cu</command> by typing:</para> - - <screen>&prompt.root; <userinput>chmod 4511 /usr/bin/tip</userinput></screen> - - <para>You do not have to run this command for <command>cu</command>, - since <command>cu</command> is just a hard link to - <command>tip</command>.</para> - </sect2> - - <sect2> - <title>My stock Hayes modem is not supported, what can I do?</title> - - <para>Actually, the man page for <command>tip</command> is out of date. - There is a generic Hayes dialer already built in. Just use - <literal>at=hayes</literal> in your <filename>/etc/remote</filename> - file.</para> - - <para>The Hayes driver is not smart enough to recognize some of the - advanced features of newer modems—messages like - <literal>BUSY</literal>, <literal>NO DIALTONE</literal>, or - <literal>CONNECT 115200</literal> will just confuse it. You should - turn those messages off when you use <command>tip</command> (using - <command>ATX0&W</command>).</para> - - <para>Also, the dial timeout for <command>tip</command> is 60 seconds. - Your modem should use something less, or else tip will think there is - a communication problem. Try <command>ATS7=45&W</command>.</para> - - <para>Actually, as shipped <command>tip</command> does not yet support - it fully. The solution is to edit the file - <filename>tipconf.h</filename> in the directory - <filename>/usr/src/usr.bin/tip/tip</filename> Obviously you need the - source distribution to do this.</para> - - <para>Edit the line <literal>#define HAYES 0</literal> to - <literal>#define HAYES 1</literal>. Then <command>make</command> and - <command>make install</command>. Everything works nicely after - that.</para> - </sect2> - - <sect2 id="direct-at"> - <title>How am I expected to enter these AT commands?</title> - - <para>Make what is called a <quote>direct</quote> entry in your - <filename>/etc/remote</filename> file. For example, if your modem is - hooked up to the first serial port, <filename>/dev/cuaa0</filename>, - then put in the following line:</para> - - <programlisting> -cuaa0:dv=/dev/cuaa0:br#19200:pa=none</programlisting> - - <para>Use the highest bps rate your modem supports in the br capability. - Then, type <command>tip cuaa0</command> and you will be connected to - your modem.</para> - - <para>If there is no <filename>/dev/cuaa0</filename> on your system, do - this:</para> - - <screen>&prompt.root; <userinput>cd /dev</userinput> -&prompt.root; <userinput>MAKEDEV cuaa0</userinput></screen> - - <para>Or use cu as root with the following command:</para> - - <screen>&prompt.root; <userinput>cu -l<replaceable>line</replaceable> -s<replaceable>speed</replaceable></userinput></screen> - - <para><replaceable>line</replaceable> is the serial port - (e.g.<filename>/dev/cuaa0</filename>) and - <replaceable>speed</replaceable> is the speed - (e.g.<literal>57600</literal>). When you are done entering the AT - commands hit <command>~.</command> to exit.</para> - </sect2> - - <sect2> - <title>The <literal>@</literal> sign for the pn capability does not - work!</title> - - <para>The <literal>@</literal> sign in the phone number capability tells - tip to look in <filename>/etc/phones</filename> for a phone number. - But the <literal>@</literal> sign is also a special character in - capability files like <filename>/etc/remote</filename>. Escape it - with a backslash:</para> - - <programlisting> -pn=\@</programlisting> - </sect2> - - <sect2> - <title>How can I dial a phone number on the command line?</title> - - <para>Put what is called a <quote>generic</quote> entry in your - <filename>/etc/remote</filename> file. For example:</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>Then you can things like:</para> - - <screen>&prompt.root; <userinput>tip -115200 5551234</userinput></screen> - - <para>If you prefer <command>cu</command> over <command>tip</command>, - use a generic cu entry:</para> - - <programlisting> -cu115200|Use cu to dial any number at 115200bps:\ - :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:</programlisting> - - <para>and type:</para> - - <screen>&prompt.root; <userinput>cu 5551234 -s 115200</userinput></screen> - </sect2> - - <sect2> - <title>Do I have to type in the bps rate every time I do that?</title> - - <para>Put in an entry for <literal>tip1200</literal> or - <literal>cu1200</literal>, but go ahead and use whatever bps rate is - appropriate with the br capability. <command>tip</command> thinks a - good default is 1200 bps which is why it looks for a - <literal>tip1200</literal> entry. You do not have to use 1200 bps, - though.</para> - </sect2> - - <sect2> - <title>I access a number of hosts through a terminal server.</title> - - <para>Rather than waiting until you are connected and typing - <command>CONNECT <host></command> each time, use tip's - <literal>cm</literal> capability. For example, these entries in - <filename>/etc/remote</filename>:</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>will let you type <command>tip pain</command> or <command>tip - muffin</command> to connect to the hosts pain or muffin; and - <command>tip deep13</command> to get to the terminal server.</para> - </sect2> - - <sect2> - <title>Can tip try more than one line for each site?</title> - - <para>This is often a problem where a university has several modem lines - and several thousand students trying to use them...</para> - - <para>Make an entry for your university in - <filename>/etc/remote</filename> and use <literal>@</literal> for the - <literal>pn</literal> capability:</para> - - <programlisting> -big-university:\ - :pn=\@:tc=dialout -dialout:\ - :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:</programlisting> - - <para>Then, list the phone numbers for the university in - <filename>/etc/phones</filename>:</para> - - <programlisting> -big-university 5551111 -big-university 5551112 -big-university 5551113 -big-university 5551114</programlisting> - - <para><command>tip</command> will try each one in the listed order, then - give up. If you want to keep retrying, run <command>tip</command> in - a while loop.</para> - </sect2> - - <sect2> - <title>Why do I have to hit CTRL+P twice to send CTRL+P once?</title> - - <para>CTRL+P is the default <quote>force</quote> character, used to tell - <command>tip</command> that the next character is literal data. You - can set the force character to any other character with the - <command>~s</command> escape, which means <quote>set a - variable.</quote></para> - - <para>Type - <command>~sforce=<replaceable>single-char</replaceable></command> - followed by a newline. <replaceable>single-char</replaceable> is any - single character. If you leave out - <replaceable>single-char</replaceable>, then the force character is - the nul character, which you can get by typing CTRL+2 or CTRL+SPACE. - A pretty good value for <replaceable>single-char</replaceable> is - SHIFT+CTRL+6, which I have seen only used on some terminal - servers.</para> - - <para>You can have the force character be whatever you want by - specifying the following in your <filename>$HOME/.tiprc</filename> - file:</para> - - <programlisting> -force=<single-char></programlisting> - </sect2> - - <sect2> - <title>Suddenly everything I type is in UPPER CASE??</title> - - <para>You must have pressed CTRL+A, <command>tip</command>'s - <quote>raise character,</quote> specially designed for people with - broken caps-lock keys. Use <command>~s</command> as above and set the - variable <literal>raisechar</literal> to something reasonable. In - fact, you can set it to the same as the force character, if you never - expect to use either of these features.</para> - - <para>Here is a sample .tiprc file perfect for Emacs users who need to - type CTRL+2 and CTRL+A a lot:</para> - - <programlisting> -force=^^ -raisechar=^^</programlisting> - - <para>The ^^ is SHIFT+CTRL+6.</para> - </sect2> - - <sect2> - <title>How can I do file transfers with <command>tip</command>?</title> - - <para>If you are talking to another UNIX system, you can send and - receive files with <command>~p</command> (put) and - <command>~t</command> (take). These commands run - <command>cat</command> and <command>echo</command> on the remote - system to accept and send files. The syntax is:</para> - - <cmdsynopsis> - <command>~p</command> - <arg choice="plain">local-file</arg> - <arg choice="opt">remote-file</arg> - </cmdsynopsis> - - <cmdsynopsis> - <command>~t</command> - <arg choice="plain">remote-file</arg> - <arg choice="opt">local-file</arg> - </cmdsynopsis> - - <para>There is no error checking, so you probably should use another - protocol, like zmodem.</para> - </sect2> - - <sect2> - <title>How can I run zmodem with <command>tip</command>?</title> - - <para>To receive files, start the sending program on the remote end. - Then, type <command>~C rz</command> to begin receiving them - locally.</para> - - <para>To send files, start the receiving program on the remote end. - Then, type <command>~C sz <replaceable>files</replaceable></command> - to send them to the remote system.</para> - </sect2> - </sect1> - - <sect1 id="serialconsole-setup"> - <title>Setting Up the Serial Console</title> - - <para><emphasis>&a.yokota; and &a.wpaul;:</emphasis></para> - - <para><emphasis>The text is heavily based on - <filename>/sys/i386/boot/biosboot/README.serial</filename> written by - &a.wpaul;.</emphasis></para> - - <sect2 id="serialconsole-intro"> - <title>Introduction</title> - - <para>The FreeBSD/i386 operating system can boot on a system with only - a dumb terminal on a serial port as a console. Such a configuration - should be useful for two classes of people; system administrators who - wish to install FreeBSD on a dedicated file/compute/terminal server - machines that have no keyboard or monitor attached, and developers who - want to debug the kernel or device drivers.</para> - - <para>Starting from version 3.1, FreeBSD/i386 employs a three stage - bootstrap. The first two stages are in the boot block code which is - stored at the beginning of the FreeBSD slice on the boot disk. The - boot block will then load and run the boot loader - (<filename>/boot/loader</filename>) as the third stage code. (See - &man.boot.8; and &man.loader.8; for more details on the boot - process.)</para> - - <para>In order to set up the serial console you must configure the boot - block code, the boot loader code and the kernel.</para> - - <para>In FreeBSD version 3.0, the boot loader does not exist and there - are only two stages in the bootstrap; the boot blocks directly load - the kernel into memory. If you are using FreeBSD 3.0, then you should - disregard any reference to the boot loader in this section. You can - still use the serial port as a console.</para> - - <para>FreeBSD versions 2.X are quite different from 3.X, in that the - serial port driver, &man.sio.4;, must be configured in a different - way. This chapter will not describe the settings for version 2.X - systems. If you are using these older versions of FreeBSD, please - consult <filename>/sys/i386/boot/biosboot/README.serial</filename> - instead.</para> - </sect2> - - <sect2 id="serialconsole-howto"> - <title>6 Steps to Set up the Serial Console</title> - - <procedure> - <step> - <para>Prepare a serial cable.</para> - - <para>You will need either a null-modem cable or a standard serial - cable and a null-modem adapter. See <xref linkend="term"> for - a discussion on serial cables.</para> - </step> - - <step> - <para>Unplug your keyboard.</para> - - <para>Most PC systems probe for the keyboard during the Power-On - Self-Test (POST) and will generate an error if the keyboard is not - detected. Some machines complain loudly about the lack of a - keyboard and will not continue to boot until it is plugged - in.</para> - - <para>If your computer complains about the error, but boots anyway, - then you do not have to do anything special. (One machine with a - Phoenix BIOS that I have here merely says <errorname>Keyboard - failed</errorname> then continues to boot normally.)</para> - - <para>If your computer refuses to boot without a keyboard attached - then you will have to configure the BIOS so that it ignores this - error (if it can). Consult your motherboard's manual for details - on how to do this.</para> - - <tip> - <para>Setting the keyboard to <quote>Not installed</quote> in the - BIOS setup does <emphasis>not</emphasis> mean that you will not - be able to use your keyboard. All this does is tell the BIOS - not to probe for a keyboard at power-on so that it will not - complain if the keyboard is not plugged in. You can leave the - keyboard plugged in even with this flag set to <quote>Not - installed</quote> and the keyboard will still work.</para> - </tip> - - <note> - <para>If your system has a PS/2 mouse, chances are very good that - you may have to unplug your mouse as well as your keyboard. - This is because PS/2 mice share some hardware with the keyboard, - and leaving the mouse plugged in can fool the keyboard probe - into thinking the keyboard is still there. It is said that a - Gateway 2000 Pentium 90Mhz system with an AMI BIOS that behaves - this way. In general this is not a problem since the mouse is - not much good without the keyboard anyway.</para> - </note> - </step> - - <step> - <para>Plug a dumb terminal into <devicename>COM1:</devicename> - (<devicename>sio0</devicename>).</para> - - <para>If you do not have a dumb terminal, you can use an old PC/XT - with a modem program, or the serial port on another UNIX box. If - you do not have a <devicename>COM1:</devicename> - (<devicename>sio0</devicename>), get one. At this time, there is - no way to select a port other than <devicename>COM1:</devicename> - for the boot blocks without recompiling the boot blocks. If you - are already using <devicename>COM1:</devicename> for another - device, you will have to temporarily remove that device and - install a new boot block and kernel once you get FreeBSD up and - running. (It is assumed that <devicename>COM1:</devicename> will - be available on a file/compute/terminal server anyway; if you - really need <devicename>COM1:</devicename> for something else - (and you can not switch that something else to - <devicename>COM2:</devicename> (<devicename>sio1</devicename>)), - then you probably should not even be bothering with all this in - the first place.)</para> - </step> - - <step> - <para>Make sure the configuration file of your kernel has - appropriate flags set for <devicename>COM1:</devicename> - (<devicename>sio0</devicename>).</para> - - <para>Relevant flags are:</para> - - <variablelist> - <varlistentry> - <term><literal>0x10</literal></term> - - <listitem> - <para>Enables console support for this unit. The other - console flags are ignored unless this is set. Currently, at - most one unit can have console support; the first one (in - config file order) with this flag set is preferred. This - option alone will not make the serial port the console. Set - the following flag or use the <option>-h</option> option - described below, together with this flag.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>0x20</literal></term> - - <listitem> - <para>Forces this unit to be the console (unless there is - another higher priority console), regardless of the - <option>-h</option> option discussed below. This flag - replaces the <literal>COMCONSOLE</literal> option in FreeBSD - versions 2.X. The flag <literal>0x20</literal> must be used - together with the <option>0x10</option> flag.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>0x40</literal></term> - - <listitem> - <para>Reserves this unit (in conjunction with - <literal>0x10</literal>) and makes the unit unavailable for - normal access. You should not set this flag to the serial - port unit which you want to use as the serial console. The - only use of this flag is to designate the unit for kernel - remote debugging. See <xref linkend="kerneldebug"> for more - information on remote debugging.</para> - - <note> - <para>In FreeBSD 4.0-CURRENT or later the semantics of the - flag <literal>0x40</literal> are slightly different and - there is another flag to specify a serial port for remote - debugging.</para> - </note> - </listitem> - </varlistentry> - </variablelist> - - <para>Example:</para> - - <programlisting> -device sio0 at isa? port "IO_COM1" tty flags 0x10 irq 4</programlisting> - - <para>See &man.sio.4; for more details.</para> - - <para>If the flags were not set, you need to run UserConfig (on a - different console) or recompile the kernel.</para> - </step> - - <step> - <para>Create <filename>boot.config</filename> in the root directory - of the <literal>a</literal> partition on the boot drive.</para> - - <para>This file will instruct the boot block code how you would like - to boot the system. In order to activate the serial console, you - need one or more of the following options—if you want - multiple options, include them all on the same line:</para> - - <variablelist> - <varlistentry> - <term><option>-h</option></term> - - <listitem> - <para>Toggles internal and serial consoles. You can use this - to switch console devices. For instance, if you boot from - the internal (video) console, you can use - <option>-h</option> to direct the boot loader and the kernel - to use the serial port as its console device. Alternatively, - if you boot from the serial port, you can use the - <option>-h</option> to tell the boot loader and the kernel - to use the video display as the console instead.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-D</option></term> - - <listitem> - <para>Toggles single and dual console configurations. In the - single configuration the console will be either the internal - console (video display) or the serial port, depending on the - state of the <option>-h</option> option above. In the dual - console configuration, both the video display and the - serial port will become the console at the same time, - regardless of the state of the <option>-h</option> option. - However, that the dual console configuration takes effect - only during the boot block is running. Once the boot loader - gets control, the console specified by the - <option>-h</option> option becomes the only console.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>-P</option></term> - - <listitem> - <para>Makes the boot block probe the keyboard. If no keyboard - is found, the <option>-D</option> and <option>-h</option> - options are automatically set.</para> - - <note> - <para>Due to space constraints in the current version of the - boot blocks, the <option>-P</option> option is capable of - detecting extended keyboards only. Keyboards with less - than 101 keys (and without F11 and F12 keys) may not be - detected. Keyboards on some laptop computers may not be - properly found because of this limitation. If this is to - be the case with your system, you have to abandon using - the <option>-P</option> option. Unfortunately there is no - workaround for this problem.</para> - </note> - </listitem> - </varlistentry> - </variablelist> - - <para>Use either the <option>-P</option> option to select the - console automatically, or the <option>-h</option> option to - activate the serial console.</para> - - <para>You may include other options described in &man.boot.8; as - well.</para> - - <para>The options, except for <option>-P</option>, will be passed to - the boot loader (<filename>/boot/loader</filename>). The boot - loader will determine which of the internal video or the serial - port should become the console by examining the state of the - <option>-h</option> option alone. This means that if you specify - the <option>-D</option> option but not the <option>-h</option> - option in <filename>/boot.config</filename>, you can use the - serial port as the console only during the boot block; the boot - loader will use the internal video display as the console.</para> - </step> - - <step> - <para>Boot the machine.</para> - - <para>When you start your FreeBSD box, the boot blocks will echo the - contents of <filename>/boot.config</filename> to the console. For - example;</para> - - <screen>/boot.config: -P -Keyboard: no</screen> - - <para>The second line appears only if you put <option>-P</option> in - <filename>/boot.config</filename> and indicates presence/absence - of the keyboard. These messages go to either serial or internal - console, or both, depending on the option in - <filename>/boot.config</filename>.</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Options</entry> - <entry>Message goes to</entry> - </row> - </thead> - - <tbody> - <row> - <entry>none</entry> - <entry>internal console</entry> - </row> - - <row> - <entry><option>-h</option></entry> - <entry>serial console</entry> - </row> - - <row> - <entry><option>-D</option></entry> - <entry>serial and internal consoles</entry> - </row> - - <row> - <entry><option>-Dh</option></entry> - <entry>serial and internal consoles</entry> - </row> - - <row> - <entry><option>-P</option>, keyboard present</entry> - <entry>internal console</entry> - </row> - - <row> - <entry><option>-P</option>, keyboard absent</entry> - <entry>serial console</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>After the above messages, there will be a small pause before - the boot blocks continue loading the boot loader and before any - further messages printed to the console. Under normal - circumstances, you do not need to interrupt the boot blocks, but - you may want to do so in order to make sure things are set up - correctly.</para> - - <para>Hit any key, other than Enter/Return, at the console to - interrupt the boot process. The boot blocks will then prompt you - for further action. You should now see something like:</para> - - <screen>>> FreeBSD/i386 BOOT -Default: 0:wd(0,a)/boot/loader -boot:</screen> - - <para>Verify the above message appears on either the serial or - internal console or both, according to the options you put in - <filename>/boot.config</filename>. If the message appears in the - correct console, hit Enter/Return to continue the boot - process.</para> - - <para>If you want the serial console but you do not see the prompt - on the serial terminal, something is wrong with your settings. In - the meantime, you enter <option>-h</option> and hit Enter/Return - (if possible) to tell the boot block (and then the boot loader and - the kernel) to choose the serial port for the console. Once the - system is up, go back and check what went wrong.</para> - </step> - </procedure> - - <para>After the boot loader is loaded and you are in the third stage of - the boot process you can still switch between the internal console and - the serial console by setting appropriate environment variables in the - boot loader. See <xref linkend="serialconsole-loader">.</para> - </sect2> - - <sect2 id="serialconsole-summary"> - <title>Summary</title> - - <para>Here is the summary of various settings discussed in this section - and the console eventually selected.</para> - - <sect3> - <title>Case 1: You set the flags to 0x10 for sio0</title> - - <programlisting>device sio0 at isa? port "IO_COM1" tty flags 0x10 irq 4</programlisting> - - <informaltable frame="none"> - <tgroup cols="4"> - <thead> - <row> - <entry>Options in /boot.config</entry> - <entry>Console during boot blocks</entry> - <entry>Console during boot loader</entry> - <entry>Console in kernel</entry> - </row> - </thead> - - <tbody> - <row> - <entry>nothing</entry> - <entry>internal</entry> - <entry>internal</entry> - <entry>internal</entry> - </row> - - <row> - <entry><option>-h</option></entry> - <entry>serial</entry> - <entry>serial</entry> - <entry>serial</entry> - </row> - - <row> - <entry><option>-D</option></entry> - <entry>serial and internal</entry> - <entry>internal</entry> - <entry>internal</entry> - </row> - - <row> - <entry><option>-Dh</option></entry> - <entry>serial and internal</entry> - <entry>serial</entry> - <entry>serial</entry> - </row> - - <row> - <entry><option>-P</option>, keyboard present</entry> - <entry>internal</entry> - <entry>internal</entry> - <entry>internal</entry> - </row> - - <row> - <entry><option>-P</option>, keyboard absent</entry> - <entry>serial and internal</entry> - <entry>serial</entry> - <entry>serial</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </sect3> - - <sect3> - <title>Case 2: You set the flags to 0x30 for sio0</title> - - <programlisting>device sio0 at isa? port "IO_COM1" tty flags 0x30 irq 4</programlisting> - - <informaltable frame="none"> - <tgroup cols="4"> - <thead> - <row> - <entry>Options in /boot.config</entry> - <entry>Console during boot blocks</entry> - <entry>Console during boot loader</entry> - <entry>Console in kernel</entry> - </row> - </thead> - - <tbody> - <row> - <entry>nothing</entry> - <entry>internal</entry> - <entry>internal</entry> - <entry>serial</entry> - </row> - - <row> - <entry><option>-h</option></entry> - <entry>serial</entry> - <entry>serial</entry> - <entry>serial</entry> - </row> - - <row> - <entry><option>-D</option></entry> - <entry>serial and internal</entry> - <entry>internal</entry> - <entry>serial</entry> - </row> - - <row> - <entry><option>-Dh</option></entry> - <entry>serial and internal</entry> - <entry>serial</entry> - <entry>serial</entry> - </row> - - <row> - <entry><option>-P</option>, keyboard present</entry> - <entry>internal</entry> - <entry>internal</entry> - <entry>serial</entry> - </row> - - <row> - <entry><option>-P</option>, keyboard absent</entry> - <entry>serial and internal</entry> - <entry>serial</entry> - <entry>serial</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </sect3> - </sect2> - - <sect2 id="serialconsole-tips"> - <title>Tips for the Serial Console</title> - - <sect3> - <title>Setting A Faster Serial Port Speed</title> - - <para>By default the serial port settings are set to 9600 baud, 8 - bits, no parity, 1 stop bit. If you wish to change the speed, you - need to recompile at least the boot blocks. Add the following line - to <filename>/etc/make.conf</filename> and compile new boot - blocks:</para> - - <programlisting>BOOT_COMCONSOLE_SPEED=19200</programlisting> - - <para>If the serial console is configured in some other way than by - booting with <option>-h</option>, or if the serial console used by - the kernel is different from the one used by the boot blocks, then - you must also add the following option to the kernel configuration - file and compile a new kernel:</para> - - <programlisting>options CONSPEED=19200</programlisting> - </sect3> - - <sect3 id="serialconsole-com2"> - <title>Using Serial Port Other Than <devicename>sio0</devicename> For - The Console</title> - - <para>Using a port other than <devicename>sio0</devicename> as the - console requires some recompiling. If you want to use another - serial port for whatever reasons, recompile the boot blocks, the - boot loader and the kernel as follows.</para> - - <procedure> - <step> - <para>Get the kernel source.</para> - </step> - - <step> - <para>Edit <filename>/etc/make.conf</filename> and set - <literal>BOOT_COMCONSOLE_PORT</literal> to the address of the - port you want to use (0x3F8, 0x2F8, 0x3E8 or 0x2E8). Only - <devicename>sio0</devicename> through - <devicename>sio3</devicename> (<devicename>COM1:</devicename> - through <devicename>COM4:</devicename>) can be used; multiport - serial cards will not work. No interrupt setting is - needed.</para> - </step> - - <step> - <para>Create a custom kernel configuration file and add - appropriate flags for the serial port you want to use. For - example, if you want to make <devicename>sio1</devicename> - (<devicename>COM2:</devicename>) the console:</para> - - <programlisting>device sio1 at isa? port "IO_COM2" tty flags 0x10 irq 3</programlisting> - - <para>or</para> - - <programlisting>device sio1 at isa? port "IO_COM2" tty flags 0x30 irq 3</programlisting> - - <para>The console flags for the other serial ports should not be - set.</para> - </step> - - <step> - <para>Recompile and install the boot blocks:</para> - - <screen>&prompt.root; <userinput>cd /sys/boot/i386/boot2</userinput> -&prompt.root; <userinput>make</userinput> -&prompt.root; <userinput>make install</userinput></screen> - </step> - - <step> - <para>Recompile and install the boot loader:</para> - - <screen>&prompt.root; <userinput>cd /sys/boot/i386/loader</userinput> -&prompt.root; <userinput>make</userinput> -&prompt.root; <userinput>make install</userinput></screen> - </step> - - <step> - <para>Rebuild and install the kernel.</para> - </step> - - <step> - <para>Write the boot blocks to the boot disk with - &man.disklabel.8; and boot from the new kernel.</para> - </step> - </procedure> - </sect3> - - <sect3> - <title>Entering the DDB Debugger from the Serial Line</title> - - <para>If you wish to drop into the kernel debugger from the serial - console (useful for remote diagnostics, but also dangerous if you - generate a spurious BREAK on the serial port!) then you should - compile your kernel with the following options:</para> - - <programlisting>options BREAK_TO_DEBUGGER -options DDB</programlisting> - </sect3> - - <sect3> - <title>Getting a Login Prompt on the Serial Console</title> - - <para>While this is not required, you may wish to get a - <emphasis>login</emphasis> prompt over the serial line, now that you - can see boot messages and can enter the kernel debugging session - through the serial console. Here is how to do it.</para> - - <para>Open the file <filename>/etc/ttys</filename> with an editor - and locate the lines:</para> - - <programlisting>ttyd0 "/usr/libexec/getty std.9600" unknown off secure -ttyd1 "/usr/libexec/getty std.9600" unknown off secure -ttyd2 "/usr/libexec/getty std.9600" unknown off secure -ttyd3 "/usr/libexec/getty std.9600" unknown off secure</programlisting> - - <para><literal>ttyd0</literal> through <literal>ttyd3</literal> - corresponds to <devicename>COM1</devicename> through - <devicename>COM4</devicename>. Change <literal>off</literal> to - <literal>on</literal> for the desired port. If you have changed the - speed of the serial port, you need to change - <literal>std.9600</literal> to match the current setting, e.g. - <literal>std.19200</literal>.</para> - - <para>You may also want to change the terminal type from - <literal>unknown</literal> to the actual type of your serial - terminal.</para> - - <para>After editing the file, you must <command>kill -HUP 1</command> - to make this change take effect.</para> - </sect3> - </sect2> - - <sect2 id="serialconsole-loader"> - <title>Changing Console from the Boot Loader</title> - - <para>Previous sections described how to set up the serial console by - tweaking the boot block. This section shows that you can specify the - console by entering some commands and environment variables in the - boot loader. As the boot loader is invoked as the third stage of the - boot process, after the boot block, the settings in the boot loader - will override the settings in the boot block.</para> - - <sect3> - <title>Setting Up the Serial Console</title> - - <para>You can easily specify the boot loader and the kernel to use the - serial console by writing just one line in - <filename>/boot/loader.rc</filename>:</para> - - <programlisting>set console=comconsole</programlisting> - - <para>This will take effect regardless of the settings in the boot - block discussed in the previous section.</para> - - <para>You had better put the above line as the first line of - <filename>/boot/loader.rc</filename> so as to see boot messages on - the serial console as early as possible.</para> - - <para>Likewise, you can specify the internal console as:</para> - - <programlisting>set console=vidconsole</programlisting> - - <para>If you do not set the boot loader environment variable - <envar>console</envar>, the boot loader, and subsequently the - kernel, will use whichever console indicated by the - <option>-h</option> option in the boot block.</para> - - <para>In versions 3.2 or later, you may specify the console in - <filename>/boot/loader.conf.local</filename> or - <filename>/boot/loader.conf</filename>, rather than in - <filename>/boot/loader.rc</filename>. In this method your - <filename>/boot/loader.rc</filename> should look like:</para> - - <programlisting>include /boot/loader.4th -start</programlisting> - - <para>Then, create <filename>/boot/loader.conf.local</filename> and - put the following line there.</para> - - <programlisting>console=comconsole</programlisting> - - <para>or</para> - - <programlisting>console=vidconsole</programlisting> - - <para>See &man.loader.conf.5; for more information.</para> - - <note> - <para>At the moment, the boot loader has no option equivalent to the - <option>-P</option> option in the boot block, and there is no - provision to automatically select the internal console and the - serial console based on the presence of the keyboard.</para> - </note> - </sect3> - - <sect3> - <title>Using Serial Port Other than <devicename>sio0</devicename> for - the Console</title> - - <para>You need to recompile the boot loader to use a serial port other - than <devicename>sio0</devicename> for the serial console. Follow the - procedure described in <xref linkend="serialconsole-com2">.</para> - </sect3> - </sect2> - - <sect2 id="serialconsole-caveats"> - <title>Caveats</title> - - <para>The idea here is to allow people to set up dedicated servers that - require no graphics hardware or attached keyboards. Unfortunately, - while (most?) every system will let you boot without a keyboard, there - are quite a few that will not let you boot without a graphics adapter. - Machines with AMI BIOSes can be configured to boot with no graphics - adapter installed simply by changing the `graphics adapter' setting in - the CMOS configuration to `Not installed.'</para> - - <para>However, many machines do not support this option and will refuse - to boot if you have no display hardware in the system. With these - machines, you'll have to leave some kind of graphics card plugged in, - (even if it's just a junky mono board) although you will not have to - attach a monitor into it. You might also try installing an AMI - BIOS.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/staff/chapter.sgml b/en_US.ISO8859-1/books/handbook/staff/chapter.sgml deleted file mode 100644 index 2ab0545a02..0000000000 --- a/en_US.ISO8859-1/books/handbook/staff/chapter.sgml +++ /dev/null @@ -1,1132 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/staff/chapter.sgml,v 1.126 2000/06/19 10:29:14 assar Exp $ ---> - -<!-- - Please try to keep the CVSROOT/access file in sync with the list of - FreeBSD developers. ---> - -<appendix id="staff"> - <title>FreeBSD Project Staff</title> - - <para>The FreeBSD Project is managed and operated by the following groups of - people:</para> - - <sect1 id="staff-core"> - <title>The FreeBSD Core Team</title> - - <para>The FreeBSD core team constitutes the project's <quote>Board of - Directors</quote>, responsible for deciding the project's overall goals - and direction as well as managing <link linkend="staff-who">specific - areas</link> of the FreeBSD project landscape.</para> - - <para>(in alphabetical order by last name):</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.dfr;</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>The FreeBSD Developers</title> - - <para>These are the people who have commit privileges and do the - engineering work on the FreeBSD source tree. All core team members are - also developers.</para> - - <itemizedlist> - <listitem> - <para>&a.jmas;</para> - </listitem> - - <listitem> - <para>&a.will;</para> - </listitem> - - <listitem> - <para>&a.ugen;</para> - </listitem> - - <listitem> - <para>&a.dbaker;</para> - </listitem> - - <listitem> - <para>&a.jhb;</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.nbm;</para> - </listitem> - - <listitem> - <para>&a.torstenb;</para> - </listitem> - - <listitem> - <para>&a.wilko;</para> - </listitem> - - <listitem> - <para>&a.jake;</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.cjh;</para> - </listitem> - - <listitem> - <para>&a.gclarkii;</para> - </listitem> - - <listitem> - <para>&a.archie;</para> - </listitem> - - <listitem> - <para>&a.chris;</para> - </listitem> - - <listitem> - <para>&a.alc;</para> - </listitem> - - <listitem> - <para>&a.cracauer;</para> - </listitem> - - <listitem> - <para>&a.dec;</para> - </listitem> - - <listitem> - <para>&a.adam;</para> - </listitem> - - <listitem> - <para>&a.bsd;</para> - </listitem> - - <listitem> - <para>&a.jwd;</para> - </listitem> - - <listitem> - <para>&a.dillon;</para> - </listitem> - - <listitem> - <para>&a.mdodd;</para> - </listitem> - - <listitem> - <para>&a.dufault;</para> - </listitem> - - <listitem> - <para>&a.uhclem;</para> - </listitem> - - <listitem> - <para>&a.tegge;</para> - </listitem> - - <listitem> - <para>&a.deischen;</para> - </listitem> - - <listitem> - <para>&a.eivind;</para> - </listitem> - - <listitem> - <para>&a.julian;</para> - </listitem> - - <listitem> - <para>&a.rse;</para> - </listitem> - - <listitem> - <para>&a.ru;</para> - </listitem> - - <listitem> - <para>&a.se;</para> - </listitem> - - <listitem> - <para>&a.jasone;</para> - </listitem> - - <listitem> - <para>&a.sef;</para> - </listitem> - - <listitem> - <para>&a.jedgar;</para> - </listitem> - - <listitem> - <para>&a.green;</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.patrick;</para> - </listitem> - - <listitem> - <para>&a.tg;</para> - </listitem> - - <listitem> - <para>&a.brandon;</para> - </listitem> - - <listitem> - <para>&a.gioria;</para> - </listitem> - - <listitem> - <para>&a.graichen;</para> - </listitem> - - <listitem> - <para>&a.cg;</para> - </listitem> - - <listitem> - <para>&a.rgrimes;</para> - </listitem> - - <listitem> - <para>&a.jmg;</para> - </listitem> - - <listitem> - <para>&a.hanai;</para> - </listitem> - - <listitem> - <para>&a.roger;</para> - </listitem> - - <listitem> - <para>&a.mharo;</para> - </listitem> - - <listitem> - <para>&a.thepish;</para> - </listitem> - - <listitem> - <para>&a.jhay;</para> - </listitem> - - <listitem> - <para>&a.sheldonh;</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.pho;</para> - </listitem> - - <listitem> - <para>&a.hosokawa;</para> - </listitem> - - <listitem> - <para>&a.hsu;</para> - </listitem> - - <listitem> - <para>&a.foxfair;</para> - </listitem> - - <listitem> - <para>&a.tom;</para> - </listitem> - - <listitem> - <para>&a.mph;</para> - </listitem> - - <listitem> - <para>&a.imura;</para> - </listitem> - - <listitem> - <para>&a.shin;</para> - </listitem> - - <listitem> - <para>&a.itojun;</para> - </listitem> - - <listitem> - <para>&a.iwasaki;</para> - </listitem> - - <listitem> - <para>&a.mjacob;</para> - </listitem> - - <listitem> - <para>&a.gj;</para> - </listitem> - - <listitem> - <para>&a.nsj;</para> - </listitem> - - <listitem> - <para>&a.joe;</para> - </listitem> - - <listitem> - <para>&a.kato;</para> - </listitem> - - <listitem> - <para>&a.kris;</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.alex;</para> - </listitem> - - <listitem> - <para>&a.reg;</para> - </listitem> - - <listitem> - <para>&a.grog;</para> - </listitem> - - <listitem> - <para>&a.jlemon;</para> - </listitem> - - <listitem> - <para>&a.truckman;</para> - </listitem> - - <listitem> - <para>&a.lile;</para> - </listitem> - - <listitem> - <para>&a.kevlo;</para> - </listitem> - - <listitem> - <para>&a.imp;</para> - </listitem> - - <listitem> - <para>&a.ade;</para> - </listitem> - - <listitem> - <para>&a.jmacd;</para> - </listitem> - - <listitem> - <para>&a.smace;</para> - </listitem> - - <listitem> - <para>&a.gehenna;</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.jim;</para> - </listitem> - - <listitem> - <para>&a.marcel;</para> - </listitem> - - <listitem> - <para>&a.dan;</para> - </listitem> - - <listitem> - <para>&a.amurai;</para> - </listitem> - - <listitem> - <para>&a.markm;</para> - </listitem> - - <listitem> - <para>&a.knu;</para> - </listitem> - - <listitem> - <para>&a.nakai;</para> - </listitem> - - <listitem> - <para>&a.max;</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.cp;</para> - </listitem> - - <listitem> - <para>&a.wpaul;</para> - </listitem> - - <listitem> - <para>&a.alfred;</para> - </listitem> - - <listitem> - <para>&a.wes;</para> - </listitem> - - <listitem> - <para>&a.cpiazza;</para> - </listitem> - - <listitem> - <para>&a.jdp;</para> - </listitem> - - <listitem> - <para>&a.bp;</para> - </listitem> - - <listitem> - <para>&a.steve;</para> - </listitem> - - <listitem> - <para>&a.mpp;</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.jesusr;</para> - </listitem> - - <listitem> - <para>&a.guido;</para> - </listitem> - - <listitem> - <para>&a.groudier;</para> - </listitem> - - <listitem> - <para>&a.dima;</para> - </listitem> - - <listitem> - <para>&a.asmodai;</para> - </listitem> - - <listitem> - <para>&a.ps;</para> - </listitem> - - <listitem> - <para>&a.sada;</para> - </listitem> - - <listitem> - <para>&a.wsanchez;</para> - </listitem> - - <listitem> - <para>&a.nsayer;</para> - </listitem> - - <listitem> - <para>&a.wosch;</para> - </listitem> - - <listitem> - <para>&a.dick;</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.sobomax;</para> - </listitem> - - <listitem> - <para>&a.dcs;</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.sumikawa;</para> - </listitem> - - <listitem> - <para>&a.murray;</para> - </listitem> - - <listitem> - <para>&a.gsutter;</para> - </listitem> - - <listitem> - <para>&a.unfurl;</para> - </listitem> - - <listitem> - <para>&a.nyan;</para> - </listitem> - - <listitem> - <para>&a.tanimura;</para> - </listitem> - - <listitem> - <para>&a.taoka;</para> - </listitem> - - <listitem> - <para>&a.mtaylor;</para> - </listitem> - - <listitem> - <para>&a.dt;</para> - </listitem> - - <listitem> - <para>&a.cwt;</para> - </listitem> - - <listitem> - <para>&a.pst;</para> - </listitem> - - <listitem> - <para>&a.ume;</para> - </listitem> - - <listitem> - <para>&a.hoek;</para> - </listitem> - - <listitem> - <para>&a.nectar;</para> - </listitem> - - <listitem> - <para>&a.jayanth;</para> - </listitem> - - <listitem> - <para>&a.swallace;</para> - </listitem> - - <listitem> - <para>&a.rwatson;</para> - </listitem> - - <listitem> - <para>&a.assar;</para> - </listitem> - - <listitem> - <para>&a.dwhite;</para> - </listitem> - - <listitem> - <para>&a.nate;</para> - </listitem> - - <listitem> - <para>&a.yokota;</para> - </listitem> - - <listitem> - <para>&a.andy;</para> - </listitem> - - <listitem> - <para>&a.phantom;</para> - </listitem> - - <listitem> - <para>&a.jmz;</para> - </listitem> - - </itemizedlist> - </sect1> - - <sect1 id="staff-doc"> - - - <title>The FreeBSD Documentation Project</title> - - <para>The <ulink url="http://www.FreeBSD.org/docproj.html">FreeBSD - Documentation Project</ulink> is responsible for a number of different - services, each service being run by an individual and his - <emphasis>deputies</emphasis> (if any):</para> - - <variablelist> - <varlistentry> - <term>Documentation Project Architect</term> - - <listitem> - <para>&a.nik;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Webmaster</term> - - <listitem> - <para>&a.wosch;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Handbook Editor</term> - - <listitem> - <para>&a.jim;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FAQ Editor</term> - - <listitem> - <para>&a.faq;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>News Editor</term> - - <listitem> - <para>&a.jim;</para> - </listitem> - </varlistentry> - - - <varlistentry> - <term>In the Press Editor</term> - - <listitem> - <para>&a.jkoshy;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FreeBSD Really-Quick NewsLetter Editor</term> - - <listitem> - <para>Chris Coleman <email>chrisc@vmunix.com</email></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Gallery Editor</term> - - <listitem> - <para>&a.phantom;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Commercial Editor</term> - - <listitem> - <para>&a.phantom;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Web Changes Editor</term> - - <listitem> - <para>&a.www;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>User Groups Editor</term> - - <listitem> - <para>&a.grog;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FreeBSD Projects and Tasklist Editor</term> - - <listitem> - <para>&a.asmodai;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FreeBSD Java Project</term> - - <listitem> - <para>&a.patrick;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>LinuxDoc to DocBook conversion</term> - - <listitem> - <para>&a.nik;</para> - </listitem> - </varlistentry> - </variablelist> - </sect1> - - <sect1 id="staff-who"> - <title>Who is Responsible for What</title> - - <variablelist> - <varlistentry> - <term>Principal Architect</term> - - <listitem> - <para>&a.dg;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><ulink - url="http://www.FreeBSD.org/docproj/docproj.html">Documentation - Project Manager</ulink></term> - - <listitem> - <para>&a.nik;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><link linkend="boot-blocks">Boot blocks</link></term> - - <listitem> - <para>&a.rnordier;, &a.jhb;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><link linkend="boot-loader">Boot loader</link></term> - - <listitem> - <para>&a.dcs;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><link linkend="l10n">Internationalization</link></term> - - <listitem> - <para>&a.ache;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Networking</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>Release Coordinator</term> - - <listitem> - <para>&a.jkh;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Public Relations & Corporate Liaison</term> - - <listitem> - <para>&a.jkh;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><ulink url="http://www.FreeBSD.org/security/">Security - Officer</ulink></term> - - <listitem> - <para>&a.imp;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><ulink url="http://www.FreeBSD.org/support.html#cvs">Source - Repository Managers</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/">Ports - Manager</ulink></term> - - <listitem> - <para>&a.asami;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>XFree86 Project, Inc. Liaison</term> - - <listitem> - <para>&a.rich;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><link linkend="eresources-news">Usenet Support</link></term> - - <listitem> - <para>&a.joerg;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><ulink url="http://www.FreeBSD.org/support.html#gnats">GNATS - Administrator</ulink></term> - - <listitem> - <para>&a.steve;</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><ulink - url="http://www.FreeBSD.org/internal/">Webmaster</ulink></term> - - <listitem> - <para>&a.wosch;</para> - </listitem> - </varlistentry> - </variablelist> - </sect1> -</appendix> - -<!-- - Local Variables: - mode: sgml - sgml-declaration: "../appendix.decl" - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - sgml-parent-document: ("../book.sgml" "part" "appendix") - End: ---> - diff --git a/en_US.ISO8859-1/books/handbook/users/chapter.sgml b/en_US.ISO8859-1/books/handbook/users/chapter.sgml deleted file mode 100644 index 6955bf5d47..0000000000 --- a/en_US.ISO8859-1/books/handbook/users/chapter.sgml +++ /dev/null @@ -1,425 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/users/chapter.sgml,v 1.3 2000/06/12 17:10:36 alex Exp $ ---> - -<chapter id="users"> - <title>Users and Basic Account Management</title> - - <sect1 id="users-synopsis"> - <title>Synopsis</title> - - <para><emphasis>Contributed by &a.nbm; February 2000</emphasis>.</para> - - <para>All access to the system is achieved via accounts, and all - processes are run by users, so user and account management are - of integral importance on FreeBSD systems.</para> - - <para>There are three main types of accounts; the <link - linkend="users-superuser">Superuser</link>, <link - linkend="users-system">system users</link>, and <link - linkend="users-user">user accounts</link>. The Superuser - account, usually called <username>root</username>, is used to - manage the system with no limitations on privileges. System - users run services. Finally, user accounts are used by real - people, who log on, read mail, and so forth.</para> - </sect1> - - <sect1 id="users-superuser"> - <title>The Superuser Account</title> - - <para>The superuser account, usually called - <username>root</username>, comes preconfigured, and facilitates - system administration, and should not be used for day-to-date - tasks like sending and receiving mail, general exploration of - the system, or programming.</para> - - <para>This is because the superuser, unlike normal user accounts, - can operate without limits, and misuse of the superuser account - may result in spectacular disasters. User accounts are unable - to destroy the system by mistake, so it is generally best to use - normal user accounts whenever possible, unless you especially - need the extra privilege.</para> - - <para>In addition, always double and triple-check commands you - issue as the superuser, since an extra space or missing - character can mean irreparable data loss. Those extra - privileges you needed when you decided to change to the - superuser mean that the safeguards of your normal user account - no longer apply.</para> - - <para>So, the first thing you should do after reading this - chapter, is to create an unprivileged user account for yourself - for general usage, if you haven't already. This applies equally - whether you're running a multi-user or single-user machine. - Later in this chapter, we discuss how to create additional - accounts, and how to change between the normal user and - superuser.</para> - </sect1> - - <sect1 id="users-system"> - <title>System Accounts</title> - - <para>System users are those used to run services such as DNS, - mail, web servers, and so forth. The reason for this is - security, as if all services ran as the superuser, they could - act without restriction.</para> - - <para>Examples of system users are <username>daemon</username>, - <username>operator</username>, <username>bind</username> (for - the Domain Name Service), and <username>news</username>. Often - sysadmins create <username>httpd</username> to run web servers - they install.</para> - - <para><username>nobody</username> is the generic unprivileged - system user, but the more services that use - <username>nobody</username>, the more privileged it - becomes.</para> - </sect1> - - <sect1 id="users-user"> - <title>User Accounts</title> - - <para>User accounts are the primary means of access for real - people to the system, and these accounts insulate the user and - the environment, preventing the users from damaging the system - or other users, and allowing users to customize their - environment without affecting others.</para> - - <para>Every person accessing your system should have their own - unique user account. This allows you to find out who is doing - what, and prevent people from clobbering each others' settings, - and reading mail meant for the other, and so forth.</para> - - <para>Each user can set up their own environment to accommodate - their use of the system, by using alternate shells, editors, key - bindings, and language.</para> - </sect1> - - <sect1 id="users-modifying"> - <title>Modifying Accounts</title> - - <para><application>pw</application> is a powerful and flexible - means to modify accounts, but <application>adduser</application> - is recommended for creating new accounts, and - <application>rmuser</application> for deleting accounts.</para> - - <para><application>chpass</application> allows both the system - administrator and normal users to adjust passwords, shells, and - personal information. <application>passwd</application> is the - more common means to change passwords specifically, - however.</para> - - - <sect2 id="users-adduser"> - <title>adduser</title> - - <para><application>adduser</application> is a simple program for - adding new users. It creates <filename>passwd</filename> and - <filename>group</filename> entries for the user, as well as - creating their home directory, copy in some default dotfiles - from <filename>/usr/share/skel</filename>, and can optionally - mail the user a welcome message.</para> - - <para>To create the initial configuration file, use - <command>adduser -s -config_create</command>. - <footnote> - <para>The <option>-s</option> makes adduser default to - quiet. We use <option>-v</option> later when we want to - change defaults.</para> - </footnote>Next, we configure adduser defaults, and create our - first user account, since using root for normal usage is evil - and nasty.</para> - - <example> - <title>Changing the configuration for adduser</title> - - <screen>&prompt.root; <userinput>adduser -v</userinput> -Use option ``-silent'' if you don't want to see all warnings and questions. -Check /etc/shells -Check /etc/master.passwd -Check /etc/group -Enter your default shell: csh date no sh tcsh [sh]: <userinput>tcsh</userinput> -Your default shell is: tcsh -> /usr/local/bin/tcsh -Enter your default HOME partition: [/home]: -Copy dotfiles from: /usr/share/skel no [/usr/share/skel]: -Send message from file: /etc/adduser.message no -[/etc/adduser.message]: <userinput>no</userinput> -Do not send message -Use passwords (y/n) [y]: <userinput>y</userinput> - -Write your changes to /etc/adduser.conf? (y/n) [n]: <userinput>y</userinput> - -Ok, let's go. -Don't worry about mistakes. I will give you the chance later to correct any input. -Enter username [a-z0-9_-]: <userinput>jru</userinput> -Enter full name []: <userinput>J. Random User</userinput> -Enter shell csh date no sh tcsh [tcsh]: -Enter home directory (full path) [/home/jru]: -Uid [1001]: -Enter login class: default []: -Login group jru [jru]: -Login group is ``jru''. Invite jru into other groups: guest no -[no]: <userinput>wheel</userinput> -Enter password []: -Enter password again []: - -Name: jru -Password: **** -Fullname: J. Random User -Uid: 1007 -Gid: 1007 (jru) -Class: -Groups: jru wheel -HOME: /home/jru -Shell: /usr/local/bin/tcsh -OK? (y/n) [y]: <userinput>y</userinput> -Added user ``jru'' -Copy files from /usr/share/skel to /home/jru -Add another user? (y/n) [y]: <userinput>n</userinput> -Goodbye! -&prompt.root;</screen> - </example> - - <para>In summary, we changed the default shell to - <application>tcsh</application> (an additional shell found in - packages), and turned off the sending of a welcome mail to - added users. We then saved the configuration, and then - created an account for <username>jru</username>, and we made - sure <username>jru</username> is in <username>wheel</username> - group (which we'll see is important later).</para> - - <note> - <para>The password you type in isn't echoed, nor are asterisks - displayed. Make sure you don't mistype the password twice - :-)</para> - </note> - - <note> - <para>Just use <command>adduser</command> without arguments - from now on, and you won't have to go through changing the - defaults. If the program asks you to change the defaults, - exit the program, and try the <option>-s</option> - option.</para> - </note> - </sect2> - - <sect2 id="users-rmuser"> - <title>rmuser</title> - - <para><application>rmuser</application> removes users from the - system, including any traces beyond the user database.</para> - - <para><application>rmuser</application> performs the following - steps:</para> - - <procedure> - <step> - <para>Removes the user's &man.crontab.1; entry (if - any).</para> - </step> - <step> - <para>Removes any &man.at.1; jobs belonging to the - user.</para> - </step> - <step> - <para>Kills all processes owned by the user</para> - </step> - <step> - <para>Removes the user from the system's local password - file.</para> - </step> - <step> - <para>Removes the user's home directory (if it is owned by - the user)</para> - </step> - <step> - <para>Removes the incoming mail files belonging to the user - from <filename>/var/mail</filename>.</para> - </step> - <step> - <para>Removes all files owned by the user from temporary - file storage areas such as <filename>/tmp</filename>.</para> - </step> - <step> - <para>Finally, removes the username from all groups to which - it belongs in <filename>/etc/group</filename>. - - <note> - <para>If a group becomes empty and the group name is the - same as the username, the group is removed; this - complements the per-user unique groups created by - &man.adduser.8;.</para> - </note> - </para> - </step> - </procedure> - - <para><application>rmuser</application> can't be used to remove - superuser accounts, since that is almost always an indication - of massive destruction.</para> - - <para>By default, an interactive mode is used, which attempts to - make sure you know what you're doing.</para> - - <example> - <title>rmuser interactive account removal</title> - - <screen>&prompt.root; <userinput>rmuser jru</userinput> -Matching password entry: -jru:*:1000:1000::0:0:J. Random User:/home/jru:/usr/local/bin/tcsh -Is this the entry you wish to remove? <userinput>y</userinput> -Remove user's home directory (/home/jru)? <userinput>y</userinput> -Updating password file, updating databases, done. -Updating group file: trusted (removing group jru -- personal group is empty) done. -Removing user's incoming mail file /var/mail/jru: done. -Removing files belonging to jru from /tmp: done. -Removing files belonging to jru from /var/tmp: done. -Removing files belonging to jru from /var/tmp/vi.recover: done. -&prompt.root;</screen> - </example> - </sect2> - - <sect2 id="users-pw"> - <title>pw</title> - - <para><application>pw</application> is a command line utility to - create, remove, modify, and display users and groups, and - functions as an editor of the system user and group - files.</para> - - <para>It is designed to be useful both as a directly executed - command and for use from shell scripts.</para> - - <para>&man.pw.8; has all the information.</para> - </sect2> - - <sect2 id="users-chpass"> - <title>chpass</title> - - <para><application>chpass</application> changes user database - information such as passwords, shells, and personal - information.</para> - - <para>Only system administrators, as the superuser, may change - other users' information and passwords with chpass.</para> - - <para>Passed no options, besides the optional username, - <application>chpass</application> displays an editor - containing user information, and upon exit from the editor, - attempts to change the information in the user - database.</para> - - <example> - <title>Interactive chpass by Superuser</title> - - <screen>#Changing user database information for jru. -Login: jru -Password: * -Uid [#]: 1000 -Gid [# or name]: 1000 -Change [month day year]: -Expire [month day year]: -Class: -Home directory: /home/jru -Shell: /usr/local/bin/tcsh -Full Name: J. Random User -Office Location: -Office Phone: -Home Phone: -Other information:</screen> - </example> - - <para>The normal user can change only a small subsection of this - information, and only for themselves.</para> - - <example> - <title>Interactive chpass by Normal User</title> - - <screen>#Changing user database information for jru. -Shell: /usr/local/bin/tcsh -Full Name: J. Random User -Office Location: -Office Phone: -Home Phone: -Other information:</screen> - </example> - - <note> - <para><command>chfn</command> and <command>chsh</command> are - just links to chpass, as are <command>ypchpass</command>, - <command>ypchfn</command>, and - <command>ypchsh</command>. NIS support is automatic, so - specifying the <literal>yp</literal> before the command is - not necessary.</para> - </note> - </sect2> - <sect2 id="users-passwd"> - <title>passwd</title> - - <para><application>passwd</application> is the usual way to - change your own password as a user, or another user's password - as the superuser.</para> - - <note> - <para>Users must type in their original password before - changing their password, to prevent an unauthorized person - from changing their password when the user is away from - their console.</para> - </note> - - <example> - <title>passwd</title> - - <screen>&prompt.user; <userinput>passwd</userinput> -Changing local password for jru. -Old password: -New password: -Retype new password: -passwd: updating the database... -passwd: done - -&prompt.root; <userinput>passwd jru</userinput> -Changing local password for jru. -New password: -Retype new password: -passwd: updating the database... -passwd: done</screen> - </example> - - <note> - <para><command>yppasswd</command> is just a link to - <command>passwd</command>. NIS support is automatic, so - specifying the <literal>yp</literal> before the command is - not necessary.</para> - </note> - </sect2> - </sect1> - - <sect1 id="users-limiting-and-personalizing"> - <title>Limiting and Personalizing Users</title> - - <para>Quotas allow the system administrator to set disk usage - maximums, and users to check their disk usage, if quotas are - used on the system. Quotas are discussed in their <link - linkend="quotas">own chapter</link>.</para> - - <para>Localization is an environment set up by the system - administrator or user to accommodate different languages, - character sets, date and time standards, and so on. This is - discussed in the <link linkend="l10n">localization</link> - chapter.</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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/en_US.ISO8859-1/books/handbook/x11/chapter.sgml b/en_US.ISO8859-1/books/handbook/x11/chapter.sgml deleted file mode 100644 index 2ac4460906..0000000000 --- a/en_US.ISO8859-1/books/handbook/x11/chapter.sgml +++ /dev/null @@ -1,1328 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/x11/chapter.sgml,v 1.11 2000/06/08 01:56:23 jim Exp $ ---> - -<chapter id="x11"> - <title>The X Window System</title> - - <para><emphasis>This chapter has been graciously donated by &a.grog; - from his book, <ulink - url="http://www.cdrom.com/titles/freebsd/bsdcomp_bkx.phtml">The - Complete FreeBSD</ulink>, and remains copyright of - him. Modifications for the handbook made by - &a.jim;.</emphasis></para> - - <sect1> - <title>Synopsis</title> - <para>The following chapter will cover installing and configuring X11 - on your system. For more information on X11 and to see whether your - video card is supported, check the <ulink - url="http://www.xfree86.org/">XFree86</ulink> web site.</para> - </sect1> - - <sect1 id="x-overview"> - <title>Overview</title> - - <para>FreeBSD comes with XFree86, a port of X11R6 that supports - several versions of Intel-based UNIX. This chapter describes how - to set up your XFree86 server. It is based on material supplied - with the FreeBSD release, specifically the files README.FreeBSD - and README.Config in the directory - <filename>/usr/X11R6/lib/X11/doc</filename>. If you find any - discrepancy, the material in those files will be more up-to-date - than this description. In addition, the file - <filename>/usr/X11R6/lib/X11/doc/RELNOTES</filename> contains - OS-independent information about the current release.</para> - - <para>X uses a lot of memory. In order to run X, your system should - have an absolute minimum of 8 MB of memory, but performance will be - painful with so little memory. A more practical minimum is 16 MB, - and you can improve performance by adding more memory. If you use - X intensively, you will continue seeing performance improvement by - increasing to as much as 128 MB of RAM.</para> - - <para>There is lots of useful information in the rest of this chapter, - but maybe you are not interested in information right now. You just - want to get your X server up and running. However, be warned:</para> - - <warning> - <para>An incorrect installation can burn out your monitor or your - video board.</para> - </warning> - - <para>However, if you know you are in spec, and you have a standard - Super VGA board and a good multi-frequency monitor, then you can - probably get things up and running without reading this - chapter.</para> - </sect1> - - <sect1 id="x-install"> - <title>Installing XFree86</title> - - <para>The easiest way to install XFree86 is with the sysinstall - program, either when you are installing the system, or later by - starting the program <command>/stand/sysinstall</command>. In the - rest of this chapter, we will look at what makes up the - distribution, and we will also take a look at manually installing - X11.</para> - - <sect2> - <title>The XFree86 Distribution</title> - - <para>XFree86 is distributed as a bewildering number of archives. - In the following section, we will take a look at what you should - install. Do not worry too much, though; if you cannot decide - what to pick and you have 200MB of disk space free, it's safe to - unpack everything.</para> - - <para>At a minimum you need to unpack the archives in the - following table and at least one server that matches your VGA - board. You will need 10Mb for the minimum required run-time - binaries only, and between 1.7 and 3 MB for the server.</para> - - <para>Below is a table of the required components.</para> - - <informaltable> - <tgroup cols="2"> - <thead> - <row> - <entry>Archive</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><filename>Xbin.tgz</filename></entry> - <entry>All the executable X client applications and shared - libraries.</entry> - </row> - - <row> - <entry><filename>Xfnts.tgz</filename></entry> - <entry>The misc and 75 dpi fonts.</entry> - </row> - - <row> - <entry><filename>Xlib.tgz</filename></entry> - <entry>Data files and libraries needed at runtime.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </sect2> - - <sect2> - <title>The X Server</title> - - <para>In addition to the archives above, you need at least one - server, which will take up about 3 MB of disk. The choice - depends primarily on what kind of display board you have. The - default server name is <filename>/usr/X11R6/bin/X</filename>, and - it is a link to a specific server binary - <filename>/usr/X11R6/bin/XF86_xxxx</filename>. You will find the - server archives for the standard PC architecture in - <filename>/cdrom/XF86336/Servers</filename>, and the servers for - the Japanese PC98 architecture in - <filename>/cdrom/XF86336/PC98-Servers</filename> if you have the - CD set. Alternatively, they are available on our FTP site at - <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/XF86336/Servers/">ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/XF86336/Servers/</ulink> or <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/XF86336/PC98-Servers/">ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/XF86336/PC98-Servers/</ulink></para> - - <para>Available X servers for the standard PC architecture:</para> - - <informaltable> - <tgroup cols="2"> - <thead> - <row> - <entry>Archive</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><filename>X8514.tgz</filename></entry> - <entry>8-bit color for IBM 8514 and true - compatibles.</entry> - </row> - - <row> - <entry><filename>XAGX.tgz</filename></entry> - <entry>8 and 16-bit color for AGX and XGA boards.</entry> - </row> - - <row> - <entry><filename>XI128.tgz</filename></entry> - <entry>8 and 16-bit color for I128 boards.</entry> - </row> - - <row> - <entry><filename>XMa32.tgz</filename></entry> - <entry>8 and 16-bit color for ATI Mach32 boards.</entry> - </row> - - <row> - <entry><filename>XMa64.tgz</filename></entry> - <entry>8, 16, and 32-bit color fot ATI Mach64 - boards.</entry> - </row> - - <row> - <entry><filename>XMa8.tgz</filename></entry> - <entry>8-bit color for ATI Mach8 boards.</entry> - </row> - - <row> - <entry><filename>XMono.tgz</filename></entry> - <entry>1-bit monochrome for VGA, Super-VGA, Hercules, and - others.</entry> - </row> - - <row> - <entry><filename>XP9K.tgz</filename></entry> - <entry>8, 16, and 32-bit color for Weitek P9000 boards - (Diamond Viper).</entry> - </row> - - <row> - <entry><filename>XS3.tgz</filename></entry> - <entry>8, 16, and 32-bit color for S3 boards.</entry> - </row> - - <row> - <entry><filename>XS3V.tgz</filename></entry> - <entry>8 and 16-bit color for S3 ViRGE boards.</entry> - </row> - - <row> - <entry><filename>XSVGA.tgz</filename></entry> - <entry>>=8-bit color for Super-VGA cards.</entry> - </row> - - <row> - <entry><filename>XVG16.tgz</filename></entry> - <entry>4-bit color for VGA and Super-VGA cards.</entry> - </row> - - <row> - <entry><filename>XW32.tgz</filename></entry> - <entry>8-bit color for ET4000/W32, /W32i, /W32p, and - ET6000 cards.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>Available X servers for the Japanese PC98 architecture:</para> - - <informaltable> - <tgroup cols="2"> - <thead> - <row> - <entry>Archive</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><filename>X9GAN.tgz</filename></entry> - <entry>8-bit color for PC98 GA-98NB/WAP boards.</entry> - </row> - - <row> - <entry><filename>X9GA9.tgz</filename></entry> - <entry>8, 16, and 32-bit color for PC98 S3 GA-968 - boards.</entry> - </row> - - <row> - <entry><filename>X9480.tgz</filename></entry> - <entry>8-bit color for PC98 PEGC</entry> - </row> - - <row> - <entry><filename>X9NKV.tgz</filename></entry> - <entry>8-bit color for PC98 NEC-CIRRUS/EPSON NKV/NKV2 - boards.</entry> - </row> - - <row> - <entry><filename>X9WBS.tgz</filename></entry> - <entry>8-bit color for PC98 WAB-S boards.</entry> - </row> - - <row> - <entry><filename>X9WEP.tgz</filename></entry> - <entry>8-bit color for PC98 WAB-EP boards.</entry> - </row> - - <row> - <entry><filename>X9WSN.tgz</filename></entry> - <entry>8-bit color for PC98 WSN-A2F boards.</entry> - </row> - - <row> - <entry><filename>X9EGC.tgz</filename></entry> - <entry>4-bit color for PC98 EGC.</entry> - </row> - - <row> - <entry><filename>X9TGU.tgz</filename></entry> - <entry>8 and 16-bit color for PC98 Trident Cyber9320/9680 - boards.</entry> - </row> - - <row> - <entry><filename>X9NS3.tgz</filename></entry> - <entry>8 and 16-bit color for PC98 NEC S3 boards.</entry> - </row> - - <row> - <entry><filename>X9SPW.tgz</filename></entry> - <entry>8 and 16-bit color for PC98 S3 PW/PCSKB - boards.</entry> - </row> - - <row> - <entry><filename>X9LPW.tgz</filename></entry> - <entry>8 and 16-bit color for PC98 S3 PW/LB boards.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>Each of these servers includes a manual page which contains - details of supported chipsets and server-specific configuration - options.</para> - - <para>There are also a number of archives are provided for X - programmers:</para> - - <informaltable> - <tgroup cols="2"> - <thead> - <row> - <entry>Archive</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><filename>Xprog.tgz</filename></entry> - <entry>Config, <filename>lib*.a</filename>, and - <filename>*.h</filename> files needed for compiling - clients.</entry> - </row> - - <row> - <entry><filename>Xctrb.tgz</filename></entry> - <entry>Contributed sources.</entry> - </row> - - <row> - <entry><filename>Xlk98.tgz</filename></entry> - <entry>The <quote>link kit</quote> for building servers, - Japanese PC98 version.</entry> - </row> - - <row> - <entry><filename>Xlkit.tgz</filename></entry> - <entry>The <quote>link kit</quote> for building servers, - normal PC architecture.</entry> - </row> - - <row> - <entry><filename>Xsrc-1.tgz</filename></entry> - <entry>Part 1 of the complete sources.</entry> - </row> - - <row> - <entry><filename>Xsrc-2.tgz</filename></entry> - <entry>Part 2 of the complete sources.</entry> - </row> - - <row> - <entry><filename>Xsrc-3.tgz</filename></entry> - <entry>Part 3 of the complete sources.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <note> - <para>You will need <filename>Xprog.tgz</filename> if you intend - to install ports of X software.</para> - </note> - - <para>XFree86 also includes a number of optional parts, such as - documentation, and setup programs.</para> - - <informaltable> - <tgroup cols="2"> - <thead> - <row> - <entry>Archive</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><filename>Xdoc.tgz</filename></entry> - <entry>READMEs</entry> - </row> - - <row> - <entry><filename>Xjdoc.tgz</filename></entry> - <entry>READMEs in Japanese.</entry> - </row> - - <row> - <entry><filename>Xps.tgz</filename></entry> - <entry>READMEs in PostScript.</entry> - </row> - - <row> - <entry><filename>Xhtml.tgz</filename></entry> - <entry>READMEs in HTML.</entry> - </row> - - <row> - <entry><filename>Xman.tgz</filename></entry> - <entry>Manual pages.</entry> - </row> - - <row> - <entry><filename>Xcfg.tgz</filename></entry> - <entry>Customizable <command>xinit</command> and - <command>xdm</command> runtime configuration - files.</entry> - </row> - - <row> - <entry><filename>Xset.tgz</filename></entry> - <entry>The <filename>X86Setup</filename> utility; a - graphical version of the <filename>xf86config</filename> - utility.</entry> - </row> - - <row> - <entry><filename>Xjset.tgz</filename></entry> - <entry>The <filename>XF86Setup</filename> utility, - Japanese version, for the normal PC architecture.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para><filename>XF86Setup</filename> is a graphical mode setup - program for XFree86, and you may prefer it to the standard setup - program <filename>xf86config</filename>. You do not need any - special archives for <filename>xf86config</filename>; it is - included in <filename>Xbin.tgz</filename>.</para> - - <para>The first time you install, you will need - <filename>Xcfg.tgz</filename> to create your initial configuration - files. Do not use it when upgrading; it overwrites your - configuration files.</para> - - <para>There are also additional fonts that are available with - XFree86:</para> - - <informaltable> - <tgroup cols="2"> - <thead> - <row> - <entry>Archive</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><filename>Xf100.tgz</filename></entry> - <entry>100 dpi fonts.</entry> - </row> - - <row> - <entry><filename>Xfscl.tgz</filename></entry> - <entry>Speedo and Type1 fonts.</entry> - </row> - - <row> - <entry><filename>Xfnon.tgz</filename></entry> - <entry>Japanese, Chinese, and other non-english - fonts.</entry> - </row> - - <row> - <entry><filename>Xfcyr.tgz</filename></entry> - <entry>Cyrillic fonts.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>Unlike the X servers described above, the archives for the - following servers are all in the main directory.</para> - - <informaltable> - <tgroup cols="2"> - <thead> - <row> - <entry>Archive</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><filename>Xfsrv.tgz</filename></entry> - <entry>The font server.</entry> - </row> - - <row> - <entry><filename>Xnest.tgz</filename></entry> - <entry>A nested server running as a client window on - another display.</entry> - </row> - - <row> - <entry><filename>Xprt.tgz</filename></entry> - <entry>The print server.</entry> - </row> - - <row> - <entry><filename>Xvfb.tgz</filename></entry> - <entry>The Virtual Framebuffer X server, which renders - into memory or an mmapped file.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </sect2> - - <sect2> - <title>Installing XFree86 Manually</title> - - <para>If you do not use sysinstall to install X, you need to perform - a number of steps:</para> - - <procedure> - <step> - <para>Create the directories and unpack the required - archives.</para> - </step> - - <step> - <para>Choose and install an X server.</para> - </step> - - <step> - <para>Set up the environment to be able to access X.</para> - </step> - - <step> - <para>Find a virtual terminal in which to run X.</para> - </step> - - <step> - <para>Configure X for your hardware.</para> - </step> - </procedure> - - <para>This sounds like a lot of work, but if you approach it - methodically, it is not too bad. In the rest of this section, - we will look at each step in turn.</para> - - <sect3> - <title>Unpacking the Archives</title> - - <para>You must unpack the archives as root, since a number of - the executables are set-user-id (they run as root even when - started by other users). If you unpack the server as an - ordinary user, it may abort when you try to run it. You must - also use a umask value of 022 (permissions rwxr-xr-x), because - the X server requires special permissions.</para> - - <screen>&prompt.user; <userinput>su</userinput> -Password: -&prompt.root; <userinput>umask 022</userinput></screen> - - <para>If you do not have enough space in the - <filename>/usr</filename> file system, create a directory on - another partition and symlink it to /usr. For example, if you - have a file system <filename>/home</filename> with adequate - space, you could do:</para> - - <screen>&prompt.root; <userinput>cd /home</userinput> -&prompt.root; <userinput>mkdir X11R6</userinput> -&prompt.root; <userinput>ln -s /home/X11R6 /usr/X11R6</userinput></screen> - - <para>Next, decide which archives you want to install. For a - minimal installation, choose <filename>Xbin.tgz</filename>, - <filename>Xfnts.tgz</filename>, <filename>Xlib.tgz</filename>, - and <filename>Xcfg.tgz</filename>. If you have already - configured X for your hardware, you can omit - <filename>Xcfg.tgz</filename>.</para> - - <para>If you are using sh, unpack like this:</para> - - <screen>&prompt.root; <userinput>mkdir -p /usr/X11R6</userinput> -&prompt.root; <userinput>cd /usr/X11R6</userinput> -&prompt.root; <userinput>for i in bin fnts lib cfg; do</userinput> -&prompt.root; <userinput> tar xzf X$i.tgz</userinput> -&prompt.root; <userinput>done</userinput></screen> - - <para>If you are using csh, enter:</para> - - <screen>&prompt.root; <userinput>mkdir -p /usr/X11R6</userinput> -&prompt.root; <userinput>cd /usr/X11R6</userinput> -&prompt.root; <userinput>foreach i (bin fnts lib cfg)</userinput> -<prompt>?</prompt> <userinput> tar xzf X$i.tgz</userinput> -<prompt>?</prompt> <userinput>end</userinput></screen> - </sect3> - - <sect3> - <title>Installing the Server</title> - - <para>Choose a server archive corresponding to your VGA board. - If the table in the section above does not give you enough - information, check the server man pages, - <filename>/usr/X11R6/man/man1/XF86_*</filename>, which list - the VGA chipsets supported by each server. For example, if - you have an ET4000 based board you will use the - <filename>XF86_SVGA</filename> server. In this case you - would enter:</para> - - <screen>&prompt.root; <userinput>cd /usr/X11R6</userinput> -&prompt.root; <userinput>tar xzf XSVGA.tgz [substitute your server name here]</userinput></screen> - </sect3> - - <sect3> - <title>Setting up the environment</title> - - <para>Next, you may wish to create a symbolic link - <filename>/usr/X11/bin/X</filename> that points to the server - that matches your video board. In this example, it is the - <filename>XF86_SVGA</filename> server:</para> - - <screen>&prompt.root; <userinput>cd /usr/X11R6/bin</userinput> -&prompt.root; <userinput>rm X</userinput> -&prompt.root; <userinput>ln -s XF86_SVGA X</userinput></screen> - - <para>X needs this symbolic link in order to be able to work - correctly, but you have the option of setting it when you run - <filename>xf86config</filename> – see below.</para> - - <para>Next, check that the directory - <filename>/usr/X11R6/bin</filename> is in the default path for - sh in <filename>/etc/profile</filename> and for csh in - <filename>/etc/csh.login</filename>, and add it if it is not. - It is best to do this with an editor, but if you want to take - a shortcut, you can enter:</para> - - <screen>&prompt.root; <userinput>echo 'PATH=$PATH:/usr/X11R6/bin' >>/etc/profile</userinput></screen> - - <para>or:</para> - - <screen>&prompt.root; <userinput>echo 'set path = ($path /usr/X11R6/bin)' >>/etc/csh.login</userinput></screen> - - <para>Alternatively, make sure everybody who uses X puts - <filename>/usr/X11R6/bin</filename> in their shell's - <envar>PATH</envar> variable.</para> - - <para>Next, invoke ldconfig to put the shared libraries in - <filename>ld.so</filename>'s cache:</para> - - <screen>&prompt.root; <userinput>ldconfig -m /usr/X11R6/lib</userinput></screen> - - <para>You can omit invoking <command>ldconfig</command> if you - plan to reboot before using X.</para> - - <para>You do not need to uncompress the font files, but if you - do, you must run <command>mkfontdir</command> in the - corresponding font directory, otherwise your server will abort - with the message <quote>could not open default font - `fixed'</quote>.</para> - </sect3> - - <sect3> - <title>Assigning a virtual terminal to X</title> - - <para>Next, make sure you have a spare virtual console which is - running a getty. First check how many virtual consoles you - have:</para> - - <screen>&prompt.root; <userinput>dmesg | grep virtual</userinput> -sc0: VGA color <16 virtual consoles, flags=0x0></screen> - - <para>Then check <filename>/etc/ttys</filename> to make sure - there is at least one virtual terminal (ttyvxx device) which - does not have a getty enabled. Look for the keyword - <literal>off</literal>:</para> - - <screen>&prompt.root; <userinput>grep ttyv /etc/ttys</userinput> -ttyv0 "/usr/libexec/getty Pc" cons25 on secure -ttyv1 "/usr/libexec/getty Pc" cons25 on secure -ttyv2 "/usr/libexec/getty Pc" cons25 on secure -ttyv3 "/usr/libexec/getty Pc" cons25 off secure</screen> - - <para>In this case, <filename>/dev/ttyv3</filename> is - available, if your kernel has least 4 VTs. If not, either - disable a getty in <filename>/etc/ttys</filename> by - changing on to off, or build another kernel with more virtual - terminals.</para> - </sect3> - - <sect3> - <title>Configuring X for Your Hardware</title> - - <para>After installing the X software, you will need to - customize the file <filename>XF86Config</filename>, which - tells the X server about your hardware and how you want to - run it.</para> - - <para>In order to set up <filename>XF86Config</filename>, you - will need the following hardware information:</para> - - <itemizedlist> - <listitem> - <para>Your mouse type, the bit rate if it is a serial mouse, - and the name of the device to which it is connected. This - will typically be <filename>/dev/ttyd0</filename> or - <filename>/dev/ttyd1</filename> for a serial mouse, - <filename>/dev/psm0</filename> for a PS/2 mouse, or - <filename>/dev/mse0</filename> for a bus mouse.</para> - </listitem> - - <listitem> - <para>The type of the video board and the amount of display - memory. If it is a no-name board, establish what VGA chip - set it uses.</para> - </listitem> - - <listitem> - <para>The parameters of your monitor; vertical and - horizontal frequency.</para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>Identifying the hardware</title> - - <para>How do you decide what your hardware is? The manufacturer - should tell you, but very often the information you get about - your display board and monitor is pitiful; <quote>Super VGA - board with 76 Hz refresh rate and 16,777,216 colors</quote>. - This tells you the maximum pixel depth (24 bits – - the - number of colors is 2(pixel depth)), but it doesn't tell you - anything else about the display board.</para> - - <para>As we will see later, the real parameters you need to know - are the maximum horizontal frequency, the dot clock range, the - chipset and the amount of display memory.</para> - - <para>You could be unlucky trying to get some of this - information, but you can get some with the - <command>SuperProbe</command> program. It should always be - able to tell you the chipset and the amount of memory on - board.</para> - - <para>Occasionally <command>SuperProbe</command> can crash your - system. Make sure you are not doing anything important when - you run it. Running SuperProbe looks like this:</para> - - <screen>&prompt.root; <userinput>SuperProbe</userinput> -(warnings and acknowledgments omitted) -First video: Super-VGA - Chipset: Tseng ET4000 (Port Probed) - Memory: 1024 Kbytes - RAMDAC: Generic 8-bit pseudo-color DAC - (with 6-bit wide lookup tables (or in 6-bit mode))</screen> - - <para><command>SuperProbe</command> is very finicky about - running at all, and you will often get messages like:</para> - - <screen>SuperProbe: Cannot be run while an X server is running -SuperProbe: If an X server is not running, unset $DISPLAY and try again -SuperProbe: Cannot open video</screen> - - <para>In other words, even if no X server is running, - <command>SuperProbe</command> will not work if you have the - environment variable <envar>DISPLAY</envar> set. How do you - unset it? With Bourne-style shells, you enter:</para> - - <screen>&prompt.root; <userinput>unset DISPLAY</userinput></screen> - - <para>In the C shell, you enter:</para> - - <screen>&prompt.root; <userinput>unsetenv DISPLAY</userinput></screen> - </sect3> - - <sect3> - <title>Running <command>xf86config</command></title> - - <para>The easy way to create your configuration file is with one - of the utilities <command>xf86config</command> (note the lower - case name) or <command>XF86Setup</command>. Both lead you - through the configuration step by step. - <command>xf86config</command> runs in character mode, while - <command>XF86Setup</command> runs in a graphical mode. - <command>XF86Setup</command> can have problems with unusual - hardware, so I personally prefer - <command>xf86config</command>.</para> - - <para>You can also use sysinstall, but this does not change - much; <application>sysinstall</application> just starts - <command>xf86config</command> for you, and it is easier to - start it directly. In this section, we will use an example to - illustrate configuration via <command>xf86config</command>. - We are installing X for an ancient Diamond SpeedStar with 1 MB - of display memory, a Logitech MouseMan mouse, and an ADI - MicroScan 5AP monitor. The mouse is connected to the system - via the first serial port, - <filename>/dev/ttyd0</filename>.</para> - - <para>To run <command>xf86config</command>, type in the name. If - <filename>/usr/X11R6/bin</filename> is included in your - <envar>PATH</envar> environment variable, you just need to type - <command>xf86config</command>. If it is not, you need to type - out the full path to <command>xf86config</command>, like - so:</para> - - <screen>&prompt.root; <userinput>/usr/X11R6/bin/xf86config</userinput></screen> - - <para>This program will create a basic - <filename>XF86Config</filename>file, based on menu selections - you make.</para> - - <para>The <filename>XF86Config</filename> file usually resides - in <filename>/usr/X11R6/lib/X11</filename> or - <filename>/etc</filename>. A sample - <filename>XF86Config</filename> file is supplied with XFree86; - it is configured for a standard VGA card and monitor with - 640x480 resolution. This program will ask for a pathname when - it is ready to write the file.</para> - - <para>You can either take the sample - <filename>XF86Config</filename> as a base and edit it for your - configuration, or let this program produce a base - <filename>XF86Config</filename> file for your configuration - and fine-tune it. Refer to - <filename>/usr/X11R6/lib/X11/doc/README.Config</filename> for - a detailed overview of the configuration process.</para> - - <para>For accelerated servers (including accelerated drivers in - the SVGA server), there are many chipset and card-specific - options and settings. This program does not know about these. - On some configurations some of these settings must be - specified. Refer to the server man pages and chipset-specific - READMEs.</para> - - <para>Before continuing with this program, make sure you know - the chipset and amount of video memory on your video card. - <command>SuperProbe</command> can help with this. It is also - helpful if you know what server you want to run.</para> - - <screen>Press enter to continue, or ctrl-c to abort. ENTER - -First specify a mouse protocol type. Choose one from the following list: - - 1. Microsoft compatible (2-button protocol) - 2. Mouse Systems (3-button protocol) - 3. Bus Mouse - 4. PS/2 Mouse - 5. Logitech Mouse (serial, old type, Logitech protocol) - 6. Logitech MouseMan (Microsoft compatible) - 7. MM Series - 8. MM HitTablet - 9. Microsoft IntelliMouse</screen> - - <para>If you have a two-button mouse, it is most likely of type - 1, and if you have a three-button mouse, it can probably - support both protocol 1 and 2. There are two main varieties - of the latter type; mice with a switch to select the protocol, - and mice that default to 1 and require a button to be held at - boot-time to select protocol 2. Some mice can be convinced to - do 2 by sending a special sequence to the serial port (see the - ClearDTR/ClearRTS options).</para> - - <screen>Enter a protocol number: 6 Logitech MouseMan - -You have selected a Logitech MouseMan type mouse. You might want to enable -ChordMiddle which could cause the third button to work. - -Please answer the following question with either 'y' or 'n'. -Do you want to enable ChordMiddle? n</screen> - - <para>You definitely want to enable the third button on your - mouse, since many X clients use it. With a genuine Logitech - mouse, however, you don't need to enable - <literal>ChordMiddle</literal> in order to use the button. If - you find that the third button does not work when you start X, - you can enable <literal>ChordMiddle</literal> by editing the - configuration file – it is much easier and less - error-prone than re-running <command>XF86Setup</command>.</para> - - <para>Continuing through the setup:</para> - - <screen>If your mouse has only two buttons, it is recommended that you enable Emulate3Buttons. - -Please answer the following question with either 'y' or 'n'. -Do you want to enable Emulate3Buttons? n - -Now give the full device name that the mouse is connected to, for example -/dev/tty00. Just pressing enter will use the default, /dev/mouse. - -Mouse device: /dev/ttyd1</screen> - - <para>Be very careful about this entry. You must specify the - correct name for the device to which the mouse is connected. - <command>xf86config</command> is not specific to FreeBSD, and - the suggested example is just plain wrong for FreeBSD. Use - the names <filename>/dev/ttyd0</filename> through - <filename>/dev/ttyd3</filename> for serial mice, - <filename>/dev/psm0</filename> for PS/2 mice or - <filename>/dev/mse0</filename> for a bus mouse.</para> - - <para>Continuing, we see:</para> - - <screen>Beginning with XFree86 3.1.2D, you can use the new X11R6.1 -XKEYBOARD extension to manage the keyboard layout. If you answer 'n' to the -following question, the server will use the old method, and you have to -adjust your keyboard layout with xmodmap. - -Please answer the following question with either 'y' or 'n'. -Do you want to use XKB? y - -The following dialogue will allow you to select from a list of already -preconfigured keymaps. If you don't find a suitable keymap in the list, -the program will try to combine a keymap from additional information you -are asked then. Such a keymap is by default untested and may require -manual tuning. Please report success or required changes for such a -keymap to XFREE86@XFREE86.ORG for addition to the list of preconfigured -keymaps in the future. - -Press enter to continue, or ctrl-c to abort. - -List of preconfigured keymaps: - - 1 Standard 101-key, US encoding - 2 Microsoft Natural, US encoding - 3 KeyTronic FlexPro, US encoding - 4 Standard 101-key, US encoding with ISO9995-3 extensions - 5 Standard 101-key, German encoding - 6 Standard 101-key, French encoding - 7 Standard 101-key, Thai encoding - 8 Standard 101-key, Swiss/German encoding - 9 Standard 101-key, Swiss/French encoding - 10 None of the above - -Enter a number to choose the keymap. - -1 Choose the standard US keyboard</screen> - - <para>Now we want to set the specifications of the monitor. The - two critical parameters are the vertical refresh rate, which - is the rate at which the the whole screen is refreshed, and - most importantly the horizontal sync rate, which is the rate - at which scanlines are displayed.</para> - - <para>The valid range for horizontal sync and vertical sync - should be documented in the manual of your monitor. If in - doubt, check the monitor database - <filename>/usr/X11R6/lib/X11/doc/Monitors</filename> to see if - your monitor is there.</para> - - <screen>Press enter to continue, or ctrl-c to abort. ENTER - -You must indicate the horizontal sync range of your monitor. You can either -select one of the predefined ranges below that correspond to industry- -standard monitor types, or give a specific range. - -It is VERY IMPORTANT that you do not specify a monitor type with a horizontal -sync range that is beyond the capabilities of your monitor. If in doubt, -choose a conservative setting. - - hsync in kHz; monitor type with characteristic modes - 1 31.5; Standard VGA, 640x480 @@ 60 Hz - 2 31.5 - 35.1; Super VGA, 800x600 @@ 56 Hz - 3 31.5, 35.5; 8514 Compatible, 1024x768 @@ 87 Hz interlaced (no 800x600) - 4 31.5, 35.15, 35.5; Super VGA, 1024x768 @@ 87 Hz interlaced, 800x600 @@ 56 Hz - 5 31.5 - 37.9; Extended Super VGA, 800x600 @@ 60 Hz, 640x480 @@ 72 Hz - 6 31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @@ 60 Hz, 800x600 @@ 72 Hz - 7 31.5 - 57.0; High Frequency SVGA, 1024x768 @@ 70 Hz - 8 31.5 - 64.3; Monitor that can do 1280x1024 @@ 60 Hz - 9 31.5 - 79.0; Monitor that can do 1280x1024 @@ 74 Hz -10 31.5 - 82.0; Monitor that can do 1280x1024 @@ 76 Hz -11 Enter your own horizontal sync range - -Enter your choice (1-11):</screen> - - <para>Unfortunately, our monitor is not mentioned in the file - <filename>/usr/X11R6/lib/X11/doc/Monitors</filename>, but by - chance the manual does specify the frequency range in the - Technical Data section. The horizontal frequency range is - from 30 to 64 kHz, and the vertical frequency range is from - 50 to 100 Hz. The horizontal frequency range is almost - exactly covered by choice 8, but that setting threatens to go - 0.3 kHz higher in frequency than the technical data state. Do - you want to risk it? Doing so will most likely not be a - problem, since it is unlikely that the monitor will die at - such a small deviation from the specs, and it is also unlikely - that your <filename>XF86Config</filename> will actually - generate a horizontal frequency between 64.0 and 64.3 kHz. - However, there is no need to take even this slight risk. Just - specify the real values:</para> - - <screen>Enter your choice (1-11): 11 - -Please enter the horizontal sync range of your monitor, in the format used -in the table of monitor types above. You can either specify one or more -continuous ranges (e.g. 15-25, 30-50), or one or more fixed sync -frequencies. - -Horizontal sync range: 30-64</screen> - - <para>Next, we select the vertical frequency range:</para> - - <screen>You must indicate the vertical sync range of your monitor. -You can either select one of the predefined ranges below that correspond -to industry-standard monitor types, or give a specific range. For -interlaced modes, the number that counts is the high one (e.g., 87 Hz -rather than 43 Hz). - - 1 50-70 - 2 50-90 - 3 50-100 - 4 40-150 - 5 Enter your own vertical sync range - -Enter your choice: 3 exactly the range of the monitor</screen> - - <para>The next step is to specify identification strings. You - can think out names if you want, but unless you are juggling a - lot of different hardware, you can let - <command>xf86config</command> do it for you:</para> - - <screen>You must now enter a few identification/description strings, -namely an identifier, a vendor name, and a model name. Just pressing enter -will fill in default names. - -The strings are free-form, spaces are allowed. -Enter an identifier for your monitor definition: ENTER -Enter the vendor name of your monitor: ENTER -Enter the model name of your monitor: ENTER</screen> - - <para>Next comes the choice of the video board. We have an - elderly Diamond SpeedStar Plus with an ET4000 chip, and - unknown Ramdac and Clock Chip. Let's see how we fare:</para> - - <screen>Now we must configure video card specific settings. At -this point you can choose to make a selection out of a database of video -card definitions. Because there can be variation in Ramdacs and clock -generators even between cards of the same model, it is not sensible to -blindly copy the settings (e.g., a Device section). For this reason, -after you make a selection, you will still be asked about the components -of the card, with the settings from the chosen database entry presented as -a strong hint. - -The database entries include information about the chipset, what server to -run, the Ramdac and ClockChip, and comments that will be included in the -Device section. However, a lot of definitions only hint about what server -to run (based on the chipset the card uses) and are untested. - -If you can't find your card in the database, there's nothing to worry about. -You should only choose a database entry that is exactly the same model as -your card; choosing one that looks similar is just a bad idea (e.g. a -GemStone Snail 64 may be as different from a GemStone Snail 64+ in terms of -hardware as can be). - -Do you want to look at the card database? y - 0 2 the Max MAXColor S3 Trio64V+ S3 Trio64V+ - 1 928Movie S3 928 - 2 AGX (generic) AGX-014/15/16 - 3 ALG-5434(E) CL-GD5434 - 4 ASUS 3Dexplorer RIVA128 - 5 ASUS PCI-AV264CT ATI-Mach64 - 6 ASUS PCI-V264CT ATI-Mach64 - 7 ASUS Video Magic PCI V864 S3 864 - 8 ASUS Video Magic PCI VT64 S3 Trio64 - 9 AT25 Alliance AT3D - 10 AT3D Alliance AT3D - 11 ATI 3D Pro Turbo ATI-Mach64 - 12 ATI 3D Xpression ATI-Mach64 - 13 ATI 3D Xpression+ PC2TV ATI-Mach64 - 14 ATI 8514 Ultra (no VGA) ATI-Mach8 - 15 ATI All-in-Wonder ATI-Mach64 - 16 ATI Graphics Pro Turbo ATI-Mach64 - 17 ATI Graphics Pro Turbo 1600 ATI-Mach64 - -Enter a number to choose the corresponding card definition. -Press enter for the next page, q to continue configuration. -ENTER</screen> - - <para>Dozens of board definitions come in alphabetic order. - Finally we see:</para> - - <screen>108 DSV3325 S3 ViRGE -109 DSV3326 S3 Trio64V+ -110 DataExpert DSV3325 S3 ViRGE -111 DataExpert DSV3365 S3 Trio64V+ -112 Dell S3 805 S3 801/805 -113 Dell onboard ET4000 ET4000 -114 Diamond Edge 3D nv1 -115 Diamond Multimedia Stealth 3D 2000 S3 ViRGE -116 Diamond Multimedia Stealth 3D 2000 PRO S3 ViRGE/DX -117 Diamond SpeedStar (Plus) ET4000 -118 Diamond SpeedStar 24 ET4000 -119 Diamond SpeedStar 24X (not fully supported) WD90C31 -120 Diamond SpeedStar 64 CL-GD5434 -121 Diamond SpeedStar HiColor ET4000 -122 Diamond SpeedStar Pro (not SE) CL-GD5426/28 -123 Diamond SpeedStar Pro 1100 CL-GD5420/2/4/6/8/9 -124 Diamond SpeedStar Pro SE (CL-GD5430/5434) CL-GD5430/5434 -125 Diamond SpeedStar64 Graphics 2000/2200 CL-GD5434 - -Enter a number to choose the corresponding card definition. -Press enter for the next page, q to continue configuration. - -117 - -Your selected card definition: - -Identifier: Diamond SpeedStar (Plus) -Chipset: ET4000 -Server: XF86_SVGA - -Press enter to continue, or ctrl-c to abort.ENTER - -Now you must determine which server to run. Refer to the man pages and -other documentation. The following servers are available (they may not -all be installed on your system): - - 1 The XF86_Mono server. This a monochrome server that should work on any - VGA-compatible card, in 640x480 (more on some SVGA chipsets). - 2 The XF86_VGA16 server. This is a 16-color VGA server that should work on - any VGA-compatible card. - 3 The XF86_SVGA server. This is a 256 color SVGA server that supports - a number of SVGA chipsets. On some chipsets it is accelerated or - supports higher color depths. - 4 The accelerated servers. These include XF86_S3, XF86_Mach32, XF86_Mach8, - XF86_8514, XF86_P9000, XF86_AGX, XF86_W32, XF86_Mach64, XF86_I128 and - XF86_S3V. - -These four server types correspond to the four different "Screen" sections in -XF86Config (vga2, vga16, svga, accel). - - 5 Choose the server from the card definition, XF86_SVGA. - -Which one of these screen types do you intend to run by default (1-5)?</screen> - - <para>The system already chose XF86_SVGA for us. Do we want to - change? We would need a good reason. In this case, we do not - have a reason, so we will keep the server from the card - definition:</para> - - <screen>Which one of these screen types do you intend to run by default (1-5)? 5 - -The server to run is selected by changing the symbolic link 'X'. For example, -the SVGA server. - -Please answer the following question with either 'y' or 'n'. -Do you want me to set the symbolic link? y</screen> - - <para>All the programs that start X (xinit, startx, and xdm) - start a program <filename>/usr/X11R6/bin/X</filename>. This - symbolic link makes <filename>/usr/X11R6/bin/X</filename> - point to your X server. If you don't have a link, you will - not be able to start X.</para> - - <screen>Now you must give information about your video card. This -will be used for the "Device" section of your video card in XF86Config. - -You must indicate how much video memory you have. It is probably a good -idea to use the same approximate amount as that detected by the server you -intend to use. If you encounter problems that are due to the used server -not supporting the amount memory you have (e.g. ATI Mach64 is limited to -1024K with the SVGA server), specify the maximum amount supported by the -server. - -How much video memory do you have on your video card: - - 1 256K - 2 512K - 3 1024K - 4 2048K - 5 4096K - 6 Other - -Enter your choice: 3 - -You must now enter a few identification/description strings, namely an -identifier, a vendor name, and a model name. Just pressing enter will fill -in default names (possibly from a card definition). - -Your card definition is Diamond SpeedStar (Plus). - -The strings are free-form, spaces are allowed. -Enter an identifier for your video card definition: ENTER -You can simply press enter here if you have a generic card, or want to -describe your card with one string. -Enter the vendor name of your video card: ENTER -Enter the model (board) name of your video card: ENTER - -Especially for accelerated servers, Ramdac, Dacspeed and ClockChip settings -or special options may be required in the Device section. - -The RAMDAC setting only applies to the S3, AGX, W32 servers, and some -drivers in the SVGA servers. Some RAMDAC's are auto-detected by the server. -The detection of a RAMDAC is forced by using a Ramdac "identifier" line in -the Device section. The identifiers are shown at the right of the following -table of RAMDAC types: - - 1 AT&T 20C490 (S3 and AGX servers, ARK driver) att20c490 - 2 AT&T 20C498/21C498/22C498 (S3, autodetected) att20c498 - 3 AT&T 20C409/20C499 (S3, autodetected) att20c409 - 4 AT&T 20C505 (S3) att20c505 - 5 BrookTree BT481 (AGX) bt481 - 6 BrookTree BT482 (AGX) bt482 - 7 BrookTree BT485/9485 (S3) bt485 - 8 Sierra SC15025 (S3, AGX) sc15025 - 9 S3 GenDAC (86C708) (autodetected) s3gendac - 10 S3 SDAC (86C716) (autodetected) s3_sdac - 11 STG-1700 (S3, autodetected) stg1700 - 12 STG-1703 (S3, autodetected) stg1703 - - -Enter a number to choose the corresponding RAMDAC. -Press enter for the next page, q to quit without selection of a RAMDAC. - - -q We don't need this - - -A Clockchip line in the Device section forces the detection of a -programmable clock device. With a clockchip enabled, any required -clock can be programmed without requiring probing of clocks or a -Clocks line. Most cards don't have a programmable clock chip. -Choose from the following list: - - 1 Chrontel 8391 ch8391 - 2 ICD2061A and compatibles (ICS9161A, DCS2824) icd2061a - 3 ICS2595 ics2595 - 4 ICS5342 (similar to SDAC, but not completely compatible) ics5342 - 5 ICS5341 ics5341 - 6 S3 GenDAC (86C708) and ICS5300 (autodetected) s3gendac - 7 S3 SDAC (86C716) s3_sdac - 8 STG 1703 (autodetected) stg1703 - 9 Sierra SC11412 sc11412 -10 TI 3025 (autodetected) ti3025 -11 TI 3026 (autodetected) ti3026 -12 IBM RGB 51x/52x (autodetected) ibm_rgb5xx - -Just press enter if you don't want a Clockchip setting. -What Clockchip setting do you want (1-12)? ENTER - -For most configurations, a Clocks line is useful since it prevents the slow -and nasty sounding clock probing at server start-up. Probed clocks are -displayed at server startup, along with other server and hardware -configuration info. You can save this information in a file by running -imprecise; some clocks may be slightly too high (varies per run). - -At this point I can run X -probeonly, and try to extract the clock information -from the output. It is recommended that you do this yourself and add a clocks -line (note that the list of clocks may be split over multiple Clocks lines) to -your Device section afterwards. Be aware that a clocks line is not -appropriate for drivers that have a fixed set of clocks and don't probe by -default (e.g. Cirrus). Also, for the P9000 server you must simply specify -clocks line that matches the modes you want to use. For the S3 server with -a programmable clock chip you need a 'ClockChip' line and no Clocks line. - -You must be root to be able to run X -probeonly now. - -Do you want me to run 'X -probeonly' now?</screen> - - <para>This last question is worth thinking about. You should - run X -probeonly at some point, but it requires some extra - work. We'll take the recommendation and try it later.</para> - - <screen>Do you want me to run 'X -probeonly' now? n - -For each depth, a list of modes (resolutions) is defined. The default -resolution that the server will start-up with will be the first listed -mode that can be supported by the monitor and card. -Currently it is set to: - -"640x480" "800x600" "1024x768" for 8bpp -"640x480" "800x600" for 16bpp -"640x480" for 24bpp -"640x400" for 32bpp - -Note that 16, 24 and 32bpp are only supported on a few configurations. -Modes that cannot be supported due to monitor or clock constraints will -be automatically skipped by the server. - - 1 Change the modes for 8pp (256 colors) - 2 Change the modes for 16bpp (32K/64K colors) - 3 Change the modes for 24bpp (24-bit color, packed pixel) - 4 Change the modes for 32bpp (24-bit color) - 5 The modes are OK, continue. - -Enter your choice: 5 accept the defaults - -You can have a virtual screen (desktop), which is screen area that is larger -than the physical screen and which is panned by moving the mouse to the edge -of the screen. If you don't want virtual desktop at a certain resolution, -you cannot have modes listed that are larger. Each color depth can have a -differently-sized virtual screen - -Please answer the following question with either 'y' or 'n'. -Do you want a virtual screen that is larger than the physical screen? n</screen> - - <para>It is difficult to decide whether you want a virtual - screen larger than the physical screen. I find it extremely - disturbing, so I suggest you answer n. You might find it - useful, especially if your highest resolution is small.</para> - - <para>Now the configuration is complete, and - <application>sysinstall</application> just need to write the - configuration file:</para> - - <screen>I am going to write the XF86Config file now. Make sure -you don't accidently overwrite a previously configured one. - -Shall I write it to /etc/XF86Config? y - -File has been written. Take a look at it before running 'startx'. Note that -the XF86Config file must be in one of the directories searched by the server -(e.g. /usr/X11R6/lib/X11) in order to be used. Within the server press -ctrl, alt and '+' simultaneously to cycle video resolutions. Pressing ctrl, -alt and backspace simultaneously immediately exits the server (use if -the monitor doesn't sync for a particular mode). - -For further configuration, refer to /usr/X11R6/lib/X11/doc/README.Config.</screen> - - <para>Once you have completed this configuration, you are ready to - start X.</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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/en_US.ISO8859-1/books/porters-handbook/Makefile b/en_US.ISO8859-1/books/porters-handbook/Makefile deleted file mode 100644 index 4557e616bf..0000000000 --- a/en_US.ISO8859-1/books/porters-handbook/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -# -# $FreeBSD: doc/en_US.ISO_8859-1/books/porter-handbook/Makefile,v 1.1 2000/04/22 23:47:57 nik Exp $ -# -# Build the FreeBSD Porter's Handbook. -# - -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 - -# Use the local DSSSL file -DSLHTML?= ${.CURDIR}/freebsd.dsl -DSLPRINT?= ${.CURDIR}/freebsd.dsl - -DOC_PREFIX?= ${.CURDIR}/../../.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/en_US.ISO8859-1/books/porters-handbook/book.sgml b/en_US.ISO8859-1/books/porters-handbook/book.sgml deleted file mode 100644 index 9ee4cefd18..0000000000 --- a/en_US.ISO8859-1/books/porters-handbook/book.sgml +++ /dev/null @@ -1,4042 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/porters-handbook/book.sgml,v 1.106 2000/06/10 21:05:53 asmodai Exp $ ---> - -<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> -%man; - -<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//EN"> -%bookinfo; - -<!ENTITY % authors SYSTEM "../handbook/authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "../handbook/mailing-lists.ent"> -%mailing-lists; - -]> - -<book> - <bookinfo> - <title>FreeBSD Porter's Handbook</title> - - <authorgroup> - <author> - <surname>The FreeBSD Documentation Project</surname> - <affiliation> - <address> - <email>doc@FreeBSD.org</email> - </address> - </affiliation> - </author> - </authorgroup> - - <pubdate>April 2000</pubdate> - - <copyright> - <year>2000</year> - </copyright> - - &bookinfo.legalnotice; - </bookinfo> - - - <chapter> - <title>Making a port yourself</title> - - <para>So, now you are interested in making your own port or - upgrading an existing one? Great!</para> - - <para>What follows are some guidelines for creating a new port for - FreeBSD. If you want to upgrade an existing port, you should - read this and then read <xref linkend="port-upgrading">.</para> - - <para>When this document is not sufficiently detailed, you should - refer to <filename>/usr/ports/Mk/bsd.port.mk</filename>, which - all port Makefiles include. Even if you do not hack Makefiles - daily, it is well commented, and you will still gain much - knowledge from it. Additionally, you may send specific questions - to &a.ports;.</para> - - <note> - <para>Only a fraction of the variables - (<makevar><replaceable>VAR</replaceable></makevar>) that can be - overridden are mentioned in this document. Most (if not all) - are documented at the start of <filename>bsd.port.mk</filename>. - This file uses a non-standard tab setting. - <application>Emacs</application> and - <application>Vim</application> should recognize the setting on - loading the file. Both <command>vi</command> and - <command>ex</command> can be set to use the correct value by - typing <command>:set tabstop=4</command> once the file has been - loaded.</para> - </note> - </chapter> - - <chapter id="quick-porting"> - <title>Quick Porting</title> - - <para>This section tells you how to do a quick port. In many cases, it - is not enough, but we will see.</para> - - <para>First, get the original tarball and put it into - <makevar>DISTDIR</makevar>, which defaults to - <filename>/usr/ports/distfiles</filename>.</para> - - <note> - <para>The following assumes that the software compiled out-of-the-box, - i.e., there was absolutely no change required for the port to work - on your FreeBSD box. If you needed to change something, you will - have to refer to the next section too.</para> - </note> - - <sect1> - <title>Writing the <filename>Makefile</filename></title> - - <para>The minimal <filename>Makefile</filename> would look something - like this:</para> - - <programlisting> -# New ports collection makefile for: oneko -# Date created: 5 December 1994 -# Whom: asami -# -# $FreeBSD$ -# - -PORTNAME= oneko -PORTVERSION= 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>See if you can figure it out. Do not worry about the contents - of the <literal>$FreeBSD$</literal> line, it will be - filled in automatically by CVS when the port is imported to our main - ports tree. You can find a more detailed example in the <link - linkend="porting-samplem">sample Makefile</link> section.</para> - </sect1> - - <sect1> - <title>Writing the description files</title> - - <para>There are three description files that are required for any - port, whether they actually package or not. They are - <filename>COMMENT</filename>, <filename>DESCR</filename>, and - <filename>PLIST</filename>, and reside in the - <filename>pkg</filename> subdirectory.</para> - - <sect2> - <title><filename>COMMENT</filename></title> - - <para>This is the one-line description of the port. - <emphasis>Please</emphasis> do not include the package name (or - version number of the software) in the comment. The comment - should begin with a capital, and end without a period. Here - is an example:</para> - - <programlisting> -A cat chasing a mouse all over the screen</programlisting> - </sect2> - - <sect2> - <title><filename>DESCR</filename></title> - - <para>This is a longer description of the port. One to a few - paragraphs concisely explaining what the port does is - sufficient.</para> - - <note> - <para>This is <emphasis>not</emphasis> a manual or an in-depth - description on how to use or compile the port! <emphasis>Please - be careful if you are copying from the - <filename>README</filename> or manpage</emphasis>; too often - they are not a concise description of the port or are in an - awkward format (e.g., manpages have justified spacing). If the - ported software has an official WWW homepage, you should list it - here. Prefix <emphasis>one</emphasis> of the websites with - <literal>WWW:</literal> so that automated tools will work - correctly.</para> - </note> - - <para>It is recommended that you sign your name at the end of this - file, as in:</para> - - <programlisting> -This is a port of oneko, in which a cat chases a poor mouse all over -the screen. - : -(etc.) - -WWW: http://www.oneko.org/ - -- Satoshi -asami@cs.berkeley.edu</programlisting> - </sect2> - - <sect2> - <title><filename>PLIST</filename></title> - - <para>This file lists all the files installed by the port. It is - also called the “packing list” because the package is - generated by packing the files listed here. The pathnames are - relative to the installation prefix (usually - <filename>/usr/local</filename> or - <filename>/usr/X11R6</filename>). If you are using the - <makevar>MAN<replaceable>n</replaceable></makevar> variables (as - you should be), do not list any manpages here.</para> - - <para>Here is a small example:</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>Refer to the &man.pkg.create.1; man page for details on the - packing list.</para> - - <note> - <para>You should list all the files, but not the name directories, - in the list. Also, if the port creates directories for itself - during installation, make sure to add <literal>@dirrm</literal> - lines as necessary to remove them when the port is - deleted.</para> - - <para>It is recommended that you keep all the filenames in this - file sorted alphabetically. It will make verifying the changes - when you upgrade the port much easier.</para> - - <para>Creating a packing list manually can be a very tedious - task. If the port installs a large numbers of files, <link - linkend="porting-autoplist">creating the packing list - automatically</link> might save time.</para> - </note> - </sect2> - </sect1> - - <sect1> - <title>Creating the checksum file</title> - - <para>Just type <command>make makesum</command>. The ports make rules - will automatically generate the file - <filename>files/md5</filename>.</para> - </sect1> - - <sect1 id="porting-testing"> - <title>Testing the port</title> - - <para>You should make sure that the port rules do exactly what you - want them to do, including packaging up the port. These are the - important points you need to verify.</para> - - <itemizedlist> - <listitem> - <para><filename>PLIST</filename> does not contain anything not - installed by your port</para> - </listitem> - - <listitem> - <para><filename>PLIST</filename> contains everything that is - installed by your port</para> - </listitem> - - <listitem> - <para>Your port can be installed multiple times using the - <maketarget>reinstall</maketarget> target</para> - </listitem> - - <listitem> - <para>Your port <link linkend="porting-cleaning">cleans up</link> - after itself upon deinstall</para> - </listitem> - </itemizedlist> - - <procedure> - <title>Recommended test ordering</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 <replaceable>package-name</replaceable> - </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>Make sure that there are not any warnings issued in any of the - <maketarget>package</maketarget> and - <maketarget>deinstall</maketarget> stages. After step 3, check to - see if all the new directories are correctly deleted. Also, try - using the software after step 4, to ensure that it works correctly - when installed from a package.</para> - </sect1> - - <sect1 id="porting-portlint"> - <title>Checking your port with <command>portlint</command></title> - - <para>Please use <command>portlint</command> to see if your port - conforms to our guidelines. The <command>portlint</command> program - is part of the ports collection. In particular, you may want to - check if the <link linkend="porting-samplem">Makefile</link> is in - the right shape and the <link - linkend="porting-pkgname">package</link> is named - appropriately.</para> - </sect1> - - <sect1 id="porting-submitting"> - <title>Submitting the port</title> - - <para>First, make sure you have read the <link - linkend="porting-dads">DOs and DON'Ts</link> section.</para> - - <para>Now that you are happy with your port, the only thing remaining - is to put it in the main FreeBSD ports tree and make everybody else - happy about it too. We do not need your <filename>work</filename> - directory or the <filename>pkgname.tgz</filename> package, so delete - them now. Next, simply include the output of <command>shar `find - port_dir`</command> in a bug report and send it with the - &man.send-pr.1; program (see <ulink url="../handbook/contrib-how.html#CONTRIB-GENERAL">Bug - Reports and General Commentary</ulink> for more information about - &man.send-pr.1;. If the uncompressed port is larger than 20KB, - you should compress it into a tarfile and use &man.uuencode.1; - before including it in the bug report (uuencoded tarfiles are - acceptable even if the bug report is smaller than 20KB but are not - preferred). Be sure to classify the bug report as category - <literal>ports</literal> and class - <literal>change-request</literal>. (Do not mark the report - <literal>confidential</literal>!)</para> - - <para>One more time, <emphasis>do not include the original source - distfile, the <filename>work</filename> directory, or the package - you built with <command>make package</command></emphasis>.</para> - - <note> - <para>In the past, we asked you to upload new port submissions in - our ftp site (<hostid role="fqdn">ftp.FreeBSD.org</hostid>). This - is no longer recommended as read access is turned off on that - <filename>incoming/</filename> directory of that site due to the - large amount of pirated software showing up there.</para> - </note> - - <para>We will look at your port, get back to you if necessary, and put - it in the tree. Your name will also appear in the list of - “Additional FreeBSD contributors” on the FreeBSD - Handbook and other files. Isn't that great?!? <!-- smiley - -->:-)</para> - </sect1> - </chapter> - - <chapter> - <title>Slow Porting</title> - - <para>Ok, so it was not that simple, and the port required some - modifications to get it to work. In this section, we will explain, - step by step, how to modify it to get it to work with the ports - paradigm.</para> - - <sect1> - <title>How things work</title> - - <para>First, this is the sequence of events which occurs when the user - first types <command>make</command> in your port's directory. - You may find that having <filename>bsd.port.mk</filename> in another - window while you read this really helps to understand it.</para> - - <para>But do not worry if you do not really understand what - <filename>bsd.port.mk</filename> is doing, not many people do... - <!-- smiley --><emphasis>:-></emphasis></para> - - <procedure> - - <step> - <para>The <maketarget>fetch</maketarget> target is run. The - <maketarget>fetch</maketarget> target is responsible for making - sure that the tarball exists locally in - <makevar>DISTDIR</makevar>. If <maketarget>fetch</maketarget> - cannot find the required files in <makevar>DISTDIR</makevar> it - will look up the URL <makevar>MASTER_SITES</makevar>, which is - set in the Makefile, as well as our main ftp site at <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</ulink>, - where we put sanctioned distfiles as backup. It will then - attempt to fetch the named distribution file with - <makevar>FETCH</makevar>, assuming that the requesting site has - direct access to the Internet. If that succeeds, it will save - the file in <makevar>DISTDIR</makevar> for future use and - proceed.</para> - </step> - - <step> - <para>The <maketarget>extract</maketarget> target is run. It - looks for your port's distribution file (typically a gzip'd - tarball) in <makevar>DISTDIR</makevar> and unpacks it into a - temporary subdirectory specified by <makevar>WRKDIR</makevar> - (defaults to <filename>work</filename>).</para> - </step> - - <step> - <para>The <maketarget>patch</maketarget> target is run. First, - any patches defined in <makevar>PATCHFILES</makevar> are - applied. Second, if any patches are found in - <makevar>PATCHDIR</makevar> (defaults to the - <filename>patches</filename> subdirectory), they are applied at - this time in alphabetical order.</para> - </step> - - <step> - <para>The <maketarget>configure</maketarget> target is run. This - can do any one of many different things.</para> - - <orderedlist> - <listitem> - <para>If it exists, <filename>scripts/configure</filename> is - run.</para> - </listitem> - - <listitem> - <para>If <makevar>HAS_CONFIGURE</makevar> or - <makevar>GNU_CONFIGURE</makevar> is set, - <filename><makevar>WRKSRC</makevar>/configure</filename> is - run.</para> - </listitem> - - <listitem> - <para>If <makevar>USE_IMAKE</makevar> is set, - <makevar>XMKMF</makevar> (default: <command>xmkmf - -a</command>) is run.</para> - </listitem> - </orderedlist> - </step> - - <step> - <para>The <maketarget>build</maketarget> target is run. This is - responsible for descending into the port's private working - directory (<makevar>WRKSRC</makevar>) and building it. If - <makevar>USE_GMAKE</makevar> is set, GNU <command>make</command> - will be used, otherwise the system <command>make</command> will - be used.</para> - </step> - </procedure> - - <para>The above are the default actions. In addition, you can define - targets - <maketarget>pre-<replaceable>something</replaceable></maketarget> or - <maketarget>post-<replaceable>something</replaceable></maketarget>, - or put scripts with those names, in the <filename>scripts</filename> - subdirectory, and they will be run before or after the default - actions are done.</para> - - <para>For example, if you have a <maketarget>post-extract</maketarget> - target defined in your Makefile, and a file - <filename>pre-build</filename> in the <filename>scripts</filename> - subdirectory, the <maketarget>post-extract</maketarget> target will - be called after the regular extraction actions, and the - <filename>pre-build</filename> script will be executed before the - default build rules are done. It is recommended that you use - <filename>Makefile</filename> targets if the actions are simple - enough, because it will be easier for someone to figure out what - kind of non-default action the port requires.</para> - - <para>The default actions are done by the - <filename>bsd.port.mk</filename> targets - <maketarget>do-<replaceable>something</replaceable></maketarget>. - For example, the commands to extract a port are in the target - <maketarget>do-extract</maketarget>. If you are not happy with the - default target, you can fix it by redefining the - <maketarget>do-<replaceable>something</replaceable></maketarget> - target in your <filename>Makefile</filename>.</para> - - <note> - <para>The “main” targets (e.g., - <maketarget>extract</maketarget>, - <maketarget>configure</maketarget>, etc.) do nothing more than - make sure all the stages up to that one are completed and call - the real targets or scripts, and they are not intended to be - changed. If you want to fix the extraction, fix - <maketarget>do-extract</maketarget>, but never ever touch - <maketarget>extract</maketarget>!</para> - </note> - - <para>Now that you understand what goes on when the user types - <command>make</command>, let us go through the recommended steps to - create the perfect port.</para> - </sect1> - - <sect1> - <title>Getting the original sources</title> - - <para>Get the original sources (normally) as a compressed tarball - (<filename><replaceable>foo</replaceable>.tar.gz</filename> or - <filename><replaceable>foo</replaceable>.tar.Z</filename>) and copy - it into <makevar>DISTDIR</makevar>. Always use - <emphasis>mainstream</emphasis> sources when and where you - can.</para> - - <para>If you cannot find a ftp/http site that is well-connected to the - net, or can only find sites that have irritatingly non-standard - formats, you might want to put a copy on a reliable ftp or http - server that you control (e.g., your home page). Make sure you set - <makevar>MASTER_SITES</makevar> to reflect your choice.</para> - - <para>If you cannot find somewhere convenient and reliable to put the - distfile (if you are a FreeBSD committer, you can just put it in - your <filename>public_html/</filename> directory on - <hostid>freefall</hostid>), we can “house” it ourselves - by putting it on - <filename>ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/LOCAL_PORTS/</filename> - as the last resort. Please refer to this location as - <makevar>MASTER_SITE_LOCAL</makevar>. Send mail to the &a.ports; if - you are not sure what to do.</para> - - <para>If your port's distfile changes all the time for no good reason, - consider putting the distfile in your home page and listing it as - the first <makevar>MASTER_SITES</makevar>. This will prevent users - from getting <errorname>checksum mismatch</errorname> errors, and - also reduce the workload of maintainers of our ftp site. Also, if - there is only one master site for the port, it is recommended that - you house a backup at your site and list it as the second - <makevar>MASTER_SITES</makevar>.</para> - - <para>If your port requires some additional `patches' that are - available on the Internet, fetch them too and put them in - <makevar>DISTDIR</makevar>. Do not worry if they come from a site - other than where you got the main source tarball, we have a way to - handle these situations (see the description of <link - linkend="porting-patchfiles">PATCHFILES</link> below).</para> - </sect1> - - <sect1> - <title>Modifying the port</title> - - <para>Unpack a copy of the tarball in a private directory and make - whatever changes are necessary to get the port to compile properly - under the current version of FreeBSD. Keep <emphasis>careful - track</emphasis> of everything you do, as you will be automating - the process shortly. Everything, including the deletion, addition - or modification of files should be doable using an automated script - or patch file when your port is finished.</para> - - <para>If your port requires significant user interaction/customization - to compile or install, you should take a look at one of Larry Wall's - classic <application>Configure</application> scripts and perhaps do - something similar yourself. The goal of the new ports collection is - to make each port as “plug-and-play” as possible for the - end-user while using a minimum of disk space.</para> - - <note> - <para>Unless explicitly stated, patch files, scripts, and other - files you have created and contributed to the FreeBSD ports - collection are assumed to be covered by the standard BSD copyright - conditions.</para> - </note> - </sect1> - - <sect1> - <title>Patching</title> - - <para>In the preparation of the port, files that have been added or - changed can be picked up with a recursive diff for later feeding to - patch. Each set of patches you wish to apply should be collected - into a file named - <filename>patch-<replaceable>xx</replaceable></filename> where - <replaceable>xx</replaceable> denotes the sequence in which the - patches will be applied — these are done in - <emphasis>alphabetical order</emphasis>, thus <literal>aa</literal> - first, <literal>ab</literal> second and so on. These files should - be stored in <makevar>PATCHDIR</makevar>, from where they will be - automatically applied. All patches should be relative to - <makevar>WRKSRC</makevar> (generally the directory your port's - tarball unpacks itself into, that being where the build is done). - To make fixes and upgrades easier, you should avoid having more than - one patch fix the same file (e.g., <filename>patch-aa</filename> and - <filename>patch-ab</filename> both changing - <filename><makevar>WRKSRC</makevar>/foobar.c</filename>).</para> - </sect1> - - <sect1> - <title>Configuring</title> - - <para>Include any additional customization commands to your - <filename>configure</filename> script and save it in the - <filename>scripts</filename> subdirectory. As mentioned above, you - can also do this as <filename>Makefile</filename> targets and/or - scripts with the name <filename>pre-configure</filename> or - <filename>post-configure</filename>.</para> - </sect1> - - <sect1> - <title>Handling user input</title> - - <para>If your port requires user input to build, configure or install, - then set <makevar>IS_INTERACTIVE</makevar> in your Makefile. This - will allow “overnight builds” to skip your port if the - user sets the variable <envar>BATCH</envar> in his environment (and - if the user sets the variable <envar>INTERACTIVE</envar>, then - <emphasis>only</emphasis> those ports requiring interaction are - built).</para> - - <para>It is also recommended that if there are reasonable default - answers to the questions, you check the - <makevar>PACKAGE_BUILDING</makevar> variable and turn off the - interactive script when it is set. This will allow us to build the - packages for CD-ROMs and ftp.</para> - </sect1> - </chapter> - - <chapter> - <title>Configuring the Makefile</title> - - <para>Configuring the Makefile is pretty simple, and again we suggest - that you look at existing examples before starting. Also, there is a - <link linkend="porting-samplem">sample Makefile</link> in this - handbook, so take a look and please follow the ordering of variables - and sections in that template to make your port easier for others to - read.</para> - - <para>Now, consider the following problems in sequence as you design - your new Makefile:</para> - - <sect1> - <title>The original source</title> - - <para>Does it live in <makevar>DISTDIR</makevar> as a standard - gzip'd tarball named something like - <filename>foozolix-1.2.tar.gz</filename>? If so, you can go on - to the next step. If not, you should look at overriding any of - the <makevar>DISTNAME</makevar>, <makevar>EXTRACT_CMD</makevar>, - <makevar>EXTRACT_BEFORE_ARGS</makevar>, - <makevar>EXTRACT_AFTER_ARGS</makevar>, - <makevar>EXTRACT_SUFX</makevar>, or <makevar>DISTFILES</makevar> - variables, depending on how alien a format your port's - distribution file is. (The most common case is - <literal>EXTRACT_SUFX=.tar.Z</literal>, when the tarball is - condensed by regular <command>compress</command>, not - <command>gzip</command>.)</para> - - <para>In the worst case, you can simply create your own - <maketarget>do-extract</maketarget> target to override the - default, though this should be rarely, if ever, - necessary.</para> - </sect1> - - <sect1> - <title><makevar>PORTNAME</makevar> and <makevar>PORTVERSION</makevar></title> - - <para>You should set <makevar>PORTNAME</makevar> to be the - base name of your port, and <makevar>PORTVERSION</makevar> - to the version number of the port.</para> - </sect1> - - <sect1> - <title><makevar>PKGNAMEPREFIX</makevar> and <makevar>PKGNAMESUFFIX</makevar></title> - - <para>Two optional variables, <makevar>PKGNAMEPREFIX</makevar> and - <makevar>PKGNAMESUFFIX</makevar>, are combined with - <makevar>PORTNAME</makevar> and - <makevar>PORTVERSION</makevar> to - form <makevar>PKGNAME</makevar> as - <literal>${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}</literal>. - Make sure this conforms to our <link - linkend="porting-pkgname">guidelines for a good package - name</link>. In particular, you are not allowed to use a - hyphen (<literal>-</literal>) in - <makevar>PORTVERSION</makevar>. Also, if the package name - has the <replaceable>language-</replaceable> or the - <replaceable>compiled.specifics</replaceable> part, use - <makevar>PKGNAMEPREFIX</makevar> and - <makevar>PKGNAMESUFFIX</makevar>, respectively. Do not make - them part of <makevar>PORTNAME</makevar>.</para> - </sect1> - - <sect1> - <title><makevar>DISTNAME</makevar></title> - - <para><makevar>DISTNAME</makevar> is the name of the port as - called by the authors of the software. - <makevar>DISTNAME</makevar> defaults to - <literal>${PORTNAME}-${PORTVERSION}</literal>, so override it if necessary. - <makevar>DISTNAME</makevar> is only used in two places. - First, the distribution file list - (<makevar>DISTFILES</makevar>) defaults to - <makevar>${DISTNAME}</makevar><makevar>${EXTRACT_SUFX}</makevar>. - Second, the distribution file is expected to extract into a - subdirectory named <makevar>WRKSRC</makevar>, which defaults - to <filename>work/<makevar>${DISTNAME}</makevar></filename>.</para> - - <para>Note that <makevar>PKGNAMEPREFIX</makevar> and - <makevar>PKGNAMESUFFIX</makevar> do not affect - <makevar>DISTNAME</makevar>.</para> - </sect1> - - <sect1> - <title><makevar>CATEGORIES</makevar></title> - - <para>When a package is created, it is put under - <filename>/usr/ports/packages/All</filename> and links are made from - one or more subdirectories of - <filename>/usr/ports/packages</filename>. The names of these - subdirectories are specified by the variable - <makevar>CATEGORIES</makevar>. It is intended to make life easier - for the user when he is wading through the pile of packages on the - ftp site or the CD-ROM. Please take a look at the existing <link - linkend="porting-categories">categories</link> and pick the ones - that are suitable for your port.</para> - - <para>This list also determines where in the ports tree the port is - imported. If you put more than one category here, it is assumed - that the port files will be put in the subdirectory with the name in - the first category. See the <link - linkend="porting-categories">categories</link> section for more - discussion about how to pick the right categories.</para> - - <para>If your port truly belongs to something that is different from - all the existing ones, you can even create a new category name. In - that case, please send mail to the &a.ports; to propose a new - category.</para> - - <note> - <para>There is no error checking for category names. <command>make - package</command> will happily create a new directory if you - mistype the category name, so be careful!</para> - </note> - </sect1> - - <sect1> - <title><makevar>MASTER_SITES</makevar></title> - - <para>Record the directory part of the ftp/http-URL pointing at the - original tarball in <makevar>MASTER_SITES</makevar>. Do not forget - the trailing slash (<filename>/</filename>)!</para> - - <para>The <command>make</command> macros will try to use this - specification for grabbing the distribution file with - <makevar>FETCH</makevar> if they cannot find it already on the - system.</para> - - <para>It is recommended that you put multiple sites on this list, - preferably from different continents. This will safeguard against - wide-area network problems, and we are even planning to add support - for automatically determining the closest master site and fetching - from there!</para> - - <para>If the original tarball is part of one of the following popular - archives: X-contrib, GNU, Perl CPAN, TeX CTAN, or Linux Sunsite, you - refer to those sites in an easy compact form using - <makevar>MASTER_SITE_XCONTRIB</makevar>, - <makevar>MASTER_SITE_GNU</makevar>, - <makevar>MASTER_SITE_PERL_CPAN</makevar>, - <makevar>MASTER_SITE_TEX_CTAN</makevar>, and - <makevar>MASTER_SITE_SUNSITE</makevar>. Simply set - <makevar>MASTER_SITE_SUBDIR</makevar> to the path with in the - archive. Here is an example:</para> - - <programlisting> -MASTER_SITES= ${MASTER_SITE_XCONTRIB} -MASTER_SITE_SUBDIR= applications</programlisting> - - <para>The user can also set the <makevar>MASTER_SITE_*</makevar> - variables in <filename>/etc/make.conf</filename> to override our - choices, and use their favorite mirrors of these popular archives - instead.</para> - </sect1> - - <sect1 id="porting-patchfiles"> - <title><makevar>PATCHFILES</makevar></title> - - <para>If your port requires some additional patches that are available - by ftp or http, set <makevar>PATCHFILES</makevar> to the names of - the files and <makevar>PATCH_SITES</makevar> to the URL of the - directory that contains them (the format is the same as - <makevar>MASTER_SITES</makevar>).</para> - - <para>If the patch is not relative to the top of the source tree - (i.e., <makevar>WRKSRC</makevar>) because it contains some extra - pathnames, set <makevar>PATCH_DIST_STRIP</makevar> accordingly. For - instance, if all the pathnames in the patch have an extra - <literal>foozolix-1.0/</literal> in front of the filenames, then set - <literal>PATCH_DIST_STRIP=-p1</literal>.</para> - - <para>Do not worry if the patches are compressed, they will be - decompressed automatically if the filenames end with - <filename>.gz</filename> or <filename>.Z</filename>.</para> - - <para>If the patch is distributed with some other files, such as - documentation, in a gzip'd tarball, you cannot just use - <makevar>PATCHFILES</makevar>. If that is the case, add the name - and the location of the patch tarball to - <makevar>DISTFILES</makevar> and <makevar>MASTER_SITES</makevar>. - Then, from the <maketarget>pre-patch</maketarget> target, apply the - patch either by running the patch command from there, or copying the - patch file into the <makevar>PATCHDIR</makevar> directory and - calling it - <filename>patch-<replaceable>xx</replaceable></filename>.</para> - - <note> - <para>Note the tarball will have been extracted alongside the - regular source by then, so there is no need to explicitly extract - it if it is a regular gzip'd or compress'd tarball. If you do the - latter, take extra care not to overwrite something that already - exists in that directory. Also do not forget to add a command to - remove the copied patch in the <maketarget>pre-clean</maketarget> - target.</para> - </note> - </sect1> - - <sect1> - <title><makevar>MAINTAINER</makevar></title> - - <para>Set your mail-address here. Please. <!-- smiley - --><emphasis>:-)</emphasis></para> - - <para>For detailed description of the responsibility of maintainers, - refer to <ulink url="../handbook/policies.html#POLICIES-MAINTAINER">MAINTAINER on - Makefiles</ulink> section.</para> - </sect1> - - <sect1> - <title>Dependencies</title> - - <para>Many ports depend on other ports. There are five variables that - you can use to ensure that all the required bits will be on the - user's machine. There are also some pre-supported dependency - variables for common cases, plus a few more to control the behaviour - of dependencies.</para> - - <sect2> - <title><makevar>LIB_DEPENDS</makevar></title> - - <para>This variable specifies the shared libraries this port depends - on. It is a list of - <replaceable>lib</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional> - tuples where <replaceable>lib</replaceable> is the name of the - shared library, and <replaceable>dir</replaceable> is the - directory in which to find it in case it is not available, and - <replaceable>target</replaceable> is the target to call in that - directory. For example, <programlisting> LIB_DEPENDS= - jpeg.9:${PORTSDIR}/graphics/jpeg:install</programlisting> - will check for a shared jpeg library with major version 9, and - descend into the <filename>graphics/jpeg</filename> subdirectory - of your ports tree to build and install it if it is not found. - The <replaceable>target</replaceable> part can be omitted if it is - equal to <makevar>DEPENDS_TARGET</makevar> (which defaults to - <literal>install</literal>).</para> - - <note> - <para>The <replaceable>lib</replaceable> part is an argument given - to <command>ldconfig -r | grep -wF</command>. There shall be no - regular expressions in this variable.</para> - </note> - - <para>The dependency is checked twice, once from within the - <maketarget>extract</maketarget> target and then from within the - <maketarget>install</maketarget> target. Also, the name of the - dependency is put in to the package so that - <command>pkg_add</command> will automatically install it if it is - not on the user's system.</para> - </sect2> - - <sect2> - <title><makevar>RUN_DEPENDS</makevar></title> - - <para>This variable specifies executables or files this port depends - on during run-time. It is a list of - <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional> - tuples where <replaceable>path</replaceable> is the name of the - executable or file, and <replaceable>dir</replaceable> is the - directory in which to find it in case it is not available, and - <replaceable>target</replaceable> is the target to call in that - directory. If <replaceable>path</replaceable> starts with a slash - (<literal>/</literal>), it is treated as a file and its existence - is tested with <command>test -e</command>; otherwise, it is - assumed to be an executable, and <command>which -s</command> is - used to determine if the program exists in the user's search - path.</para> - - <para>For example,</para> - - <programlisting> -RUN_DEPENDS= ${PREFIX}/etc/innd:${PORTSDIR}/news/inn \ - wish8.0:${PORTSDIR}/x11-toolkits/tk80</programlisting> - - <para>will check if the file or directory - <filename>/usr/local/etc/innd</filename> exists, and build and - install it from the <filename>news/inn</filename> subdirectory of - the ports tree if it is not found. It will also see if an - executable called <command>wish8.0</command> is in your search - path, and descend into the <filename>x11-toolkits/tk80</filename> - subdirectory of your ports tree to build and install it if it is - not found.</para> - - <note> - <para>In this case, <command>innd</command> is actually an - executable; if an executable is in a place that is not expected - to be in a normal user's search path, you should use the full - pathname.</para> - </note> - - <para>The dependency is checked from within the - <maketarget>install</maketarget> target. Also, the name of the - dependency is put in to the package so that - <command>pkg_add</command> will automatically install it if it is - not on the user's system. The <replaceable>target</replaceable> - part can be omitted if it is the same - <makevar>DEPENDS_TARGET</makevar>.</para> - </sect2> - - <sect2> - <title><makevar>BUILD_DEPENDS</makevar></title> - - <para>This variable specifies executables or files this port - requires to build. Like <makevar>RUN_DEPENDS</makevar>, it is a - list of - <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional> - tuples. For example, <programlisting> BUILD_DEPENDS= - unzip:${PORTSDIR}/archivers/unzip</programlisting> will check - for an executable called <command>unzip</command>, and descend - into the <filename>archivers/unzip</filename> subdirectory of your - ports tree to build and install it if it is not found.</para> - - <note> - <para>“build” here means everything from extracting to - compilation. The dependency is checked from within the - <maketarget>extract</maketarget> target. The - <replaceable>target</replaceable> part can be omitted if it is - the same as <makevar>DEPENDS_TARGET</makevar></para> - </note> - </sect2> - - <sect2> - <title><makevar>FETCH_DEPENDS</makevar></title> - - <para>This variable specifies executables or files this port - requires to fetch. Like the previous two, it is a list of - <replaceable>path</replaceable>:<replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional> - tuples. For example, <programlisting> FETCH_DEPENDS= - ncftp2:${PORTSDIR}/net/ncftp2</programlisting> will check for an - executable called <command>ncftp2</command>, and descend into the - <filename>net/ncftp2</filename> subdirectory of your ports tree to - build and install it if it is not found.</para> - - <para>The dependency is checked from within the - <maketarget>fetch</maketarget> target. The - <replaceable>target</replaceable> part can be omitted if it is the - same as <makevar>DEPENDS_TARGET</makevar>.</para> - </sect2> - - <sect2> - <title><makevar>DEPENDS</makevar></title> - - <para>If there is a dependency that does not fall into either of the - above four categories, or your port requires having the source of - the other port extracted in addition to having it installed, - then use this variable. This is a list of - <replaceable>dir</replaceable><optional><replaceable>:target</replaceable></optional>, - as there is nothing to check, unlike the previous four. The - <replaceable>target</replaceable> part can be omitted if it is the - same as <makevar>DEPENDS_TARGET</makevar>.</para> - </sect2> - - <sect2> - <title>Common dependency variables</title> - - <para>Define <literal>USE_XLIB=yes</literal> if your port requires - the X Window System to be installed (it is implied by - <makevar>USE_IMAKE</makevar>). Define - <literal>USE_GMAKE=yes</literal> if your port requires GNU - <command>make</command> instead of BSD <command>make</command>. - Define <literal>USE_AUTOCONF=yes</literal> if your port requires - GNU autoconf to be run. Define <literal>USE_QT=yes</literal> if - your port uses the latest qt toolkit. Use - <literal>USE_PERL5=yes</literal> if your port requires version 5 - of the perl language. (The last is especially important since - some versions of FreeBSD have perl5 as part of the base system - while others do not.)</para> - </sect2> - - <sect2> - <title>Notes on dependencies</title> - - <para>As mentioned above, the default target to call when a - dependency is required is <maketarget>DEPENDS_TARGET</maketarget>. - It defaults to <literal>install</literal>. This is a user - variable; it is never defined in a port's - <filename>Makefile</filename>. If your port needs a special way - to handle a dependency, use the <literal>:target</literal> part of - the <makevar>*_DEPENDS</makevar> variables instead of redefining - <makevar>DEPENDS_TARGET</makevar>.</para> - - <para>When you type <command>make clean</command>, its dependencies - are automatically cleaned too. If you do not wish this to happen, - define the variable <makevar>NOCLEANDEPENDS</makevar> in your - environment.</para> - - <para>To depend on another port unconditionally, it is customary to - use the string <literal>nonexistent</literal> as the first field - of <makevar>BUILD_DEPENDS</makevar> or - <makevar>RUN_DEPENDS</makevar>. Use this only when you need to - the to get to the source of the other port. You can often save - compilation time by specifying the target too. For - instance - - <programlisting> -BUILD_DEPENDS= /nonexistent:${PORTSDIR}/graphics/jpeg:extract</programlisting> - - will always descend to the JPEG port and extract it.</para> - - <para>Do not use <makevar>DEPENDS</makevar> unless there is no other - way the behaviour you want can be accomplished. It will cause the - other port to be always build (and installed, by default), and the - dependency will go into the packages as well. If this is really - what you need, I recommend you write it as - <literal>BUILD_DEPENDS</literal> and - <literal>RUN_DEPENDS</literal> instead—at least the - intention will be clear.</para> - </sect2> - </sect1> - - <sect1> - <title>Building mechanisms</title> - - <para>If your package uses GNU <command>make</command>, set - <literal>USE_GMAKE=yes</literal>. If your package uses - <command>configure</command>, set - <literal>HAS_CONFIGURE=yes</literal>. If your package uses GNU - <command>configure</command>, set - <literal>GNU_CONFIGURE=yes</literal> (this implies - <literal>HAS_CONFIGURE</literal>). If you want to give some extra - arguments to <command>configure</command> (the default argument list - <literal>--prefix=${PREFIX}</literal> for GNU - <command>configure</command> and empty for non-GNU - <command>configure</command>), set those extra arguments in - <makevar>CONFIGURE_ARGS</makevar>. If your package uses GNU - <command>autoconf</command>, set - <literal>USE_AUTOCONF=yes</literal>. This implies - <makevar>GNU_CONFIGURE</makevar>, and will cause - <command>autoconf</command> to be run before - <command>configure</command>.</para> - - <para>If your package is an X application that creates - <filename>Makefile</filename>s from <filename>Imakefile</filename>s - using <command>imake</command>, then set - <literal>USE_IMAKE=yes</literal>. This will cause the configure - stage to automatically do an <command>xmkmf -a</command>. If the - <option>-a</option> flag is a problem for your port, set - <literal>XMKMF=xmkmf</literal>. If the port uses - <command>imake</command> but does not understand the - <maketarget>install.man</maketarget> target, - <literal>NO_INSTALL_MANPAGES=yes</literal> should be set. In - addition, the author of the original port should be shot. <!-- - smiley --><emphasis>:-></emphasis></para> - - <para>If your port's source <filename>Makefile</filename> has - something else than <maketarget>all</maketarget> as the main build - target, set <makevar>ALL_TARGET</makevar> accordingly. Same goes - for <maketarget>install</maketarget> and - <makevar>INSTALL_TARGET</makevar>.</para> - </sect1> - </chapter> - - <chapter> - <title>Special considerations</title> - - <para>There are some more things you have to take into account when you - create a port. This section explains the most common of those.</para> - - <sect1 id="porting-ldconfig"> - <title><command>ldconfig</command></title> - - <para>If your port installs a shared library, add a - <maketarget>post-install</maketarget> target to your - <filename>Makefile</filename> that runs <literal>${LDCONFIG} - -m</literal> on the directory where the new library is installed - (usually <filename><makevar>PREFIX</makevar>/lib</filename>) to - register it into the shared library cache.</para> - - <para>Also, add a matching <literal>@exec /sbin/ldconfig -m</literal> - and <literal>@unexec /sbin/ldconfig -R</literal> pair to your - <filename>pkg/PLIST</filename> file so that a user who installed the - package can start using the shared library immediately and - deinstallation will not cause the system to still believe the - library is there. These lines should immediately follow the line - for the shared library itself, as in:</para> - - <programlisting> -lib/libtvl80.so.1 -@exec /sbin/ldconfig -m %D/lib -@unexec /sbin/ldconfig -R</programlisting> - - <para>Never, ever, <emphasis>ever</emphasis> add a line that says - <literal>ldconfig</literal> without any arguments to your - <filename>Makefile</filename> or <filename>pkg/PLIST</filename>. - This will reset the shared library cache to the contents of - <filename>/usr/lib</filename> only, and will royally screw up the - user's machine ("Help, xinit does not run anymore after I install - this port!"). Anybody who does this will be shot and cut in 65,536 - pieces by a rusty knife and have his liver chopped out by a bunch of - crows and will eternally rot to death in the deepest bowels of hell - (not necessarily in that order…)</para> - </sect1> - </chapter> - -<!-- - - <chapter> - <title>ELF support</title> - - <para>Since FreeBSD changed to an ELF binary format shortly after - 3.0-RELEASE, we need to convert many ports that build shared - libraries to support ELF. Complicating this task is that a 3.0 - system can run as both ELF and a.out, and we wish to unofficially - support the 2.2 branch as long as possible. Below are the guidelines on - how to convert a.out only ports to support both a.out and ELF - compilation.</para> - - <para>Some part of this list is only applicable during the conversion, - but will be left here for a while for reference in case you have come - across some old port you wish to upgrade.</para> - - <sect1> - <title>Moving a.out libraries out of the way</title> - - <para>Any a.out libraries should be moved out of - <filename>/usr/local/lib</filename> and similar to an - <filename>aout</filename> subdirectory. (If you do not move them out - of the way, ELF ports will happily overwrite a.out libraries.) The - <maketarget>move-aout-libs</maketarget> target in the 3.0-CURRENT - <filename>src/Makefile</filename> (called from - <maketarget>aout-to-elf</maketarget>) will do this for you. It will - only move a.out libs so it is safe to call it on a system with both - ELF and a.out libs in the standard directories.</para> - </sect1> - - <sect1> - <title>Format</title> - - <para>The ports tree will build packages in the format the machine is - in. This means a.out for 2.2 and a.out or ELF for 3.0 depending on - what <command>`objformat`</command> returns. Also, once users move - a.out libraries to a subdirectory, building a.out libraries will be - unsupported. (I.e., it may still work if you know what you are - doing, but you are on your own.)</para> - - <note> - <para>If a port only works for a.out, set - <makevar>BROKEN_ELF</makevar> to a string describing the reason - why. Such ports will be skipped during a build on an ELF - system.</para> - </note> - </sect1> - - <sect1> - <title><makevar>PORTOBJFORMAT</makevar></title> - - <para><filename>bsd.port.mk</filename> will set - <makevar>PORTOBJFORMAT</makevar> to <literal>aout</literal> or - <literal>elf</literal> and export it in the environments - <envar>CONFIGURE_ENV</envar>, <envar>SCRIPTS_ENV</envar> and - <envar>MAKE_ENV</envar>. (It's always going to be - <literal>aout</literal> in 2.2-STABLE). It is also passed to - <maketarget>PLIST_SUB</maketarget> as - <literal>PORTOBJFORMAT=${PORTOBJFORMAT}</literal>. (See comment on - <literal>ldconfig</literal> lines below.)</para> - - <para>The variable is set using this line in - <filename>bsd.port.mk</filename>:</para> - - <programlisting> -PORTOBJFORMAT!= test -x /usr/bin/objformat && /usr/bin/objformat || echo aout</programlisting> - - <para>Ports' make processes should use this variable to decide what to - do. However, if the port's <filename>configure</filename> script - already automatically detects an ELF system, it is not necessary to - refer to <makevar>PORTOBJFORMAT</makevar>.</para> - </sect1> - - <sect1> - <title>Building shared libraries</title> - - <para>The following are differences in handling shared libraries for - a.out and ELF.</para> - - <itemizedlist> - <listitem> - <para>Shared library versions</para> - - <para>An ELF shared library should be called - <filename>libfoo.so.<replaceable>M</replaceable></filename> - where <replaceable>M</replaceable> is the single version number, - and an a.out library should be called - <filename>libfoo.so.<replaceable>M</replaceable>.<replaceable>N</replaceable></filename> - where <replaceable>M</replaceable> is the major version and - <replaceable>N</replaceable> is the the minor version number. - Do not mix those; <emphasis>never</emphasis> install an ELF - shared library called - <filename>libfoo.so.<replaceable>N</replaceable>.<replaceable>M</replaceable></filename> - or an a.out shared library (or symlink) called - <filename>libfoo.so.<replaceable>N</replaceable></filename>.</para> - </listitem> - - <listitem> - <para>Linker command lines</para> - - <para>Assuming <command>cc -shared</command> is used rather than - <command>ld</command> directly, the only difference is that you - need to add - <option>-Wl,-<replaceable>soname,libfoo.so.M</replaceable></option -> - on the command line for ELF.</para> - </listitem> - </itemizedlist> - - <para>You need to install a symlink from - <filename>libfoo.so</filename> to - <filename>libfoo.so.<replaceable>N</replaceable></filename> to make - ELF linkers happy. Since it should be listed in - <filename>PLIST</filename> too, and it won't hurt in the a.out case - (some ports even require the link for dynamic loading), you should - just make this link regardless of the setting of - <makevar>PORTOBJFORMAT</makevar>.</para> - </sect1> - - <sect1> - <title><makevar>LIB_DEPENDS</makevar></title> - - <para>All port Makefiles are edited to remove minor numbers from - <makevar>LIB_DEPENDS</makevar>, and also to have the regexp support - removed. (E.g., <literal>foo\\.1\\.\\(33|40\\)</literal> becomes - <literal>foo.2</literal>.) They will be matched using <command>grep - -wF</command>.</para> - </sect1> - - <sect1> - <title><filename>PLIST</filename></title> - - <para><filename>PLIST</filename> should contain the short (ELF) shlib - names if the a.out minor number is zero, and the long (a.out) names - otherwise. <filename>bsd.port.mk</filename> will automatically add - <literal>.0</literal> to the end of short shlib lines if - <makevar>PORTOBJFORMAT</makevar> equals <literal>aout</literal>, and - will delete the minor number from long shlib names if - <makevar>PORTOBJFORMAT</makevar> equals - <literal>elf</literal>.</para> - - <para>In cases where you really need to install shlibs with two - versions on an ELF system or those with one version on an a.out - system (for instance, ports that install compatibility libraries for - other operating systems), define the variable - <makevar>NO_FILTER_SHLIBS</makevar>. This will turn off the editing - of <filename>PLIST</filename> mentioned in the previous - paragraph.</para> - </sect1> - - <sect1> - <title><literal>ldconfig</literal></title> - - <para>The <literal>ldconfig</literal> line in Makefiles should - read:</para> - - <programlisting> -${SETENV} OBJFORMAT=${PORTOBJFORMAT} ${LDCONFIG} -m ....</programlisting> - - <para>In <filename>PLIST</filename> it should read;</para> - - <programlisting> -@exec /usr/bin/env OBJFORMAT=%%PORTOBJFORMAT%% /sbin/ldconfig -m ... -@unexec /usr/bin/env OBJFORMAT=%%PORTOBJFORMAT%% /sbin/ldconfig -R</programlisting> - - <para>This is to ensure that the correct <command>ldconfig</command> - will be called depending on the format of the package, not the - default format of the system.</para> - </sect1> - </chapter> - ---> - - <chapter id="porting-masterdir"> - <title><makevar>MASTERDIR</makevar></title> - - <para>If your port needs to build slightly different versions of - packages by having a variable (for instance, resolution, or paper - size) take different values, create one subdirectory per package to - make it easier for users to see what to do, but try to share as many - files as possible between ports. Typically you only need a very short - <filename>Makefile</filename> in all but one of the directories if you - use variables cleverly. In the sole <filename>Makefiles</filename>, - you can use <makevar>MASTERDIR</makevar> to specify the directory - where the rest of the files are. Also, use a variable as part of - <link linkend="porting-pkgname"><makevar>PKGNAMESUFFIX</makevar></link> so - the packages will have different names.</para> - - <para>This will be best demonstrated by an example. This is part of - <filename>japanese/xdvi300/Makefile</filename>;</para> - - <programlisting> -PORTNAME= xdvi -PORTVERSION= 17 -PKGNAMEPREFIX= ja- -PKGNAMESUFFIX= ${RESOLUTION} - : -# default -RESOLUTION?= 300 -.if ${RESOLUTION} != 118 && ${RESOLUTION} != 240 && \ - ${RESOLUTION} != 300 && ${RESOLUTION} != 400 - @${ECHO} "Error: invalid value for RESOLUTION: \"${RESOLUTION}\"" - @${ECHO} "Possible values are: 118, 240, 300 (default) and 400." - @${FALSE} -.endif</programlisting> - - <para><filename>japanese/xdvi300</filename> also has all the regular - patches, package files, etc. If you type <command>make</command> - there, it will take the default value for the resolution (300) and - build the port normally.</para> - - <para>As for other resolutions, this is the <emphasis>entire</emphasis> - <filename>xdvi118/Makefile</filename>:</para> - - <programlisting> -RESOLUTION= 118 -MASTERDIR= ${.CURDIR}/../xdvi300 - -.include ${MASTERDIR}/Makefile</programlisting> - - <para>(<filename>xdvi240/Makefile</filename> and - <filename>xdvi400/Makefile</filename> are similar). The - <makevar>MASTERDIR</makevar> definition tells - <filename>bsd.port.mk</filename> that the regular set of - subdirectories like <makevar>PATCHDIR</makevar> and - <makevar>PKGDIR</makevar> are to be found under - <filename>xdvi300</filename>. The <literal>RESOLUTION=118</literal> - line will override the <literal>RESOLUTION=300</literal> line in - <filename>xdvi300/Makefile</filename> and the port will be built with - resolution set to 118.</para> - </chapter> - - <chapter> - <title>Shared library versions</title> - - <para>Please read our <ulink url="../handbook/policies-shlib.html">policy on - shared library versioning</ulink> to understand what to do with - shared library versions in general. Do not blindly assume software - authors know what they are doing; many of them do not. It is very - important that these details are carefully considered, as we have - quite a unique situation where we are trying to have dozens of - potentially incompatible software pairs co-exist. Careless port - imports have caused great trouble regarding shared libraries in the - past (ever wondered why the port <filename>jpeg-6b</filename> has a - shared library version of 9?). If in doubt, send a message to the - &a.ports;. Most of the time, your job ends by determining the right - shared library version and making appropriate patches to implement - it.</para> - -<!-- - <para>However, if there is a port which is a different version of the - same software already in the tree, the situation is much more complex. - In short, the FreeBSD implementation does not allow the user to - specify to the linker which version of shared library to link against - (the linker will always pick the highest numbered version). This - means, if there is a <filename>libfoo.so.3.2</filename> and - <filename>libfoo.so.4.0</filename> in the system, there is no way to - tell the linker to link a particular application to - <filename>libfoo.so.3.2</filename>. It is essentially completely - overshadowed in terms of compilation-time linkage. In this case, the - only solution is to rename the <emphasis>base</emphasis> part of the - shared library. For instance, change - <filename>libfoo.so.4.0</filename> to - <filename>libfoo4.so.1.0</filename> so both version 3.2 and 4.0 can be - linked from other ports.</para> ---> - </chapter> - - <chapter id="porting-manpages"> - <title>Manpages</title> - - <para>The <makevar>MAN[1-9LN]</makevar> variables will automatically add - any manpages to <filename>pkg/PLIST</filename> (this means you must - <emphasis>not</emphasis> list manpages in the - <filename>PLIST</filename>—see <link - linkend="porting-plist">generating PLIST</link> for more). It also - makes the install stage automatically compress or uncompress manpages - depending on the setting of <makevar>NOMANCOMPRESS</makevar> in - <filename>/etc/make.conf</filename>.</para> - - <para>If your port tries to install multiple names for manpages using - symlinks or hardlinks, you must use the <makevar>MLINKS</makevar> - variable to identify these. The link installed by your port will - be destroyed and recreated by <filename>bsd.port.mk</filename> - to make sure it points to the correct file. Any manpages - listed in MLINKS must not be listed in the - <filename>PLIST</filename>.</para> - - <para>To specify whether the manpages are compressed upon installation, - use the <makevar>MANCOMPRESSED</makevar> variable. This variable can - take three values, <literal>yes</literal>, <literal>no</literal> and - <literal>maybe</literal>. <literal>yes</literal> means manpages are - already installed compressed, <literal>no</literal> means they are - not, and <literal>maybe</literal> means the software already respects - the value of <makevar>NOMANCOMPRESS</makevar> so - <filename>bsd.port.mk</filename> does not have to do anything - special.</para> - - <para><makevar>MANCOMPRESSED</makevar> is automatically set to - <literal>yes</literal> if <makevar>USE_IMAKE</makevar> is set and - <makevar>NO_INSTALL_MANPAGES</makevar> is not set, and to - <literal>no</literal> otherwise. You do not have to explicitly define - it unless the default is not suitable for your port.</para> - - <para>If your port anchors its man tree somewhere other than - <makevar>PREFIX</makevar>, you can use the - <makevar>MANPREFIX</makevar> to set it. Also, if only manpages in - certain sections go in a non-standard place, such as some Perl modules - ports, you can set individual man paths using - <makevar>MAN<replaceable>sect</replaceable>PREFIX</makevar> (where - <replaceable>sect</replaceable> is one of <literal>1-9</literal>, - <literal>L</literal> or <literal>N</literal>).</para> - - <para>If your manpages go to language-specific subdirectories, set the - name of the languages to <makevar>MANLANG</makevar>. The value of - this variable defaults to <literal>""</literal> (i.e., English - only).</para> - - <para>Here is an example that puts it all together.</para> - - <programlisting> -MAN1= foo.1 -MAN3= bar.3 -MAN4= baz.4 -MLINKS= foo.1 alt-name.8 -MANLANG= "" ja -MAN3PREFIX= ${PREFIX}/share/foobar -MANCOMPRESSED= yes</programlisting> - - <para>This states that six files are installed by this 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> - - <para>Additionally <filename>${PREFIX}/man/man8/alt-name.8.gz</filename> - may or may not be installed by your port. Regardless, a - symlink will be made to join the foo(1) manpage and - alt-name(8) manpage.</para> - - </chapter> - - <chapter id="porting-motif"> - <title>Ports that require Motif</title> - - <para>There are many programs that require a Motif library (available - from several commercial vendors, while there is a free clone reported - to be able to run many applications in - <filename>x11-toolkits/lesstif</filename>) to compile. Since it is a - popular toolkit and their licenses usually permit redistribution of - statically linked binaries, we have made special provisions for - handling ports that require Motif in a way that we can easily compile - binaries linked either dynamically (for people who are compiling from - the port) or statically (for people who distribute packages).</para> - - <sect1> - <title><makevar>REQUIRES_MOTIF</makevar></title> - - <para>If your port requires Motif, define this variable in the - Makefile. This will prevent people who do not own a copy of Motif - from even attempting to build it.</para> - </sect1> - - <sect1> - <title><makevar>MOTIFLIB</makevar></title> - - <para>This variable will be set by <filename>bsd.port.mk</filename> to - be the appropriate reference to the Motif library. Please patch the - source to use this wherever the Motif library is referenced in the - <filename>Makefile</filename> or - <filename>Imakefile</filename>.</para> - - <para>There are two common cases:</para> - - <itemizedlist> - <listitem> - <para>If the port refers to the Motif library as - <literal>-lXm</literal> in its <filename>Makefile</filename> or - <filename>Imakefile</filename>, simply substitute - <literal>${MOTIFLIB}</literal> for it.</para> - </listitem> - - <listitem> - <para>If the port uses <literal>XmClientLibs</literal> in its - <filename>Imakefile</filename>, change it to - <literal>${MOTIFLIB} ${XTOOLLIB} - ${XLIB}</literal>.</para> - </listitem> - - </itemizedlist> - - <para>Note that <makevar>MOTIFLIB</makevar> (usually) expands to - <literal>-L/usr/X11R6/lib -lXm</literal> or - <literal>/usr/X11R6/lib/libXm.a</literal>, so there is no need to - add <literal>-L</literal> or <literal>-l</literal> in front.</para> - </sect1> - </chapter> - - <chapter> - <title>X11 fonts</title> - - <para>If your port installs fonts for the X Window system, put them in - <filename><makevar>X11BASE</makevar>/lib/X11/fonts/local</filename>. - This directory is new to XFree86 release 3.3.3. If it does not exist, - please create it, and print out a message urging the user to update - their XFree86 to 3.3.3 or newer, or at least add this directory to the - font path in <filename>/etc/XF86Config</filename>.</para> - </chapter> - - <chapter id="porting-info"> - <title>Info files</title> - - <para>The new version of texinfo (included in 2.2.2-RELEASE and onwards) - contains a utility called <command>install-info</command> to add and - delete entries to the <filename>dir</filename> file. If your port - installs any info documents, please follow these instructions so your - port/package will correctly update the user's - <filename><makevar>PREFIX</makevar>/info/dir</filename> file. (Sorry - for the length of this section, but is it imperative to weave all the - info files together. If done correctly, it will produce a - <emphasis>beautiful</emphasis> listing, so please bear with me!</para> - - <para>First, this is what you (as a porter) need to know</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>This program will not actually <emphasis>install</emphasis> info - files; it merely inserts or deletes entries in the - <filename>dir</filename> file.</para> - </note> - - <para>Here's a seven-step procedure to convert ports to use - <command>install-info</command>. I will use - <filename>editors/emacs</filename> as an example.</para> - - <procedure> - <step> - <para>Look at the texinfo sources and make a patch to insert - <literal>@dircategory</literal> and <literal>@direntry</literal> - statements to files that do not have them. This is part of my - patch:</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>The format should be self-explanatory. Many authors leave a - <filename>dir</filename> file in the source tree that contains all - the entries you need, so look around before you try to write your - own. Also, make sure you look into related ports and make the - section names and entry indentations consistent (we recommend that - all entry text start at the 4th tab stop).</para> - - <note> - <para>Note that you can put only one info entry per file because - of a bug in <command>install-info --delete</command> that - deletes only the first entry if you specify multiple entries in - the <email>@direntry</email> section.</para> - </note> - - <para>You can give the <literal>dir</literal> entries to - <command>install-info</command> as arguments - (<option>--section</option> and <option>--entry</option>) instead - of patching the texinfo sources. I do not think this is a good - idea for ports because you need to duplicate the same information - in <emphasis>three</emphasis> places - (<filename>Makefile</filename> and - <literal>@exec</literal>/<literal>@unexec</literal> of - <filename>PLIST</filename>; see below). However, if you have a - Japanese (or other multibyte encoding) info files, you will have - to use the extra arguments to <command>install-info</command> - because <command>makeinfo</command> cannot handle those texinfo - sources. (See <filename>Makefile</filename> and - <filename>PLIST</filename> of <filename>japanese/skk</filename> - for examples on how to do this).</para> - </step> - - <step> - <para>Go back to the port directory and do a <command>make clean; - make</command> and verify that the info files are regenerated - from the texinfo sources. Since the texinfo sources are newer than - the info files, they should be rebuilt when you type - <command>make</command>; but many <filename>Makefile</filename>s - do not include correct dependencies for info files. In - <command>emacs</command>' case, I had to patch the main - <filename>Makefile.in</filename> so it will descend into the - <filename>man</filename> subdirectory to rebuild the info - pages.</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 @@ - # Subdirectories to make recursively. `lisp' is not included - # because the compiled lisp files are part of the distribution - # and you cannot remake them without installing Emacs first. --SUBDIR = lib-src src -+SUBDIR = lib-src src man - - # The makefiles of the directories in $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>The second hunk was necessary because the default target in - the <filename>man</filename> subdir is called - <maketarget>info</maketarget>, while the main - <filename>Makefile</filename> wants to call - <maketarget>all</maketarget>. I also deleted the installation of - the <filename>info</filename> info file because we already have - one with the same name in <filename>/usr/share/info</filename> - (that patch is not shown here).</para> - </step> - - <step> - <para>If there is a place in the <filename>Makefile</filename> that - is installing the <filename>dir</filename> file, delete it. Your - port may not be doing it. Also, remove any commands that are - otherwise mucking around with the <filename>dir</filename> - file.</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>(This step is only necessary if you are modifying an existing - port.) Take a look at <filename>pkg/PLIST</filename> and delete - anything that is trying to patch up <filename>info/dir</filename>. - They may be in <filename>pkg/INSTALL</filename> or some other - file, so search extensively.</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>Add a <maketarget>post-install</maketarget> target to the - <filename>Makefile</filename> to call - <maketarget>install-info</maketarget> with the installed - info files. (It is no longer necessary to create the - <filename>dir</filename> file yourself; - <command>install-info</command> automatically creates this - file if it does not exist.)</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,8 @@ - post-install: - .for file in emacs-19.34 emacsclient etags ctags b2m - strip ${PREFIX}/bin/${file} - .endfor -+.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> - </step> - - <step> - <para>Edit <filename>PLIST</filename> and add equivalent - <literal>@exec</literal> statements and also - <literal>@unexec</literal> for - <command>pkg_delete</command>.</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,14 @@ - 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 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>The <literal>@unexec install-info --delete</literal> - commands have to be listed before the info files themselves so - they can read the files. Also, the <literal>@exec - install-info</literal> commands have to be after the info - files and the <literal>@exec</literal> command that creates the - the <filename>dir</filename> file.</para> - </note> - </step> - - <step> - <para><link linkend="porting-testing">Test</link> and admire your - work. <!-- smiley --><emphasis>:-)</emphasis>. Check the - <filename>dir</filename> file before and after each step.</para> - </step> - </procedure> - </chapter> - - <chapter> - <title>The <filename>pkg/</filename> subdirectory</title> - - <para>There are some tricks we have not mentioned yet about the - <filename>pkg/</filename> subdirectory that come in handy - sometimes.</para> - - <sect1 id="porting-message"> - <title><filename>MESSAGE</filename></title> - - <para>If you need to display a message to the installer, you may place - the message in <filename>pkg/MESSAGE</filename>. This capability is - often useful to display additional installation steps to be taken - after a <command>pkg_add</command> or to display licensing - information.</para> - - <note> - <para>The <filename>pkg/MESSAGE</filename> file does not need to be - added to <filename>pkg/PLIST</filename>. Also, it will not get - automatically printed if the user is using the port, not the - package, so you should probably display it from the - <maketarget>post-install</maketarget> target yourself.</para> - </note> - </sect1> - - <sect1> - <title><filename>INSTALL</filename></title> - - <para>If your port needs to execute commands when the binary package - is installed with <command>pkg_add</command> you can do this via the - <filename>pkg/INSTALL</filename> script. This script will - automatically be added to the package, and will be run twice by - <command>pkg_add</command>. The first time will as <literal>INSTALL - ${PKGNAME} PRE-INSTALL</literal> and the second time as - <literal>INSTALL ${PKGNAME} POST-INSTALL</literal>. - <literal>$2</literal> can be tested to determine which mode - the script is being run in. The <envar>PKG_PREFIX</envar> - environmental variable will be set to the package installation - directory. See &man.pkg.add.1; for - additional information.</para> - - <note> - <para>This script is not run automatically if you install the port - with <command>make install</command>. If you are depending on it - being run, you will have to explicitly call it from your port's - <filename>Makefile</filename>.</para> - </note> - </sect1> - - <sect1> - <title><filename>REQ</filename></title> - - <para>If your port needs to determine if it should install or not, you - can create a <filename>pkg/REQ</filename> “requirements” - script. It will be invoked automatically at - installation/deinstallation time to determine whether or not - installation/deinstallation should proceed.</para> - </sect1> - - <sect1 id="porting-plist"> - <title>Changing <filename>PLIST</filename> based on make - variables</title> - - <para>Some ports, particularly the p5- ports, need to change their - <filename>PLIST</filename> depending on what options they are - configured with (or version of perl, in the case of p5- ports). To - make this easy, any instances in the <filename>PLIST</filename> of - <literal>%%OSREL%%</literal>, <literal>%%PERL_VER%%</literal>, and - <literal>%%PERL_VERSION%%</literal> will be substituted for - appropriately. The value of <literal>%%OSREL%%</literal> is the - numeric revision of the operating system (e.g., - <literal>2.2.7</literal>). <literal>%%PERL_VERSION%%</literal> is - the full version number of perl (e.g., <literal>5.00502</literal>) - and <literal>%%PERL_VER%%</literal> is the perl version number minus - the patchlevel (e.g., <literal>5.005</literal>).</para> - - <para>If you need to make other substitutions, you can set the - <makevar>PLIST_SUB</makevar> variable with a list of - <literal><replaceable>VAR</replaceable>=<replaceable>VALUE</replaceable></literal> - pairs and instances of - <literal>%%<replaceable>VAR</replaceable>%%</literal>' will be - substituted with <replaceable>VALUE</replaceable> in the - <filename>PLIST</filename>.</para> - - <para>For instance, if you have a port that installs many files in a - version-specific subdirectory, you can put something like - - <programlisting> -OCTAVE_VERSION= 2.0.13 -PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting> - - in the <filename>Makefile</filename> and use - <literal>%%OCTAVE_VERSION%%</literal> wherever the version shows up - in <filename>PLIST</filename>. That way, when you upgrade the port, - you will not have to change dozens (or in some cases, hundreds) of - lines in the <filename>PLIST</filename>.</para> - - <para>This substitution (as well as addition of any <link - linkend="porting-manpages">man pages</link>) will be done between - the <maketarget>do-install</maketarget> and - <maketarget>post-install</maketarget> targets, by reading from - <makevar>PLIST</makevar> and writing to <makevar>TMPPLIST</makevar> - (default: - <filename><makevar>WRKDIR</makevar>/.PLIST.mktmp</filename>). So if - your port builds <makevar>PLIST</makevar> on the fly, do so in or - before <maketarget>do-install</maketarget>. Also, if your port - needs to edit the resulting file, do so in - <maketarget>post-install</maketarget> to a file named - <makevar>TMPPLIST</makevar>.</para> - </sect1> - - <sect1> - <title id="porting-pkgsubdir">Changing the names of files in the - <filename>pkg</filename> subdirectory</title> - - <para>All the filenames in the <filename>pkg</filename> subdirectory - are defined using variables so you can change them in your - <filename>Makefile</filename> if need be. This is especially useful - when you are sharing the same <filename>pkg</filename> subdirectory - among several ports or have to write to one of the above files (see - <link linkend="porting-wrkdir">writing to places other than - <makevar>WRKDIR</makevar></link> for why it is a bad idea to write - directly in to the <filename>pkg</filename> subdirectory).</para> - - <para>Here is a list of variable names and their default - values.</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Variable</entry> - <entry>Default value</entry> - </row> - </thead> - - <tbody> - <row> - <entry><makevar>COMMENT</makevar></entry> - <entry><literal>${PKGDIR}/COMMENT</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}/INSTALL</literal></entry> - </row> - - <row> - <entry><makevar>PKGDEINSTALL</makevar></entry> - <entry><literal>${PKGDIR}/DEINSTALL</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>Please change these variables rather than overriding - <makevar>PKG_ARGS</makevar>. If you change - <makevar>PKG_ARGS</makevar>, those files will not correctly be - installed in <filename>/var/db/pkg</filename> upon install from a - port.</para> - </sect1> - </chapter> - - <chapter> - <title>Licensing Problems</title> - - <para>Some software packages have restrictive licenses or can be in - violation to the law (PKP's patent on public key crypto, ITAR (export - of crypto software) to name just two of them). What we can do with - them varies a lot, depending on the exact wordings of the respective - licenses.</para> - - <note> - <para>It is your responsibility as a porter to read the licensing - terms of the software and make sure that the FreeBSD project will - not be held accountable of violating them by redistributing the - source or compiled binaries either via ftp or CD-ROM. If in doubt, - please contact the &a.ports;.</para> - </note> - - <para>There are two variables you can set in the Makefile to handle the - situations that arise frequently:</para> - - <orderedlist> - <listitem> - <para>If the port has a “do not sell for profit” type of - license, set the variable <makevar>NO_CDROM</makevar> to a string - describing the reason why. We will make sure such ports will not go - into the CD-ROM come release time. The distfile and package will - still be available via ftp.</para> - </listitem> - - <listitem> - <para>If the resulting package needs to be built uniquely for each - site, or the resulting binary package cannot be distributed due to - licensing; set the variable <makevar>NO_PACKAGE</makevar> to a - string describing the reason why. We will make sure such packages - will not go on the ftp site, nor into the CD-ROM come release time. - The distfile will still be included on both however.</para> - </listitem> - - <listitem> - <para>If the port has legal restrictions on who can use it (e.g., - crypto stuff) or has a “no commercial use” license, - set the variable <makevar>RESTRICTED</makevar> to be the string - describing the reason why. For such ports, the distfiles/packages - will not be available even from our ftp sites.</para> - </listitem> - </orderedlist> - - <note> - <para>The GNU General Public License (GPL), both version 1 and 2, - should not be a problem for ports.</para> - </note> - - <note> - <para>If you are a committer, make sure you update the - <filename>ports/LEGAL</filename> file too.</para> - </note> - </chapter> - - <chapter id="port-upgrading"> - <title>Upgrading</title> - - <para>When you notice that a port is out of date compared to the latest - version from the original authors, first make sure you have the latest - port. You can find them in the - <filename>ports/ports-current</filename> directory of the ftp mirror - sites. You may also use CVSup to keep your whole ports collection - up-to-date, as described in <ulink url="../handbook/synching.html#CVSUP-CONFIG">the Handbook</ulink>.</para> - - <para>The next step is to send a mail to the maintainer, if one is - listed in the port's <filename>Makefile</filename>. That person may - already be working on an upgrade, or have a reason to not upgrade the - port right now (because of, for example, stability problems of the new - version).</para> - - <para>If the maintainer asks you to do the upgrade or there is not any - such person to begin with, please make the upgrade and send the - recursive diff (either unified or context diff is fine, but port - committers appear to prefer unified diff more) of the new and old - ports directories to us (e.g., if your modified port directory is - called <filename>superedit</filename> and the original as in our tree - is <filename>superedit.bak</filename>, then send us the result of - <command>diff -ruN superedit.bak superedit</command>). Please examine - the output to make sure all the changes make sense. The best way to - send us the diff is by including it to &man.send-pr.1; (category - <literal>ports</literal>). Please mention any added or deleted files - in the message, as they have to be explicitly specified to CVS when - doing a commit. If the diff is more than about 20KB, please compress - and uuencode it; otherwise, just include it in as is in the PR.</para> - - <note> - <para>Once again, please use &man.diff.1; and not &man.shar.1; to send - updates to existing ports!</para> - </note> - </chapter> - - <chapter> - <title><anchor id="porting-dads">Dos and Don'ts</title> - - <para>Here is a list of common dos and don'ts that you encounter during - the porting process.You should check your own port against this list, - but you can also check ports in the PR database that others have - submitted. Submit any comments on ports you check as described in - <ulink url="../handbook/contrib-how.html#CONTRIB-GENERAL">Bug Reports and General - Commentary</ulink>. Checking ports in the PR database will both make - it faster for us to commit them, and prove that you know what you are - doing.</para> - - <sect1> - <title>Strip Binaries</title> - - <para>Do strip binaries. If the original source already strips the - binaries, fine; otherwise you should add a - <literal>post-install</literal> rule to to it yourself. Here is an - example;</para> - - <programlisting> -post-install: - strip ${PREFIX}/bin/xdl</programlisting> - - <para>Use the &man.file.1; command on the installed executable to - check whether the binary is stripped or not. If it does not say - <literal>not stripped</literal>, it is stripped.</para> - </sect1> - - <sect1> - <title>INSTALL_* macros</title> - - <para>Do use the macros provided in <filename>bsd.port.mk</filename> - to ensure correct modes and ownership of files in your own - <maketarget>*-install</maketarget> targets. They are:</para> - - <itemizedlist> - <listitem> - <para><makevar>INSTALL_PROGRAM</makevar> is a command to install - binary executables.</para> - </listitem> - - <listitem> - <para><makevar>INSTALL_SCRIPT</makevar> is a command to install - executable scripts.</para> - </listitem> - - <listitem> - <para><makevar>INSTALL_DATA</makevar> is a command to install - sharable data.</para> - </listitem> - - <listitem> - <para><makevar>INSTALL_MAN</makevar> is a command to install - manpages and other documentation (it does not compress - anything).</para> - </listitem> - </itemizedlist> - - <para>These are basically the <command>install</command> command with - all the appropriate flags. See below for an example on how to use - them.</para> - </sect1> - - <sect1 id="porting-wrkdir"> - <title><makevar>WRKDIR</makevar></title> - - <para>Do not write anything to files outside - <makevar>WRKDIR</makevar>. <makevar>WRKDIR</makevar> is the only - place that is guaranteed to be writable during the port build (see - <ulink url="../handbook/ports-using.html#PORTS-CD">compiling ports from CDROM</ulink> for an - example of building ports from a read-only tree). If you need to - modify some file in <makevar>PKGDIR</makevar>, do so by <link - linkend="porting-pkgsubdir">redefining a variable</link>, not by - writing over it.</para> - </sect1> - - <sect1 id="porting-wrkdirprefix"> - <title><makevar>WRKDIRPREFIX</makevar></title> - - <para>Make sure your port honors <makevar>WRKDIRPREFIX</makevar>. - Most ports do not have to worry about this. In particular, if you - are referring to a <makevar>WRKDIR</makevar> of another port, note - that the correct location is - <filename><makevar>WRKDIRPREFIX</makevar><makevar>PORTSDIR</makevar>/<replaceable>subdir</replaceable>/<replaceable>name</replaceable>/work</filename> not <filename><makevar>PORTSDIR</makevar>/<replaceable>subdir</replaceable>/<replaceable>name</replaceable>/work</filename> or <filename><makevar>.CURDIR</makevar>/../../<replaceable>subdir</replaceable>/<replaceable>name</replaceable>/work</filename> or some such.</para> - - <para>Also, if you are defining <makevar>WRKDIR</makevar> yourself, - make sure you prepend - <literal>${WRKDIRPREFIX}${.CURDIR}</literal> in the - front.</para> - </sect1> - - <sect1 id="porting-versions"> - <title>Differentiating operating systems and OS versions</title> - - <para>You may come across code that needs modifications or conditional - compilation based upon what version of UNIX it is running under. If - you need to make such changes to the code for conditional - compilation, make sure you make the changes as general as possible - so that we can back-port code to FreeBSD 1.x systems and cross-port - to other BSD systems such as 4.4BSD from CSRG, BSD/386, 386BSD, - NetBSD, and OpenBSD.</para> - - <para>The preferred way to tell 4.3BSD/Reno (1990) and newer versions - of the BSD code apart is by using the <literal>BSD</literal> macro - defined in <filename><sys/param.h></filename>. Hopefully that - file is already included; if not, add the code:</para> - - <programlisting> -#if (defined(__unix__) || defined(unix)) && !defined(USG) -#include <sys/param.h> -#endif</programlisting> - - <para>to the proper place in the <filename>.c</filename> file. We - believe that every system that defines these two symbols has - <filename>sys/param.h</filename>. If you find a system that - does not, we would like to know. Please send mail to the - &a.ports;.</para> - - <para>Another way is to use the GNU Autoconf style of doing - this:</para> - - <programlisting> -#ifdef HAVE_SYS_PARAM_H -#include <sys/param.h> -#endif</programlisting> - - <para>Do not forget to add <literal>-DHAVE_SYS_PARAM_H</literal> to the - <makevar>CFLAGS</makevar> in the <filename>Makefile</filename> for - this method.</para> - - <para>Once you have <filename>sys/param.h</filename> included, you may - use:</para> - - <programlisting> -#if (defined(BSD) && (BSD >= 199103))</programlisting> - - <para>to detect if the code is being compiled on a 4.3 Net2 code base - or newer (e.g. FreeBSD 1.x, 4.3/Reno, NetBSD 0.9, 386BSD, BSD/386 - 1.1 and below).</para> - - <para>Use:</para> - - <programlisting> -#if (defined(BSD) && (BSD >= 199306))</programlisting> - - <para>to detect if the code is being compiled on a 4.4 code base or - newer (e.g. FreeBSD 2.x, 4.4, NetBSD 1.0, BSD/386 2.0 or - above).</para> - - <para>The value of the <literal>BSD</literal> macro is - <literal>199506</literal> for the 4.4BSD-Lite2 code base. This is - stated for informational purposes only. It should not be used to - distinguish between versions of FreeBSD based only on 4.4-Lite vs. - versions that have merged in changes from 4.4-Lite2. The - <literal>__FreeBSD__</literal> macro should be used instead.</para> - - <para>Use sparingly:</para> - - <itemizedlist> - <listitem> - <para><literal>__FreeBSD__</literal> is defined in all versions of - FreeBSD. Use it if the change you are making - <emphasis>only</emphasis> affects FreeBSD. Porting gotchas like - the use of <literal>sys_errlist[]</literal> vs - <function>strerror()</function> are Berkeleyisms, not FreeBSD - changes.</para> - </listitem> - - <listitem> - <para>In FreeBSD 2.x, <literal>__FreeBSD__</literal> is defined to - be <literal>2</literal>. In earlier versions, it is - <literal>1</literal>. Later versions will bump it to match - their major version number.</para> - </listitem> - - <listitem> - <para>If you need to tell the difference between a FreeBSD 1.x - system and a FreeBSD 2.x or 3.x system, usually the right answer - is to use the <literal>BSD</literal> macros described above. If - there actually is a FreeBSD specific change (such as special - shared library options when using <command>ld</command>) then it - is OK to use <literal>__FreeBSD__</literal> and <literal>#if - __FreeBSD__ > 1</literal> to detect a FreeBSD 2.x and later - system. If you need more granularity in detecting FreeBSD - systems since 2.0-RELEASE you can use the following:</para> - - <programlisting> -#if __FreeBSD__ >= 2 -#include <osreldate.h> -# if __FreeBSD_version >= 199504 - /* 2.0.5+ release specific code here */ -# endif -#endif</programlisting> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Release</entry> - <entry><literal>__FreeBSD_version</literal></entry> - </row> - </thead> - - <tbody> - <row> - <entry>2.0-RELEASE</entry> - <entry>119411</entry> - </row> - - <row> - <entry>2.1-CURRENT</entry> - <entry>199501, 199503</entry> - </row> - - <row> - <entry>2.0.5-RELEASE</entry> - <entry>199504</entry> - </row> - - <row> - <entry>2.2-CURRENT before 2.1</entry> - <entry>199508</entry> - </row> - - <row> - <entry>2.1.0-RELEASE</entry> - <entry>199511</entry> - </row> - - <row> - <entry>2.2-CURRENT before 2.1.5</entry> - <entry>199512</entry> - </row> - - <row> - <entry>2.1.5-RELEASE</entry> - <entry>199607</entry> - </row> - - <row> - <entry>2.2-CURRENT before 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 (no change)</entry> - </row> - - <row> - <entry>2.2-STABLE after 2.2.1-RELEASE</entry> - <entry>220000 (no change)</entry> - </row> - - <row> - <entry>2.2-STABLE after texinfo-3.9</entry> - <entry>221001</entry> - </row> - - <row> - <entry>2.2-STABLE after top</entry> - <entry>221002</entry> - </row> - - <row> - <entry>2.2.2-RELEASE</entry> - <entry>222000</entry> - </row> - - <row> - <entry>2.2-STABLE after 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 after 2.2.5-RELEASE</entry> - <entry>225001</entry> - </row> - - <row> - <entry>2.2-STABLE after ldconfig -R merge</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 after 2.2.7-RELEASE</entry> - <entry>227001</entry> - </row> - - <row> - <entry>2.2-STABLE after semctl(2) change</entry> - <entry>227002</entry> - </row> - - <row> - <entry>2.2.8-RELEASE</entry> - <entry>228000</entry> - </row> - - <row> - <entry>2.2-STABLE after 2.2.8-RELEASE</entry> - <entry>228001</entry> - </row> - - <row> - <entry>3.0-CURRENT before mount(2) change</entry> - <entry>300000</entry> - </row> - - <row> - <entry>3.0-CURRENT after mount(2) change</entry> - <entry>300001</entry> - </row> - - <row> - <entry>3.0-CURRENT after semctl(2) change</entry> - <entry>300002</entry> - </row> - - <row> - <entry>3.0-CURRENT after ioctl arg changes</entry> - <entry>300003</entry> - </row> - - <row> - <entry>3.0-CURRENT after ELF conversion</entry> - <entry>300004</entry> - </row> - - <row> - <entry>3.0-RELEASE</entry> - <entry>300005</entry> - </row> - - <row> - <entry>3.0-CURRENT after 3.0-RELEASE</entry> - <entry>300006</entry> - </row> - - <row> - <entry>3.0-STABLE after 3/4 branch</entry> - <entry>300007</entry> - </row> - - <row> - <entry>3.1-RELEASE</entry> - <entry>310000</entry> - </row> - - <row> - <entry>3.1-STABLE after 3.1-RELEASE</entry> - <entry>310001</entry> - </row> - - <row> - <entry>3.1-STABLE after C++ constructor/destructor order - change</entry> - <entry>310002</entry> - </row> - - <row> - <entry>3.2-RELEASE</entry> - <entry>320000</entry> - </row> - - <row> - <entry>3.2-STABLE</entry> - <entry>320001</entry> - </row> - - <row> - <entry>3.2-STABLE after binary-incompatible IPFW and - socket changes</entry> - <entry>320002</entry> - </row> - - <row> - <entry>3.3-RELEASE</entry> - <entry>330000</entry> - </row> - - <row> - <entry>3.3-STABLE</entry> - <entry>330001</entry> - </row> - - <row> - <entry>3.3-STABLE after adding mkstemps() to libc</entry> - <entry>330002</entry> - </row> - - <row> - <entry>3.4-RELEASE</entry> - <entry>340000</entry> - </row> - - <row> - <entry>3.4-STABLE</entry> - <entry>340001</entry> - </row> - - <row> - <entry>4.0-CURRENT after 3.4 branch</entry> - <entry>400000</entry> - </row> - - <row> - <entry>4.0-CURRENT after change in dynamic linker - handling</entry> - <entry>400001</entry> - </row> - - <row> - <entry>4.0-CURRENT after C++ constructor/destructor - order change</entry> - <entry>400002</entry> - </row> - - <row> - <entry>4.0-CURRENT after functioning dladdr(3)</entry> - <entry>400003</entry> - </row> - - <row> - <entry>4.0-CURRENT after __deregister_frame_info dynamic - linker bug fix (also 4.0-CURRENT after EGCS 1.1.2 - integration) - </entry> - <entry>400004</entry> - </row> - - <row> - <entry>4.0-CURRENT after suser(9) API change - (also 4.0-CURRENT after newbus)</entry> - <entry>400005</entry> - </row> - - <row> - <entry>4.0-CURRENT after cdevsw registration change</entry> - <entry>400006</entry> - </row> - - <row> - <entry>4.0-CURRENT after the addition of so_cred for - socket level credentials</entry> - <entry>400007</entry> - </row> - - <row> - <entry>4.0-CURRENT after the addition of a poll syscall - wrapper to libc_r</entry> - <entry>400008</entry> - </row> - - <row> - <entry>4.0-CURRENT after the change of the kernel's - <literal>dev_t</literal> type to <literal>struct - specinfo</literal> pointer</entry> - <entry>400009</entry> - </row> - - <row> - <entry>4.0-CURRENT after fixing a hole in jail(2)</entry> - <entry>400010</entry> - </row> - - <row> - <entry>4.0-CURRENT after the <literal>sigset_t</literal> - datatype change</entry> - <entry>400011</entry> - </row> - - <row> - <entry>4.0-CURRENT after the cutover to the GCC 2.95.2 - compiler</entry> - <entry>400012</entry> - </row> - - <row> - <entry>4.0-CURRENT after adding pluggable linux-mode - ioctl handlers</entry> - <entry>400013</entry> - </row> - - <row> - <entry>4.0-CURRENT after importing OpenSSL</entry> - <entry>400014</entry> - </row> - - <row> - <entry>4.0-CURRENT after the C++ ABI change in GCC 2.95.2 - from -fvtable-thunks to -fno-vtable-thunks by - default</entry> - <entry>400015</entry> - </row> - - <row> - <entry>4.0-CURRENT after importing OpenSSH</entry> - <entry>400016</entry> - </row> - - <row> - <entry>4.0-RELEASE</entry> - <entry>400017</entry> - </row> - - <row> - <entry>4.0-STABLE after 4.0-RELEASE</entry> - <entry>400018</entry> - </row> - - <row> - <entry>4.0-STABLE after merging libxpg4 code into - libc.</entry> - <entry>400020</entry> - </row> - - <row> - <entry>5.0-CURRENT</entry> - <entry>500000</entry> - </row> - - <row> - <entry>5.0-CURRENT after adding addition ELF header fields, - and changing our ELF binary branding method.</entry> - <entry>500001</entry> - </row> - - <row> - <entry>5.0-CURRENT after kld metadata changes.</entry> - <entry>500002</entry> - </row> - - <row> - <entry>5.0-CURRENT after buf/bio changes.</entry> - <entry>500003</entry> - </row> - - <row> - <entry>5.0-CURRENT after binutils upgrade.</entry> - <entry>500004</entry> - </row> - - <row> - <entry>5.0-CURRENT after merging libxpg4 code into - libc and after TASKQ interface introduction.</entry> - <entry>500005</entry> - </row> - - <row> - <entry>5.0-CURRENT after the addition of AGP - interfaces.</entry> - <entry>500006</entry> - </row> - - </tbody> - </tgroup> - </informaltable> - </listitem> - </itemizedlist> - - <note> - <para>Note that 2.2-STABLE sometimes identifies itself as - “2.2.5-STABLE” after the 2.2.5-RELEASE. The pattern - used to be year followed by the month, but we decided to change it - to a more straightforward major/minor system starting from 2.2. - This is because the parallel development on several branches made - it infeasible to classify the releases simply by their real - release dates. If you are making a port now, you do not have to - worry about old -CURRENTs; they are listed here just for your - reference.</para> - </note> - - <para>In the hundreds of ports that have been done, there have only - been one or two cases where <literal>__FreeBSD__</literal> should - have been used. Just because an earlier port screwed up and used it - in the wrong place does not mean you should do so too.</para> - </sect1> - - <sect1> - <title>Writing something after - <filename>bsd.port.mk</filename></title> - - <para>Do not write anything after the <literal>.include - <bsd.port.mk></literal> line. It usually can be avoided by - including <filename>bsd.port.pre.mk</filename> somewhere in the - middle of your <filename>Makefile</filename> and - <filename>bsd.port.post.mk</filename> at the end.</para> - - <note> - <para>You need to include either the - <filename>pre.mk</filename>/<filename>post.mk</filename> pair or - <filename>bsd.port.mk</filename> only; do not mix these two.</para> - </note> - - <para><filename>bsd.port.pre.mk</filename> only defines a few - variables, which can be used in tests in the - <filename>Makefile</filename>, <filename>bsd.port.post.mk</filename> - defines the rest.</para> - - <para>Here are some important variables defined in - <filename>bsd.port.pre.mk</filename> (this is not the complete list, - please read <filename>bsd.port.mk</filename> for the complete - list).</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>The architecture as returned by <command>uname - -m</command> (e.g., <literal>i386</literal>)</entry> - </row> - - <row> - <entry><makevar>OPSYS</makevar></entry> - <entry>The operating system type, as returned by - <command>uname -s</command> (e.g., - <literal>FreeBSD</literal>)</entry> - </row> - - <row> - <entry><makevar>OSREL</makevar></entry> - <entry>The release version of the operating system (e.g., - <literal>2.1.5</literal> or - <literal>2.2.7</literal>)</entry> - </row> - - <row> - <entry><makevar>OSVERSION</makevar></entry> - <entry>The numeric version of the operating system, same as - <link - linkend="porting-versions"><literal>__FreeBSD_version</literal></link>.</entry> - </row> - - <row> - <entry><makevar>PORTOBJFORMAT</makevar></entry> - <entry>The object format of the system - (<literal>aout</literal> or <literal>elf</literal>)</entry> - </row> - - <row> - <entry><makevar>LOCALBASE</makevar></entry> - <entry>The base of the “local” tree (e.g., - <literal>/usr/local/</literal>)</entry> - </row> - - <row> - <entry><makevar>X11BASE</makevar></entry> - <entry>The base of the “X11” tree (e.g., - <literal>/usr/X11R6</literal>)</entry> - </row> - - <row> - <entry><makevar>PREFIX</makevar></entry> - <entry>Where the port installs itself (see <link - linkend="porting-prefix">more on - <makevar>PREFIX</makevar></link>).</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <note> - <para>If you have to define the variables - <makevar>USE_IMAKE</makevar>, <makevar>USE_X_PREFIX</makevar>, or - <makevar>MASTERDIR</makevar>, do so before including - <filename>bsd.port.pre.mk</filename>.</para> - </note> - - <para>Here are some examples of things you can write after - <filename>bsd.port.pre.mk</filename>:</para> - - <programlisting> -# no need to compile lang/perl5 if perl5 is already in system -.if ${OSVERSION} > 300003 -BROKEN= perl is in system -.endif - -# only one shlib version number for ELF -.if ${PORTOBJFORMAT} == "elf" -TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR} -.else -TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR}.${SHLIB_MINOR} -.endif - -# software already makes link for ELF, but not for a.out -post-install: -.if ${PORTOBJFORMAT} == "aout" - ${LN} -sf liblinpack.so.1.0 ${PREFIX}/lib/liblinpack.so -.endif</programlisting> - </sect1> - - <sect1> - <title>Install additional documentation</title> - - <para>If your software has some documentation other than the standard - man and info pages that you think is useful for the user, install it - under <filename><makevar>PREFIX</makevar>/share/doc</filename>. - This can be done, like the previous item, in the - <maketarget>post-install</maketarget> target.</para> - - <para>Create a new directory for your port. The directory name should - reflect what the port is. This usually means - <makevar>PORTNAME</makevar>. However, if you - think the user might want different versions of the port to be - installed at the same time, you can use the whole - <makevar>PKGNAME</makevar>.</para> - - <para>Make the installation dependent to the variable - <makevar>NOPORTDOCS</makevar> so that users can disable it in - <filename>/etc/make.conf</filename>, like this:</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>Do not forget to add them to <filename>pkg/PLIST</filename> too! - (Do not worry about <makevar>NOPORTDOCS</makevar> here; there is - currently no way for the packages to read variables from - <filename>/etc/make.conf</filename>.)</para> - - <para>Also you can use the <filename>pkg/MESSAGE</filename> file to - display messages upon installation. See the <link - linkend="porting-message">using - <filename>pkg/MESSAGE</filename></link> section for - details.</para> - - <note> - <para><filename>MESSAGE</filename> does not need to be added to - <filename>pkg/PLIST</filename>).</para> - </note> - </sect1> - - <sect1> - <title><makevar>DIST_SUBDIR</makevar></title> - - <para>Do not let your port clutter - <filename>/usr/ports/distfiles</filename>. If your port requires a - lot of files to be fetched, or contains a file that has a name that - might conflict with other ports (e.g., - <filename>Makefile</filename>), set <makevar>DIST_SUBDIR</makevar> - to the name of the port (<literal>${PORTNAME}</literal> or - <literal>${PKGNAMEPREFIX}${PORTNAME}</literal> - should work fine). This will change - <makevar>DISTDIR</makevar> from the default - <filename>/usr/ports/distfiles</filename> to - <filename>/usr/ports/distfiles/<makevar>DIST_SUBDIR</makevar></filename>, - and in effect puts everything that is required for your port into - that subdirectory.</para> - - <para>It will also look at the subdirectory with the same name on the - backup master site at <filename>ftp.FreeBSD.org</filename>. - (Setting <makevar>DISTDIR</makevar> explicitly in your - <makevar>Makefile</makevar> will not accomplish this, so please use - <makevar>DIST_SUBDIR</makevar>.)</para> - - <note> - <para>This does not affect the <makevar>MASTER_SITES</makevar> you - define in your Makefile.</para> - </note> - </sect1> - - <sect1> - <title>Package information</title> - - <para>Do include package information, i.e. - <filename>COMMENT</filename>, <filename>DESCR</filename>, and - <filename>PLIST</filename>, in <filename>pkg</filename>.</para> - - <note> - <para>Note that these files are not used only for packaging anymore, - and are <emphasis>mandatory</emphasis> now, even if - <makevar>NO_PACKAGE</makevar> is set.</para> - </note> - </sect1> - - <sect1> - <title>RCS strings</title> - - <para>Do not put RCS strings in patches. CVS will mangle them when we - put the files into the ports tree, and when we check them out again, - they will come out different and the patch will fail. RCS strings - are surrounded by dollar (<literal>$</literal>) signs, and - typically start with <literal>$Id</literal> or - <literal>$RCS</literal>.</para> - </sect1> - - <sect1> - <title>Recursive diff</title> - - <para>Using the recurse (<option>-r</option>) option to - <command>diff</command> to generate patches is fine, but please take - a look at the resulting patches to make sure you do not have any - unnecessary junk in there. In particular, diffs between two backup - files, <filename>Makefiles</filename> when the port uses - <command>Imake</command> or GNU <command>configure</command>, etc., - are unnecessary and should be deleted. If you had to edit - <filename>configure.in</filename> and run - <command>autoconf</command> to regenerate - <command>configure</command>, do not take the diffs of - <command>configure</command> (it often grows to a few thousand - lines!); define <literal>USE_AUTOCONF=yes</literal> and take the - diffs of <filename>configure.in</filename>.</para> - - <para>Also, if you had to delete a file, then you can do it in the - <maketarget>post-extract</maketarget> target rather than as part of - the patch. Once you are happy with the resulting diff, please split - it up into one source file per patch file.</para> - </sect1> - - <sect1 id="porting-prefix"> - <title><makevar>PREFIX</makevar></title> - - <para>Do try to make your port install relative to - <makevar>PREFIX</makevar>. (The value of this variable will be set - to <makevar>LOCALBASE</makevar> (default - <filename>/usr/local</filename>), unless - <makevar>USE_X_PREFIX</makevar> or <makevar>USE_IMAKE</makevar> is - set, in which case it will be <makevar>X11BASE</makevar> (default - <filename>/usr/X11R6</filename>).)</para> - - <para>Not hard-coding <filename>/usr/local</filename> or - <filename>/usr/X11R6</filename> anywhere in the source will make the - port much more flexible and able to cater to the needs of other - sites. For X ports that use <command>imake</command>, this is - automatic; otherwise, this can often be done by simply replacing the - occurrences of <filename>/usr/local</filename> (or - <filename>/usr/X11R6</filename> for X ports that do not use imake) - in the various scripts/Makefiles in the port to read - <makevar>PREFIX</makevar>, as this variable is automatically passed - down to every stage of the build and install processes.</para> - - <para>Do not set <makevar>USE_X_PREFIX</makevar> unless your port - truly require it (i.e., it links against X libs or it needs to - reference files in <makevar>X11BASE</makevar>).</para> - - <para>The variable <makevar>PREFIX</makevar> can be reassigned in your - <filename>Makefile</filename> or in the user's environment. - However, it is strongly discouraged for individual ports to set this - variable explicitly in the <filename>Makefiles</filename>.</para> - - <para>Also, refer to programs/files from other ports with the - variables mentioned above, not explicit pathnames. For instance, if - your port requires a macro <literal>PAGER</literal> to be the full - pathname of <command>less</command>, use the compiler flag: - - <programlisting> --DPAGER=\"${PREFIX}/bin/less\"</programlisting> - - or - - <programlisting> --DPAGER=\"${LOCALBASE}/bin/less\"</programlisting> - - if this is an X port, instead of - <literal>-DPAGER=\"/usr/local/bin/less\".</literal> This way it will - have a better chance of working if the system administrator has - moved the whole `/usr/local' tree somewhere else.</para> - </sect1> - - <sect1> - <title>Subdirectories</title> - - <para>Try to let the port put things in the right subdirectories of - <makevar>PREFIX</makevar>. Some ports lump everything and put it in - the subdirectory with the port's name, which is incorrect. Also, - many ports put everything except binaries, header files and manual - pages in the a subdirectory of <filename>lib</filename>, which does - not bode well with the BSD paradigm. Many of the files should be - moved to one of the following: <filename>etc</filename> - (setup/configuration files), <filename>libexec</filename> - (executables started internally), <filename>sbin</filename> - (executables for superusers/managers), <filename>info</filename> - (documentation for info browser) or <filename>share</filename> - (architecture independent files). See man &man.hier.7; for details, - the rules governing - <filename>/usr</filename> pretty much apply to - <filename>/usr/local</filename> too. The exception are ports - dealing with USENET “news”. They may use - <filename><makevar>PREFIX</makevar>/news</filename> as a destination - for their files.</para> - </sect1> - - <sect1 id="porting-cleaning"> - <title>Cleaning up empty directories</title> - - <para>Do make your ports clean up after themselves when they are - deinstalled. This is usually accomplished by adding - <literal>@dirrm</literal> lines for all directories that are - specifically created by the port. You need to delete subdirectories - before you can delete parent directories.</para> - - <programlisting> - : -lib/X11/oneko/pixmaps/cat.xpm -lib/X11/oneko/sounds/cat.au - : -@dirrm lib/X11/oneko/pixmaps -@dirrm lib/X11/oneko/sounds -@dirrm lib/X11/oneko</programlisting> - - <para>However, sometimes <literal>@dirrm</literal> will give you - errors because other ports also share the same subdirectory. You - can call <command>rmdir</command> from <literal>@unexec</literal> to - remove only empty directories without warning.</para> - - <programlisting> -@unexec rmdir %D/share/doc/gimp 2>/dev/null || true</programlisting> - - <para>This will neither print any error messages nor cause - <command>pkg_delete</command> to exit abnormally even if - <filename><makevar>PREFIX</makevar>/share/doc/gimp</filename> is not - empty due to other ports installing some files in there.</para> - </sect1> - - <sect1> - <title>UIDs</title> - - <para>If your port requires a certain user to be on the installed - system, let the <filename>pkg/INSTALL</filename> script call - <command>pw</command> to create it automatically. Look at - <filename>net/cvsup-mirror</filename> for an example.</para> - - <para>If your port must use the same user/group ID number when it is - installed a binary package as when it was compiled, then you must - choose a free UID from 50 to 99 and register it below. Look at - <filename>japanese/Wnn</filename> for an example.</para> - - <para>Make sure you do not use a UID already used by the system or - other ports. This is the current list of UIDs between 50 and - 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 -mysql:*:88:88:MySQL Daemon:/var/db/mysql:/sbin/nologin</programlisting> - - <para>Please include a notice when you submit a port (or an upgrade) - that reserves a new UID or GID in this range. This allows us to - keep the list of reserved IDs up to date.</para> - </sect1> - - <sect1> - <title>Do things rationally</title> - - <para>The <filename>Makefile</filename> should do things simply and - reasonably. If you can make it a couple of lines shorter or more - readable, then do so. Examples include using a make - <literal>.if</literal> construct instead of a shell - <literal>if</literal> construct, not redefining - <maketarget>do-extract</maketarget> if you can redefine - <makevar>EXTRACT*</makevar> instead, and using - <makevar>GNU_CONFIGURE</makevar> instead of <literal>CONFIGURE_ARGS - += --prefix=${PREFIX}</literal>.</para> - </sect1> - - <sect1> - <title>Respect <makevar>CFLAGS</makevar></title> - - <para>The port should respect the <makevar>CFLAGS</makevar> variable. - If it does not, please add <literal>NO_PACKAGE=ignores - cflags</literal> to the <filename>Makefile</filename>.</para> - - <para>An example of a <filename>Makefile</filename> respecting - the <makevar>CFLAGS</makevar> variable follows. Note the - <makevar>+=</makevar>:</para> - - <programlisting>CFLAGS += -Wall -Werror</programlisting> - - <para>Here is an example which does not respect the - <makevar>CFLAGS</makevar> variable:</para> - - <programlisting>CFLAGS = -Wall -Werror</programlisting> - - <para>The <makevar>CFLAGS</makevar> variable is defined on - FreeBSD systems in <filename>/etc/make.conf</filename>. The - first example appends additional flags to the - <makevar>CFLAGS</makevar> variable, preserving any system-wide - definitions. The second example clobbers anything previously - defined.</para> - </sect1> - - <sect1> - <title>Configuration files</title> - - <para>If your port requires some configuration files in - <filename><makevar>PREFIX</makevar>/etc</filename>, do - <emphasis>not</emphasis> just install them and list them in - <filename>pkg/PLIST</filename>. That will cause - <command>pkg_delete</command> to delete files carefully edited by - the user and a new installation to wipe them out.</para> - - <para>Instead, install sample files with a suffix - (<filename><replaceable>filename</replaceable>.sample</filename> - will work well) and print out a <link - linkend="porting-message">message</link> pointing out that the - user has to copy and edit the file before the software can be made - to work.</para> - </sect1> - - <sect1> - <title>Portlint</title> - - <para>Do check your work with <link - linkend="porting-portlint"><command>portlint</command></link> - before you submit or commit it.</para> - </sect1> - - <sect1> - <title>Feedback</title> - - <para>Do send applicable changes/patches to the original - author/maintainer for inclusion in next release of the code. This - will only make your job that much easier for the next - release.</para> - </sect1> - - <sect1> - <title>Miscellanea</title> - - <para>The files <filename>pkg/DESCR</filename>, - <filename>pkg/COMMENT</filename>, and <filename>pkg/PLIST</filename> - should each be double-checked. If you are reviewing a port and feel - they can be worded better, do so.</para> - - <para>Do not copy more copies of the GNU General Public License into - our system, please.</para> - - <para>Please be careful to note any legal issues! Do not let us - illegally distribute software!</para> - </sect1> - - <sect1> - <title>If you are stuck…</title> - - <para>Do look at existing examples and the - <filename>bsd.port.mk</filename> file before asking us questions! - <!-- smiley --><emphasis>;-)</emphasis></para> - - <para>Do ask us questions if you have any trouble! Do not just beat - your head against a wall! <!-- smiley - --><emphasis>:-)</emphasis></para> - </sect1> - </chapter> - - <chapter id="porting-samplem"> - <title>A Sample <filename>Makefile</filename></title> - - <para>Here is a sample <filename>Makefile</filename> that you can use to - create a new port. Make sure you remove all the extra comments (ones - between brackets)!</para> - - <para>It is recommended that you follow this format (ordering of - variables, empty lines between sections, etc.). This format is - designed so that the most important information is easy to locate. We - recommend that you use <link - linkend="porting-portlint">portlint</link> to check the - <filename>Makefile</filename>.</para> - - <programlisting> -[the header...just to make it easier for us to identify the ports.] -# New ports collection makefile for: xdvi -[the "version required" line is only needed when the PORTVERSION - variable is not specific enough to describe the port.] -# Version required: pl18 + japanization patches 18.1 and 18.2 -[this is the date when the first version of this Makefile was created. -Never change this when doing an update of the port.] -# Date created: 26 May 1995 -[this is the person who did the original port to FreeBSD, in particular, the -person who wrote the first version of this Makefile. Remember, this should -not be changed when upgrading the port later.] -# Whom: Satoshi Asami <asami@FreeBSD.org> -# -# $FreeBSD$ -[ ^^^^^^^^^ This will be automatically replaced with RCS ID string by CVS -when it is committed to our repository. If upgrading a port, do not alter -this line back to "$FreeBSD$". CVS deals with it automatically.] -# - -[section to describe the port itself and the master site - PORTNAME - and PORTVERSION are always first, followed by CATEGORIES, - and then MASTER_SITES, which can be followed by MASTER_SITE_SUBDIR. - PKGNAMEPREFIX and PKGNAMESUFFIX, if needed, will be after that. - Then comes DISTNAME, EXTRACT_SUFX and/or DISTFILES, and then - EXTRACT_ONLY, as necessary.] -PORTNAME= xdvi -PORTVERSION= 18.2 -CATEGORIES= print -[do not forget the trailing slash ("/")! - if you are not using MASTER_SITE_* macros] -MASTER_SITES= ${MASTER_SITE_XCONTRIB} -MASTER_SITE_SUBDIR= applications -PKGNAMEPREFIX= ja- -DISTNAME= xdvi-pl18 -[set this if the source is not in the standard ".tar.gz" form] -EXTRACT_SUFX= .tar.Z - -[section for distributed patches -- can be empty] -PATCH_SITES= ftp://ftp.sra.co.jp/pub/X11/japanese/ -PATCHFILES= xdvi-18.patch1.gz xdvi-18.patch2.gz - -[maintainer; *mandatory*! This is the person (preferably with commit - privileges) whom a user can contact for questions and bug reports - this - person should be the porter or someone who can forward questions to the - original porter reasonably promptly. If you really do not want to have - your address here, set it to "ports@FreeBSD.org".] -MAINTAINER= asami@FreeBSD.org - -[dependencies -- can be empty] -RUN_DEPENDS= gs:${PORTSDIR}/print/ghostscript -LIB_DEPENDS= Xpm.5:${PORTSDIR}/graphics/xpm - -[this section is for other standard bsd.port.mk variables that do not - belong to any of the above] -[If it asks questions during configure, build, install...] -IS_INTERACTIVE= yes -[If it extracts to a directory other than ${DISTNAME}...] -WRKSRC= ${WRKDIR}/xdvi-new -[If the distributed patches were not made relative to ${WRKSRC}, you - may need to tweak this] -PATCH_DIST_STRIP= -p1 -[If it requires a "configure" script generated by GNU autoconf to be run] -GNU_CONFIGURE= yes -[If it requires GNU make, not /usr/bin/make, to build...] -USE_GMAKE= yes -[If it is an X application and requires "xmkmf -a" to be run...] -USE_IMAKE= yes -[et cetera.] - -[non-standard variables to be used in the rules below] -MY_FAVORITE_RESPONSE= "yeah, right" - -[then the special rules, in the order they are called] -pre-fetch: - i go fetch something, yeah - -post-patch: - i need to do something after patch, great - -pre-install: - and then some more stuff before installing, wow - -[and then the epilogue] -.include <bsd.port.mk></programlisting> - </chapter> - - <chapter id="porting-autoplist"> - <title>Automated package list creation</title> - - <para>First, make sure your port is almost complete, with only - <filename>PLIST</filename> missing. Create an empty - <filename>PLIST</filename>.</para> - - <screen>&prompt.root; <userinput>touch PLIST</userinput></screen> - - <para>Next, create a new set of directories which your port can be - installed, and install any dependencies.</para> - - <screen>&prompt.root; <userinput>mtree -U -f /etc/mtree/BSD.local.dist -d -e -p /var/tmp/<replaceable>port-name</replaceable></userinput> -&prompt.root; <userinput>make depends PREFIX=/var/tmp/<replaceable>port-name</replaceable></userinput></screen> - - <para>Store the directory structure in a new file.</para> - - <screen>&prompt.root; <userinput>(cd /var/tmp/<replaceable>port-name</replaceable> && find * -type d) > OLD-DIRS</userinput></screen> - - <para>If your port honors <makevar>PREFIX</makevar> (which it should) - you can then install the port and create the package list.</para> - - <screen>&prompt.root; <userinput>make install PREFIX=/var/tmp/<replaceable>port-name</replaceable></userinput> -&prompt.root; <userinput>(cd /var/tmp/<replaceable>port-name</replaceable> && find * \! -type d) > pkg/PLIST</userinput></screen> - - <para>You must also add any newly created directories to the packing - list.</para> - - <screen>&prompt.root; <userinput>(cd /var/tmp/<replaceable>port-name && find * -type d) | comm -13 OLD-DIRS - | sed -e 's#^#@dirrm #' >> pkg/PLIST</replaceable></userinput></screen> - - <para>Finally, you need to tidy up the packing list by hand. I lied - when I said this was all automated. Manual pages should be listed in - the port's <filename>Makefile</filename> under - <makevar>MAN<replaceable>n</replaceable></makevar>, and not in the - package list. User configuration files should be removed, or - installed as - <filename><replaceable>filename</replaceable>.sample</filename>. - The <filename>info/dir</filename> file should not be listed - and appropriate <filename>install-info</filename> lines should - be added as noted in the <link linkend="porting-info">info - files</link> section. Any - libraries installed by the port should be listed as specified in the - <link linkend="porting-ldconfig">ldconfig</link> section.</para> - </chapter> - - <chapter id="porting-pkgname"> - <title>Package Names</title> - - <para>The following are the conventions you should follow in naming your - packages. This is to have our package directory easy to scan, as - there are already lots and lots of packages and users are going to - turn away if they hurt their eyes!</para> - - <para>The package name should look like - <filename><replaceable><optional>language<optional>_region</optional></optional>-name<optional><optional>-</optional>compiled.specifics</optional>-version.numbers</replaceable></filename>.</para> - - <para>The package name is defined as - <literal>${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}</literal>. - Make sure to set the variables to conform to that format.</para> - - <orderedlist> - <listitem> - <para>FreeBSD strives to support the native language of its users. - The <replaceable>language-</replaceable> part should be a two - letter abbreviation of the natural language defined by ISO-639 if - the port is specific to a certain language. Examples are - <literal>ja</literal> for Japanese, <literal>ru</literal> for - Russian, <literal>vi</literal> for Vietnamese, - <literal>zh</literal> for Chinese, <literal>ko</literal> for - Korean and <literal>de</literal> for German.</para> - - <para>If the port is specific to a certain region within the - language area, add the two letter country code as well. - Examples are <literal>en_US</literal> for US English and - <literal>fr_CH</literal> for Swiss French.</para> - - <para>The <replaceable>language-</replaceable> part should - be set in the <makevar>PKGNAMEPREFIX</makevar> variable.</para> - </listitem> - - <listitem> - <para>The <filename>name</filename> part should be all lowercase, - except for a really large package (with lots of programs in it). - Things like XFree86 (yes there really is a port of it, check it - out) and ImageMagick fall into this category. Otherwise, convert - the name (or at least the first letter) to lowercase. If the - capital letters are important to the name (for example, with - one-letter names like <literal>R</literal> or - <literal>V</literal>) you may use capital letters at your - discretion. There is a tradition of naming Perl 5 modules by - prepending <literal>p5-</literal> and converting the double-colon - separator to a hyphen; for example, the - <literal>Data::Dumper</literal> module becomes - <literal>p5-Data-Dumper</literal>. If the software in question - has numbers, hyphens, or underscores in its name, you may include - them as well (like <literal>kinput2</literal>).</para> - </listitem> - - <listitem> - <para>If the port can be built with different <link - linkend="porting-masterdir">hardcoded defaults</link> (usually - part of the directory name in a family of ports), the - <replaceable>-compiled.specifics</replaceable> part should state - the compiled-in defaults (the hyphen is optional). Examples are - papersize and font units.</para> - - <para>The <replaceable>compiled.specifics</replaceable> part - should be set in the <makevar>PKGNAMESUFFIX</makevar> - variable.</para> - </listitem> - - <listitem> - <para>The version string should follow a dash - (<literal>-</literal>) and be a period-separated list of - integers and single lowercase alphabetics. In particular, - it is not pormissible to have another dash inside the - version string. The only exception is the string - <literal>pl</literal> (meaning `patchlevel'), which can be - used <emphasis>only</emphasis> when there are no major and - minor version numbers in the software. If the software - version has strings like "alpha", "beta", or "pre", take - the first letter and put it immediately after a period. - If the version string continues after those names, the - numbers should follow the single alphabet without an extra - period between them.</para> - - <para>The idea is to make it easier to sort ports by looking - at the version string. In particular, make sure version - number components are always delimited by a period, and - if the date is part of the string, use the - <literal><replaceable>yyyy</replaceable>.<replaceable>mm</replaceable>.<replaceable>dd</replaceable></literal> - format, not - <literal><replaceable>dd</replaceable>.<replaceable>mm</replaceable>.<replaceable>yyyy</replaceable></literal> - or the non-Y2K compliant - <literal><replaceable>yy</replaceable>.<replaceable>mm</replaceable>.<replaceable>dd</replaceable></literal> - format.</para> - </listitem> - </orderedlist> - - <para>Here are some (real) examples on how to convert the name - as called by the software authors to a suitable package - name:</para> - - <informaltable frame="none"> - <tgroup cols="6"> - <thead> - <row> - <entry>Distribution Name</entry> - <entry><makevar>PKGNAMEPREFIX</makevar></entry> - <entry><makevar>PORTNAME</makevar></entry> - <entry><makevar>PKGNAMESUFFIX</makevar></entry> - <entry><makevar>PORTVERSION</makevar></entry> - <entry>Reason</entry> - </row> - </thead> - - <tbody> - <row> - <entry>mule-2.2.2</entry> - <entry>(empty)</entry> - <entry>mule</entry> - <entry>(empty)</entry> - <entry>2.2.2</entry> - <entry>No changes required</entry> - </row> - - <row> - <entry>XFree86-3.3.6</entry> - <entry>(empty)</entry> - <entry>XFree86</entry> - <entry>(empty)</entry> - <entry>3.3.6</entry> - <entry>No changes required</entry> - </row> - - <row> - <entry>EmiClock-1.0.2</entry> - <entry>(empty)</entry> - <entry>emiclock</entry> - <entry>(empty)</entry> - <entry>1.0.2</entry> - <entry>No uppercase names for single programs</entry> - </row> - - <row> - <entry>rdist-1.3alpha</entry> - <entry>(empty)</entry> - <entry>rdist</entry> - <entry>(empty)</entry> - <entry>1.3.a</entry> - <entry>No strings like <literal>alpha</literal> - allowed</entry> - </row> - - <row> - <entry>es-0.9-beta1</entry> - <entry>(empty)</entry> - <entry>es</entry> - <entry>(empty)</entry> - <entry>0.9.b1</entry> - <entry>No strings like <literal>beta</literal> - allowed</entry> - </row> - - <row> - <entry>v3.3beta021.src</entry> - <entry>(empty)</entry> - <entry>tiff</entry> - <entry>(empty)</entry> - <entry>3.3</entry> - <entry>What the heck was that anyway?</entry> - </row> - - <row> - <entry>tvtwm</entry> - <entry>(empty)</entry> - <entry>tvtwm</entry> - <entry>(empty)</entry> - <entry>pl11</entry> - <entry>Version string always required</entry> - </row> - - <row> - <entry>piewm</entry> - <entry>(empty)</entry> - <entry>piewm</entry> - <entry>(empty)</entry> - <entry>1.0</entry> - <entry>Version string always required</entry> - </row> - - <row> - <entry>xvgr-2.10pl1</entry> - <entry>(empty)</entry> - <entry>xvgr</entry> - <entry>(empty)</entry> - <entry>2.10.1</entry> - <entry><literal>pl</literal> allowed only when no - major/minor version numbers</entry> - </row> - - <row> - <entry>gawk-2.15.6</entry> - <entry>ja-</entry> - <entry>gawk</entry> - <entry>(empty)</entry> - <entry>2.15.6</entry> - <entry>Japanese language version</entry> - </row> - - <row> - <entry>psutils-1.13</entry> - <entry>(empty)</entry> - <entry>psutils</entry> - <entry>-letter</entry> - <entry>1.13</entry> - <entry>Papersize hardcoded at package build time</entry> - </row> - - <row> - <entry>pkfonts</entry> - <entry>(empty)</entry> - <entry>pkfonts</entry> - <entry>300</entry> - <entry>1.0</entry> - <entry>Package for 300dpi fonts</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>If there is absolutely no trace of version information in the - original source and it is unlikely that the original author will ever - release another version, just set the version string to - <literal>1.0</literal> (like the piewm example above). Otherwise, ask - the original author or use the date string - (<literal><replaceable>yyyy</replaceable>.<replaceable>mm</replaceable>.<replaceable>dd</replaceable></literal>) - as the version.</para> - </chapter> - - <chapter id="porting-categories"> - <title>Categories</title> - - <para>As you already know, ports are classified in several categories. - But for this to work, it is important that porters and users understand - what each category and how we decide what to put in each - category.</para> - - <sect1> - <title>Current list of categories</title> - - <para>First, this is the current list of port categories. Those - marked with an asterisk (<literal>*</literal>) are - <emphasis>virtual</emphasis> categories—those that do not have - a corresponding subdirectory in the ports tree.</para> - - <note> - <para>For non-virtual categories, you will find a one-line - description in the <filename>pkg/COMMENT</filename> file in that - subdirectory (e.g., - <filename>archivers/pkg/COMMENT</filename>).</para> - </note> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Category</entry> - <entry>Description</entry> - </row> - </thead> - - <tbody> - <row> - <entry><filename>afterstep*</filename></entry> - <entry>Ports to support the AfterStep window manager.</entry> - </row> - - <row> - <entry><filename>archivers</filename></entry> - <entry>Archiving tools.</entry> - </row> - - <row> - <entry><filename>astro</filename></entry> - <entry>Astronomical ports.</entry> - </row> - - <row> - <entry><filename>audio</filename></entry> - <entry>Sound support.</entry> - </row> - - <row> - <entry><filename>benchmarks</filename></entry> - <entry>Benchmarking utilities.</entry> - </row> - - <row> - <entry><filename>biology</filename></entry> - <entry>Biology-related software.</entry> - </row> - - <row> - <entry><filename>cad</filename></entry> - <entry>Computer aided design tools.</entry> - </row> - - <row> - <entry><filename>chinese</filename></entry> - <entry>Chinese language support.</entry> - </row> - - <row> - <entry><filename>comms</filename></entry> - <entry>Communication software. Mostly software to talk to - your serial port.</entry> - </row> - - <row> - <entry><filename>converters</filename></entry> - <entry>Character code converters.</entry> - </row> - - <row> - <entry><filename>databases</filename></entry> - <entry>Databases.</entry> - </row> - - <row> - <entry><filename>deskutils</filename></entry> - <entry>Things that used to be on the desktop before - computers were invented.</entry> - </row> - - <row> - <entry><filename>devel</filename></entry> - <entry>Development utilities. Do not put libraries here just - because they are libraries—unless they truly do not - belong anywhere else, they should not be in this - category.</entry> - </row> - - <row> - <entry><filename>editors</filename></entry> - <entry>General editors. Specialized editors go in the section - for those tools (e.g., a mathematical-formula editor will go - in <filename>math</filename>).</entry> - </row> - - <row> - <entry><filename>elisp*</filename></entry> - <entry>Emacs-lisp ports.</entry> - </row> - - <row> - <entry><filename>emulators</filename></entry> - <entry>Emulators for other operating systems. Terminal - emulators do <emphasis>not</emphasis> belong - here—X-based ones should go to - <filename>x11</filename> and text-based ones to either - <filename>comms</filename> or <filename>misc</filename>, - depending on the exact functionality.</entry> - </row> - - <row> - <entry><filename>ftp</filename></entry> - <entry>FTP client and server utilities. If your - port speaks both FTP and HTTP, put it in - <filename>ftp</filename> with a secondary - category of <filename>www</filename>.</entry> - </row> - - <row> - <entry><filename>games</filename></entry> - <entry>Games.</entry> - </row> - - <row> - <entry><filename>german</filename></entry> - <entry>German language support.</entry> - </row> - - <row> - <entry><filename>gnome*</filename></entry> - <entry>Ports from the GNU Object Model Environment (GNOME) - Project.</entry> - </row> - - <row> - <entry><filename>graphics</filename></entry> - <entry>Graphics utilities.</entry> - </row> - - <row> - <entry><filename>irc</filename></entry> - <entry>Internet Relay Chat utilities.</entry> - </row> - - <row> - <entry><filename>ipv6*</filename></entry> - <entry>IPv6 related software.</entry> - </row> - - <row> - <entry><filename>japanese</filename></entry> - <entry>Japanese language support.</entry> - </row> - - <row> - <entry><filename>java</filename></entry> - <entry>Java language support.</entry> - </row> - - <row> - <entry><filename>kde*</filename></entry> - <entry>Ports from the K Desktop Environment (KDE) - Project.</entry> - </row> - - <row> - <entry><filename>korean</filename></entry> - <entry>Korean language support.</entry> - </row> - - <row> - <entry><filename>lang</filename></entry> - <entry>Programming languages.</entry> - </row> - - <row> - <entry><filename>linux*</filename></entry> - <entry>Linux applications and support utilities.</entry> - </row> - - <row> - <entry><filename>mail</filename></entry> - <entry>Mail software.</entry> - </row> - - <row> - <entry><filename>math</filename></entry> - <entry>Numerical computation software and other utilities - for mathematics.</entry> - </row> - - <row> - <entry><filename>mbone</filename></entry> - <entry>MBone applications.</entry> - </row> - - <row> - <entry><filename>misc</filename></entry> - <entry>Miscellaneous utilities—basically things that - do not belong anywhere else. This is the only category - that should not appear with any other non-virtual category. - If you have <literal>misc</literal> with something else in - your <makevar>CATEGORIES</makevar> line, that means you can - safely delete <literal>misc</literal> and just put the port - in that other subdirectory!</entry> - </row> - - <row> - <entry><filename>net</filename></entry> - <entry>Miscellaneous networking software.</entry> - </row> - - <row> - <entry><filename>news</filename></entry> - <entry>USENET news software.</entry> - </row> - - <row> - <entry><filename>offix*</filename></entry> - <entry>Ports from the OffiX suite.</entry> - </row> - - <row> - <entry><filename>palm</filename></entry> - <entry>Software support for the 3Com Palm(tm) series.</entry> - </row> - - <row> - <entry><filename>perl5*</filename></entry> - <entry>Ports that require perl version 5 to run.</entry> - </row> - - <row> - <entry><filename>plan9*</filename></entry> - <entry>Various programs from Plan9.</entry> - </row> - - <row> - <entry><filename>print</filename></entry> - <entry>Printing software. Desktop publishing tools - (previewers, etc.) belong here too.</entry> - </row> - - <row> - <entry><filename>python*</filename></entry> - <entry>Software written in python.</entry> - </row> - - <row> - <entry><filename>russian</filename></entry> - <entry>Russian language support.</entry> - </row> - - <row> - <entry><filename>security</filename></entry> - <entry>Security utilities.</entry> - </row> - - <row> - <entry><filename>shells</filename></entry> - <entry>Command line shells.</entry> - </row> - - <row> - <entry><filename>sysutils</filename></entry> - <entry>System utilities.</entry> - </row> - - <row> - <entry><filename>tcl76*</filename></entry> - <entry>Ports that use Tcl version 7.6 to run.</entry> - </row> - - <row> - <entry><filename>tcl80*</filename></entry> - <entry>Ports that use Tcl version 8.0 to run.</entry> - </row> - - <row> - <entry><filename>tcl81*</filename></entry> - <entry>Ports that use Tcl version 8.1 to run.</entry> - </row> - - <row> - <entry><filename>tcl82*</filename></entry> - <entry>Ports that use Tcl version 8.2 to run.</entry> - </row> - - <row> - <entry><filename>textproc</filename></entry> - <entry>Text processing utilities. It does not include - desktop publishing tools, which go to print/.</entry> - </row> - - <row> - <entry><filename>tk42*</filename></entry> - <entry>Ports that use Tk version 4.2 to run.</entry> - </row> - - <row> - <entry><filename>tk80*</filename></entry> - <entry>Ports that use Tk version 8.0 to run.</entry> - </row> - - <row> - <entry><filename>tk81*</filename></entry> - <entry>Ports that use Tk version 8.1 to run.</entry> - </row> - - <row> - <entry><filename>tk82*</filename></entry> - <entry>Ports that use Tk version 8.2 to run.</entry> - </row> - - <row> - <entry><filename>tkstep80*</filename></entry> - <entry>Ports that use TkSTEP version 8.0 to run.</entry> - </row> - - <row> - <entry><filename>vietnamese</filename></entry> - <entry>Vietnamese language support.</entry> - </row> - - <row> - <entry><filename>windowmaker*</filename></entry> - <entry>Ports to support the WindowMaker window - manager</entry> - </row> - - <row> - <entry><filename>www</filename></entry> - <entry>Software related to the World Wide Web. HTML language - support belong here too.</entry> - </row> - - <row> - <entry>x11</entry> - <entry>The X window system and friends. This category is only - for software that directly support the window system. Do not - put regular X applications here. If your port is an X - application, define <makevar>USE_XLIB</makevar> (implied by - <makevar>USE_IMAKE</makevar>) and put it in appropriate - categories. Also, many of them go into other - <filename>x11-*</filename> categories (see below).</entry> - </row> - - <row> - <entry><filename>x11-clocks</filename></entry> - <entry>X11 clocks.</entry> - </row> - - <row> - <entry><filename>x11-fm</filename></entry> - <entry>X11 file managers.</entry> - </row> - - <row> - <entry><filename>x11-fonts</filename></entry> - <entry>X11 fonts and font utilities.</entry> - </row> - - <row> - <entry><filename>x11-servers</filename></entry> - <entry>X11 servers.</entry> - </row> - - <row> - <entry><filename>x11-toolkits</filename></entry> - <entry>X11 toolkits.</entry> - </row> - - <row> - <entry><filename>x11-wm</filename></entry> - <entry>X11 window managers.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </sect1> - - <sect1> - <title>Choosing the right category</title> - - <para>As many of the categories overlap, you often have to choose - which of the categories should be the primary category of your port. - There are several rules that govern this issue. Here is the list of - priorities, in decreasing order of precedence.</para> - - <itemizedlist> - <listitem> - <para>Language specific categories always come first. For - example, if your port installs Japanese X11 fonts, then your - <makevar>CATEGORIES</makevar> line would read <literal>japanese - x11-fonts</literal>.</para> - </listitem> - - <listitem> - <para>Specific categories win over less-specific ones. For - instance, an HTML editor should be listed as <literal>www - editors</literal>, not the other way around. Also, you do not - need to list <literal>net</literal> when the port belongs to - any of <literal>irc</literal>, <literal>mail</literal>, - <literal>mbone</literal>, <literal>news</literal>, - <literal>security</literal>, or <literal>www</literal>.</para> - </listitem> - - <listitem> - <para><literal>x11</literal> is used as a secondary category only - when the primary category is a natural language. In particular, - you should not put <literal>x11</literal> in the category line - for X applications.</para> - </listitem> - - <listitem> - <para><application>Emacs</application> modes should be - placed in the same ports category as the application - supported by the mode, not in - <filename>editors</filename>. For example, an - <application>Emacs</application> mode to edit source - files of some programming language should go into - <filename>lang</filename>. - </para> - </listitem> - - <listitem> - <para>If your port truly does not belong anywhere else, put it in - <literal>misc</literal>.</para> - </listitem> - </itemizedlist> - - <para>If you are not sure about the category, please put a comment to - that effect in your <command>send-pr</command> submission so we can - discuss it before we import it. If you are a committer, send a note - &a.ports; so we can discuss it first—too often new ports are - imported to a wrong category only to be moved right away.</para> - </sect1> - </chapter> - - <chapter> - <title>Changes to this document and the ports system</title> - - <para>If you maintain a lot of ports, you should consider following the - &a.ports;. Important changes to the way ports work will be announced - there. You can always find more detailed information on the latest - changes by looking at <ulink - url="http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/Mk/bsd.port.mk"> the - bsd.port.mk CVS log</ulink>.</para> - </chapter> - - <chapter> - <title>That is It, Folks!</title> - - <para>Boy, this sure was a long tutorial, wasn't it? Thanks for - following us to here, really. Now that you know how to do a port, - have at it and convert everything in the world into ports! That - is the easiest way to start contributing to the FreeBSD Project! - <!-- smiley --><emphasis>:-)</emphasis></para> - </chapter> -</book> - -<!-- - Local Variables: - mode: sgml - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - End: ---> diff --git a/en_US.ISO8859-1/books/porters-handbook/freebsd.dsl b/en_US.ISO8859-1/books/porters-handbook/freebsd.dsl deleted file mode 100644 index 015ec7d482..0000000000 --- a/en_US.ISO8859-1/books/porters-handbook/freebsd.dsl +++ /dev/null @@ -1,41 +0,0 @@ -<!-- $FreeBSD: doc/en_US.ISO_8859-1/books/porters-handbook/freebsd.dsl,v 1.1 2000/05/09 00:30:11 nik Exp $ --> - -<!-- Local DSSSL file for the Porter's Handbook. This is so we can include - a link to the -ports mailing list at the bottom of the HTML files, - rather than the -questions mailing list. --> - -<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ -<!ENTITY freebsd.dsl SYSTEM "../../share/sgml/freebsd.dsl" CDATA DSSSL> -]> - -<style-sheet> - <style-specification use="docbook"> - <style-specification-body> - - <![ %output.html; [ - (define ($email-footer$) - (make sequence - (literal "For questions about the FreeBSD ports system, e-mail <") - (make element gi: "a" - attributes: (list (list "href" "mailto:ports@freebsd.org")) - (literal "ports@freebsd.org")) - (literal ">.") - (make empty-element gi: "br") - (literal "For questions about this documentation, e-mail <") - (make element gi: "a" - attributes: (list (list "href" "mailto:doc@freebsd.org")) - (literal "doc@freebsd.org")) - (literal ">."))) - - <!-- Convert " ... " to `` ... '' in the HTML output. --> - (element quote - (make sequence - (literal "``") - (process-children) - (literal "''"))) - ]]> - </style-specification-body> - </style-specification> - - <external-specification id="docbook" document="freebsd.dsl"> -</style-sheet> diff --git a/en_US.ISO8859-1/books/ppp-primer/Makefile b/en_US.ISO8859-1/books/ppp-primer/Makefile deleted file mode 100644 index 769be1a879..0000000000 --- a/en_US.ISO8859-1/books/ppp-primer/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -# -# $FreeBSD: doc/en_US.ISO_8859-1/books/faq/Makefile,v 1.6 1999/09/06 06:52:39 peter Exp $ -# -# Build the PPP PrimerQ -# - -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 - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/en_US.ISO8859-1/books/ppp-primer/book.sgml b/en_US.ISO8859-1/books/ppp-primer/book.sgml deleted file mode 100644 index 102c33bafc..0000000000 --- a/en_US.ISO8859-1/books/ppp-primer/book.sgml +++ /dev/null @@ -1,2326 +0,0 @@ -<!DOCTYPE BOOK PUBLIC "-//Davenport//DTD DocBook V3.0//EN"> -<book> - -<bookinfo> -<title>PPP - Pedantic PPP Primer</title> - -<authorgroup> -<author> -<firstname>Steve</firstname> -<surname>Sims</surname> -<affiliation> -<address><email>SimsS@IBM.net</email></address> -</affiliation> -</author> -</authorgroup> - -<pubdate>$FreeBSD: doc/en_US.ISO_8859-1/books/ppp-primer/book.sgml,v 1.2 1999/09/17 23:43:40 nik Exp $</pubdate> - -<abstract><para>This is a step-by-step guide for configuring FreeBSD systems to act as -a dial-up router/gateway in a Local Area Environment. All entries may -be assumed to be relevant to FreeBSD 2.2+, unless otherwise noted.</para></abstract> - -</bookinfo> - -<preface> -<title>Overview:</title> - -<para>The User-Mode PPP dialer in FreeBSD Version 2.2 (also known as: -<emphasis remap=it>"IIJ-PPP"</emphasis> ) now supports Packet Aliasing for dial up -connections to the Internet. This feature, also known as -"<emphasis remap=it>Masquerading</emphasis>", "<emphasis remap=it>IP Aliasing</emphasis>", or "<emphasis remap=it>Network Address -Translation</emphasis>", allows a FreeBSD system to act as a dial- on-demand -router between an Ethernet-based Local Area Network and an Internet -Service Provider. Systems on the LAN can use the FreeBSD system to -forward information between the Internet by means of a single -dial-connection.</para> - -<para>This guide explains how to: -<itemizedlist> - -<listitem> -<para>Configure the FreeBSD system to support dial-out connections,</para> -</listitem> - -<listitem> -<para>Share a dial-out connection with other systems in a network,</para> -</listitem> - -<listitem> -<para>Configure Windows platforms to use the FreeBSD system as a gateway to the Internet.</para> -</listitem> - -</itemizedlist> -</para> - -<para>While the focus of this guide is to assist in configuring IP Aliasing, -it also includes specific examples of the configuration steps necessary -to configure and install each individual component; each section stands -alone and may be used to assist in the configuration of various aspects -of FreeBSD internetworking.</para> - -</preface> - -<chapter> -<title>Building the Local Area Network</title> - -<para> While the ppp program can, and usually is, be configured to provide -services to <emphasis>only</emphasis> the local FreeBSD box it can also be used to serve as a -"Gateway" (or "router") between other LAN-connected resources and the Internet or -other Dial-Up service.</para> - - -<sect1> -<title>Typical Network Topology</title> - -<para>This guide assumes a typical Local Area Network lashed together as -follows: -<programlisting> -+---------+ ----> Dial-Up Internet Connection -| FreeBSD | \ (i.e.: NetCom, AOL, AT&T, EarthLink, -etc) -| |-------- -| "Curly" | -| | -+----+----+ - | -|----+-------------+-------------+----| <-- Ethernet Network - | | | - | | | -+----+----+ +----+----+ +----+----+ -| | | | | | -| Win95 | | WFW | | WinNT | -| "Larry" | | "Moe" | | "Shemp" | -| | | | | | -+---------+ +---------+ +---------+</programlisting> -</para> - -</sect1> - -<sect1> -<title>Assumptions about the Local Area Network</title> - -<para>Some specific assumptions about this sample network are:</para> - -<para>Three workstations and a Server are connected with Ethernet -cabling: -<itemizedlist> - -<listitem> -<para>a FreeBSD Server ("Curly") with an NE-2000 adapter configured as -'ed0'</para> -</listitem> - -<listitem> -<para>a Windows-95 workstation ("Larry") with Microsoft's "native" -32-bit TCP/IP drivers</para> -</listitem> - -<listitem> -<para>a Windows for Workgroups workstation ("Moe") with Microsoft's -16-bit TCP/IP extensions</para> -</listitem> - -<listitem> -<para>a Windows NT workstation ("Shemp") with Microsoft's "native" -32-bit TCP/IP drivers</para> -</listitem> - -</itemizedlist> - </para> - -<para>The IP Addresses on the Ethernet side of this sample LAN have been</para> - -<para>taken from the pool of "reserved" addresses proposed in RFC-1597. -IP addresses are assigned as follows: -<literallayout>Name IP Address -"Curly" 192.168.1.1 # The FreeBSD box -"Larry" 192.168.1.2 # The Win'95 box -"Moe" 192.168.1.3 # The WfW box -"Shemp" 192.168.1.4 # The Windows NT box</literallayout> -</para> - -<para>This guide assumes that the modem on the FreeBSD box is connected -to the first serial port ('<filename>/dev/cuaa0</filename>' or '<emphasis remap=tt>COM1:</emphasis>' in -DOS-terms).</para> - -<para>Finally, we'll also assume that your Internet Service Provider (ISP) -automatically provides the IP addresses of both your PPP/FreeBSD side -as well as the ISP's side. (i.e.: Dynamic IP Addresses on both ends -of the link.) Specific details for configuring the Dial-Out side of -PPP will be addressed in Section 2, "Configuring the FreeBSD System".</para> - -</sect1> -</chapter> - -<chapter id="system-config"> -<title>FreeBSD System Configuration</title> - -<para>There are three basic pieces of information that must be known to -the FreeBSD box before you can proceed with integrating the sample -Local Area Network:</para> - -<para> -<itemizedlist> - -<listitem> -<para>The Host Name of the FreeBSD system; in our example it's "Curly",</para> -</listitem> - -<listitem> -<para>The Network configuration,</para> -</listitem> - -<listitem> -<para>The <filename>/etc/hosts</filename> file (which lists the names and IP addresses of -the other systems in your network)</para> -</listitem> - -</itemizedlist> -</para> - -<para>If you performed the installation of FreeBSD over a network -connection some of this information may already be configured into -your FreeBSD system.</para> - -<para>Even if you believe that the FreeBSD system was properly configured -when it was installed you should at least verify each of these bits of -information to prevent trouble in subsequent steps.</para> - - -<sect1> -<title>Verifying the FreeBSD Host Name</title> - -<para>It's possible that the FreeBSD host name was specified and saved -when the system was initially installed. To verify that it was, enter -the following command at a prompt:</para> - -<para> -<informalexample> -<screen># hostname</screen> -</informalexample> -</para> - -<para>The name of the host FreeBSD system will be displayed on a single -line. If the name looks correct (this is very subjective :-) skip -ahead to <xref linkend="verify-ether-if-config">.</para> - -<para>For example, in our sample network, we would see 'curly.my.domain' -as a result of the `hostname` command if the name had been set -correctly during, or after, installation. (At this point, don't worry -too much about the ".my.domain" part, we'll sort this out later. The -important part is the name up to the first dot.)</para> - -<para>If a host name wasn't specified when FreeBSD was installed you'll -probably see 'myname.my.domain` as a response. You'll need to edit -<filename>/etc/rc.conf</filename> to set the name of the machine.</para> - - -<sect2> -<title>Configuring the FreeBSD Host Name</title> - -<para><emphasis><emphasis remap=bf>Reminder: You must be logged in as 'root' to edit the -system configuration files!</emphasis></emphasis></para> - -<para><emphasis><emphasis remap=bf>CAUTION: If you mangle the system configuration files, -chances are your system WILL NOT BOOT correctly! Be careful!</emphasis></emphasis></para> - -<para>The configuration file that specifies the FreeBSD system's host -name when the system boots is in <filename>/etc/rc.conf</filename>. Use the -default text editor ('<emphasis remap=tt>ee</emphasis>') to edit this file.</para> - -<para>Logged in as user 'root' load <filename>/etc/rc.conf</filename> into the -editor with the following command: -<informalexample> -<screen># ee /etc/rc.conf</screen> -</informalexample> -</para> - -<para>Using the arrow keys, scroll down until you find the line that -specifies the host name of the FreeBSD system. By default, this -section says: -<informalexample> -<screen>--- -### Basic network options: ### -hostname="myname.my.domain" # Set this! ----</screen> -</informalexample> - -Change this section to say (in our example): -<informalexample> -<screen>--- -### Basic network options: ### -hostname="curly.my.domain" # Set this! ----</screen> -</informalexample> -</para> - -<para>Once the change to the host name has been made, press the 'Esc' key to -access the command menu. Select "leave editor" and make sure to -specify "save changes" when prompted.</para> - -</sect2> -</sect1> - -<sect1 id="verify-ether-if-config"> -<title>Verifying the Ethernet Interface Configuration</title> - -<para>To reiterate our basic assumption, this guide assumes that the -Ethernet Interface in the FreeBSD system is named '<emphasis remap=tt>ed0</emphasis>'. This is -the default for NE-1000, NE-2000, WD/SMC models 8003, 8013 and Elite -Ultra (8216) network adapters.</para> - -<para>Other models of network adapters may have different device names in -FreeBSD. Check the FAQ for specifics about your network adapter. If -you're not sure of the device name of your adapter, check the FreeBSD -FAQ to determine the device name for the card you have and substitute -that name (i.e.: '<emphasis remap=tt>de0</emphasis>', '<emphasis remap=tt>zp0</emphasis>', or similar) in the following -steps.</para> - -<para>As was the case with the host name, the configuration for the -FreeBSD system's Ethernet Interface may have been specified when the -system was installed.</para> - -<para>To display the configuration for the interfaces in your -FreeBSD system (Ethernet and others), enter the following command: -<informalexample> -<screen># ifconfig -a</screen> -</informalexample> - -(In layman's terms: "Show me the <emphasis remap=bf>I</emphasis>nter<emphasis remap=bf>F</emphasis>ace <acronym>CONFIG</acronym>uration -for my network devices.") </para> - -<para>An example: -<informalexample> -<screen># ifconfig -a - 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 - sl0: flags=c010<POINTOPOINT,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 -# _</screen> -</informalexample> -</para> - -<para>In this example, the following devices were displayed:</para> - -<para><emphasis remap=tt>ed0:</emphasis> The Ethernet Interface</para> - -<para><emphasis remap=tt>lp0:</emphasis> The Parallel Port Interface (ignored in this guide)</para> - -<para><emphasis remap=tt>tun0:</emphasis> The "tunnel" device; <emphasis>This is the one user-mode ppp uses!</emphasis></para> - -<para><emphasis remap=tt>sl0:</emphasis> The SL/IP device (ignored in this guide)</para> - -<para><emphasis remap=tt>ppp0:</emphasis> Another PPP device (for kernel ppp; ignored in this guide)</para> - -<para><emphasis remap=tt>lo0:</emphasis> The "Loopback" device (ignored in this guide)</para> - -<para>In this example, the 'ed0' device is up and running. The key -indicators are: -<orderedlist> - -<listitem> -<para>Its status is "<acronym>UP</acronym>",</para> -</listitem> - -<listitem> -<para>It has an Internet ("<emphasis remap=tt>inet</emphasis>") address, (in this case, 192.168.1.1)</para> -</listitem> - -<listitem> -<para>It has a valid Subnet Mask ("netmask"; 0xffffff00 is the same as -255.255.255.0), and</para> -</listitem> - -<listitem> -<para>It has a valid broadcast address (in this case, 192.168.1.255).</para> -</listitem> - -</orderedlist> -</para> - -<para>If the line for the Ethernet card had shown something similar to: -<informalexample> -<screen>ed0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 - ether 01:02:03:04:05:06</screen> -</informalexample> - -then the Ethernet card hasn't been configured yet.</para> - -<para>If the configuration for the Ethernet interface is correct you can -skip forward to <xref linkend="list-lan-hosts">.</para> - -<sect2 > -<title>Configuring your Ethernet Interface</title> - -<para><emphasis><emphasis remap=bf>Reminder: You must be logged in as 'root' to edit the -system configuration files!</emphasis></emphasis></para> - -<para><emphasis><emphasis remap=bf>CAUTION: If you mangle the system configuration files, -chances are your system WILL NOT BOOT correctly! Be careful!</emphasis></emphasis></para> - -<para>The configuration file that specifies settings for the network -interfaces when the system boots is in <filename>/etc/rc.conf</filename>. Use -the default text editor ('ee') to edit this file.</para> - -<para>Logged in as user 'root' load <filename>/etc/rc.conf</filename> into the -editor with the following command:</para> - -<para><command> # ee /etc/rc.conf</command></para> - -<para>About 20 lines from the top of <filename>/etc/rc.conf</filename> is the section -that describes which network interfaces should be activated when the -system boots. In the default configuration file the specific line -that controls this is:</para> - -<para> -<informalexample> -<screen>network_interfaces="lo0" # List of network interfaces (lo0 is loopback).</screen> -</informalexample> -</para> - -<para>You'll need to amend this line to tell FreeBSD that you want to add -another device, namely the '<emphasis remap=tt>ed0</emphasis>' device. Change this line to -read:</para> - -<para> -<informalexample> -<screen>network_interfaces="lo0 ed0" # List of network interfaces (lo0 is loopback).</screen> -</informalexample> -</para> - -<para>(Note the space between the definition for the loopback device -("<emphasis remap=tt>lo0</emphasis>") -and the Ethernet device ("<emphasis remap=tt>ed0</emphasis>")! </para> - -<para><emphasis><emphasis remap=bf> Reminder: If your Ethernet card isn't named '<emphasis remap=tt>ed0</emphasis>', specify -the correct device name here instead.</emphasis></emphasis></para> - -<para>If you performed the installation of FreeBSD over a network -connection then the '<literal>network_interfaces=</literal>' line may already -include a reference to your Ethernet adapter. If it is, verify that -it is the correct device name.</para> - -<para>Specify the Interface Settings for the Ethernet device -('<emphasis remap=tt>ed0</emphasis>'):</para> - -<para>Beneath the line that specifies which interfaces should be -activated are the lines that specify the actual settings for each -interface. In the default <filename>/etc/rc.conf</filename> file is a single -line that says:</para> - -<para> -<informalexample> -<screen>ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration.</screen> -</informalexample> -</para> - -<para>You'll need to add another line after that to specify the settings -for your '<emphasis remap=tt>ed0</emphasis>' device.</para> - -<para>If you performed the installation of FreeBSD over a network -connection then there may already be an '<literal>ifconfig_ed0=</literal>' line -after the loopback definition. If so, verify that it has the correct -values.</para> - -<para>For our sample configuration we'll insert a line immediately after -the loopback device definition that says:</para> - -<para> -<informalexample> -<screen>ifconfig_ed0="inet 192.168.1.1 netmask 255.255.255.0"</screen> -</informalexample> -</para> - -<para>When you've finished editing <filename>/etc/rc.conf</filename> to specify and -configure the network interfaces the section should look really close -to:</para> - -<para> -<informalexample> -<screen>--- -network_interfaces="ed1 lo0" # List of network interfaces (lo0 is loopback). -ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration. -ifconfig_ed1="inet 192.168.1.1 netmask 255.255.255.0" ----</screen> -</informalexample> -</para> - -<para>Once all of the necessary changes to <filename>/etc/rc.conf</filename> have -been made, press the 'Esc' key to invoke the control menu. Select -"leave editor" and be sure to select "save changes" when prompted.</para> - -</sect2> -</sect1> - -<sect1> -<title>Enabling Packet Forwarding</title> - -<para>By default the FreeBSD system will not forward IP packets between -various network interfaces. In other words, routing functions (also -known as gateway functions) are disabled.</para> - -<para>If your intent is to use a FreeBSD system as stand-alone Internet -workstation and not as a gateway between LAN nodes and your ISP you -should skip forward to <xref linkend="list-lan-hosts">.</para> - -<para>If you intend for the PPP program to service the local FreeBSD box -as well as LAN workstations (as a router) you'll need to enable IP -forwarding.</para> - -<para>To enable IP Packet forwarding you'll need to edit the -<filename>/etc/rc.conf</filename> file.</para> - - <para>This file contains overrides of the defaults in - <filename>/etc/defaults/rc.conf</filename>. The default gateway - setting is controlled by the line</para> - - <programlisting>gateway_enable="NO"</programlisting> - - <para>in that file. To override it, add a line like</para> - - <programlisting>gateway_enable="YES"</programlisting> - - <para><filename>/etc/rc.conf</filename>.</para> - -<para><emphasis><emphasis remap=bf>NOTE: This line may already be set to -'<literal>gateway_enable="YES"</literal>' if IP forwarding was enabled when the -FreeBSD system was installed.</emphasis></emphasis></para> - -</sect1> - -<sect1 id="list-lan-hosts"> -<title>Creating the List of other LAN Hosts(<filename>/etc/hosts</filename>)</title> - -<para>The final step in configuring the LAN side of the FreeBSD system is -to create a list of the names and TCP/IP addresses of the various -systems that are connected to the Local Area Network. This list is -stored in the '<filename>/etc/hosts</filename>' file.</para> - -<para>The default version of this file has only a single host name -listing in it: the name and address of the loopback device ('lo0'). -By networking convention, this device is always named "localhost" and -always has an IP address of 127.0.0.1. <xref - linkend="verify-ether-if-config">.</para> - - -<para>To edit the <filename>/etc/hosts</filename> file enter the following command: -<informalexample> -<screen> # ee /etc/hosts </screen> -</informalexample> -</para> - -<para>Scroll all the way to the bottom of the file (paying attention to -the comments along the way; there's some good information there!) and -enter (assuming our sample network) the following IP addresses and -host names: -<informalexample> -<screen>192.168.1.1 curly curly.my.domain # FreeBSD System -192.168.1.2 larry larry.my.domain # Windows '95 System -192.168.1.3 moe moe.my.domain # Windows for Workgroups -System -192.168.1.4 shemp shemp.my.domain # Windows NT System</screen> -</informalexample> -</para> - -<para>(No changes are needed to the line for the '<emphasis remap=tt>127.0.0.1 -localhost</emphasis>' entry.)</para> - -<para>Once you've entered these lines, press the 'Esc' key to invoke the -control menu. Select "leave editor" and be sure to select "save -changes" when prompted.</para> - -</sect1> - -<sect1> -<title>Testing the FreeBSD system</title> - -<para>Congratulations! Once you've made it to this point, the FreeBSD -system is configured as a network-connected UNIX system! If you made -any changes to the <filename>/etc/rc.conf</filename> file you should probably -re-boot your FreeBSD system. This will accomplish two important -objectives: -<itemizedlist> - -<listitem> -<para>Allow the changes to the interface configurations to be applied, and</para> -</listitem> - -<listitem> -<para>Verify that the system restarts without any glaring configuration errors.</para> -</listitem> - -</itemizedlist> -</para> - -<para>Once the system has been rebooted you should test the network -interfaces.</para> - - -<sect2> -<title>Verifying the operation of the loopback device</title> - -<para>To verify that the loopback device is configured correctly, log in as -'root' and enter: -<informalexample> -<screen># ping localhost</screen> -</informalexample> -</para> - -<para>You should see: -<informalexample> -<screen># ping localhost -PING localhost.my.domain. (127.0.0.1): 56 data 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.287 ms -64 bytes from 127.0.0.1: icmp_seq=2 ttl=255 time=0.214 m -[...]</screen> -</informalexample> - -messages scroll by until you hit Ctrl-C to stop the madness.</para> - -</sect2> - -<sect2> -<title>Verifying the operation of the Ethernet Device</title> - -<para>To verify that the Ethernet device is configured correctly, enter:</para> - -<para> -<informalexample> -<screen># ping curly</screen> -</informalexample> -</para> - -<para>You should see: -<informalexample> -<screen># ping curly -PING curly.my.domain. (192.168.1.1): 56 data 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 -[...]</screen> -</informalexample> - -messages.</para> - -<para>One important thing to look at in these two examples is that the -names (loopback and curly) correctly correlate to their IP addresses -(127.0.0.1 and 192.168.1.1). This verifies that the -<filename>/etc/hosts</filename> files is correct.</para> - -<para>If the IP address for "curly" isn't 192.168.1.1 or the address for -"localhost" isn't 127.0.0.1, return to <xref linkend="list-lan-hosts"> and review your -entries in '<filename>/etc/hosts</filename>'.</para> - -<para>If the names and addresses are indicated correctly in the result of -the ping command but there are errors displayed then something is -amiss with the interface configuration(s). Return to <xref linkend="system-config"> and -verify everything again.</para> - -<para>If everything here checks out, proceed with the next section.</para> - -</sect2> -</sect1> -</chapter> - -<chapter> -<title>Configuring the PPP Dial-Out Connection</title> - -<para>There are two basic modes of operation of the ppp driver: -"Interactive" and "Automatic".</para> - -<para>In Interactive mode you:</para> - -<para> -<itemizedlist> - -<listitem> -<para>Manually establish a connection to your ISP,</para> -</listitem> - -<listitem> -<para>Browse, surf, transfer files and mail, etc...,</para> -</listitem> - -<listitem> -<para>Manually disconnect from your ISP.</para> -</listitem> - -</itemizedlist> -</para> - -<para>In Automatic mode, the PPP program silently watches what goes on -inside the FreeBSD system and automagically connects and disconnects -with your ISP as required to make the Internet a seamless element of -your network.</para> - -<para>In this section we'll address the configuration(s) for both modes -with emphasis on configuring your `ppp` environment to operate in -"Automatic" mode.</para> - - -<sect1> -<title>Backing up the original PPP configuration files</title> - - <note> - <para>More recent versions of FreeBSD have the examples files in - <filename>/usr/share/examples/ppp</filename>, so this step may not - be necessary.</para> - </note> - -<para>Before making any changes to the files which are used by PPP you -should make a copy of the default files that were created when the -FreeBSD system was installed.</para> - -<para>Log in as the 'root' user and perform the following steps:</para> - -<para>Change to the '<filename>/etc</filename> directory:</para> - -<para><emphasis remap=tt># cd /etc</emphasis></para> - -<para>Make a backup copy the original files in the 'ppp' directory:</para> - -<para><emphasis remap=tt># cp -R ppp ppp.ORIGINAL</emphasis></para> - -<para>You should now be able to see both a '<emphasis remap=tt>ppp</emphasis>' and a -'<filename>ppp.ORIGINAL</filename>' subdirectory -in the '<filename>/etc</filename>' directory.</para> - -</sect1> - -<sect1> -<title>Create your own PPP configuration files</title> - -<para>By default, the FreeBSD installation process creates a number of -sample configuration files in the /etc/ppp directory. Please take -some time to review these files; they were derived from working -systems and represent the features and capabilities of the PPP -program.</para> - -<para>I <emphasis>strongly</emphasis> encourage you to learn from these sample files and -apply them to your own configuration as necessary.</para> - -<para>For detailed information about the `ppp` program, read the ppp -manpage: -<informalexample> -<screen># man ppp</screen> -</informalexample> -</para> - -<para>For detailed information about the `chat` scripting language used by -the PPP dialer, read the chat manpage: -<informalexample> -<screen># man chat</screen> -</informalexample> -</para> - -<para>The remainder of this section describes the recommended contents of -the PPP configuration files.</para> - - -<sect2> -<title>The '<filename>/etc/ppp/ppp.conf</filename>' file</title> - -<para>The '<filename>/etc/ppp/ppp.conf</filename>' file contains the information and -settings required to set up a dial-out PPP connection. More than one -configuration may be contained in this file. The FreeBSD handbook -(XXX URL? XXX) describes the contents and syntax of this file in -detail.</para> - -<para>This section will describe only the minimal configuration to get a -dial-out connection working.</para> - -<para>Below is the /etc/ppp/ppp.conf file that we'll be using to provide a -dial-out Internet gateway for our example LAN: -<programlisting> -################################################################ -# PPP Configuration File ('/etc/ppp/ppp.conf') -# -# Default settings; These are always executed always when PPP -# is invoked and apply to all system 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 -# -# -################################################################ -# -# For interactive mode use this configuration: -# -# Invoke with `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 -# -################################################################ -# -# For demand-dial (automatic) mode we'll use this configuration: -# -# Invoke with: '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 -################################################################ -# End of /etc/ppp/ppp.conf -</programlisting> - -This file, taken verbatim from a working system, has three relevant -configuration sections:</para> - - -<sect3> -<title>The "<emphasis remap=tt>default</emphasis>" Section</title> - -<para>The '<emphasis remap=tt>default:</emphasis>' section contains the values and settings -used by every other section in the file. Essentially, this section is -implicitly added to the configuration lines to each other section.</para> - -<para>This is a good place to put "global defaults" applicable to all -dial-up sessions; especially modem settings and dialing prefixes which -typically don't change based on which destination system you're -connecting to.</para> - -<para>Following are the descriptions of each line in the "default" section -of the sample '<filename>/etc/ppp/ppp.conf</filename>' file: -<informalexample> -<screen>set device /dev/cuaa0</screen> -</informalexample> - -This statement informs the PPP program that it should use the first -serial port. -Under FreeBSD the '<filename>/dev/cuaa0</filename>' device is the same port that's -known as "<emphasis remap=tt>COM1:</emphasis>" under DOS, Windows, Windows 95, etc....</para> - -<para>If your modem is on <emphasis remap=tt>COM2:</emphasis> you should specify -'<filename>/dev/cua01</filename>; <emphasis remap=tt>COM3:</emphasis> would be '<filename>/dev/cua02</filename>'.</para> - -<para> -<informalexample> -<screen>set speed 57600 </screen> -</informalexample> -</para> - -<para>This line sets the transmit and receive speed for the connection -between the serial port and the modem. While the modem used for this -configuration is only a 28.8 device, setting this value to 57600 lets -the serial link run at a higher rate to accommodate higher throughput -as a result of the data compression built into late-model modems.</para> - -<para>If you have trouble communicating with your modem, try setting this -value to 38400 or even as low as 19200.</para> - -<para> -<informalexample> -<screen>disable pred1 -deny pred1</screen> -</informalexample> -</para> - -<para>These two lines disable the "CCP/Predictor type 1" compression -features of the PPP program. The current version of `ppp` supports -data compression in accordance with draft Internet standards. -Unfortunately many ISPs use equipment that does not support this -capability. Since most modems try to perform on-the-fly compression -anyway you're probably not losing much performance by disabling this -feature on the FreeBSD side and denying the remote side from forcing -it on you.</para> - -<para> -<informalexample> -<screen>disable lqr -deny lqr</screen> -</informalexample> -</para> - -<para>These two lines control the "Line Quality Reporting" functions which -are part of the complete Point-to-Point (PPP) protocol specification. -(See RFC-1989 for details.)</para> - -<para>The first line, "disable lqr", instructs the PPP program to not -attempt to report line quality status to the device on the remote end.</para> - -<para>The second line, "deny lqr", instructs the PPP program to deny any -attempts by the remote end to reports line quality.</para> - -<para>As most modern dial-up modems have automatic error correction and -detection and LQR reporting is not fully implemented in many vendor's -products it's generally a safe bet to include these two lines in the -default configuration.</para> - -<para> -<informalexample> -<screen>set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" ATE1Q0M0 -OK-AT-OK\\dATDT\\T TIMEOUT 40 CONNECT"</screen> -</informalexample> -</para> - -<para><emphasis>NOTE: (This statement should appear on a single line; ignore any -line wrapping that may appear in this document.)</emphasis></para> - -<para>This line instructs the PPP program how to dial the modem and -specifies some rudimentary guidelines for doing so: -<itemizedlist> - -<listitem> -<para>Attempts to dial should fail if the modem returns a "BUSY" result code,</para> -</listitem> - -<listitem> -<para>Attempts to dial should also fail if the modem returns a "NO CARRIER" result code,</para> -</listitem> - -<listitem> -<para>The PPP program should expect each of the following events to complete within a -5-second timeout period: -<itemizedlist> - -<listitem> -<para>The PPP program will initially expect nothing (specified above -by the \"\" portion of the statement) from the modem </para> -</listitem> - -<listitem> -<para>The program -will send the modem initialization string "ATE1Q0M0" to the modem and -await a response of "OK". If a response is not received, the program -should send an attention command to the modem ("AT") and look again -for a response of "OK", </para> -</listitem> - -<listitem> -<para>The program should delay for one second -(specified by the "\\d" part of the statement, and send the dialing -string to the modem. The "ATDT" portion of the statement is the -standard modem prefix to dial using tone-dialing; if you do not have -touch-tone service on your local phone line, replace the "ATDT" with -"ATDP". The "\\T" string is a placeholder for the actual phone number -(which will be automatically inserted as specified by the "set dial -123-4567").</para> -</listitem> - -</itemizedlist> -</para> -</listitem> - -<listitem> -<para>Finally, before a (maximum) timeout of 40 seconds, the PPP -program should expect to see a "CONNECT" result code returned from the -modem.</para> -</listitem> - -</itemizedlist> -</para> - -<para>A failure at any point in this dialog will be interpreted as a dialing -failure and the PPP program will fail to connect.</para> - -<para>(For a detailed description of the mini-scripting language used by the -PPP dialer, refer to the "chat" manpage.)</para> - -<para> -<informalexample> -<screen>set redial 3 10</screen> -</informalexample> - -This line specifies that if a dial connection cannot immediately be made -the PPP program should retry (up to 3 times if necessary) with a delay of 10 seconds -between redialing attempts.</para> - -</sect3> - -<sect3> -<title>The "<emphasis remap=tt>interactive</emphasis>" Section</title> - -<para>The '<emphasis remap=tt>interactive:</emphasis>' section contains the values and -settings used to set up an "interactive" PPP session with a specific -remote system. Settings in this section will have the lines included -in the "default" section included automatically.</para> - -<para>The example cited in this section of the guide presumes that you'll -be connecting to a remote system that understands how to authenticate -a user without any fancy scripting language. That is, this sample -uses the CHAP protocol to set up the connection.</para> - -<para>A good rule of thumb is that if the Windows '95 dialer can set up a -connection by just clicking the "Connect" button this sample -configuration should work OK.</para> - -<para>If, on the other hand, when you connect to your ISP using Microsoft -Windows '95 Dial-Up Networking you need to resort to using the "Dial -Up Scripting Tool" from the Microsoft Plus! pack or you have to select -"Bring up a terminal windows after dialing" in the Windows '95 -connection options then you'll need to look at the sample PPP -configuration files and the ppp manpage for examples of "expect / -response" scripting to make your ISP connection. The "set login" -command is used for this purpose.</para> - -<para>Or even better, find an ISP who knows how to provide PAP or CHAP -authentication!</para> - -<para>The configuration examples shown here have been successfully used to -connect to: -<itemizedlist> - -<listitem> -<para>Various Shiva LanRovers</para> -</listitem> - -<listitem> -<para>The IBM Network (<ulink URL="http://www.ibm.net">http://www.ibm.net</ulink>)</para> -</listitem> - -<listitem> -<para>AT&T WorldNet (<ulink URL="http://att.com/worldnet">http://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> - -<para>Following are descriptions for each line in the "interactive" section -of the sample '<filename>/etc/ppp/ppp.conf</filename>' file:</para> - -<para> -<informalexample> -<screen>set authname Your_User_ID_On_Remote_System</screen> -</informalexample> - -This line specifies the name you would use to log in to the remote -system. </para> - -<para> -<informalexample> -<screen>set authkey Your_Password_On_Remote_System</screen> -</informalexample> - -This is the password you'd use to log in to the remote system.</para> - -<para> -<informalexample> -<screen>set phone 1-800-123-4567</screen> -</informalexample> - -This is the phone number of the remote system. If you're inside a PBX -you can -prepend '<emphasis remap=tt>9, </emphasis>' to the number here.</para> - -<para> -<informalexample> -<screen>set timeout 300</screen> -</informalexample> - -This tells the PPP program that it should automatically hang up the -phone if no data has -be exchanged for 300 seconds (5 minutes). You may wish to tailor this -number to your -specific requirements.</para> - -<para> -<informalexample> -<screen>set openmode active</screen> -</informalexample> - -This tells the PPP program that once the modems are connected it -should immediately attempt to negotiate the connection. Some remote -sites do this automatically, some don't. This instructs your side of -the link to take the initiative and try to set up the connection.</para> - - - -<screen>accept chap</screen> - - -<para>This tells the PPP program to use the "Challenge-Handshake -Authentication Protocol" to authenticate you. The values exchanged -between the local and remote side for UserID and password are taken -from the 'authname' and 'authkey' entries above.</para> - -</sect3> - -<sect3> -<title>The "<emphasis remap=tt>demand</emphasis>" Section</title> - -<para>The "<emphasis remap=tt>demand</emphasis>" section contains the values and settings used -to set up a "Dial-on-demand" PPP session with a specific remote -system. Settings in this section will also have the lines included in -the "default" section included automatically.</para> - -<para>Except for the last two lines in this section it is identical to -the configuration section which defines the "interactive" -configuration.</para> - -<para>As noted earlier, the examples cited in this section of -the guide presume that you'll be connecting to a remote system that -understands how to use the CHAP protocol to set up the connection.</para> - -<para>Following are descriptions for each line in the "demand" section of -the sample '<filename>/etc/ppp/ppp.conf</filename>' file:</para> - -<para> -<informalexample> -<screen>set authname Your_User_ID_On_Remote_System</screen> -</informalexample> - -This line specifies the name you would use to log in to the remote -system. </para> - -<para> -<informalexample> -<screen>set authkey Your_Password_On_Remote_System</screen> -</informalexample> - -This is the password you'd use to log in to the remote system.</para> - -<para> -<informalexample> -<screen>set phone 1-800-123-4567</screen> -</informalexample> - -This is the phone number of the remote system.</para> - -<para> -<informalexample> -<screen>set timeout 300</screen> -</informalexample> -</para> - -<para>This tells the PPP program that it should automatically hang up the -phone if no data has be exchanged for 300 seconds (5 minutes). You -may wish to tailor this number to your specific requirements.</para> - -<para> -<informalexample> -<screen>set openmode active</screen> -</informalexample> -</para> - -<para>This tells the PPP program that once the modems are connected it -should immediately attempt to negotiate the connection. Some remote -sites do this automatically, some don't. This instructs your side of -the link to take the initiative and try to set up the connection.</para> - -<para> -<informalexample> -<screen>accept chap</screen> -</informalexample> -</para> - -<para>This tells the PPP program to use the "Challenge-Handshake -Authentication Protocol" to authenticate you. The values exchanged -between the local and remote side for UserID and password are taken -from the 'authname' and 'authkey' entries above.</para> - -<para> -<informalexample> -<screen>set ifaddr 127.1.1.1/0 127.2.2.2/0 255.255.255.0</screen> -</informalexample> -</para> - -<para>This command sets up a pair of "fake" IP addresses for the local and -remote sides of the PPP link. It instructs the PPP program to create -an IP address of 127.1.1.1 for the local side of the '<emphasis remap=tt>tun0</emphasis>' -(tunnel) device -and 127.2.2.2 for the remote side. Appending '<filename>/0</filename>' to -each address tells the PPP program that zero of the bits that make up -these addresses are significant and can (in fact, must!) be negotiated -between the local and remote systems when the link is established. -The 255.255.255.0 string tells the PPP program what Subnet mask to -apply to these pseudo-interfaces.</para> - -<para>Remember, we've assumed that your ISP provides the IP addresses for -both ends of the link! If your ISP assigned you a specific IP address -that you should use on your side when configuring your system, enter -that IP address here <emphasis>instead</emphasis> of <emphasis remap=tt>127.1.1.1</emphasis>.</para> - -<para>Conversly, if your ISP gave you a specific IP address that he uses on -his end you should enter that IP address here <emphasis>instead</emphasis> of -<emphasis remap=tt>127.2.2.2</emphasis>.</para> - -<para>In both cases, it's probably a good idea to leave the '<filename>/0</filename>' on -the end of each address. This gives the PPP program the opportunity -to change the address(es) of the link if it <emphasis>has</emphasis> to.</para> - -<para> -<informalexample> -<screen>add 0 0 127.2.2.2</screen> -</informalexample> -</para> - -<para>This last line tells the PPP program that it should add a default -route for IP traffic that points to the (fake) IP address of the ISP's -system.</para> - -<para><emphasis><emphasis remap=bf>Note: If you used an ISP-specified address instead of -<emphasis remap=tt>127.2.2.2</emphasis> on the preceeding line, use the same number here -instead of <emphasis remap=tt>127.2.2.2</emphasis></emphasis></emphasis>.</para> - -<para>By adding this "fake" route for IP traffic, the PPP program can, -while idle: -<itemizedlist> - -<listitem> -<para>Accept packets that FreeBSD doesn't already know how to forward,</para> -</listitem> - -<listitem> -<para>Establish a connection to the ISP "<emphasis>on-the-fly</emphasis>",</para> -</listitem> - -<listitem> -<para>Reconfigure the IP addresses of the local and remote side of the link,</para> -</listitem> - -<listitem> -<para>Forward packets between your workstation and the ISP.</para> -</listitem> - -</itemizedlist> - -automatically!</para> - -<para>Once the number of seconds specified by the timeout value in the -"default" section have elapsed without any TCP/IP traffic the PPP -program will automatically close the dial-up connection and the -process will begin again.</para> - -</sect3> -</sect2> - -<sect2> -<title>The '<filename>/etc/ppp/ppp.linkup</filename>' file</title> - -<para>The other file needed to complete the PPP configuration is found in -'<filename>/etc/ppp/ppp.linkup</filename>'. This file contains instructions for -the PPP program on what actions to take after a dial-up link is -established.</para> - -<para>In the case of dial-on-demand configurations the PPP program will need -to delete the default route that was created to the fake IP address of -the remote side (127.2.2.2 in our example in the previous section) and -install a new default route that points the actual IP address of the -remote end (discovered during the dial-up connection setup).</para> - -<para>A representative '<filename>/etc/ppp/ppp.linkup</filename>' file: -<informalexample> -<screen>#########################################################################= - -# PPP Link Up File ('/etc/ppp/ppp.linkup') -# -# This file is checked after PPP establishes a network connection. -# -# This file is searched in the following order. -# -# 1) First, the IP address assigned to us is searched and -# the associated command(s) are executed. -# -# 2) If the IP Address is not found, then the label name specified at - -# PPP startup time is searched and the associated command(s) -# are executed. -# -# 3) If neither of the above are found then commands under the label -# 'MYADDR:' are executed. -# -#########################################################################= - -# -# This section is used for the "demand" configuration in -# /etc/ppp/ppp.conf: -demand: - delete ALL - add 0 0 HISADDR -# -# All other configurations in /etc/ppp/ppp.conf use this: -# -MYADDR: - add 0 0 HISADDR -######################################################################## -# End of /etc/ppp/ppp.linkup</screen> -</informalexample> - -Notice that there is a section in this file named "demand:", identical -to the configuration name used in the '<filename>/etc/ppp/ppp.conf</filename>' -file. This section instructs the PPP program that once a link is -established using this configuration, it must: -<orderedlist> - -<listitem> -<para>Remove any IP routing information that the PPP program has created</para> -</listitem> - -<listitem> -<para>Add a default route the remote end's actual address.</para> -</listitem> - -</orderedlist> -</para> - -<para>It's critical that those configurations in -'<filename>/etc/ppp/ppp.conf</filename>' which include the '<emphasis remap=tt>set ifaddr</emphasis>' and -'<emphasis remap=tt>add 0 0</emphasis>' statements (i.e.: those configurations used for -Dial-on-Demand configurations) execute the "delete ALL" and "add 0 0 -HISADDR" commands in <filename>/etc/ppp/ppp.linkup</filename>.</para> - -<para><emphasis><emphasis remap=bf>This is the mechanism that controls the actual on-demand -configuration of the link.</emphasis></emphasis></para> - -<para>All configurations not explicitly named in -<filename>/etc/ppp/ppp.linkup</filename> will use whatever commands are in the -"MYADDR:" section of the file. This is where non-Demand-Dial -configurations (such as our "interactive:" sample) will fall through -to. This section simply adds a default route to the ISP's IP address -(at the remote end).</para> - -</sect2> -</sect1> - -<sect1> -<title>IP Aliasing</title> - -<para>All of the configuration steps described thus far are relevant to -any FreeBSD system which will be used to connect to an ISP via dial-up -connection.</para> - -<para>If your sole objective in reading this guide is to connect your -FreeBSD box to the Internet using dial-out ppp you can proceed to -<xref linkend="testing-the-network">.</para> - -<para>One very attractive feature of the PPP program in on-demand mode is -its ability to route IP traffic between other systems on the Local -Area Network automatically. This feature is known by various names, -"<emphasis>IP Aliasing</emphasis>", "<emphasis>Network Address Translation</emphasis>", "<emphasis>Address -Masquerading</emphasis>" or "<emphasis>Transparent Proxying</emphasis>".</para> - -<para>Regardless of the terminology used, this mode is not, however, -automatic. If the PPP program is started normally then the program -will not forward packets between LAN interface(s) and the dial-out -connection. In effect, only the FreeBSD system is connected to the -ISP; other workstations cannot "share" the same connection.</para> - -<para>For example, if the program is started with either of the following -command lines:</para> - -<para><emphasis remap=tt># ppp interactive (Interactive mode)</emphasis></para> - -<para> or</para> - -<para><emphasis remap=tt># ppp -auto demand (Dial-on-Demand mode)</emphasis></para> - -<para>then the system will function as an Internet-connected workstation -<emphasis>only</emphasis> for the -FreeBSD box.</para> - -<para>To start the PPP program as a gateway between LAN resources and the -Internet, one of the following command lines would be used instead:</para> - -<para><emphasis remap=tt># ppp -alias interactive (Interactive mode)</emphasis></para> - -<para> or</para> - -<para><emphasis remap=tt># ppp -auto -alias demand (Dial-on-Demand mode)</emphasis></para> - -<para>You can alternatively use the command <emphasis remap=tt>``alias enable yes''</emphasis> -in your ppp configuration file (refer to the man page for details).</para> - -<para>Keep this in mind if you intend to proceed with <xref - linkend="config-window-system">.</para> - -</sect1> -</chapter> - -<chapter id="config-window-system"> -<title>Configuring Windows Systems</title> - -<para>As indicated in Section 1, our example network consists of a -FreeBSD system ("Curly") which acts as a gateway (or router) between a -Local Area Network consisting of two different flavors of Windows -Workstations. In order for the LAN nodes to use Curly as a router -they need to be properly configured. Note that this section does not -explain how to configure the Windows workstations for Dial-Up -networking. If you need a good explanation of that procedure, I -recommend <ulink URL="http://www.aladdin.co.uk/techweb">http://www.aladdin.co.uk/techweb</ulink>.</para> - - -<sect1> -<title> Configuring Windows 95</title> - -<para>Configuring Windows 95 to act as an attached resource on your LAN -is relatively simple. The Windows 95 network configuration must be -slightly modified to use the FreeBSD system as the default gateway to -the ISP. Perform the following steps:</para> - -<para><emphasis remap=bf>Create the Windows 95 "hosts" file:</emphasis></para> - -<para>In order to connect to the other TCP/IP systems on the LAN you'll -need to create an identical copy of the "hosts" file that you -installed on the FreeBSD system in <xref linkend="list-lan-hosts">. -<itemizedlist> - -<listitem> -<para>Click the "Start" button; select "Run..."; enter "notepad -\WINDOWS\HOSTS" (without the quotes) and click "OK"</para> -</listitem> - -<listitem> -<para>In the editor, enter the addresses and system names from the hosts -file shown in <xref linkend="list-lan-hosts">.</para> -</listitem> - -<listitem> -<para>When finished editing, close the notepad application (making sure -that you save the file!).</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap=bf>Configure the Windows 95 TCP/IP Network Configuation -settings</emphasis>: -<itemizedlist> - -<listitem> -<para>Click the "Start" button on the taskbar; select "Settings" and -"Control Panel". </para> -</listitem> - -<listitem> -<para>Double-click the "Network" icon to open it.</para> - -<para> -The settings for all Network Elements are displayed.</para> -</listitem> - -<listitem> -<para>With the "Configuration" tab selected, scroll down the list of -installed components and highlight the "TCP/IP-><emphasis>YourInterfaceType</emphasis>" line -(where "<emphasis>YourInterfaceType</emphasis>" is the name or type of Ethernet adapter in your system). -</para> - -<para>If TCP/IP is not listed in the list of installed network -components, click the "Add" button and install it before proceeding.</para> - -<para>(Hint: "Add | Protocol | Microsoft | TCP/IP | OK")</para> -</listitem> - -<listitem> -<para>Click on the "Properties" button to display a list of the -settings associated with the TCP component.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap=bf>Configure the IP Address Information:</emphasis> -<itemizedlist> - -<listitem> -<para>Click the "IP Address" tab</para> -</listitem> - -<listitem> -<para>Click the "Specify an IP address" radio button. -</para> - -<para>(In our example LAN the Windows 95 system is the one we've called "Larry".)</para> -</listitem> - -<listitem> -<para>In the "IP Address" field enter "192.168.1.2".</para> -</listitem> - -<listitem> -<para>Enter 255.255.255.0 in the "Subnet Mask" field.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap=bf>Configure the Gateway information:</emphasis> -<itemizedlist> - -<listitem> -<para>Click on the "Gateway" tab -</para> - -<para>For our example network the FreeBSD box will be acting as our -gateway to the Internet (routing packets between the Ethernet LAN and -the PPP dial-up connection. Enter the IP address of the FreeBSD -Ethernet interface, 192.168.1.1, in the "New gateway" field and click -the "Add" button. If any other gateways are defined in the "Installed -gateways" list you may wish to consider removing them.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap=bf>Configure the DNS Information:</emphasis></para> - -<para>This guide assumes that your Internet Service Provider has given -you a list of Domain Name Servers (or "DNS Servers") that you should -use. If you wish to run a DNS server on your local FreeBSD system, -refer to Section 6, "Exercise for the Interested Student" for tips on -setting up DNS on your FreeBSD system.</para> - -<para> -<itemizedlist> - -<listitem> -<para>Click the "DNS Configuration" tab</para> -</listitem> - -<listitem> -<para>Make sure that the "Enable DNS" radio button is selected. -</para> - -<para>(If this button is not selected only the entries that -we put in the host file(s) will be available and your Net-Surfing -will not work as you expect!)</para> -</listitem> - -<listitem> -<para>In the "Host" field enter the name of the Windows 95 box, in this -case: "Larry".</para> -</listitem> - -<listitem> -<para>In the "Domain" field enter the name of our local network, in this -case: "my.domain"</para> -</listitem> - -<listitem> -<para>In the "DNS Server Search Order" section, enter the IP address -of the DNS server(s) that your ISP provided, clicking the "Add" button -after every address is entered. Repeat this step as many times as -necessary to add all of the addresses that your ISP provided.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap=bf>Other Windows 95 TCP/IP options:</emphasis></para> - -<para>For our purposes the settings under the "Advanced", "WINS -Configuration" and "Bindings" tabs are not necessary.</para> - -<para>If you wish to use the Windows Internet Naming Service ("WINS") -your attention is invited to <ulink URL="http://www.localnet.org">http://www.localnet.org</ulink> for -more information about WINS settings, specifically regarding sharing -files transparently across the Internet.</para> - -<para><emphasis remap=bf>Mopping up:</emphasis> -<itemizedlist> - -<listitem> -<para>Click on the "OK" button to close the TCP/IP Properties window.</para> -</listitem> - -<listitem> -<para>Click on the "OK" button to close the Network Control Panel. </para> -</listitem> - -<listitem> -<para>Reboot your computer if prompted to do so. </para> -</listitem> - -</itemizedlist> -</para> - -<para> That's it!</para> - -</sect1> - -<sect1> -<title>Configuring Windows NT</title> - -<para>Configuring Windows NT to act as a LAN resource is also relatively -straightforward. The procedures for configuring Windows NT are -similar to Windows 95 with minor exceptions in the user interface.</para> - -<para>The steps shown here are appropriate for a Windows NT 4.0 -Workstation, but the principles are the same for NT 3.5x. You may -wish to refer to the "Configuring Windows for Workgroups" section if -you're configuring Windows NT 3.5<emphasis remap=it>x</emphasis>, since the user interface is -the same for NT 3.5 and WfW.</para> - -<para>Perform the following steps: </para> - -<para><emphasis remap=bf>Create the Windows NT "hosts" file:</emphasis></para> - -<para>In order to connect to the other TCP/IP systems on the LAN you'll -need to create an identical copy of the "hosts" file that you -installed on the FreeBSD system in Section 3.4 -<itemizedlist> - -<listitem> -<para>Click the "Start" button; select "Run..."; enter "notepad -\WINNT\SYSTEM32\DRIVERS\ETC\HOSTS" (without the quotes) and click -"OK"</para> -</listitem> - -<listitem> -<para>In the editor, enter the addresses and system names from Section -3.4.</para> -</listitem> - -<listitem> -<para>When finished editing, close the notepad application (making sure -that you save the file!).</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap=bf>Configure the Windows NT TCP/IP Network Configuation -settings</emphasis>: -<itemizedlist> - -<listitem> -<para>Click the "Start" button on the taskbar; select "Settings" and -"Control Panel". </para> -</listitem> - -<listitem> -<para>Double-click the "Network" icon to open it. </para> -</listitem> - -<listitem> -<para>With the "Identification" tab selected, verify the "Computer Name" -and "Workgroup" fields. In this example we'll use "Shemp" for the name -and "Stooges" for the workgroup. Click the "Change" button and amend -these entries as necessary.</para> -</listitem> - -<listitem> -<para>Select the "Protocols" tab. - -</para> - -<para>The installed Network Protocols will be displayed. There may be a -number of protocols listed but the one of interest to this guide is -the "TCP/IP Protocol". If "TCP/IP Protocol" is not listed, click the -"Add" button to load it.</para> - -<para>(Hint: "Add | TCP/IP Protocol | OK") </para> -</listitem> - -<listitem> -<para>Highlight "TCP/IP -Protocol" and click the "Properties" button. -</para> - -<para>Tabs for specifying various settings for TCP/IP will be displayed.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap=bf>Configuring the IP Address:</emphasis></para> - -<para>Make sure that the Ethernet Interface is shown in the "Adapter" -box; if not, scroll through the list of adapters until the correct -interface is shown. -<itemizedlist> - -<listitem> -<para>Click the "Specify an IP address" radio button to enable the three -text boxes. -</para> - -<para>In our example LAN the Windows NT system is the one we've called -"Shemp"</para> -</listitem> - -<listitem> -<para>In the "IP Address" field enter "192.168.1.4".</para> -</listitem> - -<listitem> -<para>Enter 255.255.255.0 in the "Subnet Mask" field.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap=bf>Configure the Gateway information:</emphasis></para> - -<para>For our example network the FreeBSD box will be acting as our gateway -to the Internet (routing packets between the Ethernet LAN and the PPP dial-up -connection. -<itemizedlist> - -<listitem> -<para>Enter the IP address of the FreeBSD Ethernet interface, -192.168.1.1, in the "New gateway" field and click the "Add" button. -</para> - -<para>If any other gateways are defined in the "Installed gateways" list -you may wish to consider removing them.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap=bf>Configuring DNS:</emphasis></para> - -<para>Again, this guide assumes that your Internet Service Provider has -given you a list of Domain Name Servers (or "DNS Servers") that you -should use.</para> - -<para>If you wish to run a DNS server on your local FreeBSD system, refer to -Section 6, "Exercise for the Interested Student" for tips on setting -up DNS on your FreeBSD system. -<itemizedlist> - -<listitem> -<para>Click the "DNS" tab</para> -</listitem> - -<listitem> -<para>In the "Host Name" field enter the name of the Windows NT box, in -this case: "Shemp".</para> -</listitem> - -<listitem> -<para>In the "Domain" field enter the name of our local network, in this -case: "my.domain"</para> -</listitem> - -<listitem> -<para>In the "DNS Server Search Order" section, enter the IP address of -the DNS server that your ISP provided, clicking the "Add" button after -every address is entered. Repeat this step as many times as necessary -to add all of the addresses that your ISP provided.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap=bf>Other Windows NT TCP/IP options:</emphasis></para> - -<para>For our purposes the settings under the "WINS Address" and -"Routing" tabs are not used.</para> - -<para>If you wish to use the Windows Internet Naming Service ("WINS") -your attention is invited to <ulink URL="http://www.localnet.org">http://www.localnet.org</ulink> for -more information about WINS settings, specifically regarding sharing -files transparently across the Internet.</para> - -<para><emphasis remap=bf>Mopping up:</emphasis> -<itemizedlist> - -<listitem> -<para>Click on the "OK" button to close the TCP/IP Properties section. -</para> -</listitem> - -<listitem> -<para>Click on the "Close" button to close the Network Control Panel. -</para> -</listitem> - -<listitem> -<para>Restart your computer if prompted to do so.</para> -</listitem> - -</itemizedlist> -</para> - -<para>That's it!</para> - -</sect1> - -<sect1> -<title>Configuring Windows for Workgroups</title> - -<para>Configuring Windows for Workgroups to act as a network client -requires that the Microsoft TCP/IP-32 driver diskette has been -installed on the workstation. The TCP/IP drivers are not included -with the WfW CD or diskettes; if you need a copy they're available at -<ulink URL="ftp://ftp.microsoft.com:/peropsys/windows/public/tcpip">ftp://ftp.microsoft.com:/peropsys/windows/public/tcpip</ulink>.</para> - -<para>Once the TCP/IP drivers have been loaded, perform the following -steps:</para> - -<para><emphasis remap=bf>Create the Windows for Workgroups "hosts" file:</emphasis></para> - -<para>In order to connect to the other TCP/IP systems on the LAN you'll -need to create an identical copy of the "hosts" file that you -installed on the FreeBSD system in Section 3.4. -<itemizedlist> - -<listitem> -<para>In Program Manager, click the "File" button; select "Run"; and -enter: "notepad \WINDOWS\HOSTS" (without the quotes) and click "OK"</para> -</listitem> - -<listitem> -<para>In the editor, enter the addresses and system names from the hosts -file shown in Section 3.4.</para> -</listitem> - -<listitem> -<para>When finished editing, close the notepad application (making sure -that you save the file!).</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap=bf>Configure the Windows 95 TCP/IP Network Configuation -settings</emphasis> -<itemizedlist> - -<listitem> -<para>In the main window of Program Manager, open the "Network" group by -double-clicking the icon. </para> -</listitem> - -<listitem> -<para>Double click on the "Network Setup" icon. </para> -</listitem> - -<listitem> -<para>In the "Network Drivers Box" double-click the "Microsoft -TCP/IP-32" entry. </para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap=bf>Configure the Windows for Workgroups IP Address:</emphasis> </para> - -<para>Ensure -the correct Ethernet Interface is selected in the "Adapter" list. If -not, scroll down until it is displayed and select it by clicking on -it. -<itemizedlist> - -<listitem> -<para>Ensure that the "Enable Automatic DHCP Configuration" check box is -blank. If it is checked, click it to remove the "X".</para> -</listitem> - -<listitem> -<para>In our example LAN the Windows for Workgroups system is the one -we've called "Moe"; in the "IP Address" field enter "192.168.1.3".</para> -</listitem> - -<listitem> -<para>Enter 255.255.255.0 in the "Subnet Mask" field.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap=bf>Configure the Gateway information:</emphasis></para> - -<para>For our example network the FreeBSD box will be acting as our -gateway to the Internet (routing packets between the Ethernet LAN and -the PPP dial-up connection). -<itemizedlist> - -<listitem> -<para>Enter the IP address of the FreeBSD system, 192.168.1.1, in the -"Default Gateway" field.</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap=bf>Configuring DNS:</emphasis></para> - -<para>Again, this guide assumes that your Internet Service Provider has -given you a list of Domain Name Servers (or "DNS Servers") that you -should use. If you wish to run a DNS server on your local FreeBSD -system, refer to Section 6, "Exercise for the Interested Student" for -tips on setting up DNS on your FreeBSD system. -<itemizedlist> - -<listitem> -<para>Click the "DNS" button.</para> -</listitem> - -<listitem> -<para>In the "Host Name" field enter the name of the Windows for -Workgroups box, in this case: "Moe".</para> -</listitem> - -<listitem> -<para>In the "Domain" field enter the name of our local network, in this -case: "my.domain"</para> -</listitem> - -<listitem> -<para>In the "Domain Name Service (DNS) Search Order" section, enter the -IP address of the DNS server that your ISP provided, clicking the "Add" -button after each address is entered. Repeat this step as many times as -necessary to add all of the addresses that your ISP provided.</para> -</listitem> - -<listitem> -<para>Click on the "OK" button to close the DNS Configuration window. -</para> -</listitem> - -</itemizedlist> -</para> - -<para><emphasis remap=bf>Mopping up:</emphasis> -<itemizedlist> - -<listitem> -<para>Click on the "OK" button to close the TCP/IP Configuration window. -</para> -</listitem> - -<listitem> -<para>Click on the "OK" button to close the Network Setup window.</para> -</listitem> - -<listitem> -<para>Reboot your computer if prompted. </para> -</listitem> - -</itemizedlist> -</para> - -<para>That's it!</para> - -</sect1> -</chapter> - -<chapter id="testing-the-network"> -<title>Testing the Network</title> - -<para> Once you've completed that appropriate tasks above you should have -a functioning PPP gateway to the Internet.</para> - - -<sect1> -<title>Testing the Dial-Up link:</title> - -<para> The first thing to test is that the connection is being made -between your modem and the ISP.</para> - -</sect1> - -<sect1> -<title>Testing the Ethernet LAN</title> - -<para> *** TBD ***</para> - -</sect1> -</chapter> - -<chapter> -<title>Exercises for the Interested Student</title> - - -<sect1> -<title>Creating a mini-DNS system</title> - -<para>While managing a Domain Name Service (DNS) hierarchy can be a black -art, it is possible to set up a Mini-DNS server on the FreeBSD system -that also acts as your gateway to your ISP.</para> - -<para>Building on the files in <filename>/etc/namedb</filename> when the FreeBSD -system was installed it's possible to create a name server that is -both authoritative for the example network shown here as well as a -front-door to the Internet DNS architecture.</para> - -<para>In this minimal DNS configuration, only three files are necessary: -<informalexample> -<screen>/etc/namedb/named.boot -/etc/namedb/named.root -/etc/namedb/mydomain.db</screen> -</informalexample> -</para> - -<para>The <filename>/etc/namedb/named.root</filename> file is automatically installed -as part of the FreeBSD base installation; the other two files must be -created manually.</para> - - -<sect2> -<title>The <filename>/etc/namedb/named.boot</filename> file</title> - -<para>The <filename>/etc/namedb/named.boot</filename> file controls the startup -settings of the DNS server. -Esentially, it tells the Name Server: -<orderedlist> - -<listitem> -<para>Where to find configuration files,</para> -</listitem> - -<listitem> -<para>What "domain names" it's responsible for, and</para> -</listitem> - -<listitem> -<para>Where to find other DNS servers.</para> -</listitem> - -</orderedlist> -</para> - -<para>Using the '<emphasis remap=tt>ee</emphasis>' editor, create a -<filename>/etc/namedb/named.boot</filename> with the following contents: -<informalexample> -<screen>; boot file for mini-name server - -directory /etc/namedb - -; type domain source host/file backup file - -cache . named.root -primary my.domain. mydomain.db</screen> -</informalexample> -</para> - -<para>Lines that begin with a semi-colon are comments. The significant -lines in this file are: -<itemizedlist> - -<listitem> -<para><command>directory /etc/namedb</command> -</para> - -<para>Tells the Name Server where to find the configuration files -referenced in the remaining sections of the -'<filename>/etc/namedb/named.boot</filename>' file.</para> -</listitem> - -<listitem> -<para><emphasis remap=tt>cache . named.root</emphasis> -</para> - -<para>Tells the Name Server that the list of "Top-Level" DNS servers for -the Internet can be found in a file called '<filename>named.root</filename>'. -(This file is included in the base installation and its -contents are not described in this document.)</para> -</listitem> - -<listitem> -<para><emphasis remap=tt>primary my.domain. mydomain.db</emphasis> -</para> - -<para>Tells the Name Server that it will be "authoritative" for a DNS -domain called "my.domain" and that a list of names and IP addresses -for the systems in "my.domain" (the local network) -can be found in a file named '<filename>mydomain.db</filename>'.</para> -</listitem> - -</itemizedlist> -</para> - -<para>Once the <filename>/etc/namedb/named.boot</filename> file has been created and -saved, proceed to the next section to create the -<filename>/etc/namedb/mydomain.db</filename> file.</para> - -</sect2> - -<sect2> -<title>The <filename>/etc/namedb/mydomain.db</filename> file</title> - -<para>The <filename>/etc/namedb/mydomain.db</filename> file lists the names and IP -addresses of <emphasis>every</emphasis> system in the Local Area Network.</para> - -<para><emphasis>For a detailed description of the statements used in this file, -refer to the <emphasis remap=tt>named</emphasis> manpage.</emphasis></para> - -<para>The <filename>/etc/namedb/mydomain.db</filename> file for our minimal DNS -server has the following contents: -<informalexample> -<screen>@ 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.</screen> -</informalexample> -</para> - -<para>In simple terms, this file declares that the local DNS server is: -<itemizedlist> - -<listitem> -<para>The Start of Authority for ("SOA") for a domain called -'my.domain',</para> -</listitem> - -<listitem> -<para>The Name Server ("NS") for 'my.domain',</para> -</listitem> - -<listitem> -<para>Responsible for the reverse-mapping for all IP addresses that -start with '192.168.1.' and -'127.0.0.' ("$ORIGIN ...")</para> -</listitem> - -</itemizedlist> -</para> - -<para>To add workstation entries to this file you'll need to add two -lines for each system; one in the top section where the name(s) are -mapped into Internet Addresses ("IN A"), and another line that maps -the addresses back into names in the <filename>$ORIGIN -1.168.192.IN-ADDR.ARPA</filename> section.</para> - -</sect2> - -<sect2> -<title>Starting the DNS Server</title> - -<para>By default the DNS server ('<filename>/usr/sbin/named</filename>') is not -started when the system boots. You can modify this behavior by -changing a single line in '<filename>/etc/rc.conf</filename>' as follows:</para> - -<para> Using the '<emphasis remap=tt>ee</emphasis>' editor, load <filename>/etc/rc.conf</filename>. Scroll -down approximately 40 lines until you come to the section that says: -<informalexample> -<screen>--- -named_enable="NO" # Run named, the DNS server (or NO). -named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled). ----</screen> -</informalexample> - -Change this section to read: -<informalexample> -<screen>--- -named_enable="YES" # Run named, the DNS server (or NO). -named_flags="-b /etc/namedb/named.boot" # Flags to named (if enabled). ----</screen> -</informalexample> - -Save the file and reboot.</para> - -<para>Alternatively, start the Name Server daemon by entering the following -command: -<informalexample> -<screen># named -b /etc/namedb/named.boot</screen> -</informalexample> -</para> - -<para>Whenever you modify any of the files in <filename>/etc/namedb</filename> you'll -need to kick-start the Name Server process to make it pick up the -modifications. This is performed with the following system command: -<informalexample> -<screen># kill -HUP `cat /var/run/named.pid`</screen> -</informalexample> -</para> - -</sect2> -</sect1> - -<sect1> -<title>Playing with PPP filters</title> - -<para>The PPP program has the ability to apply selected filtering rules -to the traffic it routes. While this is not nearly as secure as a -formal firewall it does provide some access control as to how the link -is used.</para> - -<para>('<emphasis remap=tt>man ipfw</emphasis>' for information on setting up a more secure -FreeBSD system.)</para> - -<para>The complete documentation for the various filters and rules under -PPP are availabe in the PPP manpage.</para> - -<para>There are four distinct classes of rules which may be applied to -the PPP program: -<itemizedlist> - -<listitem> -<para><emphasis remap=tt>afilter</emphasis> - Access Counter (or "Keep Alive") filters -</para> - -<para>These control which events are ignored by the <literal>set timeout=</literal> -statement in the configuration file.</para> -</listitem> - -<listitem> -<para><emphasis remap=tt>dfilter</emphasis> - Dialing filters -</para> - -<para>These filtering rules control which events are ignored by the -demand-dial mode of PPP.</para> -</listitem> - -<listitem> -<para><emphasis remap=tt>ifilter</emphasis> - Input filters -</para> - -<para>Control whether incoming packets should be discarded or passed into -the system.</para> -</listitem> - -<listitem> -<para><emphasis remap=tt>ofilter</emphasis> - Output filters -</para> - -<para>Control whether outgoing packets should be discarded or passed into -the system.</para> -</listitem> - -</itemizedlist> -</para> - -<para>What follows is a snippet from an operating system which provides a -good foundation for "normal" Internet operations while preventing PPP -from pumping <emphasis>all</emphasis> data over the dial-up connection. Comments -briefly describe the logic of each rule set: -<informalexample> -<screen># -# KeepAlive filters -# Don't keep Alive with ICMP,DNS and RIP packet -# - 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 -# -# Dial Filters: -# Note: ICMP will trigger a dial-out in this configuration! -# - set dfilter 0 permit 0/0 0/0 -# -# Allow ident packet pass through -# - set ifilter 0 permit tcp dst eq 113 - set ofilter 0 permit tcp src eq 113 -# -# Allow telnet connection to the Internet -# - set ifilter 1 permit tcp src eq 23 estab - set ofilter 1 permit tcp dst eq 23 -# -# Allow ftp access to the 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 -# -# Allow access to DNS lookups -# - set ifilter 4 permit udp src eq 53 - set ofilter 4 permit udp dst eq 53 -# -# Allow DNS Zone Transfers -# - set ifilter 5 permit tcp src eq 53 - set ofilter 5 permit tcp dst eq 53 -# -# Allow access from/to local network -# - set ifilter 6 permit 0/0 192.168.1.0/24 - set ofilter 6 permit 192.168.1.0/24 0/0 -# -# Allow ping and traceroute response -# - 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 -# -# Allow 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 -# -# Allow NTP for Time Synchronization -# - 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'd be a good idea! -# - set ifilter 13 permit tcp src eq 25 - set ofilter 13 permit tcp dst eq 25 -# -# -# We use a lot of `whois`, let's pass that -# - 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 -# -# If none of above rules matches, then packet is blocked. -#-------</screen> -</informalexample> -</para> - -<para>Up to 20 distinct filtering rules can be applied to each class of -filter. Rules in each class are number sequentially from 0 to 20 -<emphasis>but none of the rules for a particular filter class take affect -until ruleset '0' is defined!</emphasis></para> - -<para>If you choose <emphasis>not</emphasis> to use Filtering Rules in the PPP -configuration then <acronym>ALL</acronym> traffic will be permitted both into and -out of your system while it's connected to your ISP.</para> - -<para>If you decide that you want to implement filtering rules, add the -above lines to your <filename>/etc/ppp/ppp.conf</filename> file in either the -"default:", "demand:", or "interactive:" section (or all of them - the -choice is yours).</para> - -</sect1> -</chapter> -</book> diff --git a/en_US.ISO8859-1/share/sgml/authors.ent b/en_US.ISO8859-1/share/sgml/authors.ent deleted file mode 100644 index 2c53160802..0000000000 --- a/en_US.ISO8859-1/share/sgml/authors.ent +++ /dev/null @@ -1,480 +0,0 @@ -<!-- - Names and email address of contributing authors and CVS committers. - Entity names for committers should be the same as their login names on - freefall.FreeBSD.org. - - Use these entities when referencing people. - - Please keep this list in alphabetical order by entity names. - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/authors.ent,v 1.90 2000/06/19 09:30:35 assar Exp $ ---> - -<!ENTITY a.abial "Andrzej Bialecki <email>abial@FreeBSD.org</email>"> - -<!ENTITY a.ache "Andrey A. Chernov <email>ache@FreeBSD.org</email>"> - -<!ENTITY a.adam "Adam David <email>adam@FreeBSD.org</email>"> - -<!ENTITY a.ade "Ade Lovett <email>ade@FreeBSD.org</email>"> - -<!ENTITY a.alc "Alan L. Cox <email>alc@FreeBSD.org</email>"> - -<!ENTITY a.alex "Alexander Langer <email>alex@FreeBSD.org</email>"> - -<!ENTITY a.alfred "Alfred Perlstein <email>alfred@FreeBSD.org</email>"> - -<!ENTITY a.amurai "Atsushi Murai <email>amurai@FreeBSD.org</email>"> - -<!ENTITY a.andreas "Andreas Klemm <email>andreas@FreeBSD.org</email>"> - -<!ENTITY a.andy "Andrey Zakhvatov <email>andy@FreeBSD.org</email>"> - -<!ENTITY a.archie "Archie Cobbs <email>archie@FreeBSD.org</email>"> - -<!ENTITY a.asami "Satoshi Asami <email>asami@FreeBSD.org</email>"> - -<!ENTITY a.asmodai "Jeroen Ruigrok/Asmodai <email>asmodai@FreeBSD.org</email>"> - -<!ENTITY a.assar "Assar Westerlund <email>assar@FreeBSD.org</email>"> - -<!ENTITY a.ats "Andreas Schulz <email>ats@FreeBSD.org</email>"> - -<!ENTITY a.awebster "Andrew Webster <email>awebster@pubnix.net</email>"> - -<!ENTITY a.bde "Bruce Evans <email>bde@FreeBSD.org</email>"> - -<!ENTITY a.billf "Bill Fumerola <email>billf@FreeBSD.org</email>"> - -<!ENTITY a.bp "Boris Popov <email>bp@FreeBSD.org</email>"> - -<!ENTITY a.brandon "Brandon Gillespie <email>brandon@FreeBSD.org</email>"> - -<!ENTITY a.brian "Brian Somers <email>brian@FreeBSD.org</email>"> - -<!ENTITY a.bsd "Brian S. Dean <email>bsd@FreeBSD.org</email>"> - -<!ENTITY a.cawimm "Charles A. Wimmer <email>cawimm@FreeBSD.org</email>"> - -<!ENTITY a.cg "Cameron Grant <email>cg@FreeBSD.org</email>"> - -<!ENTITY a.charnier "Philippe Charnier <email>charnier@FreeBSD.org</email>"> - -<!ENTITY a.chris "Chris Costello <email>chris@FreeBSD.org</email>"> - -<!ENTITY a.chuck "Chuck Robey <email>chuckr@glue.umd.edu</email>"> - -<!ENTITY a.chuckr "Chuck Robey <email>chuckr@FreeBSD.org</email>"> - -<!ENTITY a.cjh "Junho CHOI <email>cjh@FreeBSD.org</email>"> - -<!ENTITY a.cp "Chuck Paterson <email>cp@FreeBSD.org</email>"> - -<!ENTITY a.cpiazza "Chris Piazza <email>cpiazza@FreeBSD.org</email>"> - -<!ENTITY a.cracauer "Martin Cracauer <email>cracauer@FreeBSD.org</email>"> - -<!ENTITY a.csgr "Geoff Rehmet <email>csgr@FreeBSD.org</email>"> - -<!ENTITY a.cwt "Chris Timmons <email>cwt@FreeBSD.org</email>"> - -<!ENTITY a.dan "Dan Moschuk <email>dan@FreeBSD.org</email>"> - -<!ENTITY a.danny "Daniel O'Callaghan <email>danny@FreeBSD.org</email>"> - -<!ENTITY a.darrenr "Darren Reed <email>darrenr@FreeBSD.org</email>"> - -<!ENTITY a.davidn "David Nugent <email>davidn@blaze.net.au</email>"> - -<!ENTITY a.dbaker "Daniel Baker <email>dbaker@FreeBSD.org</email>"> - -<!ENTITY a.dburr "Donald Burr <email>dburr@FreeBSD.org</email>"> - -<!ENTITY a.dcs "Daniel C. Sobral <email>dcs@FreeBSD.org</email>"> - -<!ENTITY a.dec "David E. Cross <email>dec@FreeBSD.org</email>"> - -<!ENTITY a.deischen "Daniel Eischen <email>deischen@FreeBSD.org</email>"> - -<!ENTITY a.des "Dag-Erling C. Smørgrav <email>des@FreeBSD.org</email>"> - -<!ENTITY a.dfr "Doug Rabson <email>dfr@FreeBSD.org</email>"> - -<!ENTITY a.dg "David Greenman <email>dg@FreeBSD.org</email>"> - -<!ENTITY a.dick "Richard Seaman Jr. <email>dick@FreeBSD.org</email>"> - -<!ENTITY a.dillon "Matthew Dillon <email>dillon@FreeBSD.org</email>"> - -<!ENTITY a.dima "Dima Ruban <email>dima@FreeBSD.org</email>"> - -<!ENTITY a.dirk "Dirk Frömberg <email>dirk@FreeBSD.org</email>"> - -<!ENTITY a.dirkvangulik "Dirk-Willem van Gulik <email>Dirk.vanGulik@jrc.it</email>"> - -<!ENTITY a.dt "Dmitrij Tejblum <email>dt@FreeBSD.org</email>"> - -<!ENTITY a.dufault "Peter Dufault <email>dufault@FreeBSD.org</email>"> - -<!ENTITY a.dwhite "Doug White <email>dwhite@FreeBSD.org</email>"> - -<!ENTITY a.dyson "John Dyson <email>dyson@FreeBSD.org</email>"> - -<!ENTITY a.eivind "Eivind Eklund <email>eivind@FreeBSD.org</email>"> - -<!ENTITY a.ejc "Eric J. Chet <email>ejc@FreeBSD.org</email>"> - -<!ENTITY a.erich "Eric L. Hernes <email>erich@FreeBSD.org</email>"> - -<!ENTITY a.faq "FAQ Maintainer <email>faq@FreeBSD.org</email>"> - -<!ENTITY a.fenner "Bill Fenner <email>fenner@FreeBSD.org</email>"> - -<!ENTITY a.flathill "Seiichirou Hiraoka <email>flathill@FreeBSD.org</email>"> - -<!ENTITY a.foxfair "Howard F. Hu <email>foxfair@FreeBSD.org</email>"> - -<!ENTITY a.fsmp "Steve Passe <email>fsmp@FreeBSD.org</email>"> - -<!ENTITY a.gallatin "Andrew Gallatin <email>gallatin@FreeBSD.org</email>"> - -<!ENTITY a.gclarkii "Gary Clark II <email>gclarkii@FreeBSD.org</email>"> - -<!ENTITY a.gehenna "Masahide MAEKAWA <email>gehenna@FreeBSD.org</email>"> - -<!ENTITY a.gena "Gennady B. Sorokopud <email>gena@NetVision.net.il</email>"> - -<!ENTITY a.ghelmer "Guy Helmer <email>ghelmer@cs.iastate.edu</email>"> - -<!ENTITY a.gibbs "Justin T. Gibbs <email>gibbs@FreeBSD.org</email>"> - -<!ENTITY a.gioria "Sebastien Gioria <email>gioria@FreeBSD.org</email>"> - -<!ENTITY a.gj "Gary Jennejohn <email>gj@FreeBSD.org</email>"> - -<!ENTITY a.gpalmer "Gary Palmer <email>gpalmer@FreeBSD.org</email>"> - -<!ENTITY a.graichen "Thomas Graichen <email>graichen@FreeBSD.org</email>"> - -<!ENTITY a.green "Brian F. Feldman <email>green@FreeBSD.org</email>"> - -<!ENTITY a.grog "Greg Lehey <email>grog@FreeBSD.org</email>"> - -<!ENTITY a.groudier "Gerard Roudier <email>groudier@club-internet.fr</email>"> - -<!ENTITY a.gryphon "Coranth Gryphon <email>gryphon@healer.com</email>"> - -<!ENTITY a.gsutter "Gregory Sutter <email>gsutter@FreeBSD.org</email>"> - -<!ENTITY a.guido "Guido van Rooij <email>guido@FreeBSD.org</email>"> - -<!ENTITY a.hanai "Hiroyuki HANAI <email>hanai@FreeBSD.org</email>"> - -<!ENTITY a.handy "Brian N. Handy <email>handy@sxt4.physics.montana.edu</email>"> - -<!ENTITY a.roger "Roger Hardiman <email>roger@freebsd.org</email>"> - -<!ENTITY a.helbig "Wolfgang Helbig <email>helbig@FreeBSD.org</email>"> - -<!ENTITY a.hm "Hellmuth Michaelis <email>hm@FreeBSD.org</email>"> - -<!ENTITY a.hoek "Tim Vanderhoek <email>hoek@FreeBSD.org</email>"> - -<!ENTITY a.hosokawa "Tatsumi Hosokawa <email>hosokawa@FreeBSD.org</email>"> - -<!ENTITY a.hsu "Jeffrey Hsu <email>hsu@FreeBSD.org</email>"> - -<!ENTITY a.imp "Warner Losh <email>imp@FreeBSD.org</email>"> - -<!ENTITY a.imura "Ryuichiro IMURA <email>imura@FreeBSD.org</email>"> - -<!ENTITY a.itojun "Jun-ichiro Itoh <email>itojun@itojun.org</email>"> - -<!ENTITY a.iwasaki "Mitsuru IWASAKI <email>iwasaki@FreeBSD.org</email>"> - -<!ENTITY a.jake "Jake Burkholder <email>jake@FreeBSD.org</email>"> - -<!ENTITY a.jasone "Jason Evans <email>jasone@FreeBSD.org</email>"> - -<!ENTITY a.jayanth "Jayanth Vijayaraghavan <email>jayanth@FreeBSD.org</email>"> - -<!ENTITY a.jb "John Birrell <email>jb@cimlogic.com.au</email>"> - -<!ENTITY a.jdp "John Polstra <email>jdp@FreeBSD.org</email>"> - -<!ENTITY a.jedgar "Chris D. Faulhaber <email>jedgar@FreeBSD.org</email>"> - -<!ENTITY a.jehamby "Jake Hamby <email>jehamby@lightside.com</email>"> - -<!ENTITY a.jesusr "Jesus Rodriguez <email>jesusr@FreeBSD.org</email>"> - -<!ENTITY a.jfieber "John Fieber <email>jfieber@FreeBSD.org</email>"> - -<!ENTITY a.jfitz "James FitzGibbon <email>jfitz@FreeBSD.org</email>"> - -<!ENTITY a.jgreco "Joe Greco <email>jgreco@FreeBSD.org</email>"> - -<!ENTITY a.jhay "John Hay <email>jhay@FreeBSD.org</email>"> - -<!ENTITY a.jhb "John Baldwin <email>jhb@FreeBSD.org</email>"> - -<!ENTITY a.jhs "Julian Stacey <email>jhs@FreeBSD.org</email>"> - -<!ENTITY a.jim "Jim Mock <email>jim@FreeBSD.org</email>"> - -<!ENTITY a.jkh "Jordan K. Hubbard <email>jkh@FreeBSD.org</email>"> - -<!ENTITY a.jkoshy "Joseph Koshy <email>jkoshy@FreeBSD.org</email>"> - -<!ENTITY a.jlemon "Jonathan Lemon <email>jlemon@FreeBSD.org</email>"> - -<!ENTITY a.jlind "John Lind <email>john@starfire.MN.ORG</email>"> - -<!ENTITY a.jlrobin "James L. Robinson <email>jlrobin@FreeBSD.org</email>"> - -<!ENTITY a.jmacd "Joshua Peck Macdonald <email>jmacd@FreeBSD.org</email>"> - -<!ENTITY a.jmas "Jose M. Alcaide <email>jmas@FreeBSD.org</email>"> - -<!ENTITY a.jmb "Jonathan M. Bresler <email>jmb@FreeBSD.org</email>"> - -<!ENTITY a.jmg "John-Mark Gurney <email>jmg@FreeBSD.org</email>"> - -<!ENTITY a.jmz "Jean-Marc Zucconi <email>jmz@FreeBSD.org</email>"> - -<!ENTITY a.joe "Josef Karthauser <email>joe@FreeBSD.org</email>"> - -<!ENTITY a.joerg "Jörg Wunsch <email>joerg@FreeBSD.org</email>"> - -<!ENTITY a.john "John Cavanaugh <email>john@FreeBSD.org</email>"> - -<!ENTITY a.jraynard "James Raynard <email>jraynard@FreeBSD.org</email>"> - -<!ENTITY a.jseger "Justin Seger <email>jseger@FreeBSD.org</email>"> - -<!ENTITY a.julian "Julian Elischer <email>julian@FreeBSD.org</email>"> - -<!ENTITY a.jwd "John W. DeBoskey <email>jwd@FreeBSD.org</email>"> - -<!ENTITY a.jvh "Johannes Helander <email>jvh@FreeBSD.org</email>"> - -<!ENTITY a.karl "Karl Strickland <email>karl@FreeBSD.org</email>"> - -<!ENTITY a.kato "Takenori KATO <email>kato@FreeBSD.org</email>"> - -<!ENTITY a.kelly "Sean Kelly <email>kelly@ad1440.net</email>"> - -<!ENTITY a.ken "Kenneth D. Merry <email>ken@FreeBSD.org</email>"> - -<!ENTITY a.kevlo "Kevin Lo <email>kevlo@FreeBSD.org</email>"> - -<!ENTITY a.kjc "Kenjiro Cho <email>kjc@FreeBSD.org</email>"> - -<!ENTITY a.knu "Akinori MUSHA <email>knu@FreeBSD.org</email>"> - -<!ENTITY a.kris "Kris Kennaway <email>kris@FreeBSD.org</email>"> - -<!ENTITY a.kuriyama "Jun Kuriyama <email>kuriyama@FreeBSD.org</email>"> - -<!ENTITY a.lars "Lars Fredriksen <email>lars@FreeBSD.org</email>"> - -<!ENTITY a.lile "Larry Lile <email>lile@FreeBSD.org</email>"> - -<!ENTITY a.ljo "L Jonas Olsson <email>ljo@FreeBSD.org</email>"> - -<!ENTITY a.luoqi "Luoqi Chen <email>luoqi@FreeBSD.org</email>"> - -<!ENTITY a.marcel "Marcel Moolenaar <email>marcel@FreeBSD.org</email>"> - -<!ENTITY a.markm "Mark Murray <email>markm@FreeBSD.org</email>"> - -<!ENTITY a.martin "Martin Renters <email>martin@FreeBSD.org</email>"> - -<!ENTITY a.max "Masafumi NAKANE <email>max@FreeBSD.org</email>"> - -<!ENTITY a.mayo "Mark Mayo <email>mark@vmunix.com</email>"> - -<!ENTITY a.mbarkah "Ade Barkah <email>mbarkah@FreeBSD.org</email>"> - -<!ENTITY a.mckay "Stephen McKay <email>mckay@FreeBSD.org</email>"> - -<!ENTITY a.mckusick "Kirk McKusick <email>mckusick@FreeBSD.org</email>"> - -<!ENTITY a.md "Mark Dapoz <email>md@bsc.no</email>"> - -<!ENTITY a.mdodd "Matthew N. Dodd <email>winter@jurai.net</email>"> - -<!ENTITY a.mharo "Michael Haro <email>mharo@FreeBSD.org</email>"> - -<!ENTITY a.mjacob "Matthew Jacob <email>mjacob@FreeBSD.org</email>"> - -<!ENTITY a.mks "Mike Spengler <email>mks@FreeBSD.org</email>"> - -<!ENTITY a.motoyuki "Motoyuki Konno <email>motoyuki@FreeBSD.org</email>"> - -<!ENTITY a.mph "Matthew Hunt <email>mph@FreeBSD.org</email>"> - -<!ENTITY a.mpp "Mike Pritchard <email>mpp@FreeBSD.org</email>"> - -<!ENTITY a.msmith "Michael Smith <email>msmith@FreeBSD.org</email>"> - -<!ENTITY a.mtaylor "Mark J. Taylor <email>mtaylor@FreeBSD.org</email>"> - -<!ENTITY a.murray "Murray Stokely <email>murray@FreeBSD.org</email>"> - -<!ENTITY a.nakai "Yukihiro Nakai <email>nakai@FreeBSD.org</email>"> - -<!ENTITY a.nate "Nate Williams <email>nate@FreeBSD.org</email>"> - -<!ENTITY a.nbm "Neil Blakey-Milner <email>nbm@FreeBSD.org</email>"> - -<!ENTITY a.nectar "Jacques Vidrine <email>nectar@FreeBSD.org</email>"> - -<!ENTITY a.newton "Mark Newton <email>newton@FreeBSD.org</email>"> - -<!ENTITY a.nhibma "Nick Hibma <email>n_hibma@FreeBSD.org</email>"> - -<!ENTITY a.nik "Nik Clayton <email>nik@FreeBSD.org</email>"> - -<!ENTITY a.nsayer "Nick Sayer <email>nsayer@FreeBSD.org</email>"> - -<!ENTITY a.nsj "Nate Johnson <email>nsj@FreeBSD.org</email>"> - -<!ENTITY a.nyan "Yoshihiro Takahashi <email>nyan@FreeBSD.org</email>"> - -<!ENTITY a.obrien "David O'Brien <email>obrien@FreeBSD.org</email>"> - -<!ENTITY a.olah "Andras Olah <email>olah@FreeBSD.org</email>"> - -<!ENTITY a.opsys "Chris Watson <email>opsys@open-systems.net</email>"> - -<!ENTITY a.patrick "Patrick S. Gardella <email>patrick@FreeBSD.org</email>"> - -<!ENTITY a.paul "Paul Richards <email>paul@FreeBSD.org</email>"> - -<!ENTITY a.pb "Pierre Beyssac <email>pb@fasterix.freenix.org</email>"> - -<!ENTITY a.pds "Peter da Silva <email>pds@FreeBSD.org</email>"> - -<!ENTITY a.peter "Peter Wemm <email>peter@FreeBSD.org</email>"> - -<!ENTITY a.phantom "Alexey Zelkin <email>phantom@FreeBSD.org</email>"> - -<!ENTITY a.phk "Poul-Henning Kamp <email>phk@FreeBSD.org</email>"> - -<!ENTITY a.pho "Peter Holm <email>pho@FreeBSD.org</email>"> - -<!ENTITY a.piero "Piero Serini <email>piero@strider.inet.it</email>"> - -<!ENTITY a.pjc "Peter Childs <email>pjchilds@imforei.apana.org.au</email>"> - -<!ENTITY a.proven "Chris Provenzano <email>proven@FreeBSD.org</email>"> - -<!ENTITY a.ps "Paul Saab <email>ps@FreeBSD.org</email>"> - -<!ENTITY a.pst "Paul Traina <email>pst@FreeBSD.org</email>"> - -<!ENTITY a.reg "Jeremy Lea <email>reg@FreeBSD.org</email>"> - -<!ENTITY a.rgrimes "Rodney Grimes <email>rgrimes@FreeBSD.org</email>"> - -<!ENTITY a.rhuff "Robert Huff <email>rhuff@cybercom.net</email>"> - -<!ENTITY a.ricardag "Ricardo AG <email>ricardag@ag.com.br</email>"> - -<!ENTITY a.rich "Rich Murphey <email>rich@FreeBSD.org</email>"> - -<!ENTITY a.rnordier "Robert Nordier <email>rnordier@FreeBSD.org</email>"> - -<!ENTITY a.roberto "Ollivier Robert <email>roberto@FreeBSD.org</email>"> - -<!ENTITY a.rse "Ralf S. Engelschall <email>rse@FreeBSD.org</email>"> - -<!ENTITY a.ru "Ruslan Ermilov <email>ru@FreeBSD.org</email>"> - -<!ENTITY a.rwatson "Robert Watson <email>rwatson@FreeBSD.org</email>"> - -<!ENTITY a.sada "Kenji SADA <email>sada@FreeBSD.org</email>"> - -<!ENTITY a.scrappy "Marc G. Fournier <email>scrappy@FreeBSD.org</email>"> - -<!ENTITY a.se "Stefan Esser <email>se@FreeBSD.org</email>"> - -<!ENTITY a.sef "Sean Eric Fagan <email>sef@FreeBSD.org</email>"> - -<!ENTITY a.sheldonh "Sheldon Hearn <email>sheldonh@FreeBSD.org</email>"> - -<!ENTITY a.shige "Shigeyuki Fukushima <email>shige@FreeBSD.org</email>"> - -<!ENTITY a.shin "Yoshinobu Inoue <email>shin@FreeBSD.org</email>"> - -<!ENTITY a.simokawa "Hidetoshi Shimokawa <email>simokawa@FreeBSD.org</email>"> - -<!ENTITY a.smace "Scott Mace <email>smace@FreeBSD.org</email>"> - -<!ENTITY a.smpatel "Sujal Patel <email>smpatel@FreeBSD.org</email>"> - -<!ENTITY a.sobomax "Maxim Sobolev <email>sobomax@FreeBSD.org</email>"> - -<!ENTITY a.sos "Søren Schmidt <email>sos@FreeBSD.org</email>"> - -<!ENTITY a.stark "Gene Stark <email>stark@FreeBSD.org</email>"> - -<!ENTITY a.stb "Stefan Bethke <email>stb@FreeBSD.org</email>"> - -<!ENTITY a.steve "Steve Price <email>steve@FreeBSD.org</email>"> - -<!ENTITY a.sumikawa "Munechika Sumikawa <email>sumikawa@FreeBSD.org</email>"> - -<!ENTITY a.swallace "Steven Wallace <email>swallace@FreeBSD.org</email>"> - -<!ENTITY a.tanimura "Seigo Tanimura <email>tanimura@FreeBSD.org</email>"> - -<!ENTITY a.taoka "Satoshi Taoka <email>taoka@FreeBSD.org</email>"> - -<!ENTITY a.tedm "Ted Mittelstaedt <email>tedm@FreeBSD.org</email>"> - -<!ENTITY a.tegge "Tor Egge <email>tegge@FreeBSD.org</email>"> - -<!ENTITY a.tg "Thomas Gellekum <email>tg@FreeBSD.org</email>"> - -<!ENTITY a.thepish "Peter Hawkins <email>thepish@FreeBSD.org</email>"> - -<!ENTITY a.tom "Tom Hukins <email>tom@FreeBSD.org</email>"> - -<!ENTITY a.torstenb "Torsten Blum <email>torstenb@FreeBSD.org</email>"> - -<!ENTITY a.truckman "Don “Truck” Lewis <email>truckman@FreeBSD.org</email>"> - -<!ENTITY a.ugen "Ugen J.S.Antsilevich <email>ugen@FreeBSD.org</email>"> - -<!ENTITY a.uhclem "Frank Durda IV <email>uhclem@FreeBSD.org</email>"> - -<!ENTITY a.ulf "Ulf Zimmermann <email>ulf@FreeBSD.org</email>"> - -<!ENTITY a.ume "Hajimu UMEMOTO <email>ume@FreeBSD.org</email>"> - -<!ENTITY a.unfurl "Bill Swingle <email>unfurl@FreeBSD.org</email>"> - -<!ENTITY a.vanilla "Vanilla I. Shu <email>vanilla@FreeBSD.org</email>"> - -<!ENTITY a.wes "Wes Peters <email>wes@FreeBSD.org</email>"> - -<!ENTITY a.whiteside "Don Whiteside <email>whiteside@acm.org</email>"> - -<!ENTITY a.wilko "Wilko Bulte <email>wilko@FreeBSD.org</email>"> - -<!ENTITY a.will "Will Andrews <email>will@FreeBSD.org</email>"> - -<!ENTITY a.wlloyd "Bill Lloyd <email>wlloyd@mpd.ca</email>"> - -<!ENTITY a.wollman "Garrett Wollman <email>wollman@FreeBSD.org</email>"> - -<!ENTITY a.wosch "Wolfram Schneider <email>wosch@FreeBSD.org</email>"> - -<!ENTITY a.wpaul "Bill Paul <email>wpaul@FreeBSD.org</email>"> - -<!ENTITY a.wsanchez "Wilfredo Sánchez <email>wsanchez@FreeBSD.org</email>"> - -<!ENTITY a.yokota "Kazutaka YOKOTA <email>yokota@FreeBSD.org</email>"> - diff --git a/en_US.ISO8859-1/share/sgml/bookinfo.ent b/en_US.ISO8859-1/share/sgml/bookinfo.ent deleted file mode 100644 index 5587c3bebd..0000000000 --- a/en_US.ISO8859-1/share/sgml/bookinfo.ent +++ /dev/null @@ -1,12 +0,0 @@ -<!-- - References to other files that can be included within a DocBook - BookInfo element. - - Entity names take the form "bookinfo.<element>", where <element> is - the name of the outermost element in the entity. Examples would - be "bookinfo.legalnotice", and "bookinfo.preface". - - $FreeBSD$ ---> - -<!ENTITY bookinfo.legalnotice SYSTEM "legalnotice.sgml"> diff --git a/en_US.ISO8859-1/share/sgml/freebsd.dsl b/en_US.ISO8859-1/share/sgml/freebsd.dsl deleted file mode 100644 index 2c77bfca6f..0000000000 --- a/en_US.ISO8859-1/share/sgml/freebsd.dsl +++ /dev/null @@ -1,39 +0,0 @@ -<!-- $FreeBSD: doc/en_US.ISO_8859-1/share/sgml/freebsd.dsl,v 1.2 2000/05/31 23:39:18 nik Exp $ --> - -<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ -<!ENTITY freebsd.dsl SYSTEM "../../../share/sgml/freebsd.dsl" CDATA DSSSL> -<!ENTITY % output.html "IGNORE"> -<!ENTITY % output.print "IGNORE"> -]> - -<style-sheet> - <style-specification use="docbook"> - <style-specification-body> - - <![ %output.html; [ - (define ($email-footer$) - (make sequence - (literal "For questions about FreeBSD, e-mail <") - (make element gi: "a" - attributes: (list (list "href" "mailto:questions@FreeBSD.org")) - (literal "questions@FreeBSD.org")) - (literal ">.") - (make empty-element gi: "br") - (literal "For questions about this documentation, e-mail <") - (make element gi: "a" - attributes: (list (list "href" "mailto:doc@FreeBSD.org")) - (literal "doc@FreeBSD.org")) - (literal ">."))) - - <!-- Convert " ... " to `` ... '' in the HTML output. --> - (element quote - (make sequence - (literal "``") - (process-children) - (literal "''"))) - ]]> - </style-specification-body> - </style-specification> - - <external-specification id="docbook" document="freebsd.dsl"> -</style-sheet> diff --git a/en_US.ISO8859-1/share/sgml/legalnotice.sgml b/en_US.ISO8859-1/share/sgml/legalnotice.sgml deleted file mode 100644 index ecb8ba6cee..0000000000 --- a/en_US.ISO8859-1/share/sgml/legalnotice.sgml +++ /dev/null @@ -1,44 +0,0 @@ -<!-- - Standard FreeBSD Documentation Project Legal Notice. - - $FreeBSD$ ---> - -<legalnotice> - <para>Redistribution and use in source (SGML DocBook) and 'compiled' - forms (SGML, HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions are - met:</para> - - <orderedlist> - <listitem> - <para>Redistributions of source code (SGML DocBook) must retain the - above copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified.</para> - </listitem> - - <listitem> - <para>Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must - reproduce the above copyright notice, this list of conditions and - the following disclaimer in the documentation and/or other - materials provided with the distribution.</para> - </listitem> - </orderedlist> - - <important> - <para>THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION - PROJECT "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 - THE FREEBSD DOCUMENTATION PROJECT 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 DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - DAMAGE.</para> - </important> -</legalnotice> - diff --git a/es_ES.ISO8859-1/FAQ/FAQ.sgml b/es_ES.ISO8859-1/FAQ/FAQ.sgml deleted file mode 100644 index b6b24a3e2d..0000000000 --- a/es_ES.ISO8859-1/FAQ/FAQ.sgml +++ /dev/null @@ -1,64 +0,0 @@ -<!-- $FreeBSD: doc/es_ES.ISO_8859-1/FAQ/FAQ.sgml,v 1.7 1999/09/06 06:53:13 peter Exp $ --> -<!-- The FreeBSD Documentation Spanish Project --> - -<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN" [ -<!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"> -]> - -<article> - - <title>Frequently Asked Questions para FreeBSD 2.X</title> - <author> - <name>Proyecto de documentación de FreeBSD</name> - </author> - - <date>$FreeBSD$</date> - - <abstract> - Esta es la FAQ para sistemas FreeBSD versión 2.X. Todas las secciones - están dirigidas a FreeBSD 2.0.5 y superiores. Los capítulos - con <XXX> están bajo construcción. - Si estás interesado en colaborar en este proyecto, envía un - e-mail a la lista de distribución del proyecto de - documentación de FreeBSD <htmlurl - url="mailto:freebsd-doc@FreeBSD.org" name="<freebsd-doc@FreeBSD.org>"> o - a la dirección <htmlurl url="mailto:faq-es@es.FreeBSD.org" - name="faq-es@es.FreeBSD.org">. La última versión de este - documento está siempre disponible en el <url - url="http://www.es.FreeBSD.org/es" name="Mirror español de FreeBSD"> - . Puede ser "bajada" en <url url="FAQ.latin1" name="formato texto">, - o <url url="FAQ-html.tar.gz" name="formato HTML"> mediante HTTP. - </abstract> - - - <toc> - -&preface; -&install; -&hardware; -&troubleshoot; -&commercial; -&applications; -&kernelconfig; -&admin; -&x; -&network; -&serial; -&misc; -&hackers; -&acknowledgments; - -</article> diff --git a/es_ES.ISO8859-1/FAQ/Makefile b/es_ES.ISO8859-1/FAQ/Makefile deleted file mode 100644 index 16b06f05c3..0000000000 --- a/es_ES.ISO8859-1/FAQ/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# $FreeBSD$ - -.NOTPARALLEL: - -DOC= FAQ -VOLUME= faq -DOCDIR= /usr/local/share/doc/fdp/es_ES.ISO_8859-1/books -FORMATS?= html roff -SGMLOPTS+=-links - -SRCS= FAQ.sgml acknowledgments.sgml admin.sgml applications.sgml -SRCS+= commercial.sgml hackers.sgml hardware.sgml install.sgml -SRCS+= kernelconfig.sgml misc.sgml network.sgml preface.sgml -SRCS+= serial.sgml troubleshoot.sgml x.sgml - -.include <bsd.sgml.mk> diff --git a/es_ES.ISO8859-1/FAQ/acknowledgments.sgml b/es_ES.ISO8859-1/FAQ/acknowledgments.sgml deleted file mode 100644 index b23578273d..0000000000 --- a/es_ES.ISO8859-1/FAQ/acknowledgments.sgml +++ /dev/null @@ -1,61 +0,0 @@ -<!-- $FreeBSD$ --> -<!-- The FreeBSD Documentation Spanish Project --> - <sect> - <heading>AGRADECIMIENTOS<label id="acknowledgments"></heading> - - <p> - <verb> - Si ves algún problema o error en esta FAQ, o quieres enviar - información para que sea añadida, por favor, envía - un mail a la dirección faq-es@es.FreeBSD.org. Apreciamos tu - información e interés, y no podemos hacer una FAQ mejor - sin tu ayuda. - - - FreeBSD Spanish Documentation Project. - </verb> - - <descrip> - <tag/Cristobal Talavera (cristobal@es.FreeBSD.org)/ - Por ser uno de los mejores técnicos de Internet en España :) - - <tag/David Casademunt (david@es.FreeBSD.org)/ - No hay hardware que se le resista. - - <tag/Nick Clayton (nick@FreeBSD.org)/ - Gracias a su ayuda todo esto ha sido posible. - - <tag/Nexus Comunicacaciones (www.ncsa.es)/ - Por mantener el mirror y darme las facilidades para hacer todo esto. - - <tag/Oscar Colet (oscarc@abaforum.es)/ - Por aguantar lo que tiene que aguantar. - - <tag/Jordan Hubbard/ - Actualizaciones y entradas ocasionales. - - <tag/Doug White/ - Recopilaciones y respuestas en FreeBSD-questions. - - <tag/Joerg Wunsch/ - Recopilaciones y respuestas en las news. - - <tag/Garrett Wollman/ - Redes. - - <tag/Jim Lowe/ - Información sobre multicast. - - <tag/Peter da Silva/ - "Machaca de las teclas" de FreeBSD FAQ - - <tag/The FreeBSD Team/ - De todo. - </descrip> - - <p>y para todos los que hemos olvidado, disculpas y muchas gracias por - todo!. - - <p>Jesús Rodríguez <htmlurl url="mailto:jesusr@FreeBSD.org" - name="jesusr@FreeBSD.org"> - </sect> diff --git a/es_ES.ISO8859-1/FAQ/admin.sgml b/es_ES.ISO8859-1/FAQ/admin.sgml deleted file mode 100644 index 54e7822944..0000000000 --- a/es_ES.ISO8859-1/FAQ/admin.sgml +++ /dev/null @@ -1,1163 +0,0 @@ -<!-- $FreeBSD$ --> -<!-- The FreeBSD Documentation Spanish Project --> - <sect> - <heading>Administración de sistema<label id="admin"></heading> - - <sect1> - <heading>¿Dónde están los ficheros de configuración de arranque del sistema?</heading> - - <p>De la versión 2.0.5R a la 2.2.1R, el fichero principal de - configuración es <tt>/etc/sysconfig</tt>. Todas las opciones son - especificadas en este fichero y otros como <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?rc" name="/etc/rc"> y - <tt>/etc/netstart</tt>. - - <p>Mira en el fichero <tt>/etc/sysconfig</tt> y cambia los valores - para tu sistema. Este fichero está comentado para ayudar en la - configuración - - <p>En versiones posteriores a la 2.2.1 y 3.0 el fichero - <tt>/etc/sysconfig</tt> fue renombrado como <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)" name="rc.conf">. - La sintaxis también fue retocada para ser mas descriptiva. El - fichero <tt>/etc/netstart</tt> también fue renombrado como - <tt>/etc/rc.network</tt> para que todos los ficheros de - configuración puedan ser copiados con el comando <tt> - <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?cp" name="cp"> /usr/src/etc/rc* - /etc</tt>. - - <p><tt>/etc/rc.local</tt> existe como siempre y debería ser usado - para arrancar servicios locales adicionales como <htmlurl - url="http://www.FreeBSD.org/cgi/ports.cgi?^inn" name="INN"> o - programas propios. - - <p>El fichero <tt>/etc/rc.serial</tt> es para la inicialización - de puertos serie. - - <p>El fichero <tt>/etc/rc.i386</tt> es para especificaciones propias - de Intel, como la emulación iBCS2 o la configuración de la - cónsola del sistema. - - <p>A partir de la versión 2.1.0R, también puedes tener un - directorio en el que instalar ficheros de arranque locales especificado en - <tt>/etc/sysconfig</tt> (o <tt>/etc/rc.conf</tt>): - - <verb> - # Localización de los ficheros de arranque locales. - local_startup=/usr/local/etc/rc.local.d - </verb> - - <p>Cada fichero acabado en <tt/.sh/ será ejecutado en orden - alfabético. - - <p>Si quieres asegurarte de un cierto orden en la ejecución sin - tener que cambiar todos los nombres de los ficheros, puedes usar un - esquema similar al siguiente con dígitos al principio del nombre - de cada fichero: - - <verb> - 10news.sh - 15httpd.sh - 20ssh.sh - </verb> - - <p>Puede ser visto como "malo" (o SysV :-)) pero nos provee de un - esquema regular para programas añadidos localmente sin tener que - hacer ediciones complicadas del fichero <tt>/etc/rc.local</tt>. - Muchos de los ports/packages asumen que <tt>/usr/local/etc/rc.d</tt> - es un directorio de arranque local. - - <sect1> - <heading>¿Cómo añado un usuario facilmente?</heading> - - <p>Usa el comando <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?adduser" name="adduser">. Para - opciones más avanzadas, usa el comando <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?pw" name="pw"> - - <p>Para borrar a un usuario, usa el comando <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?rmuser" name="rmuser">. - - <sect1> - <heading>¿Cómo puedo añadir mi nuevo disco a FreeBSD?</heading> - - <p>La manera más fácil de hacer esto es desde el programa de - instalación. Puedes arrancar el programa de instalacián - ejecutando <tt>/stand/sysinstall</tt> como root. - - <p>Alternativamente, si todavía tienes el floppy de - instalación, puedes arrancar desde él y usar el editor de - etiquetas y particiones. - - <p><label id="2_1-disklabel-fix">Si lo anterior no te funciona o - si eres masoquista total a quien le gustan los interfaces arcanos - así es como usar el programa - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?disklabel" - name="disklabel"> manualmente: - - <p><em>CUIDADO: Debes leer y entender perfectamente lo que estás - haciendo!. Los comandos aquí descritos pueden BORRAR tu sistema. - Procede con precaución!. Recuerda, un BACKUP es tu amigo</em>. - - <p><tt/sysinstall/ insistirá en montar algo en / en el editor de - etiquetas de disco. Tendrás que ejecutar manualmente - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?disklabel" - name="disklabel"> antes de poder ejecutar - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?newfs" name="newfs">/. - Esto significa que tendrás que hacer tu mismo los cálculos - para las particiones. Mira si puedes obtener información del - disco con <tt>disklabel -r <diskname></tt> por ejemplo - <tt>disklabel -r /dev/rwd0s2</tt> asumiendo que tu nuevo disco es - wd0, el primer disco IDE, y FreeBSD es el segundo slice (s2). - Deberías ver algo como esto:- - - - <verb> - # /dev/rwd0s2: - type: ESDI - disk: wd0s2 - label: - flags: - bytes/sector: 512 - sectors/track: 63 - tracks/cylinder: 64 - sectors/cylinder: 4032 - cylinders: 610 - sectors/unit: 2459520 - rpm: 3600 - interleave: 1 - trackskew: 0 - cylinderskew: 0 - headswitch: 0 # milliseconds - track-to-track seek: 0 # milliseconds - drivedata: 0 - - 8 partitions: - # size offset fstype [fsize bsize bps/cpg] - c: 2459520 0 unused 0 0 # (Cyl. 0 - 609) - e: 2459520 0 4.2BSD 0 0 0 # (Cyl. 0 - 609) - </verb> - - <p>Aegurate que el tamaño es correcto, en este caso, 2459520 - sectores x 512 bytes/sector / 2**20 (1 Megabyte) = 1200 MB. El resto - de datos (b/s, t/c, s/c, interleave, etc.) deberían funcionar con - los que salen por defecto con <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?disklabel" - name="disklabel">, pero mira <ref id="ESDI" name="esta nota"> para - discos antiguos. fsize es el <ref id="fsize" name="tamaño de - fragmento"> del sistema de ficheros y bsize es el - <ref id="bsize" name="tamaño de bloque">. 'c' es la - partición que ocupa FreeBSD (o el disco completo en caso de una - única partición para FreeBSD), y debe quedar como esta. - <em>No deberia ser usada para un sistema de ficheros</em>. La - partición 'c' es mágica en que es reconocida y usada por - el kernel aunque no exista ninguna etiqueta en ella. - - <p>En el caso trivial de querer usar todo el sistema de ficheros - para FreeBSD, la entrada para el campo "e" tiene que ser corregida - poniendo fsize a 1023 y bsize a 8192 (8 fragmentos/bloque), los - cuales son razonables. La entrada correcta para "e" seria: - - <verb> - e: 2459520 0 4.2BSD 1024 8192 - </verb> - - <p>Ahora el caso mas complicado, donde queremos 2 particiones para - 2 sistemas de ficheros. Siguiendo la <ref id="fsname" - name="convención de nombres BSD">, las particiones serán - <tt /wd0s2e/ y <tt /wd0s2f/. Supón que tenemos 1200MB y - asignamos 300 para "e" y los restantes 900 para "f". Los datos de - las particiones serían: - - <verb> - 8 partitions: - # size offset fstype [fsize bsize bps/cpg] - c: 2459520 0 unused 0 0 # (Cyl. 0 - 609) - e: 614400 0 4.2BSD 1024 8192 - f: 1843200 614400 4.2BSD 1024 8192 - </verb> - - <p><bf /Nota:/ Puedes editar directamente el "disklabel" con - ''<tt>disklabel -e wd0s2</tt>''. Para más información mira - en <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?disklabel" - name="disklabel">. - - <p>Si tienes la versión 2.1.5 o superior, y quieres dedicar - enteramente el disco para FreeBSD sin compartirlo con otros - sistemas operativos, se pueden reducir las operaciones a - realizar de la siguiente manera: - - <verb> - # dd if=/dev/zero of=/dev/rwd0 count=100 - # disklabel -Brw wd0 auto - # disklabel -e wd0 - </verb> - - <p>El primer comando <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?dd" name="dd"> asegura que - no hay basura en el inicio del disco que pueda confundir al kernel. - Lo siguiente a realizar es una generación automática de - etiqueta usando los procesos por defecto ejecutados en el arranque del - sistema. La edición de la etiqueta continua de la manera descrita - anteriormente. - - <p>Has acabado!. Ahora debes inicializar el sistema de ficheros - con algo como: - - <verb> - newfs -d0 /dev/rwd0s2e - newfs -d0 /dev/rwd0s2f - </verb> - - <p>Dependiendo del nombre del disco y la partición, quizás - sea requerida la ejecución del script <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?MAKEDEV" name="/dev/MAKEDEV"> - para la creación de los dispositivos. - - <p>Y montar tus nuevos discos/particiones (mira el comando - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?mount" name="mount">) - - <verb> - mount /dev/wd0s2e /mnt/foo - mount /dev/wd0s2f /mnt/bar - </verb> - - <p>Deberías editar el fichero <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?fstab(5)" name="/etc/fstab"> - para montar automaticamente los discos/particiones al arrancar el - sistema. - - <p><bf /Glosario:/ - - <descrip> - <tag><label id="fsize"><bf>Fragment Size (fsize)</bf></tag> - Unidad básica de almacenamiento para <tt /ffs/. - M. McKusick, W. Joy, S. Leffler, and R. Fabry, - "A Fast File System for UNIX", - ACM Transactions on Computer Systems 2, 3, pp 181-197, August - 1984, (reprinted in the BSD System Manager's Manual, SMM:5) o - <url url="file:/usr/share/doc/smm/05.fastfs/paper.ascii.gz" - name="/usr/share/doc/smm/05.fastfs/paper.ascii.gz"> en tu sistema. - - <tag><label id="bsize"><bf>Block Size (bsize)</bf></tag> - Un bloque se compone de uno o mas fragmentos. Mira la referencia - correspondiente en: - <url url="file:/usr/include/sys/disklabel.h" - name="<sys/disklabel.h>"> - - <tag><label id="ESDI"> - <bf>Disklabel Characteristics for Older Disks (ESDI)</bf></tag> - Necesitarás dar más información a<htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?disklabel" - name="disklabel"> - si quieres usar un "disco verdadero". Necesitarás saber la - geometría uniforme, cabezales reales, sectores y cilindros, como - en los discos ESDI antiguos. Toda esta información - debería ser facilmente localizable en la cubierta del propio - disco, manual, etc. - - <tag><label id="fsname"> - <bf>Nombres del sistema de ficheros BSD</bf></tag> - La partición 'a', por convención, está reservada - para particiones 'bootables' y la partición 'b' para swap. Las - particiones regulares deben empezar en la 'd'. La partición 'e' - corresponde a la primera partición no bootable y a usar como - sistema de ficheros. - - <tag><label id="swap"> - <bf>Warning referente al espacio de swap</bf></tag> - El espacio requerido por la tabla de partición de BSD está - permitido en el sistema de ficheros. No empieces la partición - swap en el cilindro 0. - </descrip> - - <sect1> - <heading>Tengo un nuevo disco removible, ¿como lo uso?</heading> - - <p>Se trate de un disco removible como un ZIP o EA (o un floppy, - si quieres usarlo de esta manera), o un nuevo disco duro, una vez - instalado y reconocido por el sistema, y tengas tu - cartridge/floppy/etc en su interior, las cosas son como para la - mayoría de dispositivos. - - <p><label id="disklabel">(esta sección esta basada en <url - url="http://vinyl.quickweb.com/mark/FreeBSD/ZIP-FAQ.html" - name="Mark Mayo's ZIP FAQ">) - - <p>Si es un disco ZIP o floppy, y está formateado en DOS, puedes - usar el comando: - - <verb> - mount -t msdos /dev/fd0c /floppy - </verb> - - <p>Si es un floppy, o este: - - <verb> - mount -t msdos /dev/da2s4 /zip - </verb> - - <p>para un disco ZIP con la configuración de fábrica. - - <p>Para otros discos, mira como configurarlos usando <tt/fdisk/ o - <tt>/stand/sysinstall</tt>. - - <p>El resto de ejemplos serán para un disco ZIP en da2, el tercer - disco SCSI. - - <p>A no ser que se trate de un floppy o disco removible, lo que - planeas compartir con otros usuarios, es aconsejable convertir - el formato de ficheros a BSD. Obtendrás nombre de ficheros largos, - como mínimo doblarás la velocidad de acceso del disco, y - mucha más estabilidad. Antes, necesitas rehacer las particiones. - Puedes usar el comando - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fdisk" - name="fdisk"> o la utilidad <tt>/stand/sysinstall</tt>. Si es un - disco pequeño que quieres dedicar enteramente a FreeBSD, solo - tienes que eliminar la FAT y tabla de particiones, y usar el sistema - de particiones de FreeBSD: - - <verb> - dd if=/dev/zero of=/dev/rda2 count=2 - disklabel -Brw da2 auto - </verb> - - <p>Puedes usar el comando disklabel (mas información en - <ref id="2_1-disklabel-fix" name="esta nota">) o - <tt>/stand/sysinstall</tt> para crear múltiples particiones BSD. - - <p>Finalmente, crea un nuevo sistema de ficheros: - - <verb> - newfs /dev/rda2c - </verb> - - <p>y montalo: - - <verb> - mount /dev/da2c /zip - </verb> - - <p>Sería una buena idea añadir una línea como esta - en el fichero - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fstab" - name="/etc/fstab"> para que solo tengas que teclear "mount /zip" - las siguientes veces. - - <verb> - /dev/da2c /zip ffs rw,noauto 0 0 - </verb> - - <sect1> - <heading>¿Cómo monto una partición secundaria DOS?</heading> - - <p>Las particiones DOS secundarias se encuentran después de TODAS - las particiones primarias. Por ejemplo, si tienes una partición - "E" como la segunda partición DOS en el segundo disco SCSI, - necesitas crear los ficheros especiales para el dispositivo 5 en /dev, y - después montar /dev/da1s5: - - <verb> - # cd /dev - # ./MAKEDEV da1s5 - # mount -t msdos /dev/da1s5 /dos/e - </verb> - - <sect1> - <heading>¿Puedo montar otros sistemas de ficheros bajo FreeBSD?</heading> - - <p><bf/Digital UNIX/ UFS CDROMs pueden ser montados directamente - en FreeBSD. Montar particiones de disco de Digital UNIX y otros - sistemas que soportan UFS puede ser mas complejo, dependiendo de los - detalles de la partición de disco del sistema operativo en - cuestión. - - <p><bf/ Linux/: 2.2 y posteriores soportan particiones <bf/ext2fs/. - Mira <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?mount_ext2fs" - name="mount_ext2fs"> para mas información. - - <p><bf/ NT/: Existe un driver de solo lectura de NTFS para FreeBSD. Para - más información, mira este tutorial de Mark Ovens en - <htmlurl url="http://www.users.globalnet.co.uk/~markov/ntfs_install.html" - name="http://www.users.globalnet.co.uk/~markov/ntfs_install.html">. - - <sect1> - <heading>¿Cómo puedo usar el "NT loader" para arrancar FreeBSD?</heading> - - <p>La idea general es que copies el primer sector de la partición - root nativa de FreeBSD en un fichero en la partición DOS/NT. - Asumiento que nombras a ese fichero como <tt>c:\bootsect.bsd</tt> - puedes editar el fichero <tt>c:\boot.ini</tt> para conseguir - algo como esto: - - <verb> - [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" - </verb> - - <p>Este proceso asume que DOS, NT, FreeBSD o cualquier otro sistema - ha sido instalado en sus respectivas particiones en el mismo disco. - En nuestro caso, DOS y NT están en la primera partición - y FreeBSD en la segunda. Instalamos FreeBSD para arrancarlo desde su - partición nativa y no desde el disco MBR. - - <p>Monta un floppy formateado en DOS bajo la partición <tt>/mnt</tt>. - - <verb> - dd if=/dev/rda0a of=/mnt/bootsect.bsd bs=512 count=1 - </verb> - - <p>Rearranca en DOS o NT. Copia el fichero <tt/bootsect.bsd/ y/o el - fichero <tt/bootsect.lnx/ del floppy a <tt/C:\/. Modifica los - atributos a <tt/boot.ini/ con: - - <verb> - attrib -s -r c:\boot.ini - </verb> - - <p>Edita y añade las líneas apropiadas del boot.ini mostrado - enteriormente de ejemplo, y vuelve a poner los atributos originales: - - <verb> - attrib +s +r c:\boot.ini - </verb> - - <p>Si FreeBSD está arrancando desde el MBR, restauralo desde el - comando <tt/fdisk/ después de reconfigurarlos para arrancar desde - sus particiones nativas. - - <sect1> - <heading> - ¿Cómo arranco FreeBSD y Linux desde LILO? - </heading> - - <p>Si tienes FreeBSD y Linux en el mismo disco, solo tienes que seguir - las instrucciones de instalación de LILO para arrancar un sistema - operativo no Linux. Brevemente, son estas: - - <p>Arranca Linux, y añade las siguientes líneas en el - fichero - <tt>/etc/lilo.conf</tt>: - <verb> - other=/dev/hda2 - table=/dev/hda - label=FreeBSD - </verb> - (Asumiendo que tu partición FreeBSD es conocida por Linux como - <tt>/dev/hda2</tt>). A continuación, ejecuta <tt>lilo</tt> como - root y ya debería estar. - - <p>Si FreeBSD está en otro disco, necesitas añadir - ``<tt>loader=/boot/chain.b</tt>'' al fichero <tt>lilo.conf</tt>. Por - ejemplo: - <verb> - other=/dev/sdb4 - table=/dev/sdb - loader=/boot/chain.b - label=FreeBSD - </verb> - - <p>En algunos casos necesitarás especificar el número de - disco en BIOS para que el cargador del boot funcione correctamente desde - el segundo disco. Por ejemplo, si tu disco SCSI con FreeBSD es visto por - la BIOS como disco 1, en el prompt del cargador de arranque - necesitarás especificar: - <verb> - Boot: 1:da(0,a)/kernel - </verb> - - <p>En FreeBSD 2.2.5 y posteriores, puedes configurar <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?boot(8)" name="boot(8)"> - para que haga esto automaticamente. - - <p>El <htmlurl - url="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html" - name="Linux+FreeBSD mini-HOWTO"> es una buena referencia para - las opciones de interoperabilidad entre FreeBSD y Linux. - - <sect1> - <heading> - ¿Cómo arranco FreeBSD y Linux usando BootEasy? - </heading> - - <p>Instala el LILO al inicio de la partición de arranque del - Linux en lugar de hacerlo en el "Master Boot Record". Así - podrás arrancar el LILO desde BootEasy. - - <p>Si estas usando Windows-95 y Linux, también es recomendable - hacer esto para simplificar el arranque de Linux en caso de que sea - necesaria una reinstalación del Windows-95 (ya que no quiere - convivir con otros sistemas operativos en el mismo Master Boot Record). - - <sect1> - <heading> - ¿Puede un disco "dedicado" provocar problemas? - </heading> - - <p><label id="dedicate">El proceso de instalación nos permite - elegir dos métodos diferentes de particionar un disco. El sistema - por defecto hace que el disco sea compatible con otros sistemas - operativos en la misma máquina, usando las tablas de entrada de - fdisk (llamadas "slices" en FreeBSD). Opcionalmente, podemos instalar un - boot-selector que nos permite seleccionar el sistema operativo con - el que queremos arrancar. - - <p>Mientras este es el caso más com&ún para gente - proveniente del mundo de PC, para la gente proveniente del mundo Unix y - quienes quieren instalar una máquina para funcionar con FreeBSD y - solo FreeBSD, es más habitual usar el sistema de reservar todo el - espacio del disco para un solo sistema operativo. - Si seleccionas "A)ll FreeBSD" en el editor de fdisk de la utilidad - sysinstall, y respondes la siguiente pregunta con "No", usarás - este último sistema. Ten en cuenta que usando este sistema no te - permitirá la instalación de ningún otro sistema - operativo o selector de arranque (boot manager). - - <p>Entonces, por que se llama "peligroso"?. Un disco en este modo - no contiene lo que las utilidades normales de un PC considerarían - una tabla de partición de ficheros válida. Dependiendo del - diseño de estas aplicaciones, puede que dañen el sector de - arranque una vez entren en contacto con el disco. Por lo menos una - BIOS Award usada por máquinas HP Netservers (pero no sólo - por ellos) es concocida por ignorar los disco duros que no contengan lo - que la BIOS entiende por una tabla de ficheros válida. - - <p>Para volver un disco "peligrosamente dedicado" a formato - estandard de PC, hay básicamente dos opciones. La primera es, - escribes suficientes bytes NULL sobre el MBR para hacer que - las siguientes instalaciones crean que están en un disco sín - usar. Puedes hacer esto así: - - <verb> - dd if=/dev/zero of=/dev/rda0 count=15 - </verb> - - <p>Alternativamente, puedes hacer: - - <verb> - fdisk /mbr - </verb> - - <p>que instalará un nuevo master boot record. - - <sect1> - <heading>¿Cómo puedo añadir más espacio de swap?</heading> - - <p>La mejor manera es incrementar el tamaño de tu partición - de swap, o usar esta excusa para añadir un otro disco nuevo (mira - <ref id="swap" name="esta nota"> si lo haces). - - <p>Añadir swap en discos separados hace las cosas más - rápidas que simplemente añadir swap en el mismo disco. - Como ejemplo, si estás compilando código fuente en un - disco, y el swap está en otro disco, es mucho más - rápido que si el swap y la compilación se realizaran en el - mismo disco. Esto es cierto específicamente para discos SCSI. - - <p>Los discos IDE no son capaces de permitir el acceso a ambos discos - en el mismo canal al mismo tiempo (FreeBSD no soporta el modo 4, ya - que todas las I/O de discos IDE son "programadas"). - - <p>Es realmente muy mala idea instalar el swap sobre NFS a no ser que - trabajes en una red muy rápida con un muy buen servidor. - - <p>Aquí hay un ejemplo para un fichero de swap de 64Mb - <tt>/usr/swap0</tt>, piensa que puedes usar el nombre que quieras). - - <p>Asegurate que el kernel está compilado con la línea - - <verb> - pseudo-device vn 1 #Vnode driver (turns a file into a device) - </verb> - - <p>en tu fichero de configuración. El kernel GENERIC la contiene. - - <enum> - <item>crea un vn-device - - <verb> - cd /dev - sh ./MAKEDEV vn0 - </verb> - - <item>crea un swapfile (<tt>/usr/swap0</tt>) - - <verb> - dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 - </verb> - - <item>activa el fichero de swap en <tt>/etc/rc.conf</tt> - - <verb> - swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. - </verb> - - <item>rebota la máquina. - </enum> - - <p>Para activar el fichero de swap inmediatamente teclea - - <verb> - vnconfig -ce /dev/vn0c /usr/swap0 swap - </verb> - - <sect1> - <heading>Tengo problemas para poner en marcha mi impresora.</heading> - - <p>Por favor, revisa la sección de impresoras del manual. Cubre la - mayoría de posibles problemas. Pásate por - <url url="../../handbook/printing.html" name="esta sección."> - - <sect1> - <heading>Mi teclado no coincide con los carácteres de pantalla.</heading> - - <p>El programa de control de teclado tiene una opción para cargar - el mapa de teclado. En el directorio <tt>/usr/share/syscons/keymaps</tt> - hay diferentes ficheros de mapas de teclado. Selecciona el que - corresponde a tu sistema y cárgalo. - - <verb> - kbdcontrol -l uk.iso - </verb> - - <p>Tanto el directorio <tt>/usr/share/syscons/keymaps</tt> como la - extensión <tt/.kbd/ son asumidas por la orden - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?kbdcontrol" - name="kbdcontrol">. - - <p>Esto puede ser configurado en <tt>/etc/sysconfig</tt> (o <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)" name="rc.conf">). - Mira los comentarios correspondientes en el propio fichero. - - <p>En la versión 2.0.5R y posteriores, todo lo referente a fuentes, - teclado, etc está en <tt>/usr/share/examples/syscons</tt>. - - <p>Actualmente se soportan los siguientes mapas de teclado: - - <itemize> - <!-- generate by `kbdmap -p' --> - <item>Belgian ISO-8859-1 - <item>Brazilian 275 keyboard Codepage 850 - <item>Brazilian 275 keyboard ISO-8859-1 - <item>Danish Codepage 865 - <item>Danish ISO-8859-1 - <item>French ISO-8859-1 - <item>German Codepage 850 - <item>German ISO-8859-1 - <item>Italian ISO-8859-1 - <item>Japanese 106 - <item>Japanese 106x - <item>Latin American - <item>Norwegian ISO-8859-1 - <item>Polish ISO-8859-2 (programmer's) - <item>Russian Codepage 866 (alternative) - <item>Russian koi8-r (shift) - <item>Russian koi8-r - <item>Spanish ISO-8859-1 - <item>Swedish Codepage 850 - <item>Swedish ISO-8859-1 - <item>Swiss-German ISO-8859-1 - <item>United Kingdom Codepage 850 - <item>United Kingdom ISO-8859-1 - <item>United States of America ISO-8859-1 - <item>United States of America dvorak - <item>United States of America dvorakx - </itemize> - - <sect1> - <heading>Las cuotas de usuario no funcionan correctamente.</heading> - - <p> - <enum> - <item>No actives las cuotas en '/', - - <item>Pon el fichero de cuotas en el sistema de ficheros en el que - se vayan a forzar las cuotas de usuario: - - <verb> - FS QUOTA FILE - /usr /usr/admin/quotas - /home /home/admin/quotas - ... - </verb> - </enum> - - <sect1> - <heading>Mi ccd no funciona correctamente</heading> - - <p>El síntoma es: - - <verb> - # ccdconfig -C - ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format - # - </verb> - - <p>Esto actualmente ocurre cuando estás intentando concatenar las - particiones c'. El driver ccd requiere que la partición sea del - tipo FS_BSDFFS. Edita la etiqueta del disco (disklabel) que estás - intentando concatenar y cambia el tipo de partición a '4.2BSD'. - - <sect1> - <heading>¿Porqué no puedo editar el disklabel en mi ccd?</heading> - - <p>El síntoma es: - - <verb> - # disklabel ccd0 - (it prints something sensible here, so let's try to edit it) - # disklabel -e ccd0 - (edit, save, quit) - disklabel: ioctl DIOCWDINFO: No disk label on disk; - use "disklabel -r" to install initial label - # - </verb> - - <p>Esto es porque el disklabel retornado por el ccd es actualmente - uno que no corresponde con el real. Puedes resolver este problema - escribiendo explícitamente: - - <verb> - # disklabel ccd0 > /tmp/disklabel.tmp - # disklabel -Rr ccd0 /tmp/disklabel.tmp - # disklabel -e ccd0 - (this will work now) - </verb> - - <sect1> - <heading>¿Soporta FreeBSD primitivas IPC System V?</heading> - - <p>Sí, FreeBSD las soporta. Estas incluyen memoria compartida, - mensajes y semáforos. Necesitas añadir las siguientes - líneas en la configuración de tu kernel para activarlas. - - <verb> - options SYSVSHM - options "SHMMAXPGS=64" # 256Kb of sharable memory - options SYSVSEM # enable for semaphores - options SYSVMSG # enable for messaging - </verb> - - <p>Recompila e instala. - - <p><bf/NOTA:/ Quizás necesites incrementar SHMMAXPGS a un - número como 4096 (16M) si quieres usar GIMP. 256K es suficiente - para la memoria compartida en X11R6. - - <sect1> - <heading> - ¿Cómo uso sendmail para envio de mail UUCP?<label id="uucpmail"> - </heading> - - <p>La configuración de sendmail incluida en FreeBSD está - preparada para sistemas que conectan directamente con Internet. Los - sistemas que quieran usar UUCP para el envío de mail deben - utilizar otro fichero de configuración. - - <p>Retocar <tt>/etc/sendmail.cf</tt> manualmente está considerado - algo para puristas. La versión 8 de sendmail incluye un nuevo - sistema de configuración llamado - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?m4" name="m4">, en - el cual la configuración se realiza en un nivel más alto. - Deberías usar los ficheros de configuración situados en - - <verb> - /usr/src/usr.sbin/sendmail/cf - </verb> - - <p>Si no instalaste tu sistema con el código fuente completo, el - paquete de configuración de sendmail está en una - distribución aparte. Asumiendo que tienes tu CD-ROM montado, haz: - - <verb> - cd /usr/src - tar -xvzf /cdrom/dists/src/ssmailcf.aa - </verb> - - <p>No te preocupes, solo son unos cientos de kilobytes de tamaño. - El fichero <tt>README</tt> en el directorio <tt>cf</tt> puede - servir como introducción a la configuración del m4. - - <p>Para envío y recepción va UUCP, te aconsejamos usar la - opción <em>mailertable</em>. Se basa en una base de datos - que sendmail puede usar como base para tomar las decisiones - de enrutado del mail. - - <p>Primero tienes que crear tu fichero <tt>.mc</tt>. Estos ficheros - se encuentran en el directorio - <tt>/usr/src/usr.sbin/sendmail/cf/cf</tt>. Si miras, encontrarás - algunos ejemplos. Asumiendo que tu fichero se llama <tt>foo.com</tt>, - todo lo que necesitas hacer para convertirlo en un fichero - <tt>sendmail.cf</tt> válido es: - - - <verb> - cd /usr/src/usr.sbin/sendmail/cf/cf - make foo.cf - cp foo.cf /etc/sendmail.cf - </verb> - - <p>Un fichero típico <tt>.mc</tt> sería algo como: - - <verb> - include(`../m4/cf.m4') - VERSIONID(`Your version number') - OSTYPE(bsd4.4) - - FEATURE(nodns) - FEATURE(nocanonify) - FEATURE(mailertable) - - define(`UUCP_RELAY', your.uucp.relay) - define(`UUCP_MAX_SIZE', 200000) - - MAILER(local) - MAILER(smtp) - MAILER(uucp) - - Cw your.alias.host.name - Cw youruucpnodename.UUCP - </verb> - - <p>Las opciones <em>nodns</em> y <em>nocanonify</em> previenen - del uso del DNS durante el tráfico de correo. La cláusula - <em>UUCP_RELAY</em> se necesita por razones imperiosas, no - preguntes :). Simplemente pon un nombre de máquina de Internet que - sea capaz de gestionar pseudo-dominios .UUCP; más sencillo, - entrarás el mail relay de tu ISP. - - <p>Una vez hayas hecho esto, necesitas el fichero llamado - <tt>/etc/mailtertable</tt>. Un ejemplo típico sería: - - <verb> - # - # 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 - </verb> - - <p>Como puedes ver, esto es parte de un fichero real. Las tres - primeras líneas manejan casos especiales donde el correo dirigido - a un dominio no debe ser enviado a través de la ruta por defecto, - si no a través de un UUCP vecino para acortar el path de - envío. La siguiente línea gestiona el mail del dominio - local para que sea enviado vía SMTP. Finalmente, los vecinos UUCP - son anotados en la parte .UUCP pseudo-domains, para poder sobreescribir - las reglas por defecto. La última línea es siempre un - punto, que indica el mail gateway hacia el resto del mundo. Todos los - nombres de nodos detrás de <tt>uucp-dom:</tt> deben ser vecinos - válidos UUCP. - - <p>Como recordatorio de que este fichero debe ser convertido a - una base de datos DBM antes de ser usada, la línea de comandos - para realizar esta operación esta puesta como un comentario al - inicio del fichero. Siempre tienes que ejecutar este comando - cada vez que realices algún cambio en tu mailtertable. - - <p>Si no tienes la seguridad de que una ruta de correo vaya a - funcionar correctamente, recuerda la opción <tt>-bt</tt> de - sendmail. Esta opción arranca el sendmail en <em>modo test</em>; - simplemente entra 0, seguido por la dirección de mail sobre la que - quieres testear la ruta. La última línea te indica el agente - interno, el host de destino y la dirección (posiblemente - traducido). Sal de este modo tecleando Control-D. - - <verb> - 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% - </verb> - - <sect1> - <heading>¿Cómo configuro el correo para conexiones NO permanentes a Internet?<label id="ispmail"></heading> - - <p>Si tienes una dirección IP fija en la conexión, no - necesitarás ajustar nada de lo que ya viene por defecto. - Configura tu hostname como el nombre asignado a tu IP de Internet y - sendmail hará el resto. - - <p>Si tienes direcciones IP asignadas dinamicamente y usas una - conexión <bf/ppp/ a Internet, probablemente tendrás un - buzón en el servidor de correo de tu proveedor. Supongamos que el - dominio de tu proveedor es <tt/myisp.com/, y tu nombre de usuario es - <tt/user/. Supongamos también que has llamado a tu máquina - <tt/bsd.home/ y que tu proveedor te ha indicado que uses la - máaquina <tt/relay.myISP.com/ como mail realy (gateway). - - <p>Para poder recoger el correo de tu buzón necesitarás - instalar un agente de recogida de correo. <bf/Fetchmail/ es una buena - opción ya que soporta diferentes protocolos. Normalmente se usa - POP3. Puedes recoger automaticamente tu correo al realizar la - conexión añadiendo la siguiente línea en el fichero - <tt>/etc+ppp/ppp.linkup</tt>: - - <verb> - MYADDR: - !bg su user -c fetchmail - </verb> - - <p>Asumimos que tienes una cuenta para <tt/user/ en <tt/bsd.home/. - En el home directory de <tt/user/ en <tt/bsd.home/, crea el fichero - <tt/.fetchmailrc/: - - <verb> - poll myISP.com protocol pop3 fetchall pass MySecret; - </verb> - - <p>No hace falta decir que este fichero no debe ser "leible" por nadie - excepto <tt/user/ ya que contiene el password <tt/MySecret/. - - <p>Para enviar el correo con la cabecera <bf/from:/ correcta, debes - decirle al sendmail que use <tt/user@myISP.com/ en lugar de - <tt/user@bsd.home/. También deberías decirle al sendmail - que envie todo el correo saliente a traves de <tt/relay.myISP.com/, para - una transmisión mucho más rápida. - - <p>El siguiente fichero <tt/.mc/ debe ser suficiente: - - <verb> - VERSIONID(`bsd.home.mc version 1.0') - OSTYPE(bsd4.4)dnl - FEATURE(nouucp)dnl - MAILER(local)dnl - MAILER(smtp)dnl - Cwlocalhost - Cwbsd.home - CwmyISP.com - MASQUERADE_AS(`myISP.com')dnl - FEATURE(allmasquerade)dnl - FEATURE(masquerade_envelope)dnl - FEATURE(nocanonify)dnl - FEATURE(nodns)dnl - define(SMART_HOST, `relay.myISP.com') - DmmyISP.com - define(`confDOMAIN_NAME',`myISP.com')dnl - define(`confDELIVERY_MODE',`deferred')dnl - </verb> - - <p>Mira en la sección anterior para los detalles de como convertir - este fichero <tt/.mc/ en un <tt/sendmail.cf/. No te olvides de - rearrancar sendmail después de cada actualización del - fichero sendmail.cf. - - <sect1> - <heading>Olvidé el password de Root!!</heading> - - <p>Tranquilo!!!. Simplemenre rearranca tu sistema, teclea -s en el - prompt de arranque para entrar en modo monousuario. En la pregunta - sobre el shell a usar, pulsa ENTER. Aparecerá un prompt #. Teclea - <tt>mount -u /</tt> para remontar tu sistema de ficheros en modo - de lectura/escritura y a continuación teclea <tt/mount -a/ para - montar todos los sistemas de ficheros. Ejecura <tt/passwd root/ - para cambiar el password de root. Teclea <tt/exit/ para continuar - normalmente con el arranque. - - <sect1> - <heading>¿Cómo mantengo el control sobre Control-Alt-Delete?</heading> - - <p>Edita el mapa de teclado que estás usando para la - cónsola y reemplaza las palabras <tt/boot/ por <tt/nop/. El mapa - de teclado por defecto es <tt>/usr/share/syscons/keymaps/us.iso.kbd</tt> - . Por supuesto si usas otro mapa de teclado adecuado a tu país, - tendrías que editarlo. - - <sect1> - <heading>¿Cómo reformateo ficheros de texto DOS a UNIX?</heading> - - <p>Simplemente usando este comando de perl: - -<verb> -perl -i.bak -npe 's/\r\n/\n/g' file ... -</verb> - - <p>file es el fichero a procesar. La modificación se hace en el - propio fichero dejando el original grabado con extensión .bak. - - Alternativamente puedes usar el comando <url - url="http://www.FreeBSD.org/cgi/man.cgi?tr" name="tr(1)"> - -<verb> -tr -d '\r' < dos-text-file > unix-file -</verb> - - dos-text-file es el fichero que contiene el texto DOS mientras que - unix-file contendrá la salida convertida. Este sistema puede - ser más rápido que usar perl. - - <sect1> - <heading>¿Cómo puedo hace "kill" de procesos por nombre?</heading> - - <p>Usa <url url="http://www.FreeBSD.org/cgi/man.cgi?killall" name="killall(1)">. - - <sect1> - <heading>¿Porque el su no me dejar ser root al no estar en el ACL?</heading> - - <p>El error proviene de sistema del autentificación distribuida - Kerberos. El problema no es fatal pero si molesto. Puedes ejecutar el - comando su con la opcion -K, o desinstalar Kerberos como se describe en - la siguiente sección. - - <sect1> - <heading>¿Cómo desinstalo Kerberos?</heading> - - <p>Para eliminar Kerberos del sistema, reinstala la distribución - bin de la release que estés usando. Si tienes el CDROM, puedes - montar el cd (asumiremos que esta en /cdrom) y ejecutar: - -<verb> -cd /cdrom/bin -./install.sh -</verb> - - <sect1> - <heading>¿Cómo añado pseudoterminales a mi sistema?</heading> - - <p>Si tienes muchos usuarios de telnet, ssh, X, o de cónsola, - probablemente terminarás desbordando el número de - pseudoterminales del sistema. Aquí tienes como añadir - más: - - <enum> - <item>Compila e instala un nuevo kernel com la línea - - <verb> - pseudo-device pty 256 - </verb> - - <p>en el fichero de configuración. - - <item>Ejecuta el comando - - <verb> - # cd /dev - # ./MAKEDEV pty{1,2,3,4,5,6,7} - </verb> - - <p>para crear 256 nodos de dispositivo para los nuevos terminales. - - <item>Edita el fichero <tt>/etc/ttys</tt> y añade una línea - para cada uno de los 256 terminales. Estas líneas deben seguir la - estructura de las entradas existentes, algo como esto: - - <verb> - ttyqc none network - </verb> - - <p>El órden de la designación de letras es - <tt>tty[pqrsPQRS][0-9a-v]</tt>, usando una expresión regular. - - <item>Rebota el sistema con el nuevo kernel, y lo tendrás listo - para funcionar. - </enum> - - <sect1> - <heading>¿Cómo puedo releer el fichero /etc/rc.conf y - relanzar /etc/rc sin tener que hacer un reboot?</heading> - - <p>Entra en modo monousuario y a continuación vuelve a modo - multiusuario. - - En la consola haz: -<verb> - # shutdown now - (Nota: sin -r o -h) - - # return - # exit -</verb> - - <sect1> - <heading>¿Qué es un sandbox?</heading> - - <p>Sandbox es un término de seguridad. Puede significar dos - cosas: - - <itemize> - <item> - <p>Un proceso que es situado en el interior de una serie de muros - virtuales diseñados como prevención e imposibilitar - el acceso al sistema principal en caso de que alguien comprometa - la seguridad de ese proceso. - - <p>Se dice que el proceso es capaz de "jugar" entre los muros. - Esto significa que se supone que nada de lo que haga el proceso - referente a la ejecución de código, puede ser capaz - de romper los muros, así no es necesario hacer - auditorías detalladas de su código para poder conocer - todo lo referente a los riesgos de seguridad del proceso. - - <p>Los muros pueden, por ejemplo, un userid. Esta es la - definición usada en las páginas man de seguridad y del - programa named. - - <p>Veamos como ejemplo el servicio 'ntalk' (consultar /etc/inetd.conf). - Este servicio solía ejecutarse con el userid de root. Ahora se - ejecuta con el userid tty. El usuario tty esta diseñado para ser - usado como usuario sandbox, dificultando así la tarea de un - intruso que haya conseguido penetrar en el sistema a través del - servicio ntalk. De esta manera, el intruso solo puede afectar a los - servicios, programas o procesos propiedad del usuario tty. - </item> - - <item> - <p>Un proceso que se ha situado en el interior de una simulación - de la máquina. Esto es más hard-core. Básicamente, - significa que alguien que sea capaz de penetrar en el proceso, - creerá que ha penetrado en el sistema principal, pero de hecho, - ha penetrado en una simulación de esa máquina y no puede - modificar ningún dato real. - - <p>El sistema más común de conseguir esto es crear un - entorno simulado en un subdirectorio y ejecutar los procesos en ese - subdirectorio mediante chroot (la raiz "/" para ese proceso es este - directorio, no la raiz "/" real del sistema). - - <p>Otro sistema habitual es montar un sistema de ficheros de solo - lectura y a continuació,n crear un nivel de sistema de ficheros - por encima del anterior que dé al proceso la sensación - de encontrarse en un sistema de ficheros de lectura/escritura. El - proceso creerá que es capaz de escribir esos ficheros, pero - sólo el proceso ve los efectos; otros procesos del sistema - no ven absolutamente nada. - - <p>Se intenta crear este tipo de sandbox totalmente transparentes para - que el usuario (o intruso) no se de cuenta que está en él. - </item> - </itemize> - - <p>UNIX implementa dos tipos de sandboxes. Uno es a nivel de procesos, - y el otro es a nivel de usuarios (userid). - - <P>Cada proceso UNIX es totalmente independiente de cualquier otro proceso - UNIX. Un proceso no puede modificar el espacio de direcciones de otro. Es - diferente a los sistemas Windows en los que un proceso puede sobreescribir - facilmente el espacio de direcciones de otro proceso, probocando una caida - de la máquina. - - <p>Un proceso UNIX es propiedad de un userid determinado. Si el userid no - es el usuario root, éste solo podrá acceder a los procesos - de su propiedad, evitando la intrusión en procesos ajenos. El - userid también se usa como sistema de protección para datos - grabados en disco. - - </sect> - diff --git a/es_ES.ISO8859-1/FAQ/applications.sgml b/es_ES.ISO8859-1/FAQ/applications.sgml deleted file mode 100644 index 01ee3e86b2..0000000000 --- a/es_ES.ISO8859-1/FAQ/applications.sgml +++ /dev/null @@ -1,170 +0,0 @@ -<!-- $FreeBSD$ --> -<!-- The FreeBSD Documentation Spanish Project --> - <sect> - <heading>Aplicaciones de usuario<label id="applications"></heading> - - <sect1> - <heading>¿Dónde están las aplicaciones?</heading> - - <p>Por favor, mira en <url url="http://www.FreeBSD.org/ports/" - name="la sección de ports"> para obtener información sobre - programas y aplicaciones que han sido portados a FreeBSD. En estos - momentos la lista llega a los 1800 creciendo día a día, - por lo que te recomendamos que la visites habitualmente o te subscribas - a la <ref id="mailing" name="lista de distribución"> - <tt/FreeBSD-announce/ para las actualizaciones periódicas de nuevas - aportaciones. - - <p>La mayoría de programas están disponibles tanto para la - rama 2.2 como para la 3.x y 4.0, y muchos de ellos deberían - funcionar en sistemas 2.1.x. Cada vez que se realiza una release de - FreeBSD, se incluye un snapshot del arbol de aplicaciones en el - directorio <tt>ports/</tt>. - - <p>También trabajamos con el concepto de "package", que es, - esencialmente una distribución binaria "zipada" con una - pequeña información extra que realiza la instalación - del programa automaticamente. Un package puede ser instalado y - desinstalado fácilmente sin tener que saber los detalles de - ficheros o configuraciones que esto conlleva. - - <p>Usa el menú de instalación de "packages" en - <tt>/stand/sysinstall</tt> (bajo la opción post-configuration del - menú principal) o ejecuta el comando <em>pkg_add(1)</em> con el - package que estás interesado en instalar. Los package pueden ser - identificados por su extensión <em>.tgz</em>. En la - distribución de CDROM existe un directorio <tt>packages/All</tt> - en la que se encuentran todos los packages disponibles. También - pueden conseguirse en la red en los siguientes servidores: - - <descrip> - <tag>para 2.2.8-RELEASE/2.2-stable</tag> - <url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/" - name="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/"> - - <tag>for 3.2-release/3.2-stable</tag> - <url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-3-stable/" - name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-3-stable/"> - - <tag>para 4.0-current</tag> - <url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-4-current/" - name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-4-current/"> - </descrip> - - <p>o en tu mirror más cercano. - - <p>Ten en cuenta que no todos los ports están disponibles como - packages. Es siempre buena idea visitar periodicamente la - dirección <url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/" - name="ftp.FreeBSD.org">. - </sect1> - - <sect1> - <heading>¿Dónde encuentro la librería libc.so.3.0?</heading> - - <p>Estás intentando ejecutar un package para versión - 2.2/3.x/4.0 en un sistema de versión 2.1.x. Por favor, mira en la - sección anterior y usa el package adecuado para tu sistema. - </sect1> - - <sect1> - <heading>Ghostscript tiene muchos errores con mi 386/486SX.<label id="emul"></heading> - - <p>No tienes coprocesador matemático, verdad? - Necesitarás añadir el emulador matemático en tu - kernel; puedes hacerlo añadiendo lo siguiente en el fichero de - configuración del kernel: - - <verb> - options GPL_MATH_EMULATE - </verb> - - <p><bf/NOTA/ Necesitarás eliminar la opción - <tt/MATH_EMULATE/. - - <sect1> - <heading>Cuando ejecuto una aplicación SCO/iBCS2, falla en - <tt/socksys/.</heading> - - <p>Primero necesitas editar el fichero <tt>/etc/sysconfig</tt> - (o <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)" - name="/etc/rc.conf">) y en la última sección cambiar la - siguiente variable a <tt/YES/: - - <verb> - # Set to YES if you want ibcs2 (SCO) emulation loaded at startup - ibcs2=NO - </verb> - - <p>El kernel caragará el módulo <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?ibcs2" name="ibcs2"> - al arrancar. - - <p>A continuación necesitarás configurar /compat/ibcs2/dev - de la siguiente manera - - <verb> -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 - </verb> - - <p>Solo necesitas el socksys para ir a <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?null(4)" name="/dev/null"> - e imitar la apertura y cierre de ficheros. El código en -current - gestionará el resto. Esto es mucho más limpio que la - manera en la que se hacía antes. Si quieres el driver - <tt/spx/ para un conexión, define <tt/SPX_HACK/ cuando - compiles el kernel. - - <sect1> - <heading>¿Cómo configuro INN (Internet News) para mi máquina? - </heading> - - <p>Después de la instalación del package o port de inn, - un excelente lugar para empezar es - <url url="http://www.cis.ohio-state.edu/~barr/INN.html" - name="Dave Barr's INN Page"> donde encontrarás las FAQ de INN. - - <sect1> - <heading>¿Qué versión de Microsoft FrontPage debo usar?</heading> - - <p>Usa el Port. Una versión pre-parcheada para Apache está - disponible en la colección de ports. - - <sect1> - <heading>¿FreeBSD soporta Java?</heading> - - <p>Sí. Por favor, mira en <url url="http://www.FreeBSD.org/java" - name="http://www.FreeBSD.org/java">. - - <sect1> - <heading>¿Porqué no puedo compilar este port en mi máquina - 3.x-stable?</heading> - - <p>Si utilizas una versión de FreeBSD que ha quedado ligeramente anticuada - con respecto a -stable o -current necesitarás el kit de actualización - de ports disponible en <url url="http://www.FreeBSD.org/ports" - name="http://www.FreeBSD.org/ports">. Si tienes una versión actualizada, es - posible que alguien haya modificado el port de manera que éste compile en - -current pero no en -stable. Por favor, envía un informe de error con el - comando <em>send-pr(1)</em> ya que la colección de ports está - pensada para que funcione tanto en las ramas -stable como -current. - </sect1> - - <sect1> - <heading>¿Dónde encuentro ld.so?</heading> - - <p>Si quieres ejecutar aplicaciones a.out como Netscape en sistemas con - formato de ejecución ELF como FreeBSD 3.1-RELEASE o posteriores, - necesitarás la librería /usr/libexec/ld.so y algunas otras - en formato a.out. Estas librerías están incluidas en la - distribución compat22. Usa /stand/sysinstall o el script install.sh - en el subdirectorio compat22 e instalala. También deberían - consultarse los ficheros ERRATA de FreeBSD 3.1-R y 3.2-R. - </sect1> - - </sect> - diff --git a/es_ES.ISO8859-1/FAQ/commercial.sgml b/es_ES.ISO8859-1/FAQ/commercial.sgml deleted file mode 100644 index d715cd2a73..0000000000 --- a/es_ES.ISO8859-1/FAQ/commercial.sgml +++ /dev/null @@ -1,186 +0,0 @@ -<!-- $FreeBSD$ --> -<!-- The FreeBSD Documentation Spanish Project --> - <sect> - <heading>Aplicaciones Comerciales<label id="commercial"></heading> - - <p><bf/NOTA/ Esta sección está todavía poco - desarrollada, por lo que esperamos que las compañías nos - ayuden a completarla :) . El grupo de FreeBSD no tiene ningún - interés financiero en ninguna de las empresas aquí listadas, - simplemente están como servicio público (y creemos que el - interés comercial por FreeBSD puede tener efectos - muy positivos en la viabilidad a largo término). Animamos a las - empresas desarrolladoras de software que nos envíen su - información para ser incluidas en esta lista. - - <sect1> - <heading>¿Dónde puedo obtener Motif para FreeBSD?</heading> - - <p>Contacta con <ref id="apps2go" name="Apps2go"> para una - distribución de Motif ELF 2.1 para FreeBSD.<label id="apps2go"> - - <p>Esta distribución incluye: - <itemize> - <item>OSF/Motif manager, xmbind, panner, wsm. - - <item>Kit de desarrollo con uil, mrm, xm, xmcxx, includes y - ficheros Imake. - - <item>Librerías ELF estáticas y dinámicas - (para usar con FreeBSD 3.0 y posteriores). - - <item>Applets demostrativos. - </itemize> - - <p>Asegúrate de especificar que deseas la distribución - para FreeBSD cuando hagas el pedido. También se distribuyen - versiones para NetBSD y OpenBSD por <em>Apps2go</em>. La - distribución sólo está disponible por FTP. - - <descrip> - <tag/Más información/ - <url url="http://www.apps2go.com/" name="Página web de Apps2go"> - <tag/o/ <url url="mailto:sales@apps2go.com" name="Ventas"> o - <url url="mailto:support@apps2go.com" name="Soporte"> - - <tag/o/ teléfono (817) 431 8775 o +1 817 431-8775 - </descrip> - - <p>Contacta con <ref id="metrox" name="Metro Link"> para obtener una - distribución de Motif 2.1 ELF o a.out para FreeBSD. - - <p>Esta distribución incluye: - <itemize> - <item>OSF/Motif manager, xmbind, panner, wsm. - - <item>Kit de desarrollo con uil, mrm, xm, xmcxx, includes y - ficheros Imake. - - <item>Librerías estáticas y dinámicas (especifica - ELF para FreeBSD 3.0 y superior o a.out para FreeBSD 2.2.8 o - anterior). - - <item>Applets demostrativos. - - <item>Páginas man preformateadas. - </itemize> - - <p>Asegúrate de especificar que deseas la distribución - para FreeBSD cuando hagas el pedido. También se distribuyen - versiones para Linux por <em>Metro Link</em>. La distribución - está disponible en CDROM o vía FTP. - - <p>Contacta con <ref id="xig" name="Xi Graphics"> para una - distribución de Motif a.out 2.0 para FreeBSD. - - <p>Esta distribución incluye: - <itemize> - <item>OSF/Motif manager, xmbind, panner, wsm. - - <item>Kit de desarrollo con uil, mrm, xm, xmcxx, includes y - ficheros Imake. - - <item>Librerías estáticas y dinámicas - (para usar con FreeBSD 2.2.8 y anteriores). - - <item>Applets demostrativos. - - <item>Páginas man preformateadas. - </itemize> - - <p>Asegúrate de especificar que deseas la distribución - para FreeBSD cuando hagas el pedido. También se distribuyen - versiones para BSDI y Linux por <em>Xi Graphics</em>. La - distribución se hace en cuatro disquetes... en el futuro esto - se cambiará por una versión en CDROM unificada. - - <sect1> - <heading>¿Dónde puedo conseguir CDE para FreeBSD?</heading> - - <p>Contacta con <ref id="xig" name="Xi Graphics"> para la - distribucion CDE 1.0.10 para FreeBSD. Incluye Motif 1.2.5, - y puede ser usada con Motif 2.0. - - <p>Este es un CDROM unificado para FreeBSD y Linux. - - <p><ref id="xig" name="Xi Graphics"> ya no vende el CDE para FreeBSD. - - <p><url url="http://www.kde.org/" name="KDE"> es un entorno - gráfico "open source" similar a CDE en muchos aspectos. - - <sect1> - <heading>¿Hay algún servidor X comercial de altas prestaciones? - <p>Sí, <url url="http://www.xig.com" name="Xi Graphics"> y - <url url="http://www.metrolink.com" name="Metro Link"> venden el - producto Accelerated-X para FreeBSD y otros sistemas basados en Intel. - <label id="xig"> - - <p>La oferta de Metro Link es un servidor X de altas prestaciones que - ofrece una fácil configuración usando el conjunto de - herramientas "FreeBSD Package", soporte de múltiples tarjetas - de vídeo concurrentes y sólo se distribuye en formato - binario desde su FTP. Mencionar que la oferta de Metro Link está - disponible por el razonable precio de $39. - <label id="metrox"> - - <p>Metro Link también vende el Motif ELF y a.out para - FreeBSD. - - <descrip> - <tag/Más información/ - <url url="http://www.metrolink.com/" name="Web de Metro Link"> - - <tag/o/ <url url="mailto:sales@metrolink.com" name="Ventas"> o - <url url="mailto:tech@metrolink.com" name="Soporte">. - - <tag/o/ Teléfono (954) 938-0283 o +1 954 938-0283 - </descrip> - - <p>La oferta de Xi Graphics es un servidor X de altas prestaciones que - ofrece una fácil configuración, soporte para - múltiples tarjetas de vídeo concurrentes, y sólo - se distribuye en formato binario, en una distribución en - disquetes unificada para FreeBSD y Linux. Xi Graphics también - ofrece un servidor X de altas prestaciones para ordenadores - portátiles. - - <p>Hay una distribución demo para testear (versión 5.0). - - <p>Xi Graphics también vende el Motif y CDE para FreeBSD. - - <descrip> - <tag/Mas información/ - <url url="http://www.xig.com/" name="Web de Xi Graphics WWW"> - - <tag/o/ <url url="mailto:sales@xig.com" name="ventas"> o - <url url="mailto:support@xig.com" name="Soporte"> - - <tag/o/ Teléfono (800) 946 7433 o +1 303 298-7478. - </descrip> - - <sect1> - <heading>¿Hay algún sistema de base de datos para FreeBSD?</heading> - - <p>Sí!. Mira en la sección <url - url="../commercial/software_bycat.html#CATEGORY_DATABASE" - name="Productos Comerciales"> del web de FreeBSD. - - <p>También te recomendamos que mires en la sección - <url url="../ports/databases.html" name="Bases de Datos"> de la - colección de Ports. - - <sect1> - <heading>¿Puedo usar Oracle en FreeBSD?</heading> - - <p>Sí. Las siguientes páginas te explican como configurar - el Oracle de Linux en FreeBSD: - - <itemize> - <item><url url="http://www.scc.nl/~marcel/howto-oracle.html" - name="http://www.scc.nl/~marcel/howto-oracle.html"> - - <item><url url="http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-FreeBSD" name="http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-FreeBSD"> - </itemize> - - </sect> - diff --git a/es_ES.ISO8859-1/FAQ/hackers.sgml b/es_ES.ISO8859-1/FAQ/hackers.sgml deleted file mode 100644 index 80dc17671e..0000000000 --- a/es_ES.ISO8859-1/FAQ/hackers.sgml +++ /dev/null @@ -1,556 +0,0 @@ -<!-- $FreeBSD$ --> -<!-- The FreeBSD Documentation Spanish Project --> - <sect> - <heading>Sólo para hackers serios de FreeBSD<label id="hackers"> - </heading> - - <sect1> - <heading> - ¿Qué son SNAPs y RELEASEs? - </heading> - - <p>Hay actualmente tres ramas activas/semi-activas en el desarrollo de - FreeBSD y en su - <url url="http://www.FreeBSD.org/cgi/cvsweb.cgi" name="CVS Repository">: - - <itemize> - <item><bf/RELENG_2_2/ AKA <bf/2.2-stable/ AKA <bf/"2.2 branch"/ - <item><bf/RELENG_3/ AKA <bf/3.x-stable/ AKA <bf/"3.0 branch"/ - <item><bf/HEAD/ AKA <bf/-current/ AKA <bf/4.0-current/ - </itemize> - - <p><bf/HEAD/ no es una rama actual, como las otras dos, es - simplemente una constante simbólica para <em/la versión - de desarrollo actual/ a la cual nos referimos simplemente como - <bf/-current/. - - <p>Actualmente, <bf/-current/ es el desarrollo de la versión 4.0 y - la rama <bf/3.0-stable/ es <bf/RELENG_3/, separada de -current en Enero - de 1999. - - <sect1> - <heading> - ¿Cómo puedo hacerme mi propia release personalizada?<label id="custrel"> - </heading> - - <p>Para hacer una release necesitas hacer tres cosas: primero, - necesitas usar un kernel con el driver <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?vn" name="vn"> configurado. - Añade esto a tu fichero de configuración del kernel y - crea un nuevo kernel: - - <verb> - pseudo-device vn #Vnode driver (turns a file into a device) - </verb> - - <p>Segundo, debes tener las herramientas del CVS a mano. Para hacer - esto, puedes usar - <url url="../../handbook/synching.html#CVSUP" name="CVSUP"> - pero en tu supfile pon el nombre de la release a cvs y borra cualquier - tag campo de fecha: - - <verb> - *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 - </verb> - - <p>A continuación ejecuta <tt/cvsup -g supfile/ para tener todos - los bits correctos en tu ordenador. - - <p>Finalmente, necesitas una buena cantidad de espacio vacío para - crear en el la release. Digamos que está en - <tt>/algun/disco/grande</tt> y en el ejemplo anterior has dejado los - ficheros del CVS en <tt>/home/ncvs</tt>: - - <verb> - setenv CVSROOT /home/ncvs # or export CVSROOT=/home/ncvs - cd /usr/src/release - make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/algun/disco/grande/release - </verb> - - <p>Una release completa será creada en - <tt>/algun/disco/grande/</tt> y tendrás una instalación - completa de tipo FTP en <tt>/algun/disco/grande/R/ftp</tt> cuando acabes. - Si quieres crear tu SNAP usando otra rama de desarrollo diferente de - -current, puedes añadir <tt/RELEASETAG=SOMETAG/ a la línea - de comando anterior de creación de la release. Por ejemplo, - <tt/RELEASETAG=RELENG_2_2/ crearía un snapshot 2.2 GAMMA. - - <sect1> - <heading>¿Cómo creo discos de instalación personalizados?</heading> - - <p>El proceso completo de creacación de discos de - instalación y archivos fuentes y binarios esta automatizado por - varios targets en <tt>/usr/src/release/Makefile</tt>. La - información alli contenida debería ser suficiente para que - puedas empezar. Falta decir que este proceso necesita la ejecución - del comando "make world" y quizás te use mucho tiempo y espacio - en disco. - - <sect1> - <heading>``make world'' destruye mis binarios instalados.</heading> - - <p>Sí, esta es la idea general; como su nombre sugiere, - "make world" rehace todos los binarios del sistema, de manera que puedas - estar seguro de tener un entorno limpio y consistente al final (que es - por lo que tarda tanto). - - <p>Si la variable de entorno <tt/DESTDIR/ está definida mientras se - ejecuta <tt/make world/ o <tt/make install/, los binarios creados - nuevamente seran depositados en un árbol de directorios - idéntico al instalado, y a partir de - <tt>${DESTDIR}</tt>. Algunas combinaciones aleatorias - de modificaciones de librerías compartidas y programas pueden - causar que falle el <tt/make world/. - - <sect1> - <heading> - Cuando mi sistema arranca, dice (bus speed defaulted). - </heading> - - <p>Las controladoras SCSI Adaptec 1542 permiten al usuario configurar - su velocidad de acceso al bus en software. Versiones anteriores del - driver de la 1542 intentaban determinar la velocidad más alta - factible y configurar la Adaptec a esta. Nos hemos encontrado con que esto - hace fallar el sistema de algunos usuarios, por lo que tienes que - definir la opción de configuración del kernel - <tt/TUNE_1542/ para que esto ocurra. En algunos sistemas puede - que puede hacer que los discos vayan más rápidos, pero en - otros puede que los datos queden corrompidos. - - - <sect1> - <heading> - ¿Puedo seguir la rama current con acceso limitado a Internet?<label id="ctm"> - </heading> - - <p>Sí, puedes hacerlo <tt/sin/ bajarte todo el código - fuente usando la - utilidad <url url="../../handbook/synching.html#CTM" name="CTM."> - - <sect1> - <heading>¿Cómo partir la distribución en ficheros de 240k?</heading> - - <p>Los sistemas BSD más modernos tienen una opción - <tt/-b/ para partir que les permite partir los ficheros en - tamaños arbitrarios. - - <p>Aqui hay un ejemplo de <tt>/usr/src/Makefile</tt>. - - <verb> - bin-tarball: - (cd ${DISTDIR}; \ - tar cf - . \ - gzip --no-name -9 -c | \ - split -b 240640 - \ - ${RELEASEDIR}/tarballs/bindist/bin_tgz.) - </verb> - - <sect1> - <heading>¿He escrito una extensión del kernel, a quien la - envío?</heading> - - <p>Por favor, mira en <url url="../../handbook/contrib.html" - name="como enviar código."> - - <p>Y gracias por pensar en nosotros! - - <sect1> - <heading>¿Cómo se detectan e inicializan las tarjetas ISA y PnP?</heading> - - <p>Brevemente, hay unos cuantos puertos de entrada/salida a los que - todas las tarjetas PnP responden cuando el ordenador pregunta si hay - alguien ahí. Así, cuando comienza la rutina de prueba - de PnP, pregunta si hay alguna tarjeta PnP presente y todas las - tarjetas responden con su número de modelo a una lectura I/O - del mismo puerto. Así el código de prueba puede conocer - el ID de cada tarjeta (asignado por Microsoft/Intel). - - <p>Los ID's son dos campos de 32 bits (2ˆ64) + 8 bits de - checksum. Los primeros 32 bits son el identificador del fabricante. - No se ha dicho publicamente, pero parece estar asumido que diferentes - tipos de tarjeta del mismo fabricante pueden tener diferentes id's de - fabricante. La idea de necesitar 32 bits sólo para los - fabricantes parece un poco excesiva. - - <p>La parte baja de 32 bits son un número de serie, - dirección ethernet, algo que haga a la tarjeta única. El - fabricante no debe producir nunca una segunda tarjeta que tenga los - mismos 32 bits de la parte baja, aunque los 32 bits de la parte alta sean - diferentes. Así puedes tener múltiples tarjetas del mismo - tipo en la misma máquina y los 64 bits serán únicos - para cada tarjeta. - - <p>Los grupos de 32 bits nunca pueden ser todos cero. Esto permite - mostrar todos los bits no-cero durante la búsqueda binaria - inicial. - - <p>Una vez el sistema ha identificado todos los ID's de las tarjetas - presentes, reactivaráa cada tarjeta, una tras otra (a - través de los mismos puertos I/O), y encontrará los - recursos que cada tarjeta necesita, que opciones de interrupción - están disponibles, etc. Se realiza un escaneo sobre todas y cada - una de las tarjetas presentes para conocer esta información. - - <p>Esta información se combina con la información de los - ficheros ECU del disco y con las BIOS MLB. El soporte PnP de ECU y las - BIOS para hardware en el MLB usualmente es sintético, y los - periféricos no hacen PnP genuino. De todas maneras, examinando - la información de la BIOS más la información - ECU, la rutina de prueba puede causar que los dispositivos que no son - PnP puedan evitar a esos dispositivos que el código de prueba - no puede volver a posicionar. - - <p>Así, los dispositivos PnP son visitados una vez más - y se les asigna su I/O, DMA, IRQ, direcciones del mapa de memoria. Los - dispositivos aparecerán en esas direcciones y permanecerán - en ellas hasta que se vuelva a reinicializar la máquina. - - <p>Todo el proceso se ha simplificado mucho, pero espero que hayas podido - hacerte una idea del proceso. - - <sect1> - <heading>¿Soporta FreeBSD arquitecturas diferentes a x86?</heading> - - <p>Diferentes grupos de personas han expresado su interés en - trabajar en un port multi-arquitectura de FreeBSD y FreeBSD/AXP - (ALPHA) es un ejemplo de ese esfuerzo realizado, ahora disponible en - forma de 3.0 SNAPshot release en <url - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/alpha/" - name="ftp://ftp.FreeBSD.org/pub/FreeBSD/alpha">. El port de ALPHA - funciona actualmente en diferentes tipos de máquinas ALPHA, - entre ellas, AlphaStation, AXPpci, PC164, Miata y Multia. Este port - todavía no se considera una release completa y no lo será - hasta que exista una colección completa de herramientas de - instalación y una distribución completa en cdrom para - instalació, incluyendo un número razonable de ports y - packages funcionales. FreeBSD/AXP debe considerarse software de - calidad BETA en estos momentos. Para más información del - proyecto, subscríbete a la - <tt><FreeBSD-alpha@FreeBSD.org></tt><ref id="mailing" - name="lista de correo">. - - También se ha expresado interés en un port de FreeBSD para - arquitectura SPARC. Subscríbete a - <tt><FreeBSD-sparc@FreeBSD.org></tt> <ref id="mailing" - name="la lista"> si estás interesado en participar en el proyecto. - Para discusiones generales en nuevas arquitecturas, participa en - <ref id="mailing" name="la lista"> - <tt><FreeBSD-platforms@FreeBSD.org></tt>. - - <sect1> - <heading>Necesito un numero de dispositivo para un driver propio</heading> - - <p>Esto depende de si quieres hacer que el driver esté - públicamente disponible. Si la respuesta es afirmativa, por favor, - envianos una copia del código fuente del driver y las - modificaciones apropiadas del fichero <tt>files.i386</tt>, un ejemplo de - configuración y el código apropiado de <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?MAKEDEV" name="MAKEDEV"> para - crear cualquier fichero especial que use tu dispositivo. Puedes enviar - todo lo necesario a <tt><FreeBSD-hackers@FreeBSD.org></tt>. - - <sect1> - <heading>Alternativas a la política de directorios</heading> - - <p>En respuesta a esta pregunta de políticas alternativas - para los directorios, el esquema que está actualmente en uso - no ha cambiado desde que lo escribí en 1983. Escribí esa - política para el sistema de ficheros rápido original, y - nunca se ha revisado. Trabaja bién manteniendo los grupos de - cilindros. Como muchos de vosotros habreis notado, el rendimiento es - muy pobre con "find". Muchos sistemas de ficheros son creados desde - archivos que fueron creados por una primera búsqueda en - profundidad (también conocido como ftw). Estos directorios - terminan esparcidos a través de los grupos de cilindros. Si - conociesemos el número total de directorios a crear, la - solución sería crear (total / fs_ncg) por grupo de - cilindros antes de moverlos. Obviamente, tendriamos que crear - algún tipo de heurística para adivinar este número. - Usando un número pequeño fijo (como puede ser - 10) haría de orden de magnitud. Para diferencial restores de - operaciones normales (cuando el algoritmo actual es probablemente - más sensible), podrís usar el clustering hasta 10 si - fueran todos hechos dentro de una ventana de diez segundos. De cualquier - manera, mi conclusión es que este es un área para la - experimentación.</p> - - <p>Kirk McKusick, Septiembre 1998</p> - - <sect1> - <heading>Obtener todo lo posible de un "kernel panic"</heading> - - <p> - <em>[Esta sección fue extraida de un mensaje escrito por <url - url="mailto:wpaul@FreeBSD.org" name="Bill Paul"> en la - <ref id="mailing" name="lista"> FreeBSD-current por <url - url="mailto:des@FreeBSD.org" name="Dag-Erling Coïdan - Smørgrav">, quién a fijado algunos errores y - añadido algunos comentarios entre corchetes]</em> - - <p> - <verb> -From: Bill Paul <wpaul@skynet.ctr.columbia.edu> -Subject: Re: the fs fun never stops -To: ben@rosengart.com -Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT) -Cc: current@FreeBSD.org - </verb> - - <p> - <em>[<ben@rosengart.com> envió el siguiente panic]</em> - <verb> -> Fatal trap 12: page fault while in kernel mode -> fault virtual address = 0x40 -> fault code = supervisor read, page not present -> instruction pointer = 0x8:0xf014a7e5 - ^^^^^^^^^^ -> stack pointer = 0x10:0xf4ed6f24 -> frame pointer = 0x10:0xf4ed6f28 -> code segment = base 0x0, limit 0xfffff, type 0x1b -> = DPL 0, pres 1, def32 1, gran 1 -> processor eflags = interrupt enabled, resume, IOPL = 0 -> current process = 80 (mount) -> interrupt mask = -> trap number = 12 -> panic: page fault - </verb> - - <p>[Cuando] ves un mensaje como este, no es suficiente con solo - reproducirlo y enviarlo. El valor del puntero de instrucciones que - he marcado arriba es importante; desafortunadamente, depende de la - configuración. En otras palabras, el valor varía - dependiendo de la imáden de kernel exacta que se use. Si - estás usando el kernel GENERIC de uno de los snapshots, entonces - es posible que alguien pueda seguir la función - problemática, pero si estás usando un kernel - personalizado, entonces solo <em>tú</em> puedes decirnos donde - ha ocurrido el fallo. - - <p>Tendrías que hacer lo siguiente: - - <itemize> - <item>Anotar el valor del puntero de la instrucción. Ten en - cuenta la parte <tt/0x8:/ al inicio no es significante en este caso: - es la parte <tt/0xf0xxxxxx/ la que queremos. - <item>Cuando el sistema rearranca, haz lo siguiente: - <verb> -% nm /kernel.that.caused.the.panic | grep f0xxxxxx - </verb> - donde <tt/f0xxxxxx/ es el valor del puntero de la instrucción. - El problema es que no obtendrás una búsqueda exacta ya - que los símbolos en la tabla de símbolos del kernel - son para los puntos de entrada de las funciones y la dirección - del puntero de la instrucción estará en algún - lugar dentro de una función, no al principio. Si no obtienes - un resultado exacto, omite el último dígito del valor - del puntero de la instrucción e intentalo otra vez, por - ejemplo: - <verb> -% nm /kernel.that.caused.the.panic | grep f0xxxxx - </verb> - Si esto no da ningún resultado, elimina otro dígito. - Repite la operación hasta que obtengas algún tipo de - salida. El resultado será una lista de posibles funciones - que causan el panic. Este no es un sistema muy exacto de - búsqueda de errores, pero es mejor que nada. - </itemize> - - <p>Veo gente que constantemente envía mensajes de panics como - este, pero raramente veo que alguien se tome el tiempo de buscar - la coincidencia entre el puntero de instrucción y una - función en la tabla de símbolos del kernel. - - <p>La mejor manera de hacer el seguimiento de la causa de un panic es - capturar un "crash dump", usando <tt/gdb(1)/ para hacer una traza del - "crash dump". Por supuesto, esto depende de que <tt/gdb(1)/ funcione - correctamente en -current, lo que no puedo garantizar (recuerdo que - alguien ha comentado que el nuevo <tt/gdb(1)/ en formato ELF no - manejaba bién los "dumps" de un crash del kernel; alguién - debería mirar esto antes de que la 3.0 salga del estado beta). - - <p>En cualquier caso, el método que normalmente uso es este: - - <itemize> - <item>Crear un fichero de configuración de kernel, opcionalmente - añadiendo 'options DDB' si piensas que necesitas el debugger - del kernel por algún motivo. (Uso esto principalmente para - configurar puntos de salida si sospecho que existe alguna - condición que crea un loop infinito). - <item>Usar <tt/config -g KERNELCONFIG/ para crear el directorio - de configuración del kernel. - <item><tt>cd /sys/compile/KERNELCONFIG; make</tt> - <item>Esperar a que el kernel termine de compilar. - <item><tt/cp kernel kernel.debug/ - <item><tt/strip -d kernel/ - <item><tt/mv /kernel /kernel.orig/ - <item><tt>cp kernel /</tt> - <item>reboot - </itemize> - - <p><em>[Nota: ahora que los kernels de FreeBSD 3.x son ELF por defecto - debes usar <tt/strip -g/ en lugar de <tt/strip -d/. Si por algún - motivo tu kernel es aún a.out, usa <tt/strip -aout -d/.]</em> - - <p>Ten en cuenta que TU <em/NO/ QUIERES ARRANCAR CON UN KERNEL QUE TIENE - TODOS LOS SIMBOLOS DE DEBUG EN EL. Un kernel compilado con <tt/-g/ - puede llegar facilmente a los 10MB de tamaño. No tienes que - arrancar esta imán masiva, solo lo necesitas para poder usar - después <tt/gdb(1)/ (<tt/gdb(1)/ quiere la tabla de - símbolos). Al contrario, quieres mantener una copia de la - imágen completa y crear una segunda imágen con los - símbolos de debug desactivados usando <tt/strip -d/. Es esta - segunda imágen la que quieres arrancar. - - <p>Para asegurarte de capturar un "crash dump", necesitas editar el - fichero <tt>/etc/rc.conf</tt> y apuntar <tt/dumpdev/ a tu - partición de swap. Esto hará que el script <tt/rc(8)/ use - el comando <tt/dumpon(8)/ para activar los "crash dumps". También - puedes ejecutar manualmente <tt/dumpon(8)/. Después de un panic, - el "crash dump" puede ser recuperado usando <tt/savecore(8)/; si - <tt/dumpdev/ está en <tt>/etc/rc.conf</tt>, el script - <tt/rc(8)/ ejecutará <tt/savecore(8)/ automaticamente y - pondrá el "crash dump" en <tt>/var/crash</tt>. - - <p>NOTA: los "crash dumps" de FreeBSD suelen tener el mismo - tamaño que la cantidad total de memoria física del - sistema. Esto significa que si tienes 64MB de RAM, obtendrás - un "crash dump" de 64MB. Debido a esto, tienes que asegurarte de tener - suficiente espacio libre en <tt>/var/crash</tt>. Alternativamente puedes - ejecutar <tt/savecore(8)/ manualmente y hacer la recuparación en - otro directorio donde tengas más espacio libre. Es posible - limitar el tamaño del "crash dump" usando <tt/options MAXMEM=(foo)/ - para indicar la cantidad de memoria que el kernel puede ocupar. Por - ejemplo, si tienes 128MB de RAM, puedes limitar el uso de memoria del - kernel a 16MB para que el "crash dump" sea de 16MB y no de 128MB. - - <p>Una vez hayas recuperado el "crash dump", puedes obtener una traza - del stack con <tt/gdb(1)/ de la manera siguiente: - - <p> - <verb> -% gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0 -(gdb) where - </verb> - - <p>Es posible que aparezcan muchas líneas de información: - es una buena idea usar el comando <tt/script(1)/ para capturarlas - todas. Usando la imágen del kernel con todos los símbolos - de debug deberí mostrar la línea exacta de código - fuente del kernel donde ha ocurrido el panic. Normalmente, tienes que - leer la traza del stack de abajo hacia arriba para poder conocer la - secuencia exacta de eventos que han provocado el crash. También - puedes usar <tt/gdb(1)/ para mostrar los contenidos de las diferentes - variables o estructuras para examinar el estado del sistema en el - momento del crash. - - <p>Ahora, si eres realmente curioso y tienes un segundo ordenador, - puedes configurar <tt/gdb(1)/ para hacer un debug remoto de manera - que puedes usar <tt/gdb(1)/ en un sistema para revisar el kernel - de otro sistema, de la misma manera que lo harías en la - máquina local. - - <p><em>[Bill añade: "Olvidé mencionar una cosa: si tienes - DDB activado, puedes forzar un panic (y un crash dump) tecleando - "panic" en el prompt del ddb. Es posible que el debugger se pare - durante la fase del panic. Si esto ocurre, teclea "continue" y el - crash dump finalizará"]</em> - - <sect1> - <heading>dlsym() no funciona con ejecutables ELF!</heading> - - <p>Las herramientas ELF no hacen por defecto que los símbolos - definidos en un ejecutable sean visibles por el linker dinámico. - Consecuentemente, <tt/dlsym()/ buscará en datos obtenidos desde - llamadas a <tt>dlopen(NULL, flags)</tt>, lo que provoca que no se - encuentren esos símbolos. - - <p>Si quieres buscar, usando <tt/dlsym()/ símbolos presentes - en el ejecutable principal de un proceso, necesitas linkar el - ejecutable usando la opción <tt>-export-dynamic</tt> en el - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ld" - name="linkador ELF">. - - <sect1> - <heading>Incrementando o reduciendo el espacio de direcciones del - kernel</heading> - - <p>Por defecto, el espacio de direcciones del kernel es de 256MB en - FreeBSD 3.x y 1GB en FreeBSD 4.x. Si gestionas un servidor de red - muy cargado (por ejemplo, servidores FTP o HTTP con mucho - tráfico), es posible que notes que 256MB no es - suficiente. - - <p>Así que... como incremento el espacio de direcciones?. Hay - dos aspectos a tener en cuenta. Primero, necesitas indicarle al kernel - que reserve una mayor parte del espacio de direcciones para él - mismo. Segundo, ya que el kernel se carga al inicio del espacio de - direcciones, necesitas disminuir la dirección de carga. - - <p>El primer aspecto lo solucionamos incrementando el valor de - <tt/NKPDE/ en <tt>src/sys/i386/include/pmap.h</tt>. Esta es una entrada - de ejemplo para 1GB de espacio de direcciones: - - <verb> -#ifndef NKPDE -#ifdef SMP -#define NKPDE 254 /* addressable number of page tables/pde's */ -#else -#define NKPDE 255 /* addressable number of page tables/pde's */ -#endif /* SMP */ -#endif - </verb> - - <p>Para encontrar el valor correcto de <tt/NKPDE/, divide el espacio de - direcciones deseado (en megabytes) por cuatro, después resta uno - por UP y dos por SMP. - - <p>Para solucionar el segundo aspecto, necesitas calcular la - dirección correcta de carga: simplemente resta el tamaño - del espacio de direcciones (en bytes) de 0x100100000; el resultado - es 0xc0100000 para 1GB de espacio de direcciones. Ajusta - <tt/LOAD_ADDRESS/ en <tt>src/sys/i386/conf/Makefile.i386</tt> a ese - valor; a continuación pon el contador al inicio de la - sección listado en <tt>src/sys/i386/conf/kernel.script</tt> - al mismo valor, como sigue: - - <verb> -OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") -OUTPUT_ARCH(i386) -ENTRY(btext) -SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-FreeBSDelf/lib); -SECTIONS -{ - /* Read-only sections, merged into text segment: */ - . = 0xc0100000 + SIZEOF_HEADERS; - .interp : { *(.interp) } - </verb> - - <p>Reconfigura y compila el kernel. Probablemente tengas problemas con - <tt/top(1)/, <tt/ps(1)/ y programas así; haciendo un - <tt/make world/ deberín solucionarse esos problemas (o una - recompilación manual de <tt/libkvm/, <tt/ps/ y <tt/top/ - después de copiar el <tt/pmap.h/ parcheado a - <tt>/usr/include/vm/</tt>. - - <p>NOTA: el tamaño del espacio de direcciones debe ser un - múltiplo de cuatro megabytes. - - <p><em>[<url url="mailto:dg@FreeBSD.org" name="David Greenman"> - añade: </em>Pienso que el espacio de direcciones del kernel - necesita ser una potencia de 2, pero no estoy totalmente seguro.] - -</sect> diff --git a/es_ES.ISO8859-1/FAQ/hardware.sgml b/es_ES.ISO8859-1/FAQ/hardware.sgml deleted file mode 100644 index 5e38e8eff1..0000000000 --- a/es_ES.ISO8859-1/FAQ/hardware.sgml +++ /dev/null @@ -1,560 +0,0 @@ -<!-- $FreeBSD$ --> -<!-- The FreeBSD Documentation Spanish Project --> - <sect> - <heading>Compatibilidad hardware <label id="hardware"></heading> - - <sect1> - <heading>¿Qué tipo de discos duros soporta FreeBSD?</heading> - - <p>FreeBSD soporta discos duros EIDE y SCSI (con controladoras - compatibles; mira en la siguiente sección), y todos los discos - usando el interface original "Western Digital" (MFM, RLL, ESDI y - por supuesto IDE). Algunas controladoras ESDI que usan interfaces - propietarios quizás no funcionen correctamente. - - <sect1> - <heading>¿Qué controladoras SCSI están soportadas?</heading> - - <p>FreeBSD soporta las siguientes controladoras SCSI: - - <descrip> - <tag/Adaptec/ - AH-1505 <ISA> <newline> - AH-152x Series <ISA> <newline> - AH-154x Series <ISA> <newline> - AH-174x Series <EISA> <newline> - Sound Blaster SCSI (AH-152x compat) <ISA> <newline> - AH-2742/2842 Series <ISA/EISA> <newline> - AH-2820/2822/2825 Series (Narrow/Twin/Wide) <VLB> <newline> - AH-294x and aic7870 MB controllers (Narrow/Twin/Wide) <PCI> - <newline> - AH-394x (Narrow/Twin/Wide) - - <tag/Buslogic/ - BT-445 Series <VLB> <newline> - BT-545 Series <ISA> <newline> - BT-742 Series <EISA><newline> - BT-747 Series <EISA><newline> - BT-946 Series <PCI> <newline> - BT-956 Series <PCI> <newline> - - <tag/Future Domain/ - TMC-950 Series <ISA> <newline> - - <tag/PCI Generic/ - NCR 53C81x based controllers <PCI> <newline> - NCR 53C82x based controllers <PCI> <newline> - NCR 53C860/75 based controllers <PCI> <newline> - - <tag/ProAudioSpectrum/ - Zilog 5380 based controllers <ISA> <newline> - Trantor 130 based controllers <ISA> <newline> - - <tag/DTC/ - DTC 3290 EISA SCSI in AHA-154x emulation.<newline> - - <tag/Seagate/ - ST-01/02 Series <ISA><newline> - - <tag/UltraStor/ - UH-14f Series <ISA><newline> - UH-24f Series <EISA> <newline> - UH-34f Series <VLB><newline> - - <tag/Western Digital/ - WD7000 <ISA> <No scatter/gather> - </descrip> - - <sect1> - <heading>¿Qué lectores CD-ROM soporta FreeBSD?</heading> - - <p>Cualquier disco SCSI conectado a una controladora soportada es - soportado. - - <p>Los siguientes interfaces de CD-ROM propietarios son también - soportados: - - <itemize> - <item>Mitsumi LU002 (8bit), LU005 (16bit) and FX001D (16bit 2x Speed). - <item>Sony CDU 31/33A<newline> - <item>Sound Blaster Non-SCSI CD-ROM<newline> - <item>Matsushita/Panasonic CD-ROM<newline> - <item>ATAPI compatible IDE CD-ROMs<newline> - </itemize> - - <p>Todas las tarjetas no SCSI son conocidas por ser extremadamente - lentas comparadas con los discos SCSI, y algunos CDROM ATAPI quizás - no funcionen correctamente. - - <p>A partir de la versión 2.2 de FreeBSD en CDROM de Walnut Creek - se soporta el arranque directo (boot) desde el propio CD. - - <sect1> - <heading>¿Soporta FreeBSD discos ZIP?</heading> - - <p>FreeBSD soporta los ZIP SCSI externos. Las unidades ZIP solo pueden - funcionar en los ID's SCSI 5 y 6, pero si la BIOS de tu controladora - lo soporta, puedes arrancar desde él. No sabemos que controladoras - dejan arrancar desde ID's diferentes de la 0 o 1... mira en tu - documentación y hazmelo saber si te funciona. - - <p>Los discos Zip ATAPI (IDE) son soportados en FreeBSD 2.2.6 y - releases posteriores. - - <p>FreeBSD ha incluido el soporte de discos ZIP por puerto paralelo - desde la versión 3.0. Si estás usando una versión - actualizada, debes asegurarte de que tu configuración del kernel - incluye los drivers <tt>scbus0</tt>, <tt>da0</tt>, <tt>ppbus0</tt> y - <tt>vp0</tt> (el kernel GENERIC los contiene todos excepto vp0). - Con todos estos drivers presentes, el disco por puerto paralelo - debería estar disponible como /dev/da0s4. Los discos se pueden - montar usando <tt>mount /dev/da0s4 /mnt</tt> o (para discos dos) - <tt>mount_msdos /dev/da0s4 /mnt</tt>. - - <p>También mira <ref id="jaz" name="en disco removibles">, - y <ref id="disklabel" name="esta nota en 'formatting'">. - - <sect1> - <heading>¿Soporta FreeBSD JAZ, EZ y otros discos removibles?</heading> - - <p>Aparte de la versión IDE de EZ, todos estos son dispositivos - SCSI, por lo que deberían funcionar sin problemas ya que FreeBSD - los toma como discos SCSI y el IDE EZ también debería - funcionar sin problemas ya que se toma como un disco IDE estandard. - - <p><label id="jaz">No estoy seguro de como soporta FreeBSD el cambio - de soporte mientras está funcionando. Deberás, desde - luego, desmontar la unidad antes de poder cambiar el soporte, y estar - seguro de que todas las unidades externas están encendidas antes - de arrancar el ordenador con FreeBSD para que este pueda reconocerlas. - - <p>Mira <ref id="disklabel" name="esta nota en 'formatting'">. - - <sect1> - <heading>¿Qué tarjetas serie multipuerto son soportadas por FreeBSD?</heading> - - <p>Hay una lista de ellas en la sección <htmlurl - url="../../handbook/install.html#INSTALL-HW" name="dispositivos varios"> - del manual (handbook). - - <p>Algunas tarjetas "sin nombre" también han funcionado, - especialmente las que dicen ser compatibles AST. - - <p>Mira la página - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?sio" - name="sio"> para obtener más información sobre la - configuración de estas tarjetas. - - <sect1> - <heading>Tengo un tipo de ratón no habitual. ¿Cómo lo configuro?<label id="busmouse"></heading> - - <p>FreeBSD soporta el "bus mouse" y el "InPort bus mouse" de - fabricantes como Microsoft, Logitech y ATI. El driver de mouse - estiá compilado en el GENERIC kernel (kernel por defecto que - carga el sistema). Si estás haciendote un kernel a medida que - incluya el driver de ratón, asegurate de añadir la - siguiente línea en el fichero de configuración del kernel: - - <verb> - device mse0 at isa? port 0x23c tty irq5 vector mseintr - </verb> - - <sect1> - <heading>¿Cómo uso mi PS/2 (``mouse port'' o ``teclado'')?<label id="ps2mouse"></heading> - - <p>Si estás usando una versión reciente de FreeBSD, el - driver necesario, psm, está incluido y activado en el kernel. El - propio kernel debería detectar tu ratón PS/2 en el momento - de arrancar. - - <p>Si estás usando una versión antigua, solo tienes que - activarlo en la configuración del kernel en el momento de la - instalación del sistema. Si este ya está instalado, - escribe -c en el prompt boot: y actívalo. Por defecto, este - driver está desactivado. - - <p>Si estás usando alguna de las versiones mas antiguas, tendras - que añadir la siguiente línea en el fichero de - configuración del kernel y compilar uno nuevo: - - <verb> - device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr - </verb> - - <p>Mira la sección <url url="../../handbook/kernelconfig.html" - name="configuracion del kernel"> si no tienes experiencia en la - creación de nuevos kernel. - - <p>Una vez el kernel detecta correctamente el dispositivo psm0 al - arrancar, asegúrate de que existe una entrada en /dev para este - dispositivo. Puedes hacerlo tecleando: - - <verb> - cd /dev; sh MAKEDEV psm0 - </verb> - - <sect1> - <heading>¿Es posible hacer uso del ratón fuera de X Windows?<label id="moused"></heading> - - <p>Si estás usando el driver por defecto de la cónsola, - syscons, puedes usar el ratón en las cónsolas de texto - para realizar cut & paste. Ejecuta el demonio (daemon) de ratón - moused y arranca el ratón en la cónsola virtual: - - <verb> - moused -p /dev/xxxx -t yyyy - vidcontrol -m on - </verb> - - <p>Donde <tt>xxxx</tt> es el nombre del dispositivo del ratón y - <tt>yyyy</tt> es un tipo de protocolo para el ratón. Mira en - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?moused" name="moused"> - para saber los tipos de protocolo soportados. - - <p>Si quieres ejecutar el demonio moused automaticamente al arrancar - el sistema, fija las siguientes variables en <tt>/etc/sysconfig</tt> - (para versión 2.2.1). - - <verb> - mousedtype="yyyy" - mousedport="xxxx" - mousedflags="" - </verb> - - En versiones 2.2.2 o superiores, fija las siguientes variables en - <tt>/etc/rc.conf</tt>. - - <verb> - moused_type="yyyy" - moused_port="xxxx" - moused_flags="" - </verb> - - <p>A partir de la versión 2.2.6, el demonio del ratón es - capaz de determinar automaticamente el protocolo correcto a utilizar. Solo - tienes que especificar <tt>auto</tt> como el protocolo a usar. - - <p>Cuando el demonio de ratón está funcionando, el acceso - al ratón necesita ser coordinado con otros programas como - X Window. Mira en <ref id="x-and-moused" name="esta sección"> - para mas información. - - <sect1> - <heading>¿Cómo hago un cut & paste con el ratón en una cónsola de texto?</heading> - - <p>Una vez tienes el demonio del ratón funcionando (mira - <ref id="moused" name="la sección anterior">, pulsa el - botón 1 (izquierdo) y mueve el ratón para seleccionar la - región de texto. - A continuación, pulsa el botón 2 (medio) o 3 (derecho) - para hacer un paste (pegar) de la región seleccionada en el lugar - en el que tengamos situado el cursor. - - <p>En versiones 2.2.6 o superiores, pulsando el botón 2 hara un - paste del texto seleccionado. Pulsando el botón 3 extenderemos - la región seleccionada de texto. Si tu ratón no tiene el - botón medio, puedes emularlo o "remapear" (reconfigurar) los - botones de tu ratón con las opciones del demonio moused. MIra en - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?moused" name="moused"> - para mas información. - - <sect1> - <heading>Mi ratón tiene una rueda de desplazamiento y botones. ¿Puedo usarlo?</heading> - - <p>La respuesta es, desafortunadamente, "depende". Estos ratones con - características adicionales requieren en muchos casos drivers - propios y especializados. A no ser que el driver de dispositivo o el - programa de usuario tenga soporte específico, el ratón - se comportará como un ratón normal y corriente. - - <sect1> - <heading>¿Cómo uso el mouse/trackball/touchpad en mi portátil?</heading> - - <p>Por favor, <ref id="ps2mouse" name="mira en la respuesta - anterior">. Mira también <ref id="pao" name="esta nota"> en la - sección de ordenadores portátiles. - - <sect1> - <heading>¿Qué tipo de dispositivos de cinta son soportados?</heading> - - <p>FreeBSD soporta SCSI, QIC-36 (con controladora QIC-02) y - QIC-40/80. Esto inclye dispositivos de 8mm (conocidos como Exabyte) - y dispositivos DAT. Los QIC-40/80 son conocidos por ser lentos. - - <p>Algunos de los primeros dispositivos de 8mm no son totalmente - compatibles con SCSI2 por lo que pueden no trabajar correctamente - en FreeBSD. - - <sect1> - <heading>¿Soporta FreeBSD "tape changers"?</heading> - - <p>FreeBSD 2.2 soporta SCSI changers usando el dispositivo <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?ch(4)" name="ch"> y el comando - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?chio" name="chio"> - . Los comandos de como controlar el "changer" estan en el man - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?chio" - name="chio">. - - <sect1> - <heading>¿Qué tarjetas de sonido son soportadas por FreeBSD?</heading> - - <p>FreeBSD soporta las tarjetas SoundBlaster, SoundBlaster Pro, - SoundBlaster 16, Pro Audio Spectrum 16, AdLib y Gravis Ultrasound. - Hay también soporte limitado para la tarjeta MPU-401 y compatibles - midi. Las tarjetas SoundBlaster 16 ASP todavía no son soportadas. - El Microsoft Sound System sí está soportado. - - <p><bf/NOTA/ Esto es solo para sonido!. Este driver no soporta - CD-ROMs, SCSI o joysticks en estas tarjetas, a excepción de la - SoundBlaster. El interface SCSI de SoundBlaster y algunos CD-ROMs - no SCSI son soportados, pero no podrás arrancar el sistema desde - ellos. - - <sect1> - <heading>No obtengo sonido de la tarjeta es1370 con driver pcm</heading> - - <p>Puedes ejecutar el siguiente mandato cada vez que arranques el - sistema: - - <p>mixer pcm 100 vol 100 cd 100 - - <sect1> - <heading>¿Qué tarjetas de red soporta FreeBSD?</heading> - - <p>Mira la sección de - <htmlurl url="../../handbook/install:nics.html" - name="tarjetas Ethernet"> en el manual para una lista más completa. - - <descrip> - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?de(4)" - name="de"> driver/ - DEC DC21x40 and compatible PCI controllers<newline> - (including 21140 100bT cards) <newline> - - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ed(4)" - name="ed"> driver/ NE2000 and 1000<newline> - WD/SMC 8003, 8013 and Elite Ultra (8216)<newline> - 3Com 3c503 <newline> - HP 27247B and 27252A <newline> - And clones of the above <newline> - - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?le(4)" - name="le"> driver/ - DEC EtherWORKS II and EtherWORKS III controllers. <newline> - - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ie(4)" - name="ie"> driver/ - AT&T EN100/StarLAN 10 <newline> - 3COM 3c507 Etherlink 16/TP<newline> - NI5210 <newline> - Intel EtherExpress <newline> - - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?is(4)" - name="is"> driver/ - Isolan AT 4141-0 <newline> - Isolink 4110 <newline> - - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?el(4)" - name="el"> driver/ - 3com 3c501 (does not support Multicast or DMA) - - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?eg(4)" - name="eg"> driver/ - 3com 3c505 Etherlink/+ - - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ze(4)" - name="ze"> driver/ - IBM PCMCIA credit card adapter - - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?lnc(4)" - name="lnc"> drive/ - Lance/PCnet cards (Isolan, Novell NE2100, NE32-VL)(*) - - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ep(4)" - name="ep"> driver/ - 3com 3c509 (Must disable PNP support on card) - - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?cx(4)" - name="cx"> driver/ - Cronyx/Sigma multiport Sync/Async (Cisco and PPP framing) - - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?zp(4)" - name="zp"> driver/ - 3Com PCMCIA Etherlink III (aka 3c589)(A-C only) - - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fea(4)" - name="fea"> driver/ - DEC DEFEA EISA FDDI controller - - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fpa(4)" - name="fpa"> driver/ - DEC DEFPA PCI FDDI controller - - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fe(4)" - name="fe"> driver/ - Fujitsu MB86960A/MB86965A Ethernet cards - </descrip> - - <p><bf/NOTA/ Los drivers marcados con (*) pueden tener problemas. - - <p><bf/NOTA/ 3C598D NO esta soportada todavía. - - <p><bf/NOTA/ FreeBSD también soporta TCP/IP sobre líneas - paralelo. En estos momentos, no somos compatibles con otras versiones, - pero esperamos corregirlo en un futuro cercano. Encontrarás - más información sobre este tema en la página man - de lp(4). - - <p><bf/NOTA/ Algunas de estas tarjetas requieren una partición DOS - en el disco duro para ejecutar el programa de configuración. - - <sect1> - <heading>No tengo coprocesador matemático - ¿es malo?</heading> - - <p><tt /NOTA/ Esto solo afectará a los ordenadores - 386/486SX/486SLC. El resto de los microprocesadores tienen un - coprocesador integrado. - - <p>En general, esto no causará problemas, pero hay ciscunstancias - en las que podrás echarlo de menos. Especialmente si trabajas en - entorno X Window. Si puedes, te recomendamos que compres uno y lo - instales en tu ordenador. - - <sect1> - <heading>¿Qué otros dispositivos soporta FreeBSD 2.X?</heading> - - <p>Aquí hay una lista de drivers que no se han podido catalogar en - las categorías anteriores. - - <descrip> - <tag><tt/b004.c/</tag> - Driver for B004 compatible Transputer boards <newline> - - <tag>``ctx'' driver</tag> - Driver for CORTEX-I Frame grabber <newline> - - <tag>``gp'' driver</tag> - Driver for National Instruments AT-GPIB and<newline> - AT-GPIB/TNT boards - - <tag>``pca'' driver</tag> - Driver for PC speakers to allow the playing of audio files - - <tag>``spigot'' driver</tag> - Driver for the Creative Labs Video Spigot - - <tag><htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?gsc(4)" - name="gsc"> driver</tag> - Driver for the Genuis GS-4500 Hand scanner - - <tag><htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?joy(4)" - name="joy"> driver</tag> - Driver for a joystick - - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?labpc(4)" - name="labpc"> driver/ - Driver for National Instrument's Lab-PC and Lab-PC+ - - <tag/``uart'' driver/ - Stand-alone 6850 UART for MIDI - - <tag/<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?psm(4)" - name="psm"> driver/ PS/2 mouse port - - <tag><tt/tw.c/</tag> - Driver for the X-10 POWERHOUSE <newline> - </descrip> - - <sect1> - <heading>¿Soporta FreeBSD el "power management" en mi portátil?</heading> - - <p>FreeBSD soporta APM en algunas máquinas. Por favor, mira en - el fichero de configuración del kernel <tt/LINT/ y busca la parabra - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?apm" name="APM"> - - <sect1> - <heading>Soluciones para problemas específicos de hardware</heading> - <p>Esta sección contiene soluiones para problemas especificos - encontrados por otros usuarios. - <sect2> - <heading>Sistemas Micron se cuelgan al arrancar</heading> - <p>Algunas placas base Micron tienen una implementación de PCI - en la BIOS que no es estandard, lo que provoca que FreeBSD no pueda - encontrar los dispositivos PCI en las direcciones en las que - deberían estar. - <p>Desactiva la opción "Plug and Play Operating System" en la BIOS - para solucionar el problema. Puedes encontrar más - información en: - <htmlurl - url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron" - name="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron"> - </sect2> - </sect1> - - <sect1> - <heading>Tengo una de las controladoras Adaptec más nuevas y - FreeBSD no puede encontrarla</heading> - - <p>Las nuevas controladoras Adaptec con chipset de la serie AIC789x son - soportados bajo la nueva CAM SCSI que hace su debut en la version 3.0 - de FreeBSD. Los parches para las versiones 3.0-CURRENT y 2.2-STABLE - están en: - <url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/" - name="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/">. - Un disco de arranque con soporte CAM está disponible en: - <url url="http://www.FreeBSD.org/ ~abial/cam-boot/" - name="http://www.FreeBSD.org/~abial/cam-boot/">. En ambos casos lee el - fichero README antes de empezar. - - <sect1> - <heading>Tengo un módem interno Plug & Play y FreeBSD no lo encuentra</heading> - - <p>Necesitarás añadir el ID del modem PnP a la lista de ID - PnP en el driver serie. Para activar el soporte PnP, compila un nuevo - kernel con <tt/controller pnp0/ en el fichero de configuración y - rebota el sistema. El kernel mostrará por pantalla los IDs de - todos los dispositivos PnP que encuentre. Copia el ID del módem - en la tabla del fichero <tt>/sys/i386/isa/sio.c</tt>, sobre la - línea 2777. Busca la cadena "SUP1310" en la estructura - "siopnp_ids[]" para encontrar la tabla. Genera un nuevo kernel, - instalalo y rearranca. Tu módem debería ser encontrado. - - <p>Quizás tengas que configurar manualmente los dispositivos PnP - usando el comando "pnp" en la configuración de arranque usandolo - de la siguiente manera: - <verb> - pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8 - </verb> - - <sect1> - <heading>¿Cómo obtengo el prompt "boot:" en una cónsola serie?</heading> - - <p><enum> - <item>Crea un nuevo kernel con <tt/options COMCONSOLE/. - <item>Crea el fichero /boot.config y pon <tt/-P/ como único texto - en el fichero. - <item>Desconecta el teclado del ordenador. - </enum></p> - - <p>Mira el fichero <tt>/usr/src/sys/i386/boot/biosboot/README.serial</tt> - para mas información. - - <sect1> - <heading>¿Porqué no funciona mi tarjeta de red PCI 3Com con mi - ordenador Micron?</heading> - <p>>Algunas placas base Micron tienen una implementación de PCI - en la BIOS que no es estandard, lo que provoca que FreeBSD no pueda - encontrar los dispositivos PCI en las direcciones en las que - deberían estar. - <p>Para solucionar el problema, desactiva la opción - "Plug and Play Operating System" en la BIOS. - <p>Puedes encontrar más información sobre este problema en - <htmlurl - url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron" - name="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron"> - - <sect1> - <heading>¿Soporta FreeBSD "Symmetric Multiproccessing (SMP)?</heading> - <p>SMP está soportado a partir de la versión 3.0-STABLE - </sect> - diff --git a/es_ES.ISO8859-1/FAQ/includes.sgml b/es_ES.ISO8859-1/FAQ/includes.sgml deleted file mode 100644 index 02595d6120..0000000000 --- a/es_ES.ISO8859-1/FAQ/includes.sgml +++ /dev/null @@ -1,7 +0,0 @@ -<!-- $FreeBSD$ --> -<!-- The FreeBSD Documentation Spanish Project --> - -<!-- book stores --> -<!ENTITY isbn.amazon 'http://www.amazon.com/exec/obidos/ASIN'> - - diff --git a/es_ES.ISO8859-1/FAQ/install.sgml b/es_ES.ISO8859-1/FAQ/install.sgml deleted file mode 100644 index 4f4fb3815a..0000000000 --- a/es_ES.ISO8859-1/FAQ/install.sgml +++ /dev/null @@ -1,698 +0,0 @@ -<!-- $FreeBSD$ --> -<!-- The FreeBSD Documentation Spanish Project --> - <sect> - <heading>Instalación<label id="install"></heading> - - <sect1> - <heading>¿Qué fichero necesito para instalar FreeBSD?</heading> - - <p>Generalmente solo es necesario un disco de 1,44Mb con una imágen - del fichero <em>floppies/boot.flp</em>. Arranca con este disco para - comenzar con el programa de instalación, el cual se - encargará de realizar todas las operaciones necesarias - (gestión de TCP/IP, cintas, CDROMs, floppies, particiones DOS - y cualquier cosa necesaria para realizar la instalación). - - <p>Si necesitas bajarte las distribuciones (para una instalación - desde una partición DOS por ejemplo), estas son las distribuciones - mínimas que necesitarás: - - <itemize> - <item> bin/<newline> - <item> manpages/<newline> - <item> compat*/<newline> - <item> doc/ <newline> - <item> src/ssys.* <newline> - </itemize> - - <p>Todas las instrucciones sobre este procedimiento y una - ampliación de la documentación se puede encontrar en <url - url="../../handbook/install.html" - name="Instalación de FreeBSD."> - - <sect1> - <heading>Ayuda!, La imagen del disco de arranque no cabe en un floppy</heading> - <p>Un floppy de 1.44MB puede contener hasta 1474560 bytes de datos. La - imágen de arranque es exactamente de 1474560 bytes. - <p>Los errores mas comunes en la preparación de disco de arranque - son: - <itemize> - - <item>No bajarse la imagen en modo <tt>binario</tt> cuando se usa - <tt>FTP</tt>. - <p>Algunos clientes FTP intentan bajar por defecto los ficheros en modo - <tt>ASCII</tt> e intentan cambiar los carácteres de final de - línea recibidos por el que utilice el sistema cliente. - Esto corromperá inevitablemente la imagen de arranque. Revisa el - tamaño de la imagen: si no es <em>exactamente</em> el mismo - tamaño del fichero existente en el servidor, la imagen no - servirá. - <p>Solución: teclea <tt>binary</tt> en la línea de - comandos del FTP después de conectar y antes de empezar a bajar - la imágen. - - <item>Usando el comando <tt>copy</tt> de DOS (o cualquier herramienta - GUI equivalente) para transferir la imagen a un disquete. - <p>Programas como <tt>copy</tt> no funcionarán para la - transferencia de la imágen a un disco. La imágen tiene el - contenido completo del disco, pista por pista, y no está pensada - para ser trasladada a un disquete como un fichero normal. Tienes que - hacer una transferencia "raw" usando herramientas de bajo nivel como - <tt>fdimage</tt> o - <tt>rawrite</tt>, descritas en <url url="../../handbook/install.html" - name="la guía de instalación de FreeBSD">. - </itemize> - - <sect1> - <heading>¿Dónde puedo encontrar las instrucciones de instalación de FreeBSD?</heading> - - <p>Las instrucciones de instalación están en - <url url="../../handbook/install.html" - name="Instalación de FreeBSD."> - - <sect1> - <heading>¿Qué necesito para poder ejecutar FreeBSD?</heading> - - <p>Necesitarás un PC con 386 o superior, 5 Mb o mas de memoria - RAM y al menos 60 Mb de espacio en disco duro. Puede funcionar con - tarjetas gráficas de bajo nivel (Hercules), pero para poder - ejecutar X11R6 es necesario una tarjeta VGA o superior. - - <sect1> - <heading>Solo tengo 4Mb de RAM. ¿Puedo instalar FreeBSD?</heading> - - <p>FreeBSD 2.1.7 fue la última version de FreeBSD que podía - ser instalada en un sistema de 4Mb. Las nuevas versiones de FreeBSD, - como la 2.2, necesitan al menos 5Mb para poder ser instaladas. - - <p>Todas las versiones de FreeBSD, incluyendo la 3.0, funcionarán - en sistemas con 4Mb de RAM, lo que no pueden ejecutar es la - instalación en sistemas con 4Mb. Puedes añadir memoria - extra para el proceso de instalación, y una vez instalado, volver - a los 4Mb. Tambien puedes instalar tu disco en una máquina con - más de 4Mb, realizar la instalación y volver el disco a su - máquina con 4Mb. - - <p>Hay algunas situaciones en las que FreeBSD 2.1.7 no se instalará - en sistemas con 4Mb. Para ser exactos: no se instalará con 640Kb de - memoria base + 3Mb de memoria extendida. Si tu placa base puede - remapear algo de la memoria "perdida" fuera de los 640Kb a la - región de 1Mb, entonces aun podrás instalar FreeBSD 2.1.7. - - <p>Intenta entrar en el setup de tu BIOS y busca la opción "remap". - Actívala. Quizás tendrás que desactivar la - opción de ROM shadowing. - - <p>Es más fácil añadir en la máquina 4Mb de - memoria para la instalación. Crea un kernel unicamente con las - opciones que necesites y vuelve a quitar los 4Mb añadidos. - - <p>También puedes instalar la versión 2.0.5 y a - continuación actualizar tu sistema a la 2.1.7 con la opción - "upgrade" del programa de instalación de la versión 2.1.7. - - <p>Después de la instalación, si te creas un kernel - personalizado, funcionará en 4Mb. Algunos fueron capaces de - arrancar con 2Mb (aunque después el sistema era incapaz de hacer - nada mas :-)) - - <sect1> - <heading>¿Cómo puedo hacer mi propio disco de instalación? </heading> - - <p>Actualmente, no hay una manera para *sólo* hacer un disco de - instalación personalizado. Hay algún código en - <tt>/usr/src/release/floppies/Makefile</tt> que supuestamente es para - hacer *sólo* un disco de instalación personalizado, pero - no está realmente testeado todavía. - - <sect1> - <heading>¿Puedo tener más de un sistema operativo en mi PC?</heading> - - <p>Echa un vistazo en <url url="../tutorials/multios/multios.html" - name="La página multi-OS."> - - <sect1> - <heading>¿Puede Windows 95 coexistir con FreeBSD?</heading> - - <p>Instala primero Windows 95 y después FreeBSD. El boot manager de - FreeBSD se encargará de darte la opción de arrancar con - cualquiera de los dos sistemas. Si lo haces al reves, Windows 95 - borrará el boot manager sin hacer ninguna pregunta previa. Si - ocurre esto, pasa a la siguiente sección. - - <sect1> - <heading> - Windows 95 desinstaló mi boot manager! ¿Cómo lo recupero? - </heading> - - <p>Puedes reinstalar el boot manager que viene con FreeBSD de dos - maneras: - - <itemize> - <item>Ejecutando el DOS, entra en el directorio tools/ de tu - distribución de FreeBSD y busca el archivo <bf>bootinst.exe</bf>. - Ejecútalo de la siguiente manera: - - <p><bf>bootinst.exe boot.bin</bf> - - <p>Y el boot manager estará reinstalado. - - Arranca con el disco de instalación de FreeBSD y entra en la - sección "Custom Installation". Selecciona "Partition". Escoge - el disco en el cual debe estar instalado el boot manager, y cuando - entres en él editor de particiones, sin hacer ningún - cambio, selecciona (W)rite. Serás preguntado para confirmar la - acción, responde "sí", y cuando estés en la - ventana de "Boot manager selection" asegúrate de seleccionar - "Boot Manager". Esto reescribirá el boot manager en el disco. - Ahora, sal del programa de instalación y rearranca el ordenador - de la manera habitual. - </itemize> - - <sect1> - <heading>¿Puedo instalar FreeBSD en un disco con sectores erróneos?</heading> - - <p>La gestión de sectores erróneos por parte de FreeBSD no - está desarrollada todavía al 100% y desgraciadamente - debemos decirte que si tienes discos IDE o ESDI con gran cantidad de - sectores erróneos, FreeBSD no es para tí. De todas maneras, - te aconsejamos que antes de descartar la instalación, hagas un - intento. - - <sect1> - <heading> - Ocurren cosas extrañas cuando arranco con el disco de instalación - </heading> - - <p>Si observas cosas como que la maquina se "cuelga" o se resetea - espontaneamente cuando intentas arrancar con el disco de - instalación, aquí tienes tres preguntas que debes - responder tu mismo:- - - <enum> - <item>Estás usando un disco nuevo, recién formateado y - libre de errores, o estás usando el disco de publicidad que - venía con la revista que lleva guardada varios meses debajo de - la cama? - - <item>"Bajaste" por ftp la imágen del disco en modo binario?... - (no te preocupes ya que hasta el mejor de nosotros, por lo menos una - vez, ha bajado un fichero en modo ASCII) - - <item>Si estás usando uno de esos nuevos sistemas operativos como - Windows 95 o Windows NT, debes arrancar la máquina en modo DOS - puro, ya que parece ser que los Windows no se llevan bién con los - programas que escriben directamente sobre los dispositivos hardware, - como hace el programa de creación de discos de - instalación de FreeBSD. - </enum> - - <p>Han habido informaciones referentes a problemas al bajar el disco - de instalación con Netscape, por lo que te recomentados que uses - un programa diferente como cliente de ftp. - - <sect1> - <heading>Ayuda! No puedo instalar desde una cinta!</heading> - - <p>Si estas instalando la version 2.1.7R desde una cinta, debes crear - esa cinta con un tamaño de bloque de tar de 10 (5120 bytes). El - tamaño por defecto de los bloques tar es de 20 (10240 bytes), y las - cintas creadas con este tamaño por defecto no pueden ser usadas - para instalar FreeBSD 2.1.7R; con estas cintas tendrás un error - referente a un tamaño de registro demasiado grande. - - <sect1> - <heading> - Conexión de dos máquinas FreeBSD vía puerto paralelo (PLIP) - </heading> - - <p>Coge un cable de laplink y asegurate que ambos ordenadores tienen un - kernel que soporta el puerto paralelo. - - <verb> - $ dmesg | grep lp - lpt0 at 0x378-0x37f irq 7 on isa - lpt0: Interrupt-driven port - lp0: TCP/IP capable interface - </verb> - - <p>Conecta el cable en los dos puertos paralelos. - - <p>Configura los parámetros de red para el interfaz lp0 (como - root) en ambas máquinas. Por ejemplo, si quieres conectar la - máquina max y moritz: - - <verb> - max <-----> moritz -Direccion IP 10.0.0.1 10.0.0.2 - </verb> - - En el arranque de max - <verb> - # ifconfig lp0 10.0.0.1 10.0.0.2 - </verb> - -En el arranque de moritz - - <verb> - # ifconfig lp0 10.0.0.2 10.0.0.1 - </verb> - - <p>Esto es todo!!. Por favor, lee los man de lp(4) y lpt(4). - - <p>También deberías añadir las máquinas en el - fichero /etc/hosts: - - <verb> - 127.0.0.1 localhost.my.domain localhost - 10.0.0.1 max.my.domain max - 10.0.0.2 moritz.my.domain moritz - </verb> - - <P>Para asegurar que funciona haz: - - en max: - -<verb> -$ ifconfig lp0 -lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500 - inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000 -</verb> - -<verb> -$ netstat -r -Routing tables - -Internet: -Destination Gateway Flags Refs Use Netif Expire -moritz max UH 4 127592 lp0 -</verb> - -<verb> -$ 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 -</verb> - - <sect1> - <heading> - ¿Puedo instalar FreeBSD en mi portátil sobre PLIP (Parallel Line IP)? - </heading> - - <p>Conecta los dos ordenadores usando Laplink mediante el puerto - paralelo y usa las siguientes características: - - <verb> - +----------------------------------------+ - |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 - | - +----------------------------------------+ - </verb> - - <p>Mira también <ref id="pao" name="esta nota"> en la - página de informática móvil. - - <sect1> - <heading> - ¿Que geometría debo usar para mis discos?<label id="geometry"> - </heading> - - <p>(Por geometría de un disco, entendemos el numero de cilindros, - cabezales y sectores por pista en el disco - de ahora en adelante - nos referiremos por conveniencia a estos parámetros como C/H/S. - Así es como trabaja la BIOS de los PC's para gestionar la - lectura/escritura. - - <p>Por alguna razón, esto parece crear mucha confusión. - Ante todo, la geometría <tt /física/ de un disco SCSI es - totalmente irrelevante ya que FreeBSD trabaja en términos de - bloques de disco. Con discos IDE, FreeBSD trabaja en términos de - C/H/S, pero todos los discos modernos convierten estos datos en - referencias internas de bloques. - - <p>Para discos SCSI, la geometría a usar depende de si tenemos - activado en la controladora el soporte de translación (comunmente - conocido como "soporte para discos mayores de >1GB" o algo - similar). Si esta opción está desactivada, entonces usa - N cilindros, 64 cabezales y 32 sectores por pista, donde N es la - capacidad del disco en MB. Por ejemplo, para un disco de 2GB, los - parámetros correctos serían 2048 cilindros, 64 cabezales y - 32 sectores. - - <p>Si el soporte de translación está activado y la - capacidad del disco es mayor de 1GB, usa M cilindros, 63 cabezales - (*no* 64), y 255 sectores, donde M es la capacidad del disco en MB - dividida por 7.844238. Para nuestro ejemplo de un disco de 2GB, los - parámetros serían 261 cilindros, 62 cabezales y 255 - sectores. - - <p>Si no estás seguro sobre los parámetros a usar, o - FreeBSD falla al detectar la geometría correcta del disco durante - la instalación, el método mas simple para solucionar este - problema es crear una pequeña partición DOS en el disco. - Entonces, la geometría debería ser detectada correctamente - (y siempre puedes borrar esa partición desde el "editor de - particiones" si no quieres mantenerla). - - <p>Alternativamente, existe una utilidad de libre distribución - incluida en FreeBSD llamada <tt/pfdisk.exe/ (situada en el directorio - <tt>tools</tt> del cd-rom de distribución o en cualquiera de los - servidores ftp) que nos dice la geometría del disco usada por el - sistema operativo DOS. Lo único que tenemos que hacer es introducir - los datos obtenidos en el editor de particiones de FreeBSD. - - <sect1> - <heading>¿Existe alguna restricción en como dividir el disco?</heading> - - <p>Si. Debes asegurarte de que la partición raiz esta por debajo - del cilindro 1024, para que la BIOS pueda arrancar el kernel desde ella. - (Esta es una limitación de las BIOS de PC's, no de FreeBSD). - - <p>Para discos SCSI, esto implica que la partición raiz debe estar - instalada en los primeros 1024MB (o en los primeros 4096MB si la - translación extendida esta activada). Para discos IDE, la - partición raiz debe estar en los primeros 504MB. - - <sect1> - <heading> - ¿Qué hay sobre los "disk managers"? - </heading> - - <p>FreeBSD reconoce el disk manager Ontrack. Otros disk managers no - son soportados. - - <p>Si quieres usar el disco solo con FreeBSD no necesitas el - disk manager. Solo configura el disco para el espacio máximo que - pueda manejar la BIOS (usualmente 504MB), y FreeBSD se encargará - de averiguar cuanto espacio tienes realmente. Si estás usando - un disco antiguo con controladora MFM, necesitarás decirle - explícitamente a FreeBSD cuantos cilindros puede usar. - - <p>Si quieres usar el disco con FreeBSD y otro sistema operativo, - todavía puedes hacerlo sin necesitar un disk manager; solo - asegurate que la partición raiz de FreeBSD y la partición - de arranque del otro sistema operativo están en los primeros 1024 - cilindros. Si eres cuidadoso, una partición raiz de 20MB - debería ser suficiente. - - <sect1> - <heading> - Cuando arranco FreeBSD obtengo ``Missing Operating System'' - <label id="missing_os"> - </heading> - - <p>Esto es un clásico conflicto entre FreeBSD y DOS u otro sistema - operativo sobre sus ideas de <ref id="geometry" name="geometría.">. - Tendrás que reinstalar FreeBSD, pero teniendo en cuenta la - información que te damos más arriba sobre este tema. - - <sect1> - <heading>No puedo pasar del prompt`F?'.</heading> - - <p>Este es otro problema descrito en el parrafo anterior. La - geometría de tu BIOS y los datos de configuración de - FreeBSD no coinciden. Si tu controladora o BIOS soporta la - translación de cilindros (también conocido como "soporte - para discos de más de 1GB"), intenta activar/desactivar esta - opción y reinstala FreeBSD. - - <sect1> - <heading> - Tengo >16MB de RAM. ¿Puede causar esto problemas?<label id="bigram"> - </heading> - - <p>Aparte del rendimiento, no. FreeBSD 2.X tiene buffers que permiten - al "bus mastering controller" acceder a mas de 16MB. (Esto sólo es - aplicable si estás usando dispositivos ISA). - - <p>También mira la sección <ref id="reallybigram" - name="maquínas con >64M"> si tienes esta cantidad de memoria o - si usas máquinas Compaq u otra BIOS que no da correctamente la - cantidad de memoria disponible. - - <sect1> - <heading>¿Necesito instalar las fuentes completas?</heading> - - <p>En general, no. De todas maneras, te recomendamos que instales, - por lo menos, el kit de fuentes <tt/base/, el cual incluye muchos de - de los ficheros aquí mencionados, y el kit <tt/sys/, que incluye el - código fuente del kernel. No hay nada en el sistema que requiera el - código fuente para funcionar, a excepción del programa de - configuración de kernel - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?config" - name="config">. Con la excepción de las fuentes del kernel, nuestra - estructura esta diseñada para que puedas montar una unidad en solo - lectura via NFS en la que exista el código fuente, y aun - así, ser capaz de compilar los nuevos binarios. (Debido a las - restriciones de los fuentes del kernel, recomendamos que no montes estos - en <tt>/usr/src</tt> directamente, sino en cualquier otra parte del disco - con los links simbólicos apropiados para duplicar la estructura - principal del árbol de directorios original), - - <p>Teniendo los fuentes on-line y sabiendo como crear un sistema con - ellas (compilar), te haremos mucho mas fácil la - actualización a futuras versiones de FreeBSD. - - <p>Actualmente, para seleccionar una parte del código fuente, usa - la opción Custom del menú cuando estás en el - menú Distributions de la herramienta de instalación. El - script <tt>src/install.sh</tt> instalará solo partes de la - distribución de fuentes dependiendo de los parámetros - (argumentos) que se le pasen. - - <sect1> - <heading>¿Necesito crear un nuevo kernel?</heading> - - <p>La creación de un nuevo kernel era, originariamente, un paso - requerido en la instalación de FreeBSD, pero en las versiones - más recientes nos hemos beneficiado de la introducción de - una herramienta de configuración de kernel mucho más - amigable. Cuando en el prompt de arranque de FreeBSD (boot:), usamos el - parámetro "-c", llegamos a una pantalla de configuración - visual la cual permite configurar las opciones del kernel para la - mayoría de tarjetas ISA. - - <p>Todavía es recomendable la creación de un nuevo kernel - conteniendo solo los drivers que nos sean necesarios para ahorrar un - poco de RAM, pero no es estrictamente necesario para la mayoría - de sistemas. - - <sect1> - <heading>Vivo fuera de USA. ¿Puedo usar la encriptación DES?</heading> - - <p>Si no es absolutamente necesario que uses la encriptación DES, - puedes usar la encriptación por defecto de FreeBSD para una - <bf/mejor/ seguridad, y sin restricciones de importación. La - encriptación por defecto de los passwords en FreeBSD está - basada en <bf/MD5/, y es necesario un mayor uso intensivo de CPU - con programas de descubrimiento de passwords que en DES. La única - razón para no usar hoy en día la encriptación - <bf/MD5/ sería usar un sistema de passwords compartidos entre - sistemas FreeBSD y no FreeBSD. - - <p>Desde que el algoritmo de encriptación DES no puede ser - legalmente exportado fuera de USA, los usuarios externos a USA - deberían NO bajar este software desde los servidores FTP situados - en USA. - - <p>Existe una alternativa para las librerías de encriptación - basadas en el código escrito en Australia por David Burren. Este - código está disponible en algunos mirrors de FreeBSD fuera - de USA. Las fuentes de las librerías de encriptación, y los - binarios de los programas que las usan pueden encntrase en los siguientes - servidores FTP: - - <descrip> - <tag/South Africa/ - <tt>ftp://ftp.internat.FreeBSD.org/pub/FreeBSD</tt><newline> - <tt>ftp://storm.sea.uct.ac.za/pub/FreeBSD</tt> - - <tag/Brazil/ - <tt>ftp://ftp.iqm.unicamp.br/pub/FreeBSD</tt> - - <tag/Finland/ - <tt>ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt</tt> - </descrip> - - <p>Los usuarios de fuera de los USA, no deben bajarse ningún - software de encriptación de servidores situados en USA, ya que de - no seguir esta norma, los responsables de esos servidores podrían - verse envueltos en importantes problemas legales. - - <p>Una distribución no americana de Kerberos está siendo - desarrollada y las versiones actuales pueden obtenerse vía ftp - anónimo en <tt>braae.ru.ac.za</tt>. - - <p>Existe también una <ref id="mailing" - name="lista de distribución"> para la discusión de software - de encriptación externo a USA. Para más información - envía un email con una simplre línea diciendo "<tt/help/ - en el cuerpo del mensaje a: - - <tt><majordomo@braae.ru.ac.za></tt>. - - <sect1> - <heading>El "boot disc" arranca pero se cuelga en la pantalla "Probing Devices..."</heading> - - <p>Si tienes un ZIP ide o un JAZZ instalado, desinstalalo e intentalo - de nuevo. El disco de arranque puede haberse confundido con los discos. - Una vez el sistema esté instalado, puedes volver a - instalar/conectar los dispositivos. Esperamos que esto sea fijado en las - próximas releases. - - <sect1> - <heading>Aparece el siguiente error "panic: cant mount root" al - reiniciar el ordenador después de la instalación</heading> - - <p>Este error proviene de la confusión entre los bloques de - arranque y lo que ve el kernel en los discos. El error se suele - manifestar en sistemas con dos discos IDE, con los discos duros - dispuestos como master o "single" en controladoras diferentes, estando - FreeBSD instalado en la controladora IDE secundaria. Los bloques de - arranque piensan que el sistema está instalado en wd1 (el segundo - disco en la BIOS) mientras el kernel asigna el primer disco de la - controladora secundaria wd2. Después de la detección de - dispositivos, el kernel intenta montar lo que los bloques de arranque - piensan que es el disco de arranque, wd1, cuando realmente es el wd2, y - falla. - - <p>Para solucionar el problema, haz una de las siguientes cosas: - - <enum> - <item>En el prompt de arranque (boot:), pon - <tt>1:wd(2,a)kernel</tt> y presiona Enter. Si el sistema arranca, - ejecuta el comando: -<verb> -echo "1:wd(2,a)kernel" > /boot.config -</verb> - para actualizar la cadena de arranque por defecto. - <item>Mueve el disco de FreeBSD a la controladora IDE primaria para - que los discos sean consecutivos. - <item><url url="../../handbook/kernelconfig.html" - name="Crea un nuevo kernel,"> modifica las líneas de - configuración de wd de la siguiente manera: -<verb> -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 -</verb> - Instala el nuevo kernel: - Si moviste los discos y quieres recuperar la configuración - previa, reemplaza los discos en la configuración deseada y - rearranca el sistema. Tu sistema debería arrancar sin problemas. - </enum> - - <sect1> - <heading>¿Cuál es el límite de memoria?.</heading> - - <p>Para memoria, el límite (teórico) es de 4 gigabytes. Un - gigabyte ha sido comprobado y funciona sin problemas: generalmente no se - pueden comprar equipos i386 que soporten más cantidad de memoria. - - <sect1> - <heading>¿Cuál es el límite del sistema de ficheros ffs?</heading> - - <p>Para sistemas de ficheros ffs, el máximo teórico - está en 8 terabytes (bloques de 2G), o 16TB para el tamaño - de bloque por defecto de 8K. En la práctica hay un límite - por soft de 1 terabyte, pero con pequeáas modificaciones es - posible (y existen) sistemas de ficheros de 4 terabytes. - - <p>El tamaño máximo de un ffs simple es aproximadamente de - bloques de 1G (4TB) y el tamaño del bloque es de 4K. - - <verb> - maxfilesize - ---------------------------------- - 2.2.7 3.0 -fs block size -stable -current works should-work -------------- ------- -------- ----- ----------- -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 - </verb> - - <p>Cuando el tamaño del bloque del sistema de ficheros es de 4K, - los bloques triples funcionan y todo debería estar limitado por el - número máximo de bloques que puede ser representado usando - los bloques triples indirectos (aproximadamente 1K^3 + 1K^2 + 1K), pero - todo está limitado por un (mal) límite de 1G-1 en el - número de bloques. El límite en el número de bloques - debería ser de 2G-1, pero estos números de bloque son - inalcancables cuando los bloques del sistema de ficheros son de 4K. - - <sect1> - <heading>¿Cómo puede poner ficheros de 1TB en un disquete?</heading> - - <p>El tamaño maximo de un fichero no depende directamente del - tamaño máximo del disco. El tamaño máximo - del disco es de 1TB. Es una ventaja que el tamaño del fichero - pueda ser mayor que el tamaño del disco. - - <p>El siguiente ejemplo crea un fichero con un tamaño de 1TB usando - 32K de espacio de disco (3 bloques indirectos y 1 bloque de datos) en - una pequeña partición raiz. - -<verb> -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 -</verb> - -<p>Bruce Evans, September 1998 - - <sect1> - <heading>He compilado un nuevo kernel y al arrancar aparece el error - "archsw.readin.failed".</heading> - - <p>Puedes arrancar especificando el kernel directamente en el segundo - estado del boot, pulsando cualquier tecla cuando veas el - símbolo | justo antes de que se cargue el loader. Más - específicamente, has actualizado los fuentes para tu kernel, - y lo has creado y actualizado a partir de ellos <em>sín hacer - un "make world"</em>. Así no funciona. Haz un "make world". - -</sect> diff --git a/es_ES.ISO8859-1/FAQ/kernelconfig.sgml b/es_ES.ISO8859-1/FAQ/kernelconfig.sgml deleted file mode 100644 index 9369078c03..0000000000 --- a/es_ES.ISO8859-1/FAQ/kernelconfig.sgml +++ /dev/null @@ -1,156 +0,0 @@ -<!-- $FreeBSD$ --> -<!-- The FreeBSD Documentation Spanish Project --> - <sect> - <heading>Configuración del Kernel<label id="kernelconfig"></heading> - - <sect1> - <heading>Me gustaría personalizar mi kernel. ¿Es difícil?<label id="make-kernel"></heading> - - <p>No!, primero, necesitas la distribución completa de fuentes o, - por lo menos, la distribución de fuentes del kernel. De esta manera - tienes los fuentes necesarios para crearte un nuevo kernel. Al - contrario que muchos Unix comerciales, nosotros tenemos la política - de <bf/NO/ vender nuestro kernel en formato binario. - - <p>La instalación de los fuentes ocupa un poco más de - espacio, pero te permite consultar los fuentes del kernel en caso de - dificultad o entender que está ocurriendo realmente en la - ejecución del sistema. - - <p>Una vez tienes instalada la distribución completa de fuentes, o - por lo menos la del kernel, haz lo siguiente como root: - - <enum> - <item> <tt>cd /usr/src/sys/i386/conf</tt> - <item> <tt/cp GENERIC MYKERNEL/ - <item> <tt/vi MYKERNEL/ - <item> <tt/config MYKERNEL/ - <item> <tt>cd ../../compile/MYKERNEL</tt> - <item> <tt/make depend/ - <item> <tt/make all/ - <item> <tt/make install/ - <item> <tt/reboot/ - </enum> - - <p>El paso 2 no es necesario si todavía tienes un fichero de - configuración del kernel de una release anterior de FreeBSD - 2.X. - simplemente, copia el fichero antiguo y examínalo - cuidadosamente para asegurar que no haya cambiado la sintaxis - da algún driver, o haya alguno anticuado. - - <p>Un buen fichero de configuración para consultar es <tt/LINT/, - el cual contiene ejemplos documentados para todas las posibles - opciones del kernel. El fichero de configuración <tt/GENERIC/ se - usa para crear el kernel "por defacto" que es el que estarás - usando si no has creado ninguno nuevo. - - <p>Si no necesitas hacer ningún cambio al fichero <tt/GENERIC/, - puedes saltar al paso 3, donde personalizas el kernel para tu - sistema. El paso 8 solo debe ejecutarse si los pasos 6 y 7 se - han realizado de manera satisfactoria. Esto copiará una - imágen del nuevo kernel a <tt>/kernel</tt> y <bf/realizará - una copia del antiguo kernel en/ <tt>/kernel.old</tt>. Es muy importante - recordar esto por si el nuevo kernel falla en algun momento - puedes - seleccionar <tt>kernel.old</tt> en el prompt de arranque. Al hacer - un reboot, por defecto se cargará el nuevo kernel. - - <p>Si la compilación en el paso 7 falla por alguna razón, es - recomendable que empieces desde el paso 4 substituyendo - <tt/GENERIC/ por <tt/MYKERNEL/. Si puedes generar el kernel - <tt/GENERIC/, significa que algo en tu fichero de configuración - es incorrecto (o has decubierto un bug). Si la compilación del - kernel <tt/GENERIC/ falla, posiblemente tengas los fuentes - corruptos. - - <p>Finalmente, si necesitas ver los mensajes originales de arranque - del sistema para compilar un nuevo kernel, ejecuta el comando - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?dmesg" - name="dmesg">. Este comando debe imprimir en pantalla todos los - mensajes producidos por el kernel al arrancar, los cuales te - pueden servir en la configuración de tu nuevo kernel. - - <p><bf/NOTA/ Recomendamos hacer un historial fechado de los kernel - que vayas creando, de la manera <tt/kernel.YYMMDD/ una vez estén - funcionando correctamente. De esta manera, si la próxima vez que - juegues con el kernel algo no funciona, puedes arrancar desde el - último kernel correcto. Esto es especialmente importante si ahora - estás arrancando desde una controladora no soportada por el kernel - GENERIC (si, experiencia personal). - - <sect1> - <heading>La compilación del kernel falla por "<tt/_hw_float/ is missing."</heading> - - <p>Dejame adivinar. Has borrado <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?npx(4)" name="npx0"> - de tu fichero de configuración porque no tienes coprocesador - matemático, no? Mal hecho :-) El dispositivo <tt/npx0/ es - <bf/OBLIGATORIO/. Aunque no tengas coprocesador, debes incluir - el dispositivo <tt/npx0/ - - <sect1> - <heading>Conflicto de interrupciones con tarjeta serie multi-port.</heading> - - <p>Cuando compilo el kernel con drivers para tarjetas serie - multipuerto, el sistema me dice que sólo el primer puerto es - testeado y el resto son obviados debido a conflictos de - interrupción. Cómo soluciono esto? - - <p>El problema en este caso es que FreeBSD tiene código interno que - evita caidas del sistema por conflictos de hardware o software. La - manera de solucionar esto es dejar en blanco la entrada correspondiente - a la irq en todos los puertos excepto en uno. Aquí tienes un - ejemplo: - - <verb> - # - # 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 - </verb> - - <sect1> - <heading>¿Cómo activo el soporte para discos QIC-40/80?</heading> - - <p>Necesitas "descomentar" la siguiente línea en el fichero - genérico de configuración (o añadirla en tu propio - fichero), añade un <tt/flags 0x1/ en la línea - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fdc(4)" name="fdc"> - y recompila. - - <verb> -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 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - </verb> - - <p>A continuación, crea un nuevo dispositivo llamado - <tt>/dev/ft0</tt> entrando en el directorio <tt>/dev</tt> y ejecutando - el comando: - - <verb> - sh ./MAKEDEV ft0 - </verb> - - <p>Para el primer dispositivo. <tt/ft1/ para el segundo y así para - todos los dispositivos de este tipo que tengas. - - <p>Tendrás un dispositivo llamado <tt>/dev/ft0</tt>, al cual puedes - escribir a través de un programa especial de manejo llamado - <tt/ft/ - mira el man en <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?ft" name="ft"> para más - detalles. - - <p>Versiones anteriores a la <tt/-current/ tenían algunos problemas - al encontrase con cintas en mal estado; si tienes problemas en los - que parece que la cinta se rebovina siempre al llegar al mismo - lugar, intenta utilizar la última versión del programa - <tt/ft/ que encontrarás en <tt>/usr/src/sbin/ft</tt> en - <tt/-current/. - - </sect> - diff --git a/es_ES.ISO8859-1/FAQ/misc.sgml b/es_ES.ISO8859-1/FAQ/misc.sgml deleted file mode 100644 index 90d9c95dc9..0000000000 --- a/es_ES.ISO8859-1/FAQ/misc.sgml +++ /dev/null @@ -1,200 +0,0 @@ -<!-- $FreeBSD$ --> -<!-- The FreeBSD Documentation Spanish Project --> - <sect> - <heading>Preguntas varias<label id="misc"></heading> - - <sect1> - <heading>FreeBSD usa más espacio de swap que Linux. Porqué?</heading> - - <p>No lo hace. Deberías pensar "Porque mi swap parece lleno?". Si - esto es lo que realmente querías decir, es por que poniendo los - datos en swap en luar de descartarlos, hace que sea más - rápido recuperarlos que si el paginador tuviese que ir a - través del sistema de ficheros y usar bloques sin modificar desde - un ejecutable. - - <p>La cantidad actual de páginas que puedes tener en el core en una - sola vez no es reducida; las páginas sin usar son desplazadas como - sea necesario. - - <sect1> - <heading>¿Porqué usar (que son) a.out y ELF como formatos ejecutables?</heading> - - <p>Para entender por que FreeBSD usa el formato <tt>a.out</tt>, debes - saber primero un poco sobre los tres formatos dominantes actualmente - en UNIX: - - <itemize> - <item><htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)" - name="a.out"> - - <p>El antiguo y clásico formato de objeto. Usa una corta y - compacta cabecera con un número mágico en el inicio que - es usado para caracterizar el formato (mira en - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)" - name="a.out(5)"> para más detalles). Contiene tres segmentos - cargados: .text, .data y .bss más una tabla de símbolos - y una tabla de cadenas de carácteres.</item> - - - <item><bf>COFF</bf> - <p>El formato de objeto SVR3. La cabecera comprime una sección de - tablas, de manera que puedas tener más de una sola - sección .test, .data y .bss</item> - - <item><bf>ELF</bf> - <p>El sucesor de <tt/COFF/, ofreciendo múltiples secciones y - valores posibles de 32 o 64 bits. Un problema importante: <tt/ELF/ - fue diseñado con la presunción de que solo - existiría un único ABI por arquitectura de sistema. - Esta presunción actualmente es incorrecta, incluso en el - mundo comercial (el cual tiene al menos tres ABIs: SVR4, Solaris y SCO). - - <p>FreeBSD intenta solucionar este problema de manera que provee - de una utilidad para <em>marcar</em> un ejecutable <tt/ELF/ con - información sobre el ABI con el que es compatible. Para más información, mira el man de <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?brandelf" name="brandelf">. - </itemize> - - <p>FreeBSD viene del sistema clásico y tradicionalmente ha - utilizado el formato - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)" - name="a.out">, una tecnología probada y testeada a través - de muchas generaciones de releases de BSD. También es posible - construir y ejecutar binarios nativos <tt/ELF/ (y kernels) en sistemas - FreeBSD. FreeBSD inicialmente se resistió al salto de cambiar a - <tt/ELF/ como su formato por defecto. Porqué?, bien, cuando el - mundo Linux hizo su transición a <tt/ELF/ no era nada fácil - abandonar el formato ejecutable <tt/a.out/ debido a su inflexible - mecanismo de tablas basadas en librerías compartidas. Esto hizo - muy difícil para los fabricantes y desarrolladores la - creación de librerías compartidas. A partir del momento en - el que se ofrecieron una serie de herramientas que ofrecían la - solución al problema de las librerías compartidas, el - coste de la migración fue aceptado como necesario y la - transición se hizo. - - <p>En el caso de FreeBSD, el mecanismo de librerías compartidas - esta más basado en el estilo de SunOS, mucho más sencillo - de usar. De todas maneras, empezando con la version 3.0, FreeBSD - soportará oficialmente binarios <tt/ELF/ como el formato por - defecto. Aunque pensamos que el formato ejecutable <tt/a.out/ nos ha - servidor muy bién, la gente de GNU, que hacen las herramientas de - compilación que usamos, ha dejado de dar soporte para el formato - <tt/a.out/. Esto nos ha forzado a mantener dos versiones divergentes del - compilador y lincador. - - <sect1> - <heading>¿Porqué chmod no puede cambiar los permisos de los links?</heading> - - <p>Tienes que usar <tt/-H/ o <tt/-L/ junto con la opción <tt/-R/ - para que funcione. Para más información, mira la - página de <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?chmod" name="chmod"> y de - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?symlink" name="symlink">. - - <p><bf/CUIDADO/ la opción <tt/-R/ hace un <tt/chmod/ - <bf/RECURSIVO/. Ten cuidado al especificar directorios o symlinks con - <tt/chmod/. Si quieres cambiar los permisos de un directorio referenciado - por un symlink, usa - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?chmod" name="chmod"> - sin ninguna opción y sigue el symlink con una barra <tt>/</tt>. Por - ejemplo, si <tt/foo/ es un symlink al directorio <tt/bar/, y quieres - cambiar los permisos de <tt/foo/ /actualmente <tt/bar/), deberías - hacer algo como esto: - - <verb> - chmod 555 foo/ - </verb> - - <p>Con la barra, <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?chmod" name="chmod"> seguira - el symlink, <tt/foo/, para cambiar los permisos del directorio - <tt/bar/. - - <sect1> - <heading>¿Porqué están los nombres de usuario restringidos a 8 caracteres?</heading> - - <p>Pensarás que es fácil y suficiente con cambiar - <bf/UT_NAMESIZE/ y reconstruir el kernel, y todo volverá a - funcionar. Desafortunadamente hay aplicaciones y programas (incluyendo - herramientas de sistema) que tienen en el propio código (no - siempre 8 o 9, pero si 15 o 20) en estructuras, buffers... y - rompería los clientes de NIS de Sun y sin duda existirían - otros problemas interactuando con otros sistemas UNIX. - - <p>En FreeBSD 3.0 y superiores, se ha incrementado el número - máxmimo de carácteres a 16 y todas esas utilidades con - longitud de carácteres prefijada han sido encontradas y - arregladas. El hecho de que este cambio afectase a muchas áreas - del sistema es el motivo por el que el cambio no se ha hecho hasta - la versión 3.0. - - <p>Si eres absolutamente cuidadoso y quieres arreglas tu mismo este - problema en versiones anteriores, edita el fichero - /usr/include/utmp.h y cambia el parámetro UT_NAMESIZE a la - longitud que desees. También debes editar el fichero - /usr/include/sys/param.h y poner el valor de MAXLOGNAME al mismo que - UT_NAMESIZE. Finalmente, recompila los fuentes, no te olvides que - el contenido de /usr/include es actualizado cada vez!. En su lugar, - cambia los ficheros apropiados en /usr/src/.. - - <sect1> - <heading>¿Puedo ejecutar binarios DOS bajo FreeBSD?</heading> - - <p>Sí, empezando en la versión 3.0 puedes usar la - emulación DOS <tt/rundos/ de BSDI, la cual ha sido integrada y - mejorada. Envía un mail a la - <url url="mailto:emulation@FreeBSD.org" - name="Lista de discusión de emulación en FreeBSD"> si - estás interesado en participar en la evolución de esta - característica. - - <p>Para sistemas pre-3.0 hay una pequeña utilidad llamada - <htmlurl url="http://www.FreeBSD.org/cgi/ports.cgi?^pcemu" name="pcemu"> - en la colección de puertos que emula un 8088 y suficientes - servicios de BIOS para ejecutar aplicaciones de modo texto. Requiere el - sistema de X Window. - - <sect1> - <heading>¿Qué es <tt/sup/, y como lo uso?</heading> - - <p><htmlurl url="http://www.FreeBSD.org/cgi/ports.cgi?^sup" name="SUP"> - significa Software Update Protocol, y fue desarrollado por CMU para - mantener sus árboles de desarrollo sincronizados. Nosotros lo - usabamos para manterner el servidor central sincronizado con otros - servidores remotos. - - <p>SUP no es amigo del ancho de banda, y ha sido retirado. El - método actual recomendado para mantener tus fuentes actualizados - es <url url="../../handbook/synching.html#CVSUP" name="CVSup"> - - <sect1> - <heading>¿Existen herramientas de ahorro de energía en FreeBSD?</heading> - - <p>FreeBSD usa la instrucción <tt/HLT/ (halt) cuando el sistema - está (idle) para reducir el consumo de energía. Si tienes - la opción APM (Automatic Power Management) configurado, FreeBSD - puede poner la cpu en modo de baja energía. - - <sect1> - <heading>¿Qué significa "MFC"?</heading> - - <p>MFC es un acrónimo para "Merges From -CURRENT". Es usado en los - logs de CVS para indicar que un cambio se ha migrado de la rama CURRENT - a la rama STABLE. - - <sect1> - <heading>¿Qué significa "BSD"?</heading> - - <p>Pertenece a un lenguaje secreto que solo sus miembros conoces. No tiene - traducción literal, pero basta con decir que su traducción - está entre, "Equipo de Fórmula-1", "Los Pinguinos son un - buén aperitivo", y "Tenermos mejor sentido del humor que Linux" - :-) - - <p>Seriamente, BSD es un acrónimo de "Berkeley Software - Distribution", el cual es el nombre que el CSRG de Berkeley (Computer - Systems Research Group) escogió para sus distribuciones de Unix. - -</sect> diff --git a/es_ES.ISO8859-1/FAQ/network.sgml b/es_ES.ISO8859-1/FAQ/network.sgml deleted file mode 100644 index c64630abaf..0000000000 --- a/es_ES.ISO8859-1/FAQ/network.sgml +++ /dev/null @@ -1,1167 +0,0 @@ -<!-- $FreeBSD$ --> -<!-- The FreeBSD Documentation Spanish Project --> - <sect> - <heading>Networking<label id="networking"></heading> - - <sect1> - <heading>¿Dónde puedo encontrar información sobre "diskless booting"?</heading> - - <p>"Diskless booting" significa que una máquina FreeBSD sea - arrancada sobre una red, y lea los ficheros necesarios de un servidor y no - desde su disco duro. Para más detalles, por favor, lee la - sección <url url="../../handbook/diskless.html" - name="diskless booting del manual"> - - <sect1> - <heading> - ¿Puede una máquina FreeBSD ser usada como router dedicado? - </heading> - - <p>Los estandards de Internet y las buenas prácticas de - ingeniería nos prohiben proveer el forward de paquetes en la - distribución estandard. Aun así, puedes activar esta - opción cambiando la siguiente variable a <tt/YES/ en el fichero - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?rc.conf" - name="rc.conf">: - - <verb> - gateway_enable=YES # Set to YES if this host will be a gateway - </verb> - - <p>Esta opción pondrá la variable <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?sysctl" name="sysctl"> - <tt/net.inet.ip.forwarding/ a <tt/1/. - - <p>En muchos casos también necesitarás ejecutar un proceso - de rutado para indicar la existencia en la red de tu router; FreeBSD - incluye el daemon estandard de rutado BSD - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?routed" name="routed"> - , aunque en situaciones más complejas quizás quieras usar - <em/GaTeD/ disponible por ftp en <tt/ftp.gated.Merit.EDU/. - - <p>Es nuestro deber advertirte que estando FreeBSD configurado de esta - manera, no cumple completamente con todos los estandares de routers - de Internet, pero es suficiente para uso ordinario. - - <sect1> - <heading>¿Puedo conectar mi Win95 con Internet a través de FreeBSD?</heading> - - <p>Típicamente, la gente que pregunta esto tiene dos pc's en casa, - uno con FreeBSD y otro con Win95; la idea es usar FreeBSD para conectar - a Internet y luego ser capaz de acceder a Internet desde el - ordenador con Windows 95. Este es realmente un caso especial de la - pregunta anterior. - - <p>Hay un útil documento disponible que explica como configurar - FreeBSD como un - <url url="http://www.ssimicro.com/~jeremyc/ppp.html" - name="Router PPP"> - - <p><bf/NOTA:/ Esto requiere, al menos, tener dos direcciones IP - fijas disponibles, y posiblemente tres o más, dependiendo del - número de máquinas que quieras conectar. Como alternativa, - si no tienes una dirección IP fija, puedes usar una de las subredes - privadas e instalar un proxy como - <url url="http://squid.nlanr.net/Squid/" name="SQUID"> - y <url url="http://www.tis.com/" name="The TIS firewall toolkit"> - en tu FreeBSD. - - <p>Mira también la sección <ref id="direct-at" name="natd">. - - <sect1> - <heading> - ¿Por que falla la compilación del último BIND del ISC? - </heading> - - <p>Hay un conflicto entre el fichero <tt/cdefs.h/ incluido en la - distribución de BIND y el distribuido con FreeBSD. Solo tienes que - borrar <tt>compat/include/sys/cdefs.h</tt>. - - <sect1> - <heading>¿Soporta FreeBSD SLIP y PPP?</heading> - - <p>Sí. Mira las paginas man de - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?slattach" - name="slattach">, <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?sliplogin" name="sliplogin">, - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?pppd" name="pppd"> y - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ppp" name="ppp">. - <tt/pppd/ y <tt/ppp/ soportan conexiones entrantes y salientes. - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?sliplogin" - name="Sliplogin"> trabaja exclusivamente con conexiones entrantes y - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?slattach" - name="slattach"> con conexiones salientes. - - <p>Estos programas son descritos en las siguientes secciones del - <url url="../../handbook/index.html" name="manual">: - - <itemize> - <item><url url="../../handbook/slips.html" - name="Handbook entry on SLIP (server side)"> - - <item><url url="../../handbook/slipc.html" - name="Handbook entry on SLIP (client side)"> - - <item><url url="../../handbook/ppp.html" - name="Handbook entry on PPP (kernel version)"> - - <item><url url="../../handbook/ppp-and-slip.html#USERPPP" - name="Handbook entry on PPP (user-mode version)"> - </itemize> - - <p>Si solo tienes acceso a Internet a traves de un "shell - account", quizás quieras mirar el package <htmlurl - url="http://www.FreeBSD.org/cgi/ports.cgi?^slirp" name="slirp">. - Puede darte un (limitado) acceso a servicios como ftp y http. - - <sect1> - <heading> - ¿Soporta FreeBSD NAT o Masquerading?<label id="natd"> - </heading> - - <p>Si tienes una red local (una o más máquinas), pero solo - se te ha asignado una única dirección IP desde tu proveedor - de Internet (o si recibes las direcciones de manera dinámica), te - interesa mirar el programa - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?natd" name="natd">. - <tt/Natd/ te permite conectar una red entera a Internet usando - solamente una dirección IP. - - <p>El programa - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ppp" name="ppp"> - tiene una funcionalidad similar incluida, a través del - parámetro -alias. La <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?libalias" name="librería - alias"> es usada en ambos casos. - - - <sect1> - <heading> - El ppp no funciona. ¿Qué estoy haciendo mal?<label id="userppp"> - </heading> - - <p>Primero deberías leer el <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?ppp" name="man de ppp"> y - la <url url="../../handbook/ppp-and-slip.html#USERPPP" - name="sección de PPP del handbook">. Activa los logs con el - comando - - <verb> - set log Phase Chat Connect Carrier lcp ipcp ccp command - </verb> - - <p>Este comando debería ser tecleado en el prompt del <bf/ppp/ o - incluirse en el fichero de configuración <tt>/etc/ppp/ppp.conf</tt> - (al inicio de la sección <bf>default</bf> es el mejor lugar). - Asegurate que el fichero - url="http://www.FreeBSD.org/cgi/man.cgi?syslog.conf" - name="/etc/syslog.conf"> contiene las siguientes líneas: - - <verb> - !ppp - *.* /var/log/ppp.log - </verb> - - <p>y que el fichero <tt>/var/log/ppp.log</tt> existe. Puedes - encontrar mucha información sobre lo que está pasando en las - conexiones con el fichero de log. - - <p>Si tu versión de ppp no entiende el comando "set log" - deberías bajarte la - <url url="http://www.FreeBSD.org/~brian" name="última - versión">. Esta compilará sin problemas en FreeBSD 2.1.5 y - superiores. - - <sect2> - <heading>PPP no quiere marcar en modo -auto</heading> - - <p>Primero, asegúrate de tener una ruta por defecto. Ejecutando - el comando url="http://www.FreeBSD.org/cgi/man.cgi?netstat"> - name="netstat -rn"> deberías ver dos entradas como estas: - - <verb> -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 - </verb> - - <p>Esto es asumiendo que hayas usado las direcciones del manual, - la página man o del fichero de ejemplo ppp.conf.sample. Si no - tienes una ruta por defecto, puede ser por que estés usando una - versión antigua de <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?ppp" name="ppp"> que no - entiende la palabra <tt/HISADDR/ en el fichero ppp.conf. Si - tu versión de <bf/ppp/ es de antes de FreeBSD 2.2.5, cambia la - línea - - <verb> - add 0 0 HISADDR - </verb> - - <p>por otra diciendo - - <verb> - add 0 0 10.0.0.2 - </verb> - - <p>Otra razón para la inexistencia de la ruta por defecto es que - sin darte cuenta hayas creado un default router en el fichero - /etc/rc.conf (anteriormente llamado <tt>/etc/sysconfig</tt>) y - hayas omitido la línea - - <verb> - delete ALL - </verb> - - <p>en el fichero <tt>ppp.conf</tt>. Si es este el caso vuelve a la - sección - <url url="../../handbook/ppp-and-slip.html#USERPPP-FINAL.html" - name="configuración final del sistema"> en el handbook. - - <sect2> - <heading>¿Qué significa "No route to host"?</heading> - - <p>Este error se debe normalmente a la falta de la sección - - <verb> - MYADDR: - delete ALL - add 0 0 HISADDR - </verb> - - <p>en el fichero <tt>/etc/ppp/ppp.linkup</tt>. Esto es solo - necesario si tienes una direccion IP dinámica o no sabes la - dirección de tu gateway. Si estás usando el modo - interactivo, puedes teclear lo siguiente despues de entrar en - <tt/packet mode/: - - <verb> - delete ALL - add 0 0 HISADDR - </verb> - - <p>Pásate por la sección - <url url="../../handbook/ppp-and-slip.html#USERPPP-DYNAMICIP" - name="PPP y direcciones IP dinámicas"> del handbook para - más información. - - <sect2> - <heading>Mi conexión se corta pasados 3 minutos</heading> - - <p>El timeout de ppp por defecto es de 3 minutos. Se puede ajustar - con la línea: - - <verb> - set timeout NNN - </verb> - - <p>Donde <bf/NNN/ es el número de segundos de inactividad antes - de cerrar la conexión. Si <bf/NNN/ es 0, la conexión no - se cerrará nunca por timeout. Es posible poner este comando en - el fichero <tt>ppp.conf</tt>, o teclearla en el prompt del modo - interactivo. - También es posible ajustarla en cualquier momento mientras la - conexión esté activa conectando al socket del servidor - <bf/ppp/ usando - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?telnet" name="telnet"> - o <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?pppctl" - name="pppctl">. Leete el man de - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ppp" name="ppp"> - para más detalles. - - <sect2> - <heading>Mi conexión se corta en situaciones de carga</heading> - - <p>Si tienes la opción Link Quality Reporting (LQR) configurada - es posible que demasiados paquetes LQR se pierdan entre tu - máquina y el remoto. PPP deduce que la línea es mala y - corta la conexión. En versiones anteriores a la 2.2.5 de - FreeBSD, LQR estaba activado por defecto. Ahora está desactivado - por defecto. LQR puede ser activado con la línea - - <verb> - disable lqr - </verb> - - <sect2> - <heading>Mi conexión se corta en periodos aleatorios</heading> - - <p>Algunas veces, en líneas telefónicas de baja calidad - o con mucho ruido, o líneas con la opción de llamada en - espera activada, el módem corta la conexión por que - piensa (erróneamente) que ha perdido la portadora. - - <p>Hay una opción en muchos modems para determiar la tolerancia - a pérdidas temporales de portadora. En un USR Sportster por - ejemplo, esta es medida por el registro S10 en décimas de - segundo. Para hacer que tu módem sea más resistente, - puedes añadir la siguiente secuencia "send-expect" a la cadena - de llamada: - - <verb> - set dial "...... ATS10=10 OK ......" - </verb> - - <p>Mira en el manual de tu módem para más detalles. - - <sect2> - <heading>No ocurre nada después del mensaje Login OK</heading> - - <p>En versiones anteriores a FreeBSD 2.2.5, una vez estaba la - conexión establecida, - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ppp" - name="ppp"> espera a que el remoto inicie la negociación LCP - (Line Control Protocol). Muchos proveedores de Internet no - iniciarán la negociación esperando que sea el cliente el - que lo haga. Para forzar al <bf/ppp/ a iniciar el LCP, usa la - siguiente línea: - - <verb> - set openmode active - </verb> - - <p><bf/Nota:/ Normalmente no hay problemas si las dos partes - inician la negocioacion LCP, ya que el modo abierto (open mode) - está activo por defecto. De todas maneras, la siguiente - sección explica cuando pueden haber problemas. - - <sect2> - <heading>Sigo teniendo errores sobre el parámetro magic</heading> - - <p>Ocasionalmente, justo después de la conexión, puedes - ver mensajes en el log referentes a "magic number is the same". - Algunas veces, estos mensajes son inofensivos, y otras veces - uno de los dos extremos finaliza la conexión. Algunas - implementaciones de ppp no pueden solucionar este problema, y, - aunque parezca que la conexión está establecida, - verás repetidas peticiones y aceptaciones de - configuración en el fichero de log hasta que una de las dos - partes cierra la conexión. - - <p>Esto ocurre normalmente en servidores con disco lentos que - tienen problemas para gestionar eficientemente los puertos - serie. También existen informes de problemas en conexiones - mediante slip. La razón es que en el tiempo que tarda el - servidor en salir del getty y ejecutar el ppp, el cliente - manda los paquetes de inicio LCP. Al estar el ECHO todavía - activo en el puerto del servidor, el cliente ppp lo único que - ve son sus propios paquetes "reflejados" por el servidor. - - <p>Una parte de la negociación LCP es establecer un número - mágico para cada una de los dos extremos de las conexiones para - que los "reflejos" puedan ser detectados. El protocolo dice que - cuando el remoto intenta negociar el mismo "magic number", se debe - enviar un NAK para seleccionar un nuevo "magic number". Durante el - periodo de tiempo que el servidor tiene el ECHO activado en el - puerto, el cliente ppp envía paquetes LCP, ve que el mismo - "magic" vuelve en el paquete reflejado y lo da como no válido - (envia NAK). - Este todavía ve el paquete reflajado con NAK (lo que significa - que el ppp debe cambiar su "magic"). Esto produce un enorme - número de cambios de "magic number" que son introducidos en el - buffer tty del servidor. Tan pronto como el ppp arranca en el servidor, - es bombardeado con cambios de "magic numbers" e inmediatamente decide - que ya ha realizado el número suficiente de negociaciones LCP y - corta la conexión. Mientras tanto, el cliente, que ya no ve los - paquetes reflejados, recibe sin problemas la desconexión del - servidor y también cierra la conexión. - - <p>Esto puede ser resuelto permitiendo que el remoto inicie la - negociación, poniendo la siguiente línea en el fichero - ppp.conf: - - <verb> - set openmode passive - </verb> - - <p>Esto indica al ppp que espere a que el servidor comience la - negociación LCP. Es posible que algunos servidores nunca inicien - la negociación. Si este es el caso, puedes hacer algo como: - - <verb> - set openmode active 3 - </verb> - - <p>Esto le indica al ppp que sea pasivo durante 3 segundos, y - despues comience a enviar peticiones LCP. Si el remoto envía - peticiones durante este periodo, ppp responderá inmediatamente - sin esperar los 3 segundos establecidos. - - <sect2> - <heading> - Las negociaciones LCP continuan hasta que se cierra la conexión</heading> - - <p>Existe actualmente un problema de implementación en <bf/ppp/ - en la que no asocia las respuestas LCP, CCP & IPCP con sus - peticiones originales. Como resultado, si una implementación - <bf/ppp/ es mas lenta durante 6 segundos que la remota, la remota - enviará dos peticiones de configuración LCP adicionales. - Esto es fatal. - - <p>Considera dos implementaciones, <bf/A/ y <bf/B/. <bf/A/ empieza - a enviar peticiones LCP inmediatamente después de conectar y - <bf/B/ tarda 7 segundos en arrancar. Cuando <bf/B/ arranca, <bf/A/ ha - enviado 3 peticiones LCP. Estamos asumiendo que la línea tiene el - ECHO desactivado, si no, veriamos los problemas de "magic number" - descritos en el apartado anterior. <bf/B/ envía un REQ, y a - continuación envía un ACK al primer REQ de <bf/A/. Esto - resulta en que <bf/A/ entra en modo <bf/OPENED/ y envía un ACK - (el primero) a <bf/B/. Mientras, <bf/B/ devuelve dos ACKs mas en - respuesta a los dos REQs adicionales enviados por <bf/A/ antes de que - <bf/B/ arrancase .<bf/B/ recibe el primer ACK de <bf/A/ y entra en modo - <bf/OPENED/. - <bf/A/ recibe el segundo ACK de <bf/B/ y vuelve al estado - <bf/REQ-SENT/, enviando otro (el cuarto) REQ. Entonces recibe el - tercer ACK y entra en modo <bf/OPENED/. Mientras, <bf/B/ recibe el - cuarto REQ de <bf/A/, produciendo que vuelva de nuevo al estado - <bf/ACK-SENT/ y enviando otro (el segundo) REQ y (cuarto) ACK. <bf/A/ - recibe el REQ, entra en modo <bf/REQ-SENT/ y envía otro REQ. - Inmediatamente recibe el siguiente ACK y entra en <bf/OPENED/. - - <p>Esto pasa hasta que una de las partes piensa que ya ha realizado - suficientes reintentos y corta la conexión. - - <p>La mejor manera de evitar esto es configurar una de las partes - de manera <bf/pasiva/ - que es, hacer que una de las partes espere - a que la otra comience la negociación. Esto puede realizarse - con el comando: - - <verb> - set openmode passive - </verb> - - Se debe tener cuidado con esta opción. También se puede - usar: - - <verb> - set stopped N - </verb> - - para limitar el número de veces que <bf/ppp/ espera a que el - remoto comience la negociación. Alternativamente, puedes user - el comando: - - <verb> - set openmode active N - </verb> - - donde <bf/N/ es el número de segundos que espera antes de empezar - la negociación. Mira en el manual para más detalles. - - <sect2> - <heading>Ppp se bloquea al conectar</heading> - - <p>Antes de la versión 2.2.5 era posible que la conexión - se corte nada más iniciarse debido a un problema en la - negociación de compresión Predictor1. Esto solo pasa si - las dos partes intentan negociar con diferentes protocolos de control - de compresión (CCP). - Este problema ya está corregido, pero si estás usando - una versión antigua de <bf/ppp/, el problema puede solucionarse - con la línea - - <verb> - disable pred1 - </verb> - - <sect2> - <heading>Ppp se bloqua al abrir un shell de test</heading> - - <p>Cuando ejecutas el comando <tt/shell/ o <tt/!/, <bf/ppp/ ejecuta - un shell (o si has pasado argumentos, <bf/ppp/ ejecutará esos - argumentos). Ppp esperará a que se complete el comando antes de - continuar. Si intentas usar la conexión ppp mientras se ejecuta - el comando, parecerá que la conexión se ha colgado. Esto - es por que <bf/ppp/ está esperando a que se complete la - ejecución del comando. - - <p>Si quieres ejecutar comandos como este, usa el comando <tt/!bg/ en - su lugar. Esto ejecutará el comando en background, y ppp - continúa sin problemas con la conexión. - - <sect2> - <heading>Ppp sobre un cable null-modem no funciona</heading> - - <p>No hay manera que <bf/ppp/ detecte automáticamente que una - conexión directa se ha cortado. Es debido a las líneas - que se usan en un cable serie null-modem. Cuando usamos este tipo de - conexión, LQR debería estar siempre activada con el - comando - - <verb> - enable lqr - </verb> - - <p>LQR es aceptado por defecto si es negociado por el remoto. - - <sect2> - <heading>¿Por que llama sin motivo el ppp en modo -auto?</heading> - - <p>Si <bf/ppp/ llama inesperadamente, debes determinar la causa, y - poner filtros (dfilters) para prevenir esas llamadas. - - <p>Para determinar la causa, usa la siguiente línea: - - <verb> - set log +tcp/ip - </verb> - - <p>Esto guardara todo el tráfico que pase a través de la - conexión. - La próxima vez que se realice una llamada no deseada, - podrás ver la causa convenientemente guardada. - - <p>Ahora puedes desactivar las llamadas producidas por esa causa. - Usualmente, este tipo de problemas se debe a consultas de DNS. Para - prevenir que las consultas de DNS puedan establecer conexiones usa - la siguiente línea (esto no hará que los paquetes de DNS - queden parados cuando la conexión está establecida): - - <verb> - set dfilter 1 deny udp src eq 53 - set dfilter 2 deny udp dst eq 53 - set dfilter 3 permit 0/0 0/0 - </verb> - - <p>Esto no siempre es aconsejable, ya que puede afectar a la - capacidad de realizar conexiones bajo demanda - muchos programas - necesitan hacer una consulta al DNS antes de poder realizar - cualquier operación. - - <p>En el caso del DNS, deberías determinar que es lo que - está intentando realizar esas consultas de DNS. Muchas veces, - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?sendmail" - name="sendmail"> es el culpable. Debes asegurarte configurar el - sendmail de manera que no realice ninguna consulta al DNS. Mira la - sección <ref id="ispmail" name="Configuracion de correo"> para - tener más detalles acerca de como crear una fichero propio de - configuración de sendmail. También deberías - añadir la siguiente línea en tu fichero <bf/.mc/: - - <verb> - define(`confDELIVERY_MODE', `d')dnl - </verb> - - <p>Esto hara que sendmail encole todo el correo hasta que no se - procese la cola (usualmente, sendmail es invocado con - "-bd -q30m", indicandole que procese la cola cada 30 minutos) o - hasta que se ejecuta el comando "sendmail -q" (por ejemplo, desde - el fichero ppp.linup). - - <sect2> - <heading>¿Qué significan estos errores CCP?</heading> - - <p>Sigo viendo los siguientes errores en el fichero de log: - - <verb> - CCP: CcpSendConfigReq - CCP: Received Terminate Ack (1) state = Req-Sent (6) - </verb> - - <p>Esto es porque ppp está intentando negociar compresión - Predictor1, y el remoto no quiere negociar ningún tipo de - compresión. Estos mensajes son sin importancia, pero si quieres - eliminarlos, puedes desactivar la compresión Predictor1 - localmente: - - <verb> - disable pred1 - </verb> - - <sect2> - <heading>PPP se cuelga durante transferencia de ficheros con errores I/OP</heading> - - <p>En la versión FreeBSD 2.2.2 y anteriores, había un - problema en el driver tun que no permitía paquetes entrantes con - un tamaño mayor que el MTU del interface. La recepción de - un paquete mayor que el MTU resulta en un error IO que es logueado - vía syslogd. - - <p>La especificación PPP dice que un MRU de 1500 <bf>siempre</bf> - debería ser aceptada como mínimo, a pesar de lo que se - negocie mediante LCP, de todas maneras, es posible que hayas disminuido - el MTU por debajo de 1500 y tu proveedor te esté enviando - paquetes de 1500, haciendo que tu conexión se bloquee. - - <p>El problema puede solucionarse haciendo que el tamaño del - MTU nunca sea inferior a 1500 bajo FreeBSD 2.2.2 y anteriores. - - <sect2> - <heading>¿Por que ppp no loguea la velocidad de la conexión?</heading> - - <p>Para loguear todas las líneas de "conversación" de tu - módem, debes activar la siguiente opción: - - <verb> - set log +connect - </verb> - - <p>Esto hará que - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ppp" name="ppp"> - loguee todo hasta la última cadena "expect" pedida. - - <p>Si quieres ver la velocidad de tu conexión y usas PAP o CHAP - (y por lo tanto no tienes nada que "chatear" después del CONNECT - en el script de marcado), debes estar seguro de indicarle al ppp que - espera la línea "CONNECT con algo como esto: - - <verb> - set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n" - </verb> - - <p>Aquí, tenemos nuestro CONNECT, enviamos nada, y esperamos un - salto de línea, forzando al <bf/ppp/ que lea la respuesta del - CONNECT. - - <sect2> - <heading>Ppp ignora el carácter `\' en mi chat script</heading> - - <p>PPP lee cada línea de los ficheros de configuración - para poder interpretar cadenas como <tt/set phone "123 456 789"/ - correctamente. - Para especificar un carácter ``"'', debes usar la contrabarra - (``\''). - - <p>Cuando el intérprete lee cada argumento, reinterpreta el - argumento para buscar alguna secuencia especial de escape como ``\P'' - o ``\T''. - Como resultado de esta doble lectura, recuerda que has de usar el - número correcto de escapes (contrabarras). - - <p>Si quieres enviar un caracter ``\'' a tu módem, necesitas - hacer algo como: - - <verb> - set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK" - </verb> - - <p>resultando en la siguiente secuencia: - - <verb> - ATZ - OK - AT\X - OK - </verb> - - <p>o - - <verb> - set phone 1234567 - set dial "\"\" ATZ OK ATDT\\T" - </verb> - - <p>resultando en la siguiente secuencia: - - <verb> - ATZ - OK - ATDT1234567 - </verb> - - <sect2> - <heading>Ppp produce un seg-fault, pero no veo el fichero <tt/ppp.core/</heading> - - <p>Ppp (o cualquier otro programa de este tipo), nunca deberían - hacer un core dump. Por que ppp funciona con un id de usuario 0, - el sistema operativo no escribirá la imagen del core en disco. - Si ppp termina con errores de "segmentation violation" o cualquier - otra señal que normalmente causa un core dumped, y quieres poder - hacer un debug de ese core, asegúrate de usar la última - versión de ppp, y haz lo siguiente: - - <verb> - $ 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 - </verb> - - <p>Ahora tendrás instalada una versión "debuggable" de - ppp. Tendrás que ser root para poder ejecutar ppp ya que todos - sus privilegios han sido revocados. Cuando arranques ppp, acuerdate del - directorio en el que te encuentras. - - <p>Ahora, cuando ppp recibe una violación de segmentación - , creará un fichero core llamado ppp.core. A continuación - , deberías hacer lo siguiente: - - <verb> - $ su - # gdb /usr/sbin/ppp ppp.core - (gdb) bt - ..... - (gdb) f 0 - ..... - (gdb) i args - ..... - (gdb) l - ..... - </verb> - - <p>Toda esta información puede hacer posible diagnosticar el - problema. Si estás familiarizado con gdb, puedes encontrar otras - pistas como que causó el dump y las direcciones y valores de las - variables más relevantes. - - <sect2> - <heading> - El proceso que fuerza una llamada en modo auto nunca funciona - </heading> - - <p>Este es un problema conocido cuando <bf/ppp/ está configurado - para negociar una IP dinámica local con el remoto. Este - problema ha sido solucionado en la última versión - - busca en el man la palabra <bf/iface/. - - - <p>El problema era que cuando el programa inicial llama a - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?connect" - name="connect(2)">, el IP del interface tun es asignado al punto - final del socket. El kernel crea el primer paquete saliente y - establece la conexión. Si, como resultado de la - asignación dinámica de IP, la dirección del - interface es cambiada, el punto final del socket original será - invalido. Los siguientes paquetes enviados al remoto normalmente - serán descartados. Aun si no lo son, cualquier respuesta no - será enrutada hacia la máquina de origen por que la - dirección IP de la máquina de origen ha cambiado. - - <p>Hay varias maneras teóricas de solucionar este problema. Lo - mejor sería que el remoto reasignase la misma IP si fuese - posible <tt/:-)/ La versión actual de <bf/ppp/ hace esto, - pero otras muchas implementaciones no. - - <p>El método más sencillo desde nuestra parte, - sería no cambiar nunca la IP del interface tun, pero por el - contrario, cambiar todos los paquetes salientes de manera que la ip de - origen es cambiada del IP del interface a la IP negociada, - instantaneamente. - Esto es, esencialmente, lo que hacen - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?libalias" - name="libalias(3)"> y el parámetro <bf/-alias/ de ppp. - - <p>Otra alternativa (y probablemente la mas eficaz) es implementar - una llamada al sistema que cambie todos los sockets de una IP a - otra. <bf/Ppp/ debería usar esta llamada para modificar los - sockets de todos los programas existentes cuando una nueva - dirección IP es negociada. La misma llamada de sistema - podría ser usada para clientes dhcp cuando son forzados - a rehacer sus sockets. - - <p>Una tercera opción es permitir que un interface se active sin - IP. Los paquetes salientes tendrían un IP de 255.255.255.255 - hasta que el primer SIOCAIFADDR ioctl este hecho. Esto - permitiría que ppp cambiase el IP de origen, pero solo si el - socket es 255.255.255.255 y solo el IP y el checksum necesitan cambiar. Esto, de todas maneras, requiere tocar el kernel para que puede enviar - paquetes incorrectos a un interface mal configurado. - - <sect2> - <heading>¿Porqué muchos juegos no funcionan con el - parámetro -alias?</heading> - - <p>La razón por la que muchos de los juegos no funcionan es - por que la máquina externa intentará abrir una - conexión o enviar paquetes UDP (no solicitados) a la - máquina interna. El software "alias" no sabe que esos paquetes - debrín enviarse a la máquina interna. - - <p>Para que las cosas funcionen, asegúrate que la única - cosa que está funcionando es el software con el que tienes - problemas, entonces ejecuta tcpdump en el interface tun del - gateway o ejecuta el log tcp/ip del ppp ("set log +tcp/ip" en el - gateway. - - <p>Cuando arrancas el software que no funciona, deberís ver - paquetes que pasan a través del gateway. Cuando algo - vuelve del exterior, será rechazado (ese es el problema). - Apunta el número de puerto de esos paquetes y cierra el - software que no funciona. Haz esto varias veces para comprobar si - el número de puerto se repite. Si es así, la siguiente - línea en el fichero de configuración del ppp - /etc/ppp/ppp.conf hará que las cosas funcionen: - - <verb> - alias port proto internalmachine:port port - </verb> - - <p>donde "proto" puede ser "tcp" o "udp", "internalmachine" es la - máquina a la que quieres que los paquetes sean enviados y - "port" es el número de puerto de destino de los paquetes. - - <p>No podrás usar ese software en otras máquinas sin - modificar el comando anterior, y ejecutar el software - simultaneamente en dos máquinas internas no será - posible - después de todo, el mundo exterior está - viendo a toda tu red como una sola máquina. - - <p>Si los números de puertos no se repiten, hay tres opciones - más: - - <p><bf>1)</bf> Desarrollar el soporte en libalias. Ejemplos de estos - "casos especiales" los puedes encontrar en - /usr/src/lib/libalias/alias_*.c (alias_ftp.c es un buén - prototipo). Esto usualmente supone leer ciertos paquetes salientes - conocidos, identificando la instrucción que le indica a la - máquina exterior que inicie una conexión con la - máquina interna en un puerto específico (aleatorio) - y configurar un "ruta" en la tabla de alias para que los paquetes - siguientes sepan donde ir. - - <p>Esta es la solución más difícil, pero es la - mejor y hará que el software funcione con múltiples - máquinas. - - <p><bf>2)</bf> Usar un proxy. La aplicación debe soportar - socks5 por ejemplo, o (como en el caso del "cvsup") debería - tener una opción "pasiva" que evita que el remoto intente abrir - conexiones con la maquina local. - - <p><bf>3)</bf> Redireccionar todo el tráfico a la máquina - interna usando "alias addr". Esta es la solución más - sencilla. - - <sect3> - <heading>¿Ha hecho alguien una lista de puertos útiles?</heading> - - <p>Todavía no, pero se podría hacer, si hay - interés. En cada ejemplo, <tt>internal</tt> debe ser - reemplazado por la dirección IP de la máquina que - va a estar jugando. - - <itemize> - <item><bf>Quake</bf> - <p><tt>alias port udp internal:6112 6112</tt> - <p>Alternativamente, quizás estés interesado en - mirar en el - <htmlurl url="http://www.battle.net/support/proxy/" - name="www.battle.net">soporte de Quake a través de proxy">. - </itemize> - - <itemize> - <item><bf>Quake 2</bf> - <p><tt>alias port udp internal:27901 27910</tt> - </itemize> - - <itemize> - <item><bf>Red Alert</bf> - <p><tt>alias port udp internal:8675 8675</tt> - <p><tt>alias port udp internal:5009 5009</tt> - </itemize> - - <itemize> - <item><bf>Half Life</bf> - <p><tt>alias port udp internal:27005 27015</tt> - </itemize> - - <itemize> - <item><bf>PCAnywhere 8.0</bf> - <p><tt>alias port udp internal:5632 5632</tt> - <p><tt>alias port tcp internal:5631 5631</tt> - </itemize> - - - <sect2> - <heading>¿Qué son los errores FCS?</heading> - - <p>FCS significa <bf/F/rame <bf/C/heck <bf/S/equence. Cada paquete - ppp tiene un checksum añadido para asegurar que los datos - que se reciben son los datos que han sido enviados. Si el FCS de un - paquete entrante es incorrecto, el paquete es rechazado y se - incremente el contador HDLC FCS. Los valores de error HDLC se - pueden visualizar usando el comando <tt>show hdlc</tt>. - - <p>Si tu conexión es mala (o si tu driver serie está - rechazando paquetes), verás errores FCS ocasionales. En general - no tienes porque preocuparte de ellos. Si tienes un módem - externo, asegúrate que el cable está correctamente - aislado de interferencias - esto debería erradicar el problema. - - <p>Si tu conexión se corta tan pronto como has conectado y ves - gran cantidad de errores FCS, puede ser por que ti conexión no - es de 8 bits. Asegúrate de que tu módem no está - usando control de flujo (XON/XOFF) por software. Si tu conexión - de datos <bf>debe</bf> usar control de flujo por software, usa el - comando <tt>set accmap 0x000a0000</tt> para indicar al <bf>ppp</bf> - que "escape" los carácteres ^Q y ^S. - - <p>Otra razón para ver muchos errores FCS puede ser que el - remoto haya dejado de "hablar" <bf/PPP/. Deberís activar el - log asíncrono para determinar si los datos entrantes son de - un login o un prompt de shell. Si tienes un prompt de shell en el - extremo de la conexión, es posible terminar el ppp sin - cortar la conexión usando el comando <tt>close clp</tt> (usando - el comando <tt>term</tt> podrás conectar de nuevo con el shell - de la máquina remota. - - <p>Si no hay nada en el log que indique por que se ha terminado la - conexión, deberís preguntar al administrador del - sistema remoto porqué ha terminado la sesión. - - <sect2> - <heading>Nada de esto me ayuda - Estoy desesperado !</heading> - - <p>Si todo falla, envía toda la información que puedas, - incluyendo los ficheros de configuración, como arrancas el ppp, - las partes relevantes del fichero de log y la salida del comando - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?netstat" - name="netstat -rn"> (antes y despues de la conexión) a la lista - de distribución <url url="mailto:FreeBSD-questions@FreeBSD.org" - name="FreeBSD-questions@FreeBSD.org">, a la lista de - <url url="mailto:FreeBSD@es.FreeBSD.org" name="FreeBSD en - castellano"> o al grupo de news - <url url="news:comp.unix.bsd.FreeBSD.misc" - name="comp.unix.bsd.FreeBSD.misc"> y alguien te ayudará a - solucionar los problemas. - - <sect1> - <heading>No puedo crear el dispositivo <tt>/dev/ed0</tt>!</heading> - - <p>En el sistema de trabajo de red de Berkeley, los interfaces de - red solo son directamente accesibles por el código del kernel. Por - favor, mira el fichero <tt>/etc/rc.network</tt> y los man de los - programas de red allí mencionados. Si esto te deja totalmente - confundido, entonces tendrías que conseguir algun libro de - administración de red de cualquier sistema operativo basado en BSD; - con algunas excepciones significativas, administrar el sistema de red - en FreeBSD es básicamente igual que en SunOS 4.0 o Ultrix. - - <sect1> - <heading>¿Cómo puedo configurar alias de ethernets?</heading> - - <p>Añade ``<tt/netmask 0xffffffff/'' en el comando <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?ifconfig" name="ifconfig"> - como el siguiente: - - <verb> - ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff - </verb> - - <sect1> - <heading>¿Cómo hago para usar el otro puerto de una 3C503?</heading> - - <p>Si quieres usar los otros puertos, tendrás que especificar - parámetros adicionales en el comando - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ifconfig" - name="ifconfig">. El puerto por defecto es <tt/link0/. Para usar el - puerto AUI en lugar del BSN, usa <tt/link2/. Estos flags tendrían - que ser especificados usando las variable ifconfig_* en el fichero - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?rc.conf" - name="/etc/rc.conf">. - - <sect1> - <heading>Tengo problemas con NFS desde/hacia FreeBSD.</heading> - - <p>Algunas tarjetas de red son mejores que otras y algunas veces - pueden causar problemas con aplicaciones de uso intensivo de red - como NFS - - <p>Mira la <url url="../../handbook/nfs.html" name="entrada en el manual - de NFS"> para mas información sobre este tema. - - <sect1> - <heading>¿Porqué no puedo hacer NFS-mount desde Linux?</heading> - - <p>Algunas versiones de NFS para Linux solo aceptan peticiones - para montar unidades hechas desde un puerto privilegiado; intenta: - - <verb> - mount -o -P linuxbox:/blah /mnt - </verb> - - <sect1> - <heading>¿Porqué no puedo hacer NFS-mount desde una Sun?</heading> - - <p>Las estaciones de trabajo Sun con SunOS 4.x solo aceptan peticiones - de montar unidades hechas desde puertos privilegiados; intenta - - <verb> - mount -o -P sunbox:/blah /mnt - </verb> - - <sect1> - <heading>Tengo problemas usando ppp contra máquinas NeXTStep.</heading> - - <p>Intenta desactivar las extensiones TCP en - url="http://www.FreeBSD.org/cgi/man.cgi?rc.conf" name="/etc/rc.conf"> - cambiando la siguiente variable a NO: - - <verb> - tcp_extensions=NO - </verb> - - <p>Las máquinas Xylogic's Annex también tienen este - problema, por lo que tienes que hacer el mismo cambio para conectar con - ellas. - - <sect1> - <heading>¿Cómo activo soporte de IP multicast?</heading> - - <p>Las operaciones multicast están totalmente soportadas en FreeBSD - 2.0 y superiores. Si quieres usar tu máquina como router multicast, - necesitarás cargar el módulo de kernel <tt/ip_mrouted_mod/ y - ejecutar el programa <tt/mrouted/. - - <p>Para mas información: - - <verb> -Producto Descripcion Donde ---------------- ----------------------- --------------------------------------- -faq.txt Mbone FAQ ftp.isi.edu:/mbone/faq.txt -imm/immserv IMage Multicast ftp.hawaii.edu:/paccom/imm.src.tar.Z - for jpg/gif images. -nv Network Video. ftp.parc.xerox.com: - /pub/net-reseach/exp/nv3.3alpha.tar.Z -vat LBL Visual Audio Tool. ftp.ee.lbl.gov: - /conferencing/vat/i386-vat.tar.Z -wb LBL White Board. ftp.ee.lbl.gov: - /conferencing/wb/i386-wb.tar.Z -mmcc MultiMedia Conference ftp.isi.edu: - Control program /confctrl/mmcc/mmcc-intel.tar.Z -rtpqual Tools for testing the ftp.psc.edu:/pub/net_tools/rtpqual.c - quality of RTP packets. -vat_nv_record Recording tools for vat ftp.sics.se:archive/vat_nv_record.tar.Z - and nv. - </verb> - - <sect1> - <heading>¿Qué tarjetas de red están basadas en el chipset DEC PCI?</heading> - - <p>Aquí tienes una lista hecha por <url url="mailto:gfoster@driver.nsta.org" - name="Glen Foster">: - - <verb> - Fabricante Modelo - ---------------------------------------------- - ASUS PCI-L101-TB - Accton ENI1203 - Cogent EM960PCI - Compex ENET32-PCI - D-Link DE-530 - Dayna DP1203, DP2100 - DEC DE435, DE450 - 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 - </verb> - - <sect1> - <heading>¿Porqué tengo que usar el FQDN para hosts en mi servidor?</heading> - - <p>Probablemente el host estará en un dominio diferente; por - ejemplo, si estás en el dominio foo.bar.edu y quieres encontrar - un host llamado "mumble" en el dominio bar.edu, tendrás que - llamarlo por su nombre de dominio, "mumble.bar.edu", en vez de solo - "mumble". - - <p>Tradicionalmente, esto era permitido por los resolvers BIND BSD. - La versión actual de <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?named" name="bind"> que - se incluye en FreeBSD no resuelve abreviaciones de nombres para - hosts fuera de nuestro dominio. - - <sect1> - <heading>``Permission denied'' para todas las operaciones de red. - </heading> - - <p>Si tienes el kernel compilado con la opción <tt/IPFIREWALL/ - . debes tener en cuenta que la política por defecto es denegar - explícitamente todos los paquetes que no están - explícitamente permitidos. - - <p>Si involuntariamente has desconfigurado el firewall de tu sistema, - puedes restaurar la operatibilidad de la red tecleando el siguiente - comando como usuario root: - - <verb> - ipfw add 65534 allow all from any to any - </verb> - - <p>Para mas información en la configuración del firewall - de FreeBSD, mira la sección - <url url="../../handbook/firewalls.html" name="del manual">. - - <sect1> - <heading>¿Cuanto tiempo retrasa IPFW el tráfico?</heading> - - <p>Esta respuesta depende mucho en las reglas definidas y en la - versión del procesador. Para la mayoría de aplicaciones - que tienen que ver con la ethernet y pequeñas reglas, la - respuesta es, prácticamente nada. - - Aquí tienes una lista de cosas a tener en cuenta para crear reglas - de filtrado eficientes: - - <itemize> - - <item>Poner una regla "established" al inicio para manejar la - mayoría de trafico TCP. No pongas ninguna regla - <tt>allow tcp</tt> antes de esta. - - <item>Pon las reglas más usadas antes de las menos usadas - (<bf>sin modificar la permisividad del firewall</bf>). Puedes ver cuales - son las reglas más usadas examinando los contadores de paquetes - con la orden <tt>ipfw -a l</tt>. - - </itemize> - - <sect1> - <heading>¿Cómo puedo redirigir peticiones de una máquina - a otra?<(/heading> - - <p>Puedes redirigir peticiones FTP (y otros servicios) con el package - "socket", disponible en la colección de ports categoría - "sysutils". - Simplemente tienes que reemplazar la línea del servicio - correspondiente en el fichero /etc/services de la siguiente manera: - -<verb> -ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.foo.com ftp -</verb> - - <p>donde "ftp.foo.com" y "ftp" son la máquina y puerto - de destino. - - <sect1> - <heading>¿Dónde puedo conseguir una herramienta de control de ancho de banda?.</heading> - - <p>Existen dos herramientas de control de ancho de banda para FreeBSD. - <url url="http://www.csl.sony.co.jp/person/kjc/programs.html" - name="ALTQ"> es gratis; Bandwidth Manager de - <url url="http://www.etinc.com" name="Emerging Technologies"> es un - producto comercial. - - <sect1> - <heading>¿Porqué aparece "/dev/bpf0: device not configured"? - </heading> - - <p>El driver Berkeley Packet Filter <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?bpf" name="(bpf)"> necesita ser - activado para ejecutar programas que lo utilizan. Añade esto al - fichero de configuración de tu kernel y crea uno nuevo: - - <verb> - pseudo-device bpfilter # Berkeley Packet Filter - </verb> - - <p>A continuación, después de rebotar tendrás el - dispositivo. Esto puede hacerse entrando en el directorio <tt>/dev</tt> - y ejecutando el siguiente comando: - - <tscreen><verb> - # sh MAKEDEV bpf0 - </verb></tscreen> - - <p>Por favor, mira la <htmlurl url="../../handbook/kernelconfig-nodes.html" - name="entrada correspondiente en el handbook"> para más - información sobre la creación de dispositivos. - diff --git a/es_ES.ISO8859-1/FAQ/preface.sgml b/es_ES.ISO8859-1/FAQ/preface.sgml deleted file mode 100644 index d6062f010a..0000000000 --- a/es_ES.ISO8859-1/FAQ/preface.sgml +++ /dev/null @@ -1,635 +0,0 @@ -<!-- $FreeBSD$ --> -<!-- The FreeBSD Documentation Spanish Project --> - <sect> - <heading>Introducción<label id="preface"></heading> - - <p>Bienvenido a la FAQ de FreeBSD 2.X! - - <sect1> - <heading>¿Cuál es el objetivo de esta FAQ?</heading> - - <p>Como es habitual con las FAQ de los grupos de noticias (USENET), este - documento pretende abarcar las preguntas más frecuentes - referentes al sistema operativo FreeBSD (y por supuesto contestarlas!). - Pensadas en un principio para reducir el tráfico y evitar que se - hagan las mismas preguntas una y otra vez, las FAQ se han convertido en - un valorado recurso de obtención de información. - - <p>Todo el esfuerzo se ha hecho en intentar que esta FAQ sea lo más - informativa posible; si tienes cualquier comentario o sugerencia, por - favor, envía un mail a <url url="mailto:jesusr@FreeBSD.org" - name="FAQ maintainer">. - - <sect1> - <heading>¿Qué es FreeBSD?</heading> - - <p>De manera resumida, FreeBSD 2.X es un sistema operativo UNIX - indirectamente basado en el port de Net/2 para i386 de Berkeley - (conocido como 386BSD) realizado por William Jolitz's. Una - descripción más detallada de FreeBSD y de como puede - trabajar, se encuentra en - <url url="http://www.FreeBSD.org" name="FreeBSD home page">.**** - - <p>FreeBSD es usado por compañís, proveedores de Internet, - profesionales de la informática, estudiantes y usuarios - particulares de todo el mundo en su trabajo, educación y ocio. - Puedes ver a algunos de ellos en - <url url="http://www.FreeBSD.org/gallery.html" name="FreeBSD Gallery."> - - <p>Para información más detallada sobre FreeBSD, por - favor mira en - <url url="../../handbook/index.html" name="FreeBSD Handbook."> - - <sect1> - <heading>¿Cuál es el objetivo de FreeBSD?</heading> - - <p>El objetivo del Proyecto FreeBSD es proveer software que pueda ser - usado en todos los ámbitos sin ningún tipo de atadura. - Muchos de nosotros estamos significativamente involucrados en el - desarrollo del código (y del proyecto) y no sería cierto - decir que no esperabamos o esperamos algún tipo de - financiación, pero definitivamente no estamos preparados para - insistir en ello. Creemos que nuestra primera y principal - "misión" es proveer el código libremente, y en cualquier - ámbito, para que el código sea lo más expandido - posible y produzca los mayores beneficios. Esto es, creemos en uno de - los objetivos fundamentales del Software Libre y lo apoyamos de manera - incondicional. - - <p>El código fuente de los programas registrados bajo GNU - General Public License (GPL) o GNU Library General Public License (LGPL), - se provee bajo las condiciones fijadas por esas licencias. Debido a - complicaciones adicionales en el uso comercial de Software GPL, - intentamos reemplazar ese software por otros registrados bajo el - copyright BSD, menos estricto y más permisivo. - - - <sect1> - <heading>¿Porqué se llama FreeBSD?</heading> - - <p> - <itemize> - <item>Este sistema debe ser usado libremente, sin coste alguno - incluso para fines comerciales. - - <item>El código fuente completo del sistema operativo es de - libre distribución, y se han marcado el menor numero posible - de restricciones para su uso, distribución e - incorporación a otros trabajos (comerciales o no). - - <item>Cualquier persona que tenga alguna sugerencia de mejora y/o - "parche" de algun "bug", es libre de enviar el código y que - este sea añadido al código fuente de la - distribución original (sujeto a una o dos condiciones obvias). - </itemize> - - <p>Para todos nuestros lectores que su primer lenguaje no sea el - inglés, decir que la palabra "free" es usada en dos sentidos, - uno significando "sin coste" y el otro "puedes hacer lo que quieras". - Aparte de una o dos cosas que no puedes hacer con el código de - FreeBSD, por ejemplo decir que lo has escrito, realmente puedes hacer lo - que quieras con él. - - <sect1> - <heading>¿Cuál es la última versión de FreeBSD? - </heading> - - <p>La versión - <url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/3.2-RELEASE" - name="3.2R"> es la última <em>-stable</em>; fue declarada - definitiva (a partir de ahora "release") en Mayo de 1999. - - <p>Brevemente explicado, <bf>-stable</bf> está dirigido a - proveedores de Internet y otros usuarios corporativos que quieren - estabilidad y una sucesión tranquila en los cambios y - actualizaciones a las nuevas versiones y sus mejoras. Sólo debes - usar la rama <em/current/ si estás seguro de estar preparado para - su mayor "volatilidad" (relativa a <em/-stable/). - - <p>Las versiones Release se hacen cada <ref id="release_freq" - name="varios meses">. Mientras mucha gente mantiene más al - día los fuentes de FreeBSD (lee las preguntas en - <ref id="current" name="FreeBSD-current"> y <ref id="stable" - name="FreeBSD-stable">, hacerlo está pensado para gente que - se considere preparada para seguir el desarrollo continuo del - código fuente. - - - <sect1> - <heading>¿Qué es FreeBSD-current?<label id="current"></heading> - - <p><url url="../../handbook/cutting-edge.html#CURRENT" name="FreeBSD-current"> - es la versión de desarrollo del sistema operativo, la cual - acabará siendo la versión 4.0-RELEASE. Como es de suponer, - esta versión es de interés solo para los desarrolladores - que trabajan en el sistema y "masoquistas" de la programación. - Mira la - <url url="../../handbook/cutting-edge.html#CURRENT" name="sección - correspondiente"> en el <url url="../../handbook/index.html" - name="handbook"> para saber como funciona esta opción. - - <p>Si no estás familiarizado con el sistema operativo o no eres - capaz de identificar la diferencia entre un problema real y un problema - temporal, no deberías usar FreeBSD-current. Esta rama a veces - avanza muy rapidamente y puede no ser compilable durante unos días. La gente que usa FreeBSD-current es capaz de analizar los problemas y - solo comunicarlos si son motivo de errores. Preguntas como "al ejecutar - make world obtengo un error referente a grupos" en la lista de - distribución -current pueden quedar fuera de lugar. - - <p>Una release <url url="../releases/snapshots.html" name="snapshot"> - corresponde al desarrollo de la rama -current; distribuciones en - CDROM de esta versión están disponibles. Los objetivos - de cada release snapshot son: - - <itemize> - <item>Testear la última versión del software de - instalación. - - <item>Dar a la gente que le gustaría usar la versión - -current pero que no tiene el tiempo suficiente para seguir el ritmo - diario de actualizaciones, una manera fácil de poder instalarla - en su sistema. - - <item>Preservar un punto de referencia fijado en el código en - cuestión, sólo en caso de que "rompamos" algo realmente - importante. (De todas maneras, el CVS normalmente previene de que cosas - tan horribles como estas puedean suceder :) - - <item>Asegurar que las nuevas características desarrolladas - puedan ser suficientemente testeadas por el mayor número de - gente. - </itemize> - - <p>No se garantiza que ningún snapshot pueda ser considerado - "calidad de producción". Para conseguir estabilidad y un sistema - garantizado, tendrás que usar las versiones release. - - <p>Las release snapshot están directamente disponibles en - <url url="ftp://current.FreeBSD.org/pub/FreeBSD/"> y son generadas - un promedio de una vez por día para las ramas 4.0-current y - 3.0-stable. - - <sect1> - <heading>¿Qué significa FreeBSD-stable?<label id="stable"></heading> - - <p>Cuando la versión de FreeBSD 2.0.5 fue declarada release, - decidimos dividir el desarrollo de FreeBSD en dos ramas. Una rama fue - llamada <url url="../../handbook/stable.html" name="-stable"> con la - intención de que solo los parches bien testeados y pequeñas - actualizaciones de determinadas partes del sistema fuesen incluidas en - ella (para proveedores de Internet y otras empresas para los que no - resultan deseables cambios repentinos o experimentales). La otra rama fue - <url url="../../handbook/cutting-edge.html#CURRENT" name="-current">, - la cual ha sido, esencialmente, una línea común para el - desarrollo de la versión 4.0-RELEASE. Aquí hay un - pequeño gráfico ASCII para ayudar a entender este - sistema de desarrollo: - - -<verb> - 2.0 - | - | - | [2.1-stable] -*BRANCH* 2.0.5 -> 2.1 -> 2.1.5 -> 2.1.6 -> 2.1.7.1 [2.1-stable ends] - | (Mar 1997) - | - | - | [2.2-stable] -*BRANCH* 2.2.1 -> 2.2.2-RELEASE -> 2.2.5-RELEASE -> ... - | (Mar 1997) (Oct 1997) - | - | - 3.0-SNAPs (started Q1 1997) - | - | - 3.0.0-RELEASE (Oct 1998) - | - | [3.0-stable] -*BRANCH* 3.1 (Feb 1999) -> 3.2-RELEASE -> ... future 3.x releases ... - | (Mayo 1999) - | - \|/ - + - [4.0-current continues] -</verb> - - <p>La rama -current progresa lentamente hacia la 4.0 y superiores, - de la misma manera la anterior 2.2-estable fue sustituida por la - release 3.0, la nueva "rama estable" también conocida como - 3.0-stable. 4.0-current continuará hasta donde los desarrollos - activos lleguen cuando se convierta en release 4.0. En ese punto, 4.0 se - convertirá en 4.0-stable y se abrirá la nueva 4.1-current. - - <sect1> - <heading>¿Cuando se realizan las releases de FreeBSD?<label id="release_freq"></heading> - - <p>Como principio general, el equipo de FreeBSD solo hace una nueva - versión release de FreeBSD cuando cree que hay suficientes - características nuevas y/o parches que la justifiquen y esten - seguros de que con los cambios realizados no se compromete la estabilidad - de la release. Muchos usuarios creen que esta precaución es una - de las mejores características de FreeBSD. - - <p>Las versiones release son hechas cada 6 meses aproximadamente. - - <p>Para los usuarios que necesiten (o quieran) un poco más de - excitación, hay SNAP-release más frecuentemente, - particularmente durante el mes anterior a una release completa. - - <sect1> - <heading>¿Está FreeBSD disponible solo para PCs?</heading> - - <p>En estos momentos, sí, aunque se está trabajando en - portarlo a la arquitectura DEC Alpha. Si tu máquina tiene una - arquitectura diferente y necesitas un sistema de este tipo, te - aconsejamos que mires en <url url="http://www.netbsd.org/" name="NetBSD"> - o en <url url="http://www.openbsd.org/" name="OpenBSD">. - - <sect1> - <heading> ¿Quién es responsable de FreeBSD?</heading> - - <p>Las decisiones clave concernientes al proyecto FreeBSD como la - dirección a seguir y quién está autorizado a - añadir código a la distribución original, se hace a - través de un grupo de unas 17 personas llamado - <url url="../../handbook/staff.html#STAFF-CORE" name="core team">. - Existe también un grupo de unas 150 personas o - <url url="../../handbook/staff-committers.html" name="committers"> que - también están autorizadas a realizar cambios directamente - sobre la distribución original. - - <p>De todas maneras, la cambios importantes son discutidos en - las <ref id="mailing" name="listas de distribución"> en las que no - existen restricciones en quien participa en las discusiones. - - <sect1> - <heading>¿Dónde puedo conseguir FreeBSD?<label id="where-get"></heading> - - <p>Todas las versiones release de FreeBSD están disponibles via ftp - anónimo en <url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/" - name="el servidor FTP de FreeBSD">: - - <itemize> - <item>Para la actual 3.2-stable release, 3.2R mira en - <url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/3.2-RELEASE/" - name="3.2-RELEASE">. - - <item>Para la actual 4.0-current release, 4.0-SNAP, mira en - <url url="ftp://current.FreeBSD.org/pub/FreeBSD/" name="4.0">. - - <item><url url="ftp://releng22.FreeBSD.org/pub/FreeBSD/" - name="2.2 Snapshot"> releases son hechas vía - RELENG_2_2 rama (2.2.5 -> 2.2.x). Con la ocasional excepción de - pequeñas variaciones, la rama RELENG_2_2 esta siendo - cuidadosamente mantenida (no hay cambios experimentales y los parches - son añadidos solo después de ser testeados en -current). - - <item><url url="ftp://current.FreeBSD.org/pub/FreeBSD/" - name="4.0 Snapshot"> releases son hechas una vez al día para la - rama <ref id="current" name="-current">, siendo este un servicio - puramente para testeadores y desarrolladores. - - <p>FreeBSD esta también disponible via CDROM, en los siguientes - lugares: - - <p>Walnut Creek CDROM<newline> - 4041 Pike Lane, Suite F<newline> - Concord, CA 94520 USA<newline> - Orders: +1 800 786-9907<newline> - Questions: +1 925 674-0783<newline> - FAX: +1 925 674-0821<newline> - email: <url url="mailto:orders@cdrom.com" name="WC Orders address"> - <newline> - WWW: <url url="http://www.cdrom.com/" name="WC Home page"> - <newline> - - <p>En Australia: - - <p>Advanced Multimedia Distributors<newline> - Factory 1/1 Ovata Drive<newline> - Tullamarine, Melbourne<newline> - Victoria<newline> - Australia<newline> - Voice: +61 3 9338 6777<newline> - - CDROM Support BBS<newline> - 17 Irvine St<newline> - Peppermint Grove WA 6011<newline> - Voice: +61 9 385-3793<newline> - Fax: +61 9 385-2360<newline> - - Y en el Reino Unido: - - The Public Domain & Shareware Library<newline> - Winscombe House, Beacon Rd<newline> - Crowborough<newline> - Sussex. TN6 1UL<newline> - Voice: +44 1892 663-298<newline> - Fax: +44 1892 667-473<newline> - </itemize> - - <sect1> - <heading>¿Dónde encuentro información sobre las listas de distribución de FreeBSD?<label id="mailing"></heading> - - <p>Puedes encontrar toda la información en <url - url="../../handbook/eresources.html#ERESOURCES-MAIL" - name="la sección de listas del Handbook."> - - <sect1> - <heading>¿Dónde encuentro información sobre el - año 2000 (Y2K) en FreeBSD?</heading> - - <p>Tienes toda la información disponible en la <url - url="http://www.freebsd.org/y2kbug.html" name="página Y2K de - FreeBSD">. - - <sect1> - <heading>¿Qué grupos de noticias están disponibles sobre - FreeBSD?</heading> - - <p>Puedes encontrar toda la información en <url - url="../../handbook/eresources-news.html" - name="la sección de news del Handbook."> - - <sect1> - <heading> - ¿Hay algun canal IRC (Internet Relay Chat) sobre FreeBSD? - </heading> - - <p>Sí, muchas de las grandes redes de IRC tienen canales de - chat de FreeBSD. - - <itemize> - <item>El canal <tt>#FreeBSD</tt> en EFNet es un fórum de - FreeBSD, pero no acudas allí para obtener soporte técnico - o contar tus penas sobre como leer las páginas man ;). Es un canal - de chat, de principio a fín, y los temas que se tratan suelen ser - cosas como sexo, deportes o armas nucleares. - Estás Avisado!. - Disponible en el servidor <tt>irc.chat.org</tt>. - - <item>El canal <tt>#FreeBSD</tt> en DALNET está disponible - en el servidor <tt>irc.dal.net</tt> en USA y <tt>irc.eu.dal.net</tt> - en Europa. - - <item>El canal <tt>#FreeBSD</tt> en UNDERNET está disponible - en <tt>us.undernet.org</tt> en USA y <tt>eu.undernet.org</tt> en Europa. - Igual que en EFNET, no hagas preguntas técnicas. Es un canal de - chat, no de soporte. - - <item>Finalmente, puedes usar el canal <tt>#FreeBSD</tt> en BSDNET, - una pequeña red de chat, en el servidor <tt>irc.FreeBSD.org</tt>. - Esta red intenta ofrecer más soporte técnico y no ser tan - anárquica como EFNET, UNDERNET o DALNET. Porqué no ofrecer - respuestas de manera voluntaria hoy en BSDNET?. - </itemize> - - <p>Cada uno de estos canales es diferente y no están conectados - entre ellos. Sus estilos de chat difieren, por lo que podrís - probarlos todos para ver cual te gusta más. - - <sect1> - <heading>Libros sobre FreeBSD</heading> - - <p>El libro de Greg Lehey's ``Installing and Running FreeBSD'' - está disponible en Walnut Creek y se vende con el CDROM 2.2.5. - Hay también un libro - más completo titulado ``The Complete FreeBSD'', el cual tiene - manuales adicionales e incluye el CDROM 2.2.6. Debería estar - disponible en las mejores librerías. - - <p>Hay un proyecto de documentación de FreeBSD al que puedes - contactar (o mejor, participar), en la lista de distribución - <tt>doc</tt>: - <url url="mailto:doc@FreeBSD.org" name="<doc@FreeBSD.org>">. - En esta lista se tratan todos los temas referentes a la - documentación de FreeBSD. Para preguntas actuales sobre FreeBSD, - existe la lista <tt>question</tt>: <url url="mailto:questions@FreeBSD.org" - name="<questions@FreeBSD.org>">. - - <p>Está disponible un "manual" (handbook a patir de ahora) de - FreeBSD, y se puede encontrar en: - <url url="../../handbook/index.html" name="El Handbook de FreeBSD">. - Ten en cuenta que este es un trabajo en constante desarrollo y - actualización, por lo que algunas secciones podrían estar - incompletas. - - <p>Teniendo en cuenta que FreeBSD 2.2.x está basado en la - versión Berkeley 4.4BSD-Lite2, la mayoría de manuales de - 4.4BSD con aplicables a FreeBSD 2.2.x. O'Reilly y Asociados publican - estos manuales: - - <itemize> - <item>4.4BSD System Manager's Manual <newline> - By Computer Systems Research Group, UC Berkeley <newline> - 1st Edition June 1994, 804 pages <newline> - ISBN: 1-56592-080-5 <newline> - - <item>4.4BSD User's Reference Manual <newline> - By Computer Systems Research Group, UC Berkeley <newline> - 1st Edition June 1994, 905 pages <newline> - ISBN: 1-56592-075-9 <newline> - - <item>4.4BSD User's Supplementary Documents <newline> - By Computer Systems Research Group, UC Berkeley <newline> - 1st Edition July 1994, 712 pages <newline> - ISBN: 1-56592-076-7 <newline> - - <item>4.4BSD Programmer's Reference Manual <newline> - By Computer Systems Research Group, UC Berkeley <newline> - 1st Edition June 1994, 886 pages <newline> - ISBN: 1-56592-078-3 <newline> - - <item>4.4BSD Programmer's Supplementary Documents <newline> - By Computer Systems Research Group, UC Berkeley <newline> - 1st Edition July 1994, 596 pages <newline> - ISBN: 1-56592-079-1 <newline> - </itemize> - - <p>Una descripción de estos puede ser encontrada vía WWW en: - - <url url="http://gnn.com/gnn/bus/ora/category/bsd.html" - name="Descripción de libros sobre 4.4BSD"> - - <p>Para profundizar más en la organizacion del kernel de 4.4BSD, no - puedes ir mal con los siguientes: - - <p>McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, - and John Quarterman.<newline> - - <p><em>The Design and Implementation of the 4.4BSD Operating - System</em>. Reading, Mass. : Addison-Wesley, 1996.<newline> - ISBN 0-201-54979-4<newline> - - <p>Un buen libro en administración de sistemas es: - - <p>Evi Nemeth, Garth Snyder, Scott Seebass & Trent R. Hein,<newline> - ``Unix System Administration Handbook'', Prentice-Hall, 1995<newline> - ISBN: 0-13-151051-7<newline> - - <p><bf/NOTE/ Asegurate de conseguir la segunda edición, con - cubierta roja y no la primera. - - <p>Este libro cubre las necesidades básicas, así como - TCP/IP, DNS, NFS,SLIP/PPP, sendmail, INN/NNTP, impresión, etc,. - Es caro, (aproximadamente unos US$45-$55), pero vale la - pena. - También incluye un cd-rom con las fuentes de varias herramientas, - muchas de las cuales están incluidas, también, en la - versión 2.2.6R (cdrom) de FreeBSD, incluso incluyendo versiones - más modernas. - - <sect1> - <heading>¿Cómo accedo a la base de datos de Problem Report?</heading> - - <p>La base de datos de Problem Report puede ser consultada vía - web a traves de la dirección - <url url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi" - name="query">. También pueden ser enviados vía web a - través de la dirección - <url url="http://www.FreeBSD.org/send-pr.html" - name="envio">. El comando <em>send-pr(1)</em> también puede ser - usado para el envío de reporte de problemas. - - <sect1> - <heading> - ¿Dónde puedo obtener versiones ASCII/PstScript de la FAQ? - </heading> - - <p>La FAQ actualizada está disponible en el servidor Web de - FreeBSD o en cualquiera de los mirrors en formato PostScript y texto - (7 bits ASCII y 8 bits Latin-1). - - <p>Formato PostScript (unos 370KB): - <itemize> - <item><url url="http://www.FreeBSD.org/FAQ/FAQ.ps" - name="http://www.FreeBSD.org/FAQ/FAQ.ps"> - </itemize> - - <p>Formato ASCII (unos 220KB): - <itemize> - <item><url url="http://www.FreeBSD.org/FAQ/FAQ.ascii" - name="http://www.FreeBSD.org/FAQ/FAQ.ascii"> - </itemize> - - <p>Formato texto ISO 8859-1 (unos 220KB): - <itemize> - <item><url url="http://www.FreeBSD.org/FAQ/FAQ.latin1" - name="http://www.FreeBSD.org/FAQ/FAQ.latin1"> - </itemize> - - <sect1> - <heading>¿Dónde puedo obtener versiones ASCII/PostScript del Handbook? - </heading> - - <p>El Hansbook actualizado está disponible en el servidor Web de - FreeBSD o en cualquiera de los mirrors en formato PostScript y texto - (7 bits ASCII y 8 bits Latin-1). - - <p>Formato PostScript (unos 1.7MB): - <itemize> - <item><url url="http://www.FreeBSD.org/handbook/handbook.ps" - name="http://www.FreeBSD.org/handbook/handbook.ps"> - </itemize> - - <p>Formato ASCII (unos 1080KB): - <itemize> - <item><url url="http://www.FreeBSD.org/handbook/handbook.ascii" - name="http://www.FreeBSD.org/handbook/handbook.ascii"> - </itemize> - - <p>Formato texto ISO 8859-1 (unos 1080KB): - <itemize> - <item><url url="http://www.FreeBSD.org/handbook/handbook.latin1" - name="http://www.FreeBSD.org/handbook/handbook.latin1"> - </itemize> - - <sect1> - <heading>El Handbook en ASCII no está en texto plano!</heading> - - <p>Cierto, las versiones ASCII y Latin1 del Handbook no están - estrictamente en formato de texto plano; contienen carácteres de - control de impresión asumiendo que el documento será - enviado a una impresora. Si necesitas tenerlos en un formato leible, - pasa el fichero por el programa col: - - <verb> - $ col -b < inputfile > outputfile - </verb> - - <sect1> - <heading>Me gustaría ser Mirror del web de FreeBSD!</heading> - - <p>Hay múltiples maneras de hacer mirror de las páginas web. - - <itemize> - <item>Usando CVSUP: Puedes obtener todo el contenido del web usando - el programa CVSUP desde el servidor cvsup.FreeBSD.org. Añade - esta línea a tu fichero de configuración de cvsup: - -<verb> -www release=current hostname=/home base=/usr/local/etc/cvsup -prefix=/usr/local/www/data/www.FreeBSD.org delete old use-rel-suffix - -</verb> - - <item>Usando rsync: Mira en <url url="http://www.FreeBSD.org/internal/mirror.html" - name="la página de mirrors"> para más información. - <item>Usando mirror de FTP: Puedes bajarte la copia de los contenidos - del web usando tu herramienta favorita de mirror de FTP. Simplemente - empieza en ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www. - </itemize> - - <sect1> - <heading>Me gustaría traducir la documentación.</heading> - <p>Bueno, no podemos pagar, pero quizás te enviemos un cd-rom o - una camiseta y añadiremos tu nombre en la sección - "Contributors" del Handbook si nos envías una traducción - de la documentación. - - <sect1> - <heading>Otras fuentes de información.</heading> - - <p>Los siguientes grupos de news contienen temas relacionados con - FreeBSD y sus usuarios: - - <itemize> - <item><url url="news:comp.unix.bsd.FreeBSD.announce" - name="comp.unix.bsd.FreeBSD.announce"> (moderada) - - <item><url url="news:comp.unix.bsd.FreeBSD.misc" - name="comp.unix.bsd.FreeBSD.misc"> - - <item><url url="comp.unix.bsd.misc" name="comp.unix.bsd.misc"> - </itemize> - - <p>Recursos Web: - - <itemize> - <item>The <url url="http://www.FreeBSD.org/" name="FreeBSD Home Page">. - - <item><label id="pao">Si tienes un portátil asegurate de pasar - por <url url="http://www.jp.FreeBSD.org/PAO/" - name="Tatsumi Hosokawa's Mobile Computing page"> . - - <item><label id="smp">Información sobre SMP (Symmetric - MultiProcessing), <url - url="http://www.FreeBSD.org/~fsmp/SMP/SMP.html" - name="soporte de SMP">. - - <item><label id="multimedia">Información sobre aplicaciones <url - url="http://www.FreeBSD.org/~faulkner/multimedia/mm.html" - name="multimedia">. Si estás interesado específicamente - en el chip <url url="http://www.FreeBSD.org/~ahasty/Bt848.html" - name="Bt848"> de vídeo captura, entonces sigue este link - </itemize> - - <p>El FreeBSD handbook tiene una completa bibliografía en la - sección <url url="../../handbook/bibliography.html" - name="bibliografía"> - la cual recomendamos leer si estás interesado en comprar libros - actuales relacionados con estos temas. - - </sect> - diff --git a/es_ES.ISO8859-1/FAQ/serial.sgml b/es_ES.ISO8859-1/FAQ/serial.sgml deleted file mode 100644 index 35f6b3cb71..0000000000 --- a/es_ES.ISO8859-1/FAQ/serial.sgml +++ /dev/null @@ -1,538 +0,0 @@ -<!-- $FreeBSD$ --> -<!-- The FreeBSD Documentation Spanish Project --> - <sect> - <heading>Comunicaciones serie<label id="serial"></heading> - - <p>Esta sección responde las preguntas mas frecuentes sobre las - comunicaciones serie con FreeBSD. PPP y SLIP se tratan en la - sección <ref id="networking" name="Networking">. - - <sect1> - <heading>¿Cómo se si FreeBSD ha encontrado mis puertos serie?</heading> - - <p>Cuando el kernel de FreeBSD arranca, testeará los puertos serie - del sistema que estén configurados en el kernel. Puedes estar - atento a los mensajes de la cónsola o ejecutar el comando: - - <verb> - dmesg | grep sio - </verb> - - <p>una vez el sistema esté en funcionamiento. - - <p>Aquí tienes un ejemplo del resultado de la ejecución - del comando: - - <verb> - sio0 at 0x3f8-0x3ff irq 4 on isa - sio0: type 16550A - sio1 at 0x2f8-0x2ff irq 3 on isa - sio1: type 16550A - </verb> - - <p>Esto muestra dos puertos serie. El primero en la irq 4 usando - la dirección <tt/0x3f8/, y tiene una UART 16550A. El segundo usa - el mismo tipo de chip pero está en la irq 3 y usa la - dirección <tt/0x2f8/. Los módems internos son tratados - como puertos serie, exceptuando que siempre tienen un módem - adjuntado al puerto. - - <p>El kernel <tt/GENERIC/ incluye soporte para dos puertos serie - usando la misma irq y dirección que en el ejemplo anterior. Si - estas opciones no son correctar para tu sistema, o si has añadido - módems internos o tienes más puertos serie de los que - están configurados en el kernel, solo tienes que reconfigurar el - kernel. Mira en la sección - <ref id="make-kernel" name="about building a kernel"> para más - detalles. - - <sect1> - <heading>¿Cómo se si FreeBSD ha encontrado mi módem interno?</heading> - - <p>Respondido en la sección anterior. - - <sect1> - <heading>He actualizado a 2.0.5 y mi <tt/tty0X/ no existen!</heading> - - <p>No te preocupes, han sido integrados en los dispositivos <tt/ttydX/. - Tendrás que modificar algunos ficheros antiguos de - configuración. - - <sect1> - <heading>¿Cómo accedo a los puertos serie en FreeBSD?</heading> - - <p>El tercer puerto serie, <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?sio" name="sio2"> (conocido - como COM3 en DOS), está en <tt>/dev/cuaa2</tt> para dispositivos de - salida (dial-out) y en <tt>/dev/ttyd2</tt> para dispositivos de - entrada (dial-in). Cuál es la diferencia entre estas dos clases de - dispositivos?. - - <p>Usas los <tt/ttydX/ para los entrantes. Al abrir <tt>/dev/ttydX</tt> - en "blocking mode", un proceso esperará para que el dispositivo - <tt/cuaaX/ correspondiente se vuelva inactivo. Cuando abres un - dispositivo <tt/cuaaX/, se asegura de que el puerto serie no está - en uso por un dispositivo <tt/ttydX/. Si el puerto está disponible, - se lo "roba" al dispositivo <tt/ttydX/. Al mismo tiempo, el dispositivo - <tt/cuaaXX/ no se preocupa de la detección de portadora. Con este - esquema, y un módem en respuesta automática, puedes - recibir usuarios remotos y puedes hacer conexiones externas con el mismo - módem, mientras el sistema se preocupa de evitar los posible - conflictos. - - <sect1> - <heading>¿Cómo activo el soporte de tarjetas serie multipuerto?</heading> - - <p>Otra vez, en la sección de configuración del kernel - tienes la información. Para una tarjeta multipuerto, pon una - línea <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?sio" - name="sio"> para cada puerto serie de la tarjeta en el fichero de - configuración del kernel. Especifica la irq y vector solo en una - de las líneas. - Todos los puertos de la tarjeta compartirán la misma irq. Por - consistencia, usa el último puerto serie para especificar la irq. - De la misma manera, especifica la opción <tt/COM_MULTIPORT/. - - <p>El siguiente ejemplo es para una tarjeta AST 4-port en la irq 7: - - <verb> - 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 - </verb> - - <p>Los flags indican que el puerto master tiene un número menor - de 7 (<tt/0x700/), los diagnósticos están activados durante - el testeo (<tt/0x080/), y los puertos comparten una irq (<tt/0x001/). - - <sect1> - <heading>¿Puede manejar FreeBSD tarjetas multipuerto compartiendo irq?</heading> - - <p>Todavía no. Tendrás que usar una irq diferente para cada - tarjeta. - - <sect1> - <heading>¿Puedo cambiar los parámetros serie por defecto para un puerto?</heading> - - <p>El dispositivo <tt/ttydX/ (o <tt/cuaaX/) es el que querrás abrir - para tus aplicaciones. Cuando un proceso abre el dispositivo, - tendrá una serie de configuraciones I/O por defecto. Puedes ver - estas configuraciones con el comando: - - <verb> - stty -a -f /dev/ttyd1 - </verb> - - Cuando le cambias la configuración a este dispositivo, este cambio - se mantiene hasta que el dispositivo se cierra. Cuando se reabre, - vuelve a la configuración por defecto. Para hacer cambios sobre la - configuración por defecto, puedes abrir y ajustar las opciones del - "estado inicial" del dispositivo. Por ejemplo, para poner el - dispositivo tty5 en modo <tt/CLOCAL/, 8 bits, y contro del flujo - <tt>XON/XOFF</tt>, haz - - <verb> - stty -f /dev/ttyid5 clocal cs8 ixon ixoff - </verb> - - <p>Un buen lugar para hacer esto es en <tt>/etc/rc.serial</tt>. Ahora, - una aplicación tendrá esta configuración por - defecto cuando abra el puerto <tt/ttyd5/. - - <p>También puedes prevenir o limitar ciertos cambios que pretenda - hacer una aplicación. Para ello, ajusta el "lock state" del - dispostivo. Por ejemplo, para bloquear la velocidad del puerto - <tt/ttyd5/ a 57600 bps, haz: - - <verb> - stty -f /dev/ttyld5 57600 - </verb> - - <p>Ahora, una aplicación que abre <tt/ttyd5/ e intenta cambiar la - velocidad del puerto no podrá hacerlo. - - <p>Naturalmente, deberías hacer que el estado inicial y el estado - de bloqueo sean solo de escritura para el usuario <tt/root/. El script - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?MAKEDEV" - name="MAKEDEV"> <bf/NO/ hace esto cuando crea el dispositivo. - - <sect1> - <heading>¿Cómo puedo activar logins de entrada en mi módem?</heading> - - <p>Quieres hacerte proveedor de Internet, eh?. Primero, - necesitarás uno o mas módems que puedan responder - automáticamente. Tu módem necesitará activar el - carrier-detect sólo cuando detecte una portadora y no tenerla - activada continuamente. Necesitará cortar la comunicación - y resetearse él mismo cuando la línea <tt/DTR/ pase de on - a off. - Probablemente usaría <tt>RTS/CTS</tt> para el control de flujo. - Finalmente, debe usar una velocidad constante entre el ordenador y - él mismo, pero debería negociar la velocidad entre - él mismo y el módem remoto. - - <p>Para muchos módems compatibles Hayes, este comando - creará estas configuraciones y las grabará en la memoria no - volátil: - - <verb> - AT &C1 &D3 &K3 &Q6 S0=1 &W - </verb> - - <p>Mira la sección <ref id="direct-at" name="enviar comandos AT"> - para saber como enviar estas configuraciones al módem sin - necesidad de un programa terminal de DOS. - - <p>A continuación, añade una línea en el fichero - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys"> - para el módem. Este fichero lista todos los puertos en los que el - sistema operativo esperará los logins. La línea - sería como esta: - - <verb> - ttyd1 "/usr/libexec/getty std.57600" dialup on insecure - </verb> - - <p>Esta línea indica que el segundo puerto serie - <tt>/dev/ttyd1</tt> tiene un módem conectado, la velocidad es de - 57600 bps y sin paridad (<tt/std.57600/. El tipo de terminal para este - puerto es "dialup". - El puerto está "on" y es inseguro (lo que significa que los logins - como root no son permitidos). - - <p>Muchos usuarios, ponen un sus ficheros .profile o .login un - prompt para el tipo de terminal. El ejemplo muestra el puerto como - inseguro. Para ser root en ese puerto, hacer el login como un usuario - normal, y ejecutar el comando su. Si en lugar de inseguro, el terminal - es seguro (secure), puedes hacer login como root directamente. - - <p>Despues de modificar el fichero <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys">, - necesitas lanzar una señal <tt/HUP/ al proceso <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?init" name="init">: - - <verb> - kill -HUP 1 - </verb> - - <p>Esto fuerza al proceso init a releer el fichero <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys">. - El proceso init arrancará los procesos getty en todos los puertos - configurados como "on". Puedes ver si los logins están disponibles - en los puertos tecleando: - - <verb> - ps -ax | grep '[t]tyd1' - </verb> - - <p>deberías ver algo como: - - <verb> - 747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1 - </verb> - - <sect1> - <heading>¿Cómo puedo conectar un dumb terminal a un FreeBSD?</heading> - - <p>Si estás usando otro ordenador como terminal en tu sistema - FreeBSD, usa un cable null módem entre los dos puertos serie. Si - ya estás usando un terminal, mira en las instrucciones del mismo. - - <p>A continuación, modifica el fichero - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys"> - Por ejemplo, si estás instalando un terminal WYSE-50 en el quinto - puerto serie, usa una línea como esta: - - <verb> - ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure - </verb> - - <p>Este ejemplo muestra que el puerto <tt>/dev/ttyd4</tt> tiene un - terminal Wyse50 conectado a 38400 bps sin paridad y los logins de - root son permitidos. - - <sect1> - <heading>¿Porqué no puedo ejecutar <tt/tip/ o <tt/cu/?</heading> - - <p>En tu sistema, los programas <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip"> y <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?cu" name="cu"> son probablemente - ejecutables solo por <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?uucp" - name="uucp"> y el grupo <tt/dialer/. Puedes usar el grupo <tt/dialer/ - para controlar quien tiene acceso al módem o sistemas remotos. - Sólo tienes que añadirte tu mismo al grupo dialer. - - <p>Alternativamente, puedes dejar que todos los usuarios de tu sistema - ejecuten <tt/tip/ y <tt/cu/ tecleando: - - <verb> - # chmod 4511 /usr/bin/cu - # chmod 4511 /usr/bin/tip - </verb> - - <sect1> - <heading>Mi módem hayes no está soportado. ¿Que puedo hacer?</heading> - - <p>Actualmente, el man de <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip"> está - anticuado. Hay un dialer Hayes genérico. Solo usa - ``<tt/at=hayes/'' en tu fichero <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?remote" name="/etc/remote">. - - <p>El driver Hayes no es tan desarrollado como para reconocer algunas - de las características avanzadas de los módems modernos, - mensajes como <tt/BUSY/, <tt/NO DIALTONE/ o <tt/CONNECT 115200/ lo - pueden confundir. - Deberías anular estos mensajes cuando uses <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip"> (utilizando - la cadena <tt/ATX0&W/). - - <p>También, el timeout de llamada para <tt/tip/ está en 60 - segundos. Tu módem debería usar algo menor, o tip puede - pensar que hay un problema de comunicación. Intenta con - <tt/ATS7=45&W/. - - <sect1> - <heading> - ¿Cómo puedo introducir estos comandos AT?<label id="direct-at"> - </heading> - - <p>Haz lo que se llama una entrada <tt/directa/ en el fichero - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?remote" - name="/etc/remote">. Por ejemplo, si tu módem está - conectado al primer puerto serie, <tt>/dev/cuaa0</tt>, escribe la - siguiente línea: - - <verb> - cuaa0:dv=/dev/cuaa0:br#19200:pa=none - </verb> - - <p>Usa la velocidad más alta que soporte tu módem en la - sección br. - A continuación teclea <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip cuaa0"> - y estarás conectado al módem. - - <p>Si no existe el dispositivo <tt>/dev/cuaa0</tt> en tu sistema - , teclea lo siguiente: - - <verb> - # cd /dev - # ./MAKEDEV cuaa0 - </verb> - - <p>O usa el comando cu como root con los siguientes parámetros: - - <verb> - # cu -l``line'' -s``speed'' - </verb> - - <p>con line siendo el puerto serie (por ejemplo <tt>/dev/cuaa0</tt>>) - y speed siendo la velocidad (por ejemplo <tt>57600</tt>. Cuando - termines de entrar los comandos AT, pulsa la tecla <tt>.</tt> para - salir. - - <sect1> - <heading>El símbolo <tt/@/ no funciona correctamente!</heading> - - <p>El símbolo <tt/@/ en la opción de números de - teléfono indica a tip que busque en el fichero <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?phones(5)" name="phone(5)"> un - número de teléfono determinado. Pero el símbolo - <tt/@/ es también un carácter especial en otros ficheros y - opciones como <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?remote" - name="/etc/remote">. Pon una contrabarra junto al carácter: - - <verb> - pn=\@ - </verb> - - <sect1> - <heading>¿Cómo puedo llamar desde la línea de comandos?</heading> - - <p>Pon lo que se llama una entrada <tt/genérica/ en el fichero - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?remote" - name="/etc/remote">. Por ejemplo: - - <verb> - 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: - </verb> - - <p>Entonces puedes hacer cosas como <tt/tip -115200 5551234/. Si - prefieres usar <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?cu" - name="cu"> antes que <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip">, usa una - entrada genérica de cu: - - <verb> - cu115200|Use cu to dial any number at 115200bps:\ - :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du: - </verb> - - <p>y teclea ``<tt/cu 5551234 -s 115200/''. - - <sect1> - <heading>¿Tengo que teclear la velocidad cada vez que hago esto?</heading> - - <p>Pon una entrada para <tt/tip1200/ o <tt/cu1200/, pero puedes usar - la velocidad que mejor se amolde a tus necesidades. <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip"> piensa que - una buena velocidad por defecto es 1200 bps ya que busca una entrada - <tt/tip1200/. No tienes por que usar 1200 bps. - - <sect1> - <heading>Accedo a diferentes hosts a través de un servidor de terminales.</heading> - - <p>En lugar de esperar a que estés conectado y teclear - <tt/CONNECT <host>/ cada vez, usa la opción <tt/cm/ de tip. - Por ejemplo, estas entradas en el fichero <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?remote" name="/etc/remote">: - - <verb> - 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: - </verb> - - <p>Esto hará que puedas teclear <tt/tip pain/ o <tt/tip muffin/ - para conectarte a las máquinas pain o muffin. - - <sect1> - <heading>¿Puede tip intentar más de una línea para cada lugar?</heading> - - <p>Este es un problema habitual en universidades con diferentes - líneas de módem y unos cientos de usuarios intentado - usarlas... - - <p>Haz una entrada para tu universidad en el fichero <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?remote" name="/etc/remote"> - y usa <tt>\@</tt> para la opción <tt/pn/: - - <verb> - big-university:\ - :pn=\@:tc=dialout - dialout:\ - :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none: - </verb> - - <p>Entonces, lista los números de teléfono de la - universidad en el fichero <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?phones" name="/etc/phones">: - - <verb> - big-university 5551111 - big-university 5551112 - big-university 5551113 - big-university 5551114 - </verb> - - <p><htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?tip" - name="tip"> intentará cada uno de estos números en el - orden en el que estén listados. Si quieres que se realicen - reintentos, ejecuta <tt/tip/ en una bucle while. - - <sect1> - <heading>¿Porqué tengo que teclea CTRL+P dos veces para enviar CTRL+P una vez?</heading> - - <p>CTRL+P es el carácter por defecto de "forzar", usado para - indicarle al programa - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip"> - que el próximo carácter es un dato literal. Puedes - configurar el carácter "forzar" a cualquier otro carácter - con el escape <tt/~s/, el cual significa "poner una variable". - - <p>Teclea <tt/~sforce=<single-char>/ seguido de una nueva - línea. <tt/<single-char>/ es cualquier carácter - simple. Si dejas libre <tt/<single-char>/ entonces el - carácter de forzar es el caracter nul, al cual puedes acceder - tecleando CTRL+2 o CTRL+SPACE. Un valor más adecuado para - <tt/<single-char>/ es SHIFT+CTRL+6, el cual solo es usado en - algunos servidores de terminales. - - <p>Puedes tener el carácter de forzar donde quieras, especificando - lo siguiente en tu fichero <tt>$HOME/.tiprc</tt> - - <verb> - force=<single-char> - </verb> - - <sect1> - <heading>De repente, todo lo que tecleo es en mayúsculas</heading> - - <p>Has debido pulsar CTRL+A, <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip"> tiene este - carácter especial para gente que tenga la tecla caps-lock - estropeada. Usa <tt/~s/ como en la sección anterior y pon la - variable "raisechar" a un valor razonable. De hecho, puedes ponerla al - mismo valor que que el carácter de forzar, si no esperas usar - estas características. - - <p>Aqui hay un ejemplo del fichero .tiprc perfecto para usuarios de - Emacs que necesiten teclear CTRL+2 y CTRL+A muchas veces: - - <verb> - force=^^ - raisechar=^^ - </verb> - - <p>El simbolo ^^ es SHIFT+CTRL+6. - - <sect1> - <heading>¿Cómo puedo hacer transferecia de ficheros con <tt/tip/?</heading> - - <p>Si estás conectado con otro sistema UNIX, puedes enviar y - recibir ficheros con <tt/~p/ (put) y <tt/~t/ (take). Estos comandos - ejecutan - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?cat" name="cat"> y - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?echo" name="echo"> - en el sistema remoto para aceptar y enviar ficheros. La sintaxis es: - - <verb> - ~p <local-file> [<remote-file>] - ~t <remote-file> [<local-file>] - </verb> - - <p>No hay chequeo de errores, por lo que es mejor usar otro protocolo - como zmodem. - - <sect1> - <heading>¿Cómo puedo usar zmodem con <tt/tip/?</heading> - - <p>Primero, instala uno de los programas zmodem de la colección de - ports (por ejemplo - <htmlurl url="http://www.FreeBSD.org/cgi/ports.cgi?^lrzsz" name="lrzsz"> - y <htmlurl url="http://www.FreeBSD.org/cgi/ports.cgi?^rzsz" - name="rzsz">). - - <p>Para recibir ficheros, inicia el programa de envío en la parte - remota. A continuación, pulsa enter y teclea - <tt/~C rz/'' (or ``<tt/~C lrz/'' si instalaste lrzsz) para empezar - a recibir localmente. - - <p>Para enviar ficheros, inicia el programa de recepción en la - parte remota. A continuación pulsa enter y teclea - <tt/~C sz <files>/'' (o <tt/~C lsz <files>/) para enviarlos - al sistema remoto. - - <sect1> - <heading>FreeBSD parece que no puede encontrar mis puertos series - aún cuando la configuración es correcta.</heading> - - <p>Las placas bases y tarjetas con UARTs de Acer no son detectadas - correctamente por FreeBSD durante la fase de detección serie. - Obten un parche de - <url url="http://www.lemis.com/serial-port-patch.html" - name="www.lemis.com"> para solucionar el problema. - - - </sect> - diff --git a/es_ES.ISO8859-1/FAQ/troubleshoot.sgml b/es_ES.ISO8859-1/FAQ/troubleshoot.sgml deleted file mode 100644 index 4a9ce011cf..0000000000 --- a/es_ES.ISO8859-1/FAQ/troubleshoot.sgml +++ /dev/null @@ -1,418 +0,0 @@ -<!-- $FreeBSD$ --> -<!-- The FreeBSD Documentation Spanish Project --> - <sect> - <heading>Problemas<label id="troubleshoot"></heading> - - <sect1> - <heading>Tengo bloques erróneos en mi disco duro!<label id="awre"></heading> - - <p>Los discos SCSI deberían ser capaces de marcar estos bloques - erróneos automaticamente para que no presenten problemas. Algunos - discos, por alguna razón desconocida, se venden con esta - característica desactivada. - - <p>Para activar esta opción, tendrás que editar una de las - opciones del dispositivo, lo que puede ser hecho con FreeBSD tecleando el - siguiente comando (como root): - - <verb> - scsi -f /dev/rsd0c -m 1 -e -P 3 - </verb> - - <p>y cambiando los valores de AWRE y ARRE de 0 a 1:- - - <verb> - AWRE (Auto Write Reallocation Enbld): 1 - ARRE (Auto Read Reallocation Enbld): 1 - </verb> - - <p>Para otros tipos de discos, dependes de las características de - los sistemas operativos. Desafortunadamente, el comando "bad144" - que se incluye en FreeBSD, necesita ser desarrollado más en - profundidad. - - <p>Se <em/supone/ que los discos IDE incluyen de serie la posibilidad - de "remapear" los bloques dañados; si tienes documentación - de tu disco, podrás ver si esta opción está activada - o desactivada. - - - <sect1> - <heading>FreeBSD no reconoce mi Bustek 742a EISA SCSI!</heading> - - <p>Esta información es específica para la tarjeta 742a, - pero puede ser aplicable a otras tarjetas Buslogic. (Bustek = Buslogic) - - <p>Existen dos versiones de la tarjeta 742a. Son revisiones de - hardware A-G y H. La letra de revisión está situada - después del número de ensamblaje. La 742a tiene 2 ROMs, - una es la BIOS y la otra es el Firmware. FreeBSD no se fija en la - versión de BIOS de la tarjeta, pero si en la de Firmware. - Buslogic te enviará una actualización de de las ROMs si te - pones en contacto con su departamento técnico. La BIOS y el - Firmware son distribuidas de manera inseparable. Deberías tener - la versión de Firmware más actualizada para la - revisión de hardware de tu tarjeta. - - <p>Las tarjetas con revisión A-G solo pueden aceptar BIOS/Firmware - 2.41/2.21. La revisión H y superiores pueden aceptar las versiones - más actuales 4.70/3.37. La diferencia entre las versiones de - Firmware es que la 3.38 soporta "round robin". - - <p>Las tarjetas Buslogic tienen un número de serie serigrafiado - en ellas. Si tienes una revisión de hardware antigua, puedes llamar - al departamento de RMA de Buslogic y darles el número de serie de - la tarjeta para intentar cambiarla por una revisión superior del - hardware. - - <p>FreeBSD 2.1 solo soporta revisiones de Firmware 2.21 o superiores. - Si tienes una versión inferior, tu tarjeta no será - reconocida como Buslogic. Quizás sea reconocida como una Adaptec - 1540. Las primeras versiones de Firmware de Buslogic contienen una modo - de emulación de la AHA1540. - - <p>Si tienes una revisión de hardware antigua y consigues una - más actual (2.21), necesitarás chequear la posición - del jumper W1 y asegurarte que está en la posición B-C - (por defecto esta en B-C). - - - <sect1> - <heading> - Mi controladora SCSI HP Netserver's no es detectada! - </heading> - - <p>Este es un problema ya conocido. Las controladoras SCSI EISA - integradas en la placa base en las máquinas HP Netserver, ocupan - el slot numero 11. El espacio de direcciones para los slots - EISA >=10 colisionan con los espacios de direcciones asignados - para los dispositivos PCI, y la autoconfiguración de FreeBSD no - maneja esta situación demasiado bien. - - <p>Lo mejor que puedes hacer es pretender que no existan clases - de rangos de direcciones :), cambiando el valor de la opción del - kernel <tt/EISA_SLOTS/ a un valor de 12. - Configura y compila un nuevo kernel como se describe en la - <url url="../../handbook/kernelconfig.html" - name="entrada correspondiente del manual">. - - <p>Por supuesto, esto presenta un pequeño problema. Para poder - solucionarlo, es necesario un truco en la utilidad de - configuración. No uses el interface "visual", simplemente teclea - lo siguiente en la línea de comando de la utilidad - - <verb> - eisa 12 - quit - </verb> - - <p>Esperamos que en las próximas versiones tengamos solucionados - estos temas. - - <sect1> - <heading>¿Qué ocurre con la controladora IDE CMD640?</heading> - - <p>No funciona. No puede manejar comandos en los dos canales - simultáneamente. - - <p>Hay una solución posible y se activa automáticamente si - tu sistema usa este chip. Para más detalles, referirse al man del - driver de discos (man 4 wd). - - <p>Si todavía estás usando FreeBSD 2.2.1 o 2.2.2 con una - controladora IDE CMD640 y quieres usar el segundo canal, crea un nuevo - kernel con <tt/options "CMD640"/ activada. Esta es la opción por - defecto en la versión 2.2.5 y superiores. - - <sect1> - <heading>Tengo mensajes como ``<tt/ed1: timeout/''.</heading> - - <p>Esto, normalmente es causado por conflictos de interrupciones (por - ejemplo, dos tarjetas usando la misma IRQ). Las versiones - anteriores a la 2.0.5R eran tolerantes con los problemas de - conflictos de IRQ. A partir de esa versión, los conflictos de IRQ - ya no son tolerados. Arranca con la opción -c y cambia la entrada - correspondiente a tu tarjeta. - - <p>Si estás usando conectores BCN en tu tarjeta de red, el mensaje - de error puede ser debido a una mala terminación de la red. Para - chequear esto, conecta un terminador directamente a la salida BNC de la - tarjeta (sin cable) y mira si el mensaje desaparece. - - <sect1> - <heading>Cuando monto el CDROM, obtengo ``Incorrect super block''.</heading> - - <p>Tienes que indicar el tipo de dispositivo que quieres montar. Por - defecto <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?mount" - name="mount"> asumirá que el dispositivo que quieres montar es - ``<tt/ufs/''. - Si quieres montar un CDROM, tienes que especificar <tt/-t cd9660/. - Esto hace que el sistema asuma que tiene que montar un sistema de - ficheros con formato ISO 9660 que es lo que los CDROM deben tener. - - <p>Como ejemplo, si quieres montar una unidad CDROM, - <tt>/dev/cd0c</tt>, bajo <tt>/mnt</tt>, tienes que ejecutar - - <verb> - mount -t cd9660 /dev/cd0c /mnt - </verb> - - <p>Ten en cuenta que el nombre de tu dispositivo - (<tt>/dev/cd0c</tt> en este ejemplo) puede ser diferente dependiendo - del interface que estés usando. El comando anterior puede ser - acortado tecleando: - - <verb> - mount_cd9660 /dev/cd0c /mnt - </verb> - - <sect1> - <heading>Cuando monto un CDROM, obtengo ``Device not configured''.</heading> - - <p>Esto, generalmente, significa que no hay ningún disco en el - lector de CDROM. También puede significar que el lector no es - visible para el bus. Chequea que está bién configurado en - lo referente a master/slave si es IDE (ATAPI). - - <p>Algunas veces un CDROM SCSI puede "desaparecer" por que no ha tenido - tiempo suficiente para responder a un reset del bus. Si tienes un - CDROM SCSI, añade la siguiente línea en el fichero de - configuración del kernel y recompílalo. - - <verb> - options "SCSI_DELAY=15" - </verb> - - <sect1> - <heading>Mi impresora es ridiculamente lenta. ¿Qué puedo hacer?</heading> - - <p>Si es paralelo, y el único problema es la lentitud, intenta - configurar el puero de impresora en modo "polled": - - <verb> - lptcontrol -p - </verb> - - <p>Algunas impresoras nuevas de HP son conocidas por no trabajar - correctamente en modo de interrupción, aparentemente debido (y - todavía no exactamente entendido), a un problema de "timing". - - <sect1> - <heading>Mis programas ocasionalmente mueren con errores ``Signal 11''.</heading> - - <p>Esto puede ser por hardware erróneo (memoria, placa base, etc). - Intenta ejecutar algún programa de test de memoria. Ten en cuenta - que es posible que tu memoria pase el test del programa que uses, - pero que falle en algunas condiciones de uso, como en compilación - de kernel. - - <p>La FAQ SIG11 (listada más abajo) apunta a problemas de - lentitud de memoria. Incrementa el número de "wait states" en tu - BIOS o instala una memoria más rápida. - - <p>También puedes intentar desactivar el caché de placa - base en la BIOS y comprueba si se resuelve el problema. - - <p>Hay una extensa FAQ en - <url url="http://www.bitwizard.nl/sig11/" name="the SIG11 problem FAQ"> - - <sect1> - <heading>Cuando arranco, la pantalla queda negra!</heading> - - <p>Este es un problema conocido con las tarjetas de vídeo ATI - Mach 64. El problema es que esta tarjeta usa la dirección - <tt/2e8/, también usada por el puerto serie 4. Debido a un bug - (feature?) en el driver <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?sio" name="sio.c"> - , éste "tocará" este puerto aunque no esté instalado - o esté desactivado. - - <p>Hasta que el problema sea fijado, puedes hacer esto: - - <enum> - <item>Teclea <tt/-c/ en el prompt de arranque. Esto te llevará - a la sección de configuración del kernel. - - <item>Desactiva <tt/sio0/, <tt/sio1/, <tt/sio2/ y <tt/sio3/ - (todos ellos). De esta manera, el driver sio no se activa. - - <item>Teclea exit para seguir arrancando. - </enum> - - <p>Si quieres ser capaz de usar tus puertos serie, tendrás que - compilar un nuevo kernel con la siguiente modificación: - <tt>/usr/src/sys/i386/isa/sio.c</tt>. Busca la cadena <tt/0x2e8/ - y borra esta cadena y la coma anterior (mantén la coma siguiente). - Ahora, compila un nuevo kernel de la manera habitual. - - <p>Después de realizar estos cambios, puedes encontrarte aun que - las X Window no funcionan correctamente. Algunas tarjetas de - vídeo modernas ATI Mach 64 (especialmente la ATI Mach Xpression) - no funcionan con la versión actual de <tt/XFree86/; la pantalla - se queda negra cuando arrancas las X o ocurren cosas extrañas en - su funcionamiento. Puedes instalar una versión beta del nuevo - servidor X que trabaja mejor, situada en - <url url="http://www.xfree86.org" name="el servidor XFree86"> - y seguir los links hasta el download. Coge los siguientes ficheros: - - - <p><tt>AccelCards, BetaReport, Cards, Devices, FILES, README.ati, - README.FreeBSD, README.Mach64, RELNOTES, VGADriver.Doc, - X312BMa64.tgz</tt> - - <p>Reemplaza los viejos ficheros por las nuevas versiones y - asegúrate de ejecutar de nuevo<htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=xf86config" - name="xf86config">. - - <sect1> - <heading> - Tengo 128MB de RAM pero el sistema solo usa 64MB. - <label id="reallybigram"> - </heading> - - <p>Debido a la forma que tiene FreeBSD de "ver" el tamaño de - memoria en la BIOS, solo puede detectar 16 bits - (65535 Kbytes = 64MB) (o menos... algunas BIOS fijan el tamaño de - la memoria a 16MB). - - <p>Para solucionar este problema, tienes que usar la opción del - kernel indicada más adelante. Hay una manera de ver la - información completa sobre memoria en la BIOS, pero no tenemos - espacio en los bloques de arranque (bootblocks) para hacerlo. Por ahora, - tenemos que trabajar con la opción del kernel. - - <tt> - options "MAXMEM=<n>" - </tt> - - <p>Donde <tt/n/ es tu memoria en Kilobytes. Para 128MB, - tendrías que usar <tt/131072/. - - <sect1> - <heading>FreeBSD 2.0 aborta con ``kmem_map too small!''</heading> - - <p><tt /Nota/ El mensaje debería ser ``mb_map too small!'' - - <p>La parada indica que el sistema no tiene memoria virtual - suficiente para los buffers de red (específicamente, - clusters mbuf). - Puedes incrementar la cantidad de memoria virtual disponible para - los clusters mbuf añadiendo: - - <p><tt>options "NMBCLUSTERS=<n>"</tt> - - <p>al fichero de configuración del kernel, donde <n> es un - número en el rango 512-4096, dependiendo del número de - conexiones tcp simultáneas que necesites soportar. Te recomendamos - intentar con 2048. Puedes monitorizar el número de clusters mbuf - en uso con la orden - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?netstat" - name="netstat -m">. - - - <sect1> - <heading>``CMAP busy panic'' al arrancar con un nuevo kernel.</heading> - - <p>El programa que intenta detectar ficheros <tt>/var/db/kvm_*.db</tt> - puede fallar y provocar el "panic" en el arranque. - - <p>Si esto ocurre, arranca en mono-usuario y haz: - - <verb> - rm /var/db/kvm_*.db - </verb> - - <sect1> - <heading>ahc0: brkadrint, Illegal Host Access at seqaddr 0x0</heading> - - <p>Esto significa un conflicto con una controladora Ultrastor SCSI. - - <p>Durante el proceso de arranque, entra en el menú de - configuración del kernel y desactiva el dispositivo - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?uha(4)" name="uha0">. - - <sect1> - <heading>Sendmail dice ``mail loops back to myself''</heading> - - <p>Esto está contestado en la FAQ de sendmail de la siguiente - manera: - - <verb> - * Tengo el error "Local configuration error" : - - 553 relay.domain.net config error: mail loops back to myself - 554 <user@domain.net>... Local configuration error - - Cómo puedo solventar el problema? - - Has intentado enviar un mail al dominio domain.net y que sea - reenviado a un host específico (en este caso relay.domain.net) - usando un registro MX, pero la máquina que tiene que aceptar - ese mail, no reconoce el domimio como propio. Añade - domain.net al fichero /etc/sendmail.cw (si estás usando - FEATURE(use_cw_file) o añade "Cw domain.net" al fichero - sendmail.cf - </verb> - - <p>La versión actual de la <url - url="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq" - name="FAQ de sendmail"> puede ser encontrada en - <url url="news:comp.mail.sendmail" name="comp.mail.sendmail">, - <url url="news:comp.mail.misc" name="comp.mail.misc">, - <url url="news:comp.mail.smail" name="comp.mail.smail">, - <url url="news:comp.answers" name="comp.answers">, y - <url url="news:news.answers" name="news.answers">. - Tambien puedes recibir una copia enviando un mail a - <url url="mailto:mail-server@rtfm.mit.edu" - name="mail-server@rtfm.mit.edu"> con el comando "send - usenet/news.answers/mail/sendmail-faq" en el cuerpo del mensaje. - - - <sect1> - <heading>No funcionan correctamente las aplicaciones a pantalla completa - en máquinas remotas</heading> - <p>Quizás la máquina remota tiene el tipo de terminal - diferente de <tt>cons25</tt> que es el usado por la cónsola de - FreeBSD. - <p>Hay diferentes maneras de solucionar este problema: - <itemize> - <item>Después de hacer el login en la máquina remota, - configura la variable SHELL como <tt>ANSI</tt> o <tt>sco</tt>. - <item>Usa el emulador VT100 como <htmlurl - url="http://www.FreeBSD.org/cgi/ports.cgi?screen-" name="screen"> - local. <tt>screen</tt> te permite la posibilidad de ejecutar - múltiples y concurrentes sesiones desde un terminal. - <item>Instala la base de datos del terminal <tt>cons25</tt> en la - máquina remota. - <item>Lanza las X y haz el login en la máquina remota desde - <tt>xterm</tt>. - </itemize> - - <sect1> - <heading>Aparece el mensaje de error "calcru: negative time..."</heading> - <p>Esto puede ser causado por varios problemas de hardware o software - relacionados con las interrupciones. Utilizar TCP/IP sobre el puerto - paralelo con un MTU muy grande es una buena manera de provocar este error. - Las tarjetas gráficas aceleradoras también lo pueden - provocar, teniendo que revisar la interrupción utilizada - por la tarjeta. - - <p>El efecto de este error es que los procesos mueren con el mensaje - "SIGXCPU exceeded cpu time limit". - - <p>Para FreeBSD 3.0 y posteriores desde el 29 de Noviembre de 1998: si - el problema no puede fijarse de otra manera, la solución es - poner la variable sysctl a: -<verb> - sysctl -w kern.timecounter.method=1 -</verb> - <p>Esto puede significar un impacto en el rendimiento del sistema, pero - considerando la causa del problema, probablemente no lo notarás. Si - el problema persiste, mantén la variable sysctl a uno y - añade la opción "NTIMECOUNTER" en tu kernel para aumentar - su valor. Si finalmente llegas a un valor de "NTIMECOUNTER=20" el problema - no está resuelto, y las interrupciones están demasiado - saturadas para ofrecer un buén rendimiento. - </sect> - diff --git a/es_ES.ISO8859-1/FAQ/x.sgml b/es_ES.ISO8859-1/FAQ/x.sgml deleted file mode 100644 index de85a03c7a..0000000000 --- a/es_ES.ISO8859-1/FAQ/x.sgml +++ /dev/null @@ -1,442 +0,0 @@ -<!-- $FreeBSD$ --> -<!-- The FreeBSD Documentation Spanish Project --> - <sect> - <heading>El sistema X Windows y las cónsolas virtuales<label id="x"></heading> - - <sect1> - <heading>Quiero ejecutar las X, ¿cómo lo hago?</heading> - - <p>La manera más fácil es, simplemente, especificar que - quieres usar las X durante el proceso de instalación. - - <p>Entonces, lee y sigue la documentación de la herramienta - <htmlurl url= - "http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=xf86config" - name="xf86config">, la cual te ayuda a configurar el sistema XFree86 sobre - las características propias de tu sistema (tarjeta de vídeo - , ratón, etc). - - <p>Quizás te interesaría investigar y probar el servidor - Xaccel, disponible a un precio muy razonable. Mira en la sección - <ref id="xig" name="Xi Graphics"> o - <ref id="metrox" name="Metro Link"> para más detalles. - - <sect1> - <heading>¿Porqué no funciona mi ratón con las X?<label id="x-and-moused"></heading> - - <p>Si estás usando syscons (el driver de cónsola por - defecto), puedes configurar FreeBSD para soportar un ratón en cada - cónsola virtual. - Para evitar conflictos con las X, syscons soporta un dispositivo - virtual llamado <tt>/dev/sysmouse</tt>. Todos los eventos recibidos - desde el mouse real son escritos en el dispositivo sysmouse, usando - el protocolo MouseSystems. Si quieres usar el ratón en una o - más cónsolas virtuales <bf/y/ usar las X, te recomendamos - la siguiente configuración: - - <verb> - /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" - ..... - </verb> - - <p>Hay gente que prefiere usar <tt>/dev/mouse</tt> bajo X. Para que - esto funcione, <tt>/dev/mouse</tt> debe estar lincado a - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?sysmouse" - name="/dev/sysmouse">: - - <verb> - # cd /dev - # rm -f mouse - # ln -s sysmouse mouse - </verb> - - <sect1> - <heading>Los menus de X Window y cajas de diálogo no funcionan bien.</heading> - - <p>Intenta desactivar la tecla Num Lock. - - <p>Si tu tecla Num Lock está activada por defecto al arrancar el - sistema, deberías añadir la siguiente línea en la - sección <tt/Keyboard/ del fichero <tt/XF86Config/. - - <verb> - # Let the server do the NumLock processing. This should only be - # required when using pre-R6 clients - ServerNumLock - </verb> - - <sect1> - <heading>¿Qué es una cónsola virtual y como creo más?</heading> - - <p>Las cónsolas virtuales te permiten tener sesiones - simultáneas en la misma máquina sin necesidad de tener - montajes complicados como una red o ejecución de X. - - <p>Cuando el sistema arranca, mostrará el prompt de login en el - monitor una vez finalizado el mismo. Puedes entonces teclear - tu login y password y empezar a trabajar (o jugar), en la primera - cónsola virtual. - - <p>En algun momento, es probablemente querras iniciar otra sesion - , por ejemplo, para mirar la documentación de un programa que - estás ejecutando, o para leer el correo mientras esperas que - termine una sesión ftp que tienes establecida. Solo haz Alt-F2 y - encontrarás un prompt un prompt de login esperandote en la segunda - "cónsola virtual". Cuando quieras volver a la sesión - original, sólo tienes que pulsar Alt-F1. - - <p>La instalación por defecto de FreeBSD tiene tres cónsolas - virtuales activadas, y Alt-F1, Alt-F2 y Alt-F3 cambian entre ellas. - - Para activar mas cónsolas virtuales, edita <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys"> - y añade tantas entradas como cónsolas virtuales quieras a - partir de <tt/ttyv4/, después del comentario "Virtual Terminals": - - <verb> - # 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 - </verb> - - <p>Utiliza tantas cónsolas como quieras o necesites. Cuantas - más cónsolas tengas, más recursos utilizas; esto - puede ser importante si tienes 8MB de RAM o menos. También te - puede interesar cambiar el modo <tt/secure/ a <tt/insecure/. - - <p><bf/NOTA IMPORTANTE/ si quieres usar un servidor X <bf/DEBES/ - dejar, al menos, un terminal virtual sin usar (o desactivado). - - <p>La manera más fácil de desactivar una cónsola - es "apagarla". Por ejemplo, para desactivar el terminal 12, cambia esto: - - <verb> - ttyvb "/usr/libexec/getty Pc" cons25 on secure - </verb> - - <p>por esto: - - <verb> - ttyvb "/usr/libexec/getty Pc" cons25 off secure - </verb> - - <p>Si tu teclado solo tiene 10 teclas de función, tendras que - acabar con: - - <verb> - ttyv9 "/usr/libexec/getty Pc" cons25 off secure - ttyva "/usr/libexec/getty Pc" cons25 off secure - ttyvb "/usr/libexec/getty Pc" cons25 off secure - </verb> - - <p>(También puedes, simplemente, borrar estas líneas.) - - <p>Una vez has editado el fichero <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys">, - el siguiente paso es asegurarte de que tienes suficientes - dispositivos de terminales virtuales. La manera más fácil - de hacerlo es: - - <verb> - # cd /dev - # ./MAKEDEV vty12 # For 12 devices - </verb> - - <p>A continuación, la manera más fácil de activar - las cónsolas virtuales es rearrancar el sistema. Si, realmente no - quieres rearrancarlo, puedes para el servidor de X Window y ejecutar - (como <tt/root/): - - <verb> - kill -HUP 1 - </verb> - - <p>Es imperativo que pares el servidor de X Window si está - funcionando, antes de ejecutar este comando. Si no lo haces, - parecerá que tu sistema está parado/colgado después - de ejecutar el comando kill. - - <sect1> - <heading>¿Cómo accedo a las cónsolas virtuales desde X?</heading> - - <p>Si la cónsola está actualmente mostrando X Window, - puedes usar Ctrl-Alt-F1, etc, para cambiar entre las cónsolas - virtuales. Ten en cuenta que una vez pases de una cónsola X Window - a un terminal virtual, solo tienes que usar la tecla Alf- para volver a - conmutar entre terminales virtuales o volver a las X. No necesitas pulsar - la tecla Ctrl. Si usas la tecla Ctrl para volver a las X en alguna - de las releases antiguas, puedes encontrarte que la cónsola de - texto está bloqueada. Pulsa la tecla Ctrl de nuevo para - desbloquearla. - - <sect1> - <heading>¿Cómo arranco XDM desde el fichero <tt>/etc/ttys</tt>?</heading> - - <p>Existen dos escuelas sobre como arrancar el <htmlurl url= - "http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=xdm" - name="xdm">. Una escuela arranca el xdm desde el fichero - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ttys" - name="/etc/ttys"> usando el ejemplo dado, mientras que la otra - simplemente arranca el xdm desde el fichero - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?rc" name="rc.local"> o - desde un script <tt/X.sh/ en <tt>/usr/local/etc/rc.d</tt>. - Ambos métodos son igualmente válidos, y uno puede funcionar - en situaciones que el otro no. En ambos casos el resultado es el mismo: - el sistema X Window lanzará un prompt de login gráfico. - - <p>El método ttys tiene la ventaja de documentar en que vty se - lanzarán las X pasando la responsabilidad de rearrancar el - servidor X al hacer el logout al proceso init. El método - rc.local hace más fácil terminar con el proceso xdm - en caso de problemas con el servidor X. - - <p>Si arrancamos desde rc.local, <tt/xdm/ debe ser arrancado sin - argumentos (como un daemon). xdm debe arrancar DESPUES del proceso - getty, o ambos entrarán en conflicto bloqueando la - cónsola. La mejor manera de evitar este problema es tener un - script que retrase el arranque de xdm durante 10 segundos. - - <p>Una versión previa de esta FAQ decía que debías - añadir el <tt/terminal virtual/ usado por las X al fichero - <tt>/usr/X11R6/lib/X11/xdm/Xservers</tt>. Esto no es necesario: las X - usarán el primer <tt/terminal virtual/ que encuentre libre. - - <sect1> - <heading>Cuando arranco xconsole obtengo "Couldn't open console".</heading> - - <p>Si arrancas las <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=X" - name="X"> con <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=startx" - name="startx">, los permisos en /dev/console no serán cambiados, - resultando en cosas como que <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=xterm" - name="xterm -C"> y <htmlurl url= - "http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=xconsole" - name="xconsole"> no funcionen. - - <p>Esto se debe a la manera en que son fijados los permisos de la - cónsola. En un sistema multiusuario, podemos no querer que - cualquier usuario pueda escribir en la cónsola de sistema. Para - usuarios que realizan logins directamente desde una máquina con - un VTY, existe el fichero - <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fbtab" name="fbtab"> - para resolver estos problemas. - - <p>Asegúrate de que existe al menos una línea como esta - sin comentar: - - <verb> - /dev/ttyv0 0600 /dev/console - </verb> - - <p>Está en <htmlurl - url="http://www.FreeBSD.org/cgi/man.cgi?fbtab(5)" - name="/etc/fbtab"> y asegurará que cualquiera que realice un login - en <tt>/dev/ttyv0</tt> será el propietario de la cónsola. - - <sect1> - <heading>Mi ratón PS/2 no funciona bien en X.</heading> - - <p>Tu ratón y el driver de ratón quizás estén - fuera de sincronización. - - <p>En versiones 2.2.5 y anteriores, conmutando entre sesiones X y - sesiones de terminales virtuales, podía provocar una - desincronización. Si el problema ocurre muy amenudo, - deberías añadir la siguiente opción en el fichero - de configuración de tu kernel y recompilarlo. - - <verb> - options PSM_CHECKSYNC - </verb> - - <p>Mira la sección <ref id="make-kernel" name="creando un kernel"> - si no tienes experiencia en compilar nuevos kernels. - - <p>En versiones 2.2.6 y posteriores, el chequeo de sincronización - es realizado de otra manera, y es estandard en el driver de ratón - PS/2. Aun así, en casos extraños puedes llegar a ver - mensajes de error de sincronización como este: - - <verb> - psmintr: out of sync (xxxx != yyyy) - </verb> - - y parecer que tu ratón no funciona adecuadamente. - - <p>Si esto ocurre, desactiva el código de chequeo de - sincronización poniendo los flags del driver PS/2 a 0x100. Entra - en <em>UserConfig</em> poniendo la opción <tt>-c</tt> en el prompt - de arranque: - - <verb> - boot: -c - </verb> - - Entonces, en la línea de comando de <em>UserConfig</em>, teclea: - - <verb> - UserConfig> flags psm0 0x100 - UserConfig> quit - </verb> - - <sect1> - <heading>Mi ratón PS/2 de MouseSystems no funciona.</heading> - - <p>Hemos recibido reportes de que algunos modelos de ratones PS/2 de - MouseSystems solo trabajan si están configurados en modo "alta - resolución". - - <p>Desafortunadamente no hay solución para versiones 2.0.x y 2.1.x. - En versiones 2.2.x, aplica el siguiente parche en - <tt>/sys/i386/isa/psm.c</tt> y compila un nuevo kernel. - - <verb> -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 */ - </verb> - - <p>En versiones 2.2.6 o posteriores, especifica el flag 0x04 al - driver PS/2 para poner el ratón en modo de alta resolución. - Entra en <em>UserConfig</em>: - - <verb> - boot: -c - </verb> - - y en la línea de comandos teclea: - - <verb> - UserConfig> flags psm0 0x04 - UserConfig> quit - </verb> - - <p>Mira en la sección anterior para posibles causas de problemas - con los ratones. - - <sect1> - <heading>Cuando compilo una aplicación X. <tt/imake/ no puede - encontrar el fichero <tt/imake.tmpl/. ¿Dónde está?</heading> - - <p>Imake.tmpl es parte del package Imake, una aplicación - estandard de compilación de X. Tanto Imake como headers y otros - ficheros necesarios para compilar aplicaciones X están en la - distribución de programación X. Puedes instalarla desde - el sysinstall o manualmente desde los ficheros de la distribución - X. - - <sect1> - <heading>¿Cómo invierto los botones del ratón?</heading> - - <p>Ejecuta el comando <tt/ xmodmap -e "pointer = 3 2 1"/ desde el - fichero .xinitrc o .xsession. - - <sect1> - <heading>¿Cómo instalo un "splash screen" y donde los consigo?</heading> - - <p>Justo antes de la publicación de FreeBSD 3.1 se añadió - una nueva característica que permite mostrar "splash screens" durante los - mensajes de arranque del sistema. Los "splash screen" deben ser un bitmap de - 256 colores (<tt>*.BMP</tt>) o ZSoft PCX (<tt>*.PCX</tt>). Además, deben tener - una resolución de 320x200 o inferior para poder trabajar en controladoras - VGA estándars. Si se compila el soporte VESA en el kernel, se pueden usar - bitmaps de hasta 1024x768. Recordar que el soporte de VESA requiere que la - opción <tt>VM86</tt> sea compilada en el kernel. El soporte actual - de VESA puede ser compilado directamente en el kernel con la opción de - configuración <tt>VESA</tt> o cargando el módulo kld VESA - durante el arranque.</p> - - <p>Para usar un "splash screen" necesitas modificar los archivos de - inicio que controlan el proceso de arranque de FreeBSD. Estos archivos cambiaron - con FreeBSD 3.2, así que ahora existen dos maneras de cargar un - "splash screen": - - <itemize> - <item>FreeBSD 3.1 - - <p>El primer paso es encontrar una versión bitmap de tu "splash - screen". La release 3.1 sólo soporta bitmaps de Windows. Una - vez hayas elegido tu "splash screen" copiala en - <tt>/boot/splash.bmp</tt>. A continuación necesitas tener - un archivo <tt>/boot/loader.rc</tt> que contenga las siguientes - líneas: - - <verb> - load kernel - load -t splash_image_data /boot/splash.bmp - load splash_bmp - autoboot - </verb> - </item> - - <item>FreeBSD 3.2+ - - <p>Además de soportar los "splash screens" en formato PCX, - FreeBSD 3.2 incluye un mejor sistema de configuración - del proceso de arranque. Si quieres, puedes usar el método - señalado para FreeBSD 3.1. Si lo haces, y quieres usar PCX, - reemplaza <tt>splash_bmp</tt> con <tt>splash_pcx</tt>. Si por el - contrario quieres usar la nueva configuración de arranque, - necesitas crear un archivo <tt>/boot/loader.rc</tt> que contenga - las siguientes líneas: - - <verb> - include /boot/loader.4th - start - </verb> - - <p>y otro archivo <tt>/boot/loader.conf</tt> que contenga lo - siguiente: - - <verb> - splash_bmp_load="YES" - bitmap_load="YES" - </verb> - - <p>Esto asume que estás usando <tt>/boot/splash.bmp</tt> - como tu "splash screen". Si quieres usar un archivo PCX, - copialo a <tt>/boot/splash.pcx</tt>, crea un archivo - <tt>/boot/loader.rc</tt> como se ha indicado anteriormente, y - crea un <tt>/boot/loader.conf</tt> que contenga: - - <verb> - splash_pcx_load="YES" - bitmap_load="YES" - bitmap_name="/boot/splash.pcx" - </verb> - </item> - </itemize> - - <p>Ahora todo lo que necesitas es un "splash screen". Puedes navegar - por una inmejorable galería en <htmlurl - url="http://www.cslab.vt.edu/~jobaldwi/splash/" - name="http://www.cslab.vt.edu/~jobaldwi/splash/">.</p> - - </sect1> - </sect> - diff --git a/es_ES.ISO8859-1/Makefile b/es_ES.ISO8859-1/Makefile deleted file mode 100644 index a952234439..0000000000 --- a/es_ES.ISO8859-1/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $FreeBSD$ - -SUBDIR = books - -COMPAT_SYMLINK = es - -DOC_PREFIX = ${.CURDIR}/.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/es_ES.ISO8859-1/books/Makefile b/es_ES.ISO8859-1/books/Makefile deleted file mode 100644 index 2b396a470c..0000000000 --- a/es_ES.ISO8859-1/books/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $FreeBSD$ - -SUBDIR = faq - -ROOT_SYMLINKS = faq - -DOC_PREFIX?= ${.CURDIR}/../.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/es_ES.ISO8859-1/books/Makefile.inc b/es_ES.ISO8859-1/books/Makefile.inc deleted file mode 100644 index 3e055f5b8f..0000000000 --- a/es_ES.ISO8859-1/books/Makefile.inc +++ /dev/null @@ -1,5 +0,0 @@ -# -# $FreeBSD$ -# - -DESTDIR?= ${DOCDIR}/es_ES.ISO_8859-1/books/${.CURDIR:T} diff --git a/es_ES.ISO8859-1/books/faq/Makefile b/es_ES.ISO8859-1/books/faq/Makefile deleted file mode 100644 index fce771d155..0000000000 --- a/es_ES.ISO8859-1/books/faq/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -# -# $FreeBSD$ -# -# Build the FreeBSD FAQ -# - -MAINTAINER=jesusr@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 - -DOC_PREFIX?= ${.CURDIR}/../../.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/es_ES.ISO8859-1/books/faq/book.sgml b/es_ES.ISO8859-1/books/faq/book.sgml deleted file mode 100644 index fbfcbf33b7..0000000000 --- a/es_ES.ISO8859-1/books/faq/book.sgml +++ /dev/null @@ -1,9343 +0,0 @@ -<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN"> -<book lang=en> - - <bookinfo> - <title>Frequently Asked Questions para FreeBSD 2.X</title> - - <authorgroup> - <author> - <surname>Proyecto de documentación de FreeBSD</surname> - </author> - </authorgroup> - - <pubdate>$FreeBSD: doc/es_ES.ISO_8859-1/books/faq/book.sgml,v 1.10 1999/09/24 17:25:39 jmas Exp $</pubdate> - - <abstract> - <para>Ésta es la FAQ para sistemas FreeBSD versión 2.X. - Todas las secciones están dirigidas a FreeBSD 2.0.5 y superiores. - Los capítulos con <XXX> están bajo - construcción. Si estás interesado en colaborar en este - proyecto, envía un e-mail a la lista de distribución del - proyecto de documentación de FreeBSD - <ulink URL="mailto:freebsd-doc@FreeBSD.org"><freebsd-doc@FreeBSD.org></ulink> o - a la dirección - <ulink URL="mailto:faq-es@es.FreeBSD.org">faq-es@es.FreeBSD.org</ulink>. - La última versión de este documento está siempre disponible en el - <ulink URL="http://www.es.FreeBSD.org/es/">Mirror español de FreeBSD</ulink>. - Puede obtenerse como un único archivo en formato - <ulink URL="book.html">HTML</ulink> vía HTTP o en formato texto, postscript o - PDF desde el - <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc">servidor FTP de FreeBSD</ulink>. - También se pueden hacer - <ulink URL="http://www.FreeBSD.org/search/search.html">búsquedas en las FAQ</ulink>. - </para> - </abstract> - </bookinfo> - - <preface id=preface> - <title>Introducción</title> - - <para>¡Bienvenido a la FAQ de FreeBSD 2.X!</para> - - <para>Como es habitual con las FAQ de los grupos de noticias (USENET), este - documento pretende abarcar las preguntas más frecuentes referentes - al sistema operativo FreeBSD (¡y por supuesto contestarlas!). - Pensadas en un principio para reducir el tráfico y evitar que se - hagan las mismas preguntas una y otra vez, las FAQ se han convertido en un - valorado recurso de obtención de información.</para> - - <para>Todo el esfuerzo se ha hecho en intentar que esta FAQ sea lo - más informativa posible; si tienes cualquier comentario o - sugerencia, por favor, envía un mail a - <ulink URL="mailto:jesusr@FreeBSD.org">FAQ maintainer</ulink>.</para> - - <qandaset> - <qandaentry> - <question> - <para>¿Qué es FreeBSD?</para> - </question> - - <answer> - <para>De manera resumida, FreeBSD 2.X es un sistema operativo UNIX - indirectamente basado en el port de Net/2 para i386 de Berkeley - (conocido como 386BSD) realizado por William Jolitz's. Una - descripción más detallada de FreeBSD y de cómo - puede trabajar, se encuentra en - <ulink URL="http://www.FreeBSD.org/">FreeBSD home page</ulink>.**** - </para> - - <para>FreeBSD es usado por compañías, proveedores de - Internet, profesionales de la informática, estudiantes y - usuarios particulares de todo el mundo en su trabajo, - educación y ocio. Puedes ver a algunos de ellos en - <ulink URL="http://www.FreeBSD.org/gallery.html">FreeBSD Gallery.</ulink></para> - - <para>Para información más detallada sobre FreeBSD, por - favor mira en - <ulink URL="../../handbook/index.html">FreeBSD Handbook.</ulink></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cuál es el objetivo de FreeBSD?</para> - </question> - - <answer> - <para>El objetivo del Proyecto FreeBSD es proveer software que pueda - ser usado en todos los ámbitos sin ningún tipo de - atadura. Muchos de nosotros estamos significativamente involucrados - en el desarrollo del código (y del proyecto) y no sería - cierto decir que no esperábamos o esperamos algún tipo - de financiación, pero definitivamente no estamos preparados - para insistir en ello. Creemos que nuestra primera y principal - ``misión'' es proporcionar el código libremente, y en - cualquier ámbito, para que el código se difunda lo - más posible y genere los mayores beneficios. Esto es, - creemos en uno de los objetivos fundamentales del Software Libre y lo - apoyamos de manera incondicional.</para> - - <para>El código fuente de los programas registrados bajo la - GNU General Public License (GPL) o la GNU Library General Public - License (LGPL), se proporciona bajo las condiciones fijadas por esas - licencias. Debido a complicaciones adicionales en el uso comercial de - Software GPL, intentamos reemplazar ese software por otros - registrados bajo el copyright BSD, menos estricto y más - permisivo.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Por qué se llama FreeBSD?</para> - </question> - - <answer> - <para> - <itemizedlist> - - <listitem> - <para>Este sistema debe ser usado libremente, sin coste alguno - incluso para fines comerciales.</para> - </listitem> - - <listitem> - <para>El código fuente completo del sistema operativo es - de libre distribución, y se han establecido el menor - número posible de restricciones para su uso, - distribución e incorporación a otras aplicaciones - (comerciales o no).</para> - </listitem> - - <listitem> - <para>Cualquier persona que tenga alguna sugerencia de mejora - y/o ``parche'' de algún ``bug'', es libre de enviar el - código y que éste sea añadido al - código fuente de la distribución original (sujeto - a una o dos condiciones obvias). </para> - </listitem> - </itemizedlist> - </para> - - <para>Para todos nuestros lectores cuyo primer lenguaje no sea el - inglés, aclaremos que la palabra ``free'' es usada en dos - sentidos, uno significando ``sin coste'' y el otro ``puedes hacer lo - que quieras''. Aparte de una o dos cosas que no puedes hacer con el - código de FreeBSD, por ejemplo decir que lo has escrito, - realmente puedes hacer lo que quieras con él.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cuál es la última versión de FreeBSD?</para> - </question> - - <answer> - <para>La versión - <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/3.4-RELEASE">3.4R</ulink> - es la última <emphasis>-stable</emphasis>; fue declarada - definitiva (a partir de ahora ``release'') en Diciembre de 1999.</para> - - <para>Brevemente explicado, <option>-stable</option> está - dirigido a proveedores de Internet y otros usuarios corporativos que - quieren estabilidad y una sucesión tranquila en los cambios y - actualizaciones a las nuevas versiones y sus mejoras. Sólo - debes usar la rama <emphasis>-current</emphasis> si estás - seguro de estar preparado para su mayor ``volatilidad'' (relativa a - <emphasis>-stable</emphasis>).</para> - - <para>Las versiones Release se hacen cada - <link linkend="release-freq">varios meses</link>. Aunque mucha gente - mantiene más al día los fuentes de FreeBSD (lee las - preguntas en <link linkend="current">FreeBSD-current</link> y - <link linkend="stable">FreeBSD-stable</link>, ello está - pensado para gente que se considere preparada para seguir el - desarrollo continuo del código fuente.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="current"> - <para>¿Qué es FreeBSD-current?</para> - </question> - - <answer> - <para><ulink URL="../../handbook/cutting-edge.html#CURRENT">FreeBSD-current</ulink> - es la versión de desarrollo del sistema operativo, la cual - acabará siendo la versión 4.0-RELEASE. Como es de - suponer, esta versión es de interés sólo para - los desarrolladores que trabajan en el sistema y ``masoquistas'' de la - programación. Mira la <ulink URL="../../handbook/cutting-edge.html#CURRENT">sección correspondiente</ulink> en el - <ulink URL="../../handbook/index.html">handbook</ulink> - para saber cómo funciona esta opción.</para> - - <para>Si no estás familiarizado con el sistema operativo o no - eres capaz de identificar la diferencia entre un problema real y un - problema temporal, no deberías usar FreeBSD-current. Esta rama - a veces avanza muy rápidamente y puede no ser compilable - durante unos días. La gente que usa FreeBSD-current es capaz - de analizar los problemas y sólo comunicarlos si son motivo de - errores. Preguntas como ``al ejecutar make world obtengo un error - referente a grupos'' en la lista de distribución -current - pueden quedar fuera de lugar.</para> - - <para>Una release - <ulink URL="../releases/snapshots.html">snapshot</ulink> corresponde - al desarrollo de la rama -current; distribuciones en CDROM de esta - versión están disponibles. Los objetivos de cada - release snapshot son:</para> - - <para> - <itemizedlist> - <listitem> - <para>Comprobar la última versión del software de - instalación.</para> - </listitem> - - <listitem> - <para>Dar a la gente que le gustaría usar la - versión -current, pero que no tiene el tiempo suficiente - para seguir el ritmo diario de actualizaciones, una manera - fácil de poder instalarla en su sistema.</para> - </listitem> - - <listitem> - <para>Preservar un punto de referencia fijado en el - código en cuestión, sólo en caso de que - ``rompamos'' algo realmente importante. (De todas maneras, el CVS - normalmente previene de que cosas tan horribles como - éstas puedean suceder :)</para> - </listitem> - - <listitem> - <para>Asegurar que las nuevas características - desarrolladas puedan ser comprobadas suficientemente por el - mayor número de gente.</para> - </listitem> - - </itemizedlist> - </para> - - <para>No se garantiza que ningún snapshot pueda ser - considerado ``calidad de producción''. Para conseguir - estabilidad y un sistema garantizado, tendrás que usar las - versiones release.</para> - - <para>Las release snapshot están directamente disponibles en - <ulink URL="ftp://current.FreeBSD.org/pub/FreeBSD/">ftp://current.FreeBSD.org/pub/FreeBSD/</ulink> - y son generadas un promedio de una vez por día para las ramas - 4.0-current y 3.0-stable.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="stable"> - <para>¿Qué significa FreeBSD-stable?</para> - </question> - - <answer> - <para>Cuando la versión de FreeBSD 2.0.5 fue declarada - release, decidimos dividir el desarrollo de FreeBSD en dos ramas. Una - rama fue llamada - <ulink URL="../../handbook/stable.html">-stable</ulink> con la - intención de que sólo los parches bien comprobados y - pequeñas actualizaciones de determinadas partes del sistema - fuesen incluidas en ella (para proveedores de Internet y otras - empresas para los que no resultan deseables cambios repentinos o - experimentales). La otra rama fue - <ulink URL="../../handbook/cutting-edge.html#CURRENT">-current</ulink>, - la cual ha sido, esencialmente, una línea común para - el desarrollo de la versión 4.0-RELEASE. Aquí hay un - pequeño gráfico ASCII para ayudar a entender este - sistema de desarrollo:</para> - - <para> -<literallayout> 2.0 - | - | - | [2.1-stable] -*BRANCH* 2.0.5 -> 2.1 -> 2.1.5 -> 2.1.6 -> 2.1.7.1 [2.1-stable ends] - | (Mar 1997) - | - | - | [2.2-stable] -*BRANCH* 2.2.1 -> 2.2.2-RELEASE -> 2.2.5-RELEASE -> ... - | (Mar 1997) (Oct 1997) - | - | - 3.0-SNAPs (started Q1 1997) - | - | - 3.0.0-RELEASE (Oct 1998) - | - | [3.0-stable] -*BRANCH* 3.1 (Feb 1999) -> 3.2-RELEASE -> ... future 3.x releases ... - | (Mayo 1999) - | - \|/ - + - [4.0-current continues]</literallayout> - </para> - - <para>La rama -current progresa lentamente hacia la 4.0 y superiores, - de la misma manera la anterior 2.2-estable fue sustituida por la - release 3.0: la nueva ``rama estable'' también conocida como - 3.0-stable. 4.0-current continuará hasta donde los desarrollos - activos lleguen cuando se convierta en release 4.0. En ese punto, 4.0 - se convertirá en 4.0-stable y se abrirá la nueva - 4.1-current.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="release-freq"> - <para>¿Cuando se realizan las releases de FreeBSD?</para> - </question> - - <answer> - <para>Como principio general, el equipo de FreeBSD sólo hace - una nueva versión release de FreeBSD cuando cree que hay - suficientes características nuevas y/o parches que la - justifiquen y esten seguros de que con los cambios realizados no se - compromete la estabilidad de la release. Muchos usuarios creen que - esta precaución es una de las mejores características - de FreeBSD.</para> - - <para>Las versiones release son hechas cada 6 meses - aproximadamente.</para> - - <para>Para los usuarios que necesiten (o quieran) un poco más - de excitación, hay SNAP-release más frecuentemente, - particularmente durante el mes anterior a una release - completa.</para> - - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Está FreeBSD disponible solo para PCs?</para> - </question> - - <answer> - <para>En estos momentos, sí, aunque se está trabajando - en portarlo a la arquitectura DEC Alpha. Si tu máquina tiene - una arquitectura diferente y necesitas un sistema de este tipo, te - aconsejamos que mires en - <ulink URL="http://www.netbsd.org/">NetBSD</ulink> o en - <ulink URL="http://www.openbsd.org/">OpenBSD</ulink>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para> ¿Quién es responsable de FreeBSD?</para> - </question> - - <answer> - <para>Las decisiones clave concernientes al proyecto FreeBSD como la - dirección a seguir y quién está autorizado a - añadir código a la distribución original, se - hace a través de un grupo de unas 17 personas llamado - <ulink URL="../../handbook/staff.html#STAFF-CORE">core team</ulink>. - Existe también un grupo de unas 150 personas o - <ulink URL="../../handbook/staff-committers.html">committers</ulink> - que también están autorizadas a realizar cambios - directamente sobre la distribución original.</para> - - <para>De todas maneras, la cambios importantes son discutidos en las - <link linkend="mailing">listas de distribución</link> en las - que no existen restricciones sobre quién participa en las - discusiones.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="where-get"> - <para>¿Dónde puedo conseguir FreeBSD?</para> - </question> - - <answer> - <para>Todas las versiones release de FreeBSD están disponibles - via ftp anónimo en - <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/">el servidor FTP de - FreeBSD</ulink>:</para> - - <para> - <itemizedlist> - <listitem> - <para>Para la actual 3.4-stable release, 3.4R mira en - <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/3.4-RELEASE/">3.4-RELEASE</ulink>. - </para> - </listitem> - - <listitem> - <para>Para la actual 4.0-current release, 4.0-SNAP, mira en - <ulink URL="ftp://current.FreeBSD.org/pub/FreeBSD/">4.0</ulink>.</para> - </listitem> - - <listitem> - <para><ulink URL="ftp://releng22.FreeBSD.org/pub/FreeBSD/">2.2 - Snapshot</ulink> releases son hechas a partir de la rama - RELENG_2_2 (2.2.5 -> 2.2.x). Con la ocasional - excepción de pequeñas variaciones, la rama - RELENG_2_2 está siendo cuidadosamente mantenida (no hay - cambios experimentales y los parches son añadidos - sólo después de ser comprobados en - -current).</para> - </listitem> - - <listitem> - <para><ulink URL="ftp://current.FreeBSD.org/pub/FreeBSD/">4.0 - Snapshot</ulink> releases son hechas una vez al día a - partir de la rama <link linkend="current">-current</link>, - siendo éste un servicio puramente para testeadores y - desarrolladores.</para> - </listitem> - </itemizedlist> - </para> - - <para>FreeBSD esta también disponible via CDROM, en los - siguientes lugares:</para> - - <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> - <phone> Orders: +1 800 786-9907</phone> - <phone> Questions: +1 925 674-0783</phone> - <fax> FAX: +1 925 674-0821</fax> - <otheraddr>email: <ulink URL="mailto:orders@cdrom.com">WC Orders address</ulink></otheraddr> - <otheraddr>WWW: <ulink URL="http://www.cdrom.com/">WC Home page</ulink></otheraddr> - </address> - - <para>En Australia:</para> - - <address> - <otheraddr>Advanced Multimedia Distributors</otheraddr> - <street> Factory 1/1 Ovata Drive</street> - <city> Tullamarine, Melbourne</city> - <state> Victoria</state> - <country> Australia</country> - <phone> Voice: +61 3 9338 6777</phone> - <fax> Fax: +61 9 385-2360</fax> - - <otheraddr>CDROM Support BBS</otheraddr> - <street> 17 Irvine St</street> - <city> Peppermint Grove</city> <state>WA</state> <postcode>6011</postcode> - <phone> Voice: +61 9 385-3793</phone> - <fax> Fax: +61 9 385-2360</fax> - </address> - - <para>Y en el Reino Unido:</para> - - <address> - <otheraddr>The Public Domain & Shareware Library</otheraddr> - <street> Winscombe House, Beacon Rd</street> - <city> Crowborough</city> - <state> Sussex. TN6 1UL</state> - <phone> Voice: +44 1892 663-298</phone> - <fax> Fax: +44 1892 667-473</fax> - </address> - </answer> - </qandaentry> - - <qandaentry> - <question id="mailing"> - <para>¿Dónde encuentro información sobre las - listas de distribución de FreeBSD?</para> - </question> - - <answer> - <para>Puedes encontrar toda la información en - <ulink URL="../../handbook/eresources.html#ERESOURCES-MAIL">la - sección de listas del Handbook.</ulink></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Dónde encuentro información sobre el - año 2000 (Y2K) en FreeBSD?</para> - </question> - - <answer> - <para>Tienes toda la información disponible en la <ulink - URL="http://www.freebsd.org/y2kbug.html">página Y2K de - FreeBSD</ulink> </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué grupos de noticias están disponibles - sobre FreeBSD?</para> - </question> - - <answer> - <para>Puedes encontrar toda la información en <ulink - URL="../../handbook/eresources-news.html">la sección de news - del Handbook.</ulink></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Hay algun canal IRC (Internet Relay Chat) sobre - FreeBSD?</para> - </question> - - <answer> - <para>Sí, muchas de las grandes redes de IRC tienen canales de - chat de FreeBSD.</para> - - <para> - <itemizedlist> - <listitem> - <para>El canal <emphasis remap=tt>#FreeBSD</emphasis> en EFNet - es un fórum de FreeBSD, pero no acudas allí para - obtener soporte técnico o contar tus penas sobre como - leer las páginas man ;). Es un canal de chat, de - principio a fín, y los temas que se tratan suelen ser - cosas como sexo, deportes o armas nucleares. - ¡Estás avisado!. Disponible en el servidor - <filename>irc.chat.org</filename>.</para> - </listitem> - - <listitem> - <para>El canal <emphasis remap=tt>#FreeBSD</emphasis> en DALNET - está disponible en el servidor - <filename>irc.dal.net</filename> en USA y - <filename>irc.eu.dal.net</filename> en Europa.</para> - </listitem> - - <listitem> - <para>El canal <emphasis remap=tt>#FreeBSD</emphasis> en - UNDERNET está disponible en - <filename>us.undernet.org</filename> en USA y - <filename>eu.undernet.org</filename> en Europa. Igual que en - EFNET, no hagas preguntas técnicas. Es un canal de chat, - no de soporte.</para> - </listitem> - - <listitem> - <para>Finalmente, puedes usar el canal - <emphasis remap=tt>#FreeBSD</emphasis> en BSDNET, una - pequeña red de chat, en el servidor - <filename>irc.FreeBSD.org</filename>. Esta red intenta ofrecer - más soporte técnico y no ser tan anárquica - como EFNET, UNDERNET o DALNET. ¿Por qué no - ofrecer respuestas de manera voluntaria hoy en BSDNET?.</para> - </listitem> - - </itemizedlist> - </para> - - <para>Cada uno de estos canales es diferente y no están - conectados entre ellos. Sus estilos de chat difieren, por lo que - podrís probarlos todos para ver cuál te gusta - más.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Libros sobre FreeBSD</para> - </question> - - <answer> - <para>El libro de Greg Lehey's ``Installing and Running FreeBSD'' - está disponible en Walnut Creek y se vende con el CDROM 2.2.5. - Hay también un libro más completo titulado ``The - Complete FreeBSD'', el cual tiene manuales adicionales e incluye el - CDROM 2.2.6. Debería estar disponible en las mejores - librerías.</para> - - <para>Hay un proyecto de documentación de FreeBSD con el que - puedes contactar (o mejor, participar), en la lista de - distribución <emphasis remap=tt>doc</emphasis>: - <ulink URL="mailto:doc@FreeBSD.org"><doc@FreeBSD.org></ulink>. - En esta lista se tratan todos los temas referentes a la - documentación de FreeBSD. Para verdaderas preguntas sobre - FreeBSD, existe la lista <emphasis remap=tt>question</emphasis>: - <ulink URL="mailto:questions@FreeBSD.org"><questions@FreeBSD.org></ulink>. - </para> - - <para>Está disponible un ``manual'' (handbook a patir de ahora) - de FreeBSD, y se puede encontrar en: - <ulink URL="../../handbook/index.html">El Handbook de FreeBSD</ulink>. - Ten en cuenta que éste es un trabajo en constante desarrollo y - actualización, por lo que algunas secciones podrían - estar incompletas.</para> - - <para>Teniendo en cuenta que FreeBSD 2.2.x está basado en la - versión Berkeley 4.4BSD-Lite2, la mayoría de manuales - de 4.4BSD con aplicables a FreeBSD 2.2.x. O'Reilly y Asociados - publican estos manuales:</para> - - <para> - <itemizedlist> - <listitem> - <para>4.4BSD System Manager's Manual <!-- <br> --> - By Computer Systems Research Group, UC Berkeley <!-- <br> --> - 1st Edition June 1994, 804 pages <!-- <br> --> - ISBN: 1-56592-080-5 <!-- <br> --> - </para> - </listitem> - - <listitem> - <para>4.4BSD User's Reference Manual <!-- <br> --> - By Computer Systems Research Group, UC Berkeley <!-- <br> --> - 1st Edition June 1994, 905 pages <!-- <br> --> - ISBN: 1-56592-075-9 <!-- <br> --> - </para> - </listitem> - - <listitem> - <para>4.4BSD User's Supplementary Documents <!-- <br> --> - By Computer Systems Research Group, UC Berkeley <!-- <br> --> - 1st Edition July 1994, 712 pages <!-- <br> --> - ISBN: 1-56592-076-7 <!-- <br> --> - </para> - </listitem> - - <listitem> - <para>4.4BSD Programmer's Reference Manual <!-- <br> --> - By Computer Systems Research Group, UC Berkeley <!-- <br> --> - 1st Edition June 1994, 886 pages <!-- <br> --> - ISBN: 1-56592-078-3 <!-- <br> --> - </para> - </listitem> - - <listitem> - <para>4.4BSD Programmer's Supplementary Documents <!-- <br> --> - By Computer Systems Research Group, UC Berkeley <!-- <br> --> - 1st Edition July 1994, 596 pages <!-- <br> --> - ISBN: 1-56592-079-1 <!-- <br> --></para> - </listitem> - </itemizedlist> - </para> - - <para>Una descripción de éstos puede ser encontrada - vía WWW en:</para> - - <para><ulink URL="http://gnn.com/gnn/bus/ora/category/bsd.html">Descripción de libros sobre 4.4BSD</ulink></para> - - <para>Para profundizar más en la organizacion del kernel de - 4.4BSD, no puedes ir mal con los siguientes:</para> - - <para>McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, - and John Quarterman.<!-- <br> --></para> - - <para><emphasis>The Design and Implementation of the 4.4BSD Operating - System</emphasis>. Reading, Mass. : Addison-Wesley, 1996.<!-- <br> --> - ISBN 0-201-54979-4<!-- <br> --></para> - - <para>Un buen libro en administración de sistemas es:</para> - - <para>Evi Nemeth, Garth Snyder, Scott Seebass & Trent R. Hein,<!-- <br> --> - ``Unix System Administration Handbook'', Prentice-Hall, 1995<!-- <br> --> - ISBN: 0-13-151051-7<!-- <br> --></para> - - <para><acronym>NOTA</acronym> Asegurate de conseguir la segunda edición, con - cubierta roja y no la primera.</para> - - <para>Este libro cubre las necesidades básicas, así - como TCP/IP, DNS, NFS,SLIP/PPP, sendmail, INN/NNTP, impresión, - etc,. Es caro, (aproximadamente unos US$45-$55), pero vale - la pena. También incluye un CD-ROM con los fuentes de varias - herramientas, muchas de las cuales están incluidas, - también, en la versión 2.2.6R (CDROM) de FreeBSD, - incluso incluyendo versiones más modernas.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo accedo a la base de datos de Problem - Report?</para> - </question> - - <answer> - <para>La base de datos de Problem Report puede ser consultada - vía web a traves de la dirección - <ulink URL="http://www.FreeBSD.org/cgi/query-pr-summary.cgi">query</ulink>. - También pueden ser enviados vía web a través de - la dirección <ulink URL="http://www.FreeBSD.org/send-pr.html">envio</ulink>. - El comando <command>send-pr(1)</command> también puede ser - usado para el envío de reporte de problemas.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Dónde puedo obtener versiones ASCII/PostScript - de la FAQ?</para> - </question> - - <answer> - <para>La FAQ actualizada está disponible en el servidor Web de - FreeBSD o en cualquiera de los mirrors en formato PostScript y texto - (7 bits ASCII y 8 bits Latin-1).</para> - - <para>Formato PostScript (unos 370KB): - <itemizedlist> - <listitem> - <para><ulink URL="http://www.FreeBSD.org/FAQ/FAQ.ps">http://www.FreeBSD.org/FAQ/FAQ.ps</ulink></para> - </listitem> - </itemizedlist> - </para> - - <para>Formato ASCII (unos 220KB): - <itemizedlist> - <listitem> - <para><ulink URL="http://www.FreeBSD.org/FAQ/FAQ.ascii">http://www.FreeBSD.org/FAQ/FAQ.ascii</ulink></para> - </listitem> - </itemizedlist> - </para> - - <para>Formato texto ISO 8859-1 (unos 220KB): - <itemizedlist> - <listitem> - <para><ulink URL="http://www.FreeBSD.org/FAQ/FAQ.latin1">http://www.FreeBSD.org/FAQ/FAQ.latin1</ulink></para> - </listitem> - </itemizedlist> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Dónde puedo obtener versiones ASCII/PostScript - del Handbook?</para> - </question> - - <answer> - <para>El Hansbook actualizado está disponible en el servidor Web - de FreeBSD o en cualquiera de los mirrors en formato PostScript y texto - (7 bits ASCII y 8 bits Latin-1).</para> - - <para>Formato PostScript (unos 1.7MB): - <itemizedlist> - <listitem> - <para><ulink URL="http://www.FreeBSD.org/handbook/handbook.ps">http://www.FreeBSD.org/handbook/handbook.ps</ulink></para> - </listitem> - </itemizedlist> - </para> - - <para>Formato ASCII (unos 1080KB): - <itemizedlist> - <listitem> - <para><ulink URL="http://www.FreeBSD.org/handbook/handbook.ascii">http://www.FreeBSD.org/handbook/handbook.ascii</ulink></para> - </listitem> - </itemizedlist> - </para> - - <para>Formato texto ISO 8859-1 (unos 1080KB): - <itemizedlist> - <listitem> - <para><ulink URL="http://www.FreeBSD.org/handbook/handbook.latin1">http://www.FreeBSD.org/handbook/handbook.latin1</ulink></para> - </listitem> - </itemizedlist> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>El Handbook en ASCII no está en texto plano!</para> - </question> - - <answer> - <para>Cierto, las versiones ASCII y Latin1 del Handbook no están - estrictamente en formato de texto plano; contienen carácteres de - control de impresión asumiendo que el documento será - enviado a una impresora. Si necesitas tenerlos en un formato leible, - pasa el archivo por el programa col:</para> - - <para> - <literallayout> -$ col -b < inputfile > outputfile - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Me gustaría ser Mirror del web de FreeBSD!</para> - </question> - - <answer> - <para>Hay múltiples maneras de hacer mirror de las páginas web.</para> - <para> - <itemizedlist> - <listitem> - <para>Usando CVSUP: Puedes obtener todo el contenido del web - usando el programa CVSUP desde el servidor cvsup.FreeBSD.org. - Añade esta línea a tu archivo de - configuración de cvsup: - - <literallayout> -www release=current hostname=/home base=/usr/local/etc/cvsup -prefix=/usr/local/www/data/www.FreeBSD.org delete old use-rel-suffix - </literallayout> - - </para> - </listitem> - - <listitem> - <para>Usando rsync: Mira en - <ulink URL="http://www.FreeBSD.org/internal/mirror.html">la - página de mirrors</ulink> para más - información.</para> - </listitem> - - <listitem> - <para>Usando mirror de FTP: Puedes bajarte la copia de los - contenidos del web usando tu herramienta favorita de mirror de - FTP. Simplemente empieza en - ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www.</para> - </listitem> - </itemizedlist> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Me gustaría traducir la documentación.</para> - </question> - - <answer> - <para>Bueno, no podemos pagar, pero quizás te enviemos un CD-ROM - o una camiseta y añadiremos tu nombre en la sección - ``Contributors'' del Handbook si nos envías una traducción - de la documentación.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Otras fuentes de información.</para> - </question> - - <answer> - <para>Los siguientes grupos de news contienen temas relacionados con - FreeBSD y sus usuarios:</para> - - <para> - <itemizedlist> - <listitem> - <para><ulink URL="news:comp.unix.bsd.FreeBSD.announce">comp.unix.bsd.FreeBSD.announce</ulink> (moderada) - </para> - </listitem> - - <listitem> - <para><ulink URL="news:comp.unix.bsd.FreeBSD.misc">comp.unix.bsd.FreeBSD.misc</ulink> - </para> - </listitem> - - <listitem> - <para><ulink URL="comp.unix.bsd.misc">comp.unix.bsd.misc</ulink></para> - </listitem> - </itemizedlist> - </para> - - <para>Recursos Web:</para> - - <para> - <itemizedlist> - <listitem> - <para>The <ulink URL="http://www.FreeBSD.org/">FreeBSD Home Page</ulink>.</para> - </listitem> - - <listitem> - <para><anchor id="pao">Si tienes un portátil asegurate de - pasar por <ulink URL="http://www.jp.FreeBSD.org/PAO/">Tatsumi - Hosokawa's Mobile Computing page</ulink>.</para> - </listitem> - - <listitem> - <para><anchor id="smp">Información sobre SMP (Symmetric - MultiProcessing), - <ulink URL="http://www.FreeBSD.org/~fsmp/SMP/SMP.html">soporte de - SMP</ulink>.</para> - </listitem> - - <listitem> - <para><anchor id="multimedia">Información sobre - aplicaciones <ulink URL="http://www.FreeBSD.org/~faulkner/multimedia/mm.html">multimedia</ulink>. - Si estás interesado específicamente en el chip - <ulink URL="http://www.FreeBSD.org/~ahasty/Bt848.html">Bt848</ulink> - de vídeo captura, entonces sigue este link.</para> - </listitem> - </itemizedlist> - </para> - - <para>El handbook de FreeBSD tiene una completa bibliografía en - la sección <ulink URL="../../handbook/bibliography.html">bibliografía</ulink> - la cual recomendamos leer si estás interesado en comprar libros - actuales relacionados con estos temas.</para> - </answer> - </qandaentry> - </qandaset> -</preface> - -<chapter id="install"> - <title>Instalación</title> - - <qandaset> - <qandaentry> - <question> - <para>¿Qué archivo necesito para instalar FreeBSD?</para> - </question> - - <answer> - <para>Generalmente sólo es necesario un disco de 1,44Mb con una - imgen del archivo <filename>floppies/boot.flp</filename>. Arranca con - este disco para comenzar con el programa de instalación, el cual - se encargará de realizar todas las operaciones necesarias - (gestión de TCP/IP, cintas, CDROMs, floppies, particiones DOS y - cualquier cosa necesaria para realizar la instalación).</para> - - <para>Si necesitas bajarte las distribuciones (para una - instalación desde una partición DOS por ejemplo), estas - son las distribuciones mínimas que necesitarás:</para> - - <para> - <itemizedlist> - <listitem> - <para> bin/<!-- <br> --></para> - </listitem> - - <listitem> - <para> manpages/<!-- <br> --></para> - </listitem> - - <listitem> - <para> compat*/<!-- <br> --></para> - </listitem> - - <listitem> - <para> doc/ <!-- <br> --></para> - </listitem> - - <listitem> - <para> src/ssys.* <!-- <br> --></para> - </listitem> - </itemizedlist> - </para> - - <para>Todas las instrucciones sobre este procedimiento y una - ampliación de la documentación se puede encontrar en - <ulink URL="../../handbook/install.html">Instalación de FreeBSD.</ulink> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¡Ayuda!, La imagen del disco de arranque no cabe en un - floppy</para> - </question> - - <answer> - <para>Un floppy de 1.44MB puede contener hasta 1474560 bytes de datos. - La imagen de arranque es exactamente de 1474560 bytes.</para> - - <para>Los errores más comunes en la preparación de disco - de arranque son: - <itemizedlist> - <listitem> - <para>No bajarse la imagen en modo - <emphasis remap=tt>binario</emphasis> cuando se usa - <acronym>FTP</acronym>.</para> - - <para>Algunos clientes FTP intentan bajar por defecto los archivos - en modo <acronym>ASCII</acronym> e intentan cambiar los caracteres - de final de línea recibidos por el que utilice el sistema - cliente. Esto corromperá inevitablemente la imagen de - arranque. Revisa el tamaño de la imagen: si no es - <emphasis>exactamente</emphasis> el mismo tamaño del archivo - existente en el servidor, la imagen no servirá.</para> - - <para>Solución: teclea <emphasis remap=tt>binary</emphasis> - en la línea de comandos del FTP después de conectar y - antes de empezar a bajar la imágen.</para> - - <para></para> - </listitem> - - <listitem> - <para>Usando el comando <emphasis remap=tt>copy</emphasis> de DOS - (o cualquier herramienta GUI equivalente) para transferir la imagen - a un disquete.</para> - - <para>Programas como <emphasis remap=tt>copy</emphasis> no - funcionarán para la transferencia de la imagen a un - disco. La imagen tiene el contenido completo del disco, - pista por pista, y no está pensada para ser trasladada a un - disquete como un archivo normal. Tienes que hacer una transferencia - ``raw'' usando herramientas de bajo nivel como - <emphasis remap=tt>fdimage</emphasis> o - <emphasis remap=tt>rawrite</emphasis>, descritas en - <ulink URL="../../handbook/install.html">la guía de - instalación de FreeBSD</ulink>.</para> - </listitem> - </itemizedlist> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Dónde puedo encontrar las instrucciones de - instalación de FreeBSD?</para> - </question> - - <answer> - <para>Las instrucciones de instalación están en - <ulink URL="../../handbook/install.html">Instalación de FreeBSD.</ulink></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué necesito para poder ejecutar FreeBSD?</para> - </question> - - <answer> - <para>Necesitarás un PC con 386 o superior, 5 Mb o más de - memoria RAM y al menos 60 Mb de espacio en disco duro. Puede funcionar - con tarjetas gráficas de bajo nivel (Hercules), pero para poder - ejecutar X11R6 es necesario una tarjeta VGA o superior.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Sólo tengo 4Mb de RAM. ¿Puedo instalar - FreeBSD?</para> - </question> - - <answer> - <para>FreeBSD 2.1.7 fue la última version de FreeBSD que - podía ser instalada en un sistema de 4Mb. Las nuevas versiones - de FreeBSD, como la 2.2, necesitan al menos 5Mb para poder ser - instaladas.</para> - - <para>Todas las versiones de FreeBSD, incluyendo la 3.0, - funcionarán en sistemas con 4Mb de RAM, lo que no puedes - ejecutar es la instalación en sistemas con 4Mb. Puedes - añadir memoria extra para el proceso de instalación, y - una vez instalado, volver a los 4Mb. Tambien puedes instalar tu disco - en una máquina con más de 4Mb, realizar la - instalación y reponer el disco en su máquina con - 4Mb.</para> - - <para>Hay algunas situaciones en las que FreeBSD 2.1.7 no se - instalará en sistemas con 4Mb. Para ser exactos: no se - instalará con 640Kb de memoria base + 3Mb de memoria extendida. - Si tu placa base puede remapear algo de la memoria ``perdida'' fuera de - los 640Kb a la región de 1Mb, entonces aun podrás - instalar FreeBSD 2.1.7.</para> - - <para>Intenta entrar en el setup de tu BIOS y busca la opción - ``remap''. Actívala. Quizás tendrás que - desactivar la opción de ROM shadowing.</para> - - <para>Es más fácil añadir en la máquina 4Mb - de memoria para la instalación. Crea un kernel unicamente con - las opciones que necesites y vuelve a quitar los 4Mb - añadidos.</para> - - <para>También puedes instalar la versión 2.0.5 y a - continuación actualizar tu sistema a la 2.1.7 con la - opción ``upgrade'' del programa de instalación de la - versión 2.1.7.</para> - - <para>Después de la instalación, si te creas un kernel - personalizado, funcionará en 4Mb. Algunos fueron capaces de - arrancar con 2Mb (aunque después el sistema era incapaz de hacer - nada más :-)) </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo puedo hacer mi propio disco de - instalación?</para> - </question> - - <answer> - <para>Realmente, no hay una manera para - <emphasis>sólo</emphasis> hacer un disco de instalación - personalizado. Hay algún código en - <filename>/usr/src/release/floppies/Makefile</filename> que - supuestamente es para hacer <emphasis>sólo</emphasis> un disco - de instalación personalizado, pero no está realmente - testeado todavía.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Puedo tener más de un sistema operativo en mi - PC?</para> - </question> - - <answer> - <para>Echa un vistazo en - <ulink URL="../tutorials/multios/multios.html">La página - multi-OS.</ulink></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Puede Windows 95 coexistir con FreeBSD?</para> - </question> - - <answer> - <para>Instala primero Windows 95 y después FreeBSD. El boot - manager de FreeBSD se encargará de darte la opción de - arrancar con cualquiera de los dos sistemas. Si lo haces al - revés, Windows 95 borrará el boot manager sin hacer - ninguna pregunta previa. Si ocurre esto, pasa a la siguiente - sección.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Windows 95 desinstaló mi boot manager! ¿Cómo - lo recupero? - </para> - </question> - - <answer> - <para>Puedes reinstalar el boot manager que viene con FreeBSD de dos - maneras:</para> - - <para> - <itemizedlist> - <listitem> - <para>Ejecutando el DOS, entra en el directorio - <filename>tools/</filename> de tu distribución de FreeBSD - y busca el archivo <filename>bootinst.exe</filename>. - Ejecútalo de la siguiente manera:</para> - - <para><emphasis remap=bf>bootinst.exe boot.bin</emphasis></para> - - <para></para> - - <para>Y el boot manager estará reinstalado.</para> - - <para>Arranca con el disco de instalación de FreeBSD y - entra en la sección ``Custom Installation''. Selecciona - ``Partition''. Escoge el disco en el cual debe estar instalado el - boot manager, y cuando entres en el editor de particiones, sin - hacer ningún cambio, selecciona (W)rite. Serás - preguntado para confirmar la acción, responde - ``sí'', y cuando estés en la ventana de ``Boot - manager selection'' asegúrate de seleccionar ``Boot - Manager''. Esto reescribirá el boot manager en el disco. - Ahora, sal del programa de instalación y rearranca el - computador de la manera habitual.</para> - </listitem> - </itemizedlist> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Puedo instalar FreeBSD en un disco con sectores - erróneos?</para> - </question> - - <answer> - <para>La gestión de sectores erróneos por parte de - FreeBSD no está desarrollada todavía al 100% y - desgraciadamente debemos decirte que si tienes discos IDE o ESDI con - gran cantidad de sectores erróneos, FreeBSD no es para - tí. De todas maneras, te aconsejamos que antes de descartar la - instalación, hagas un intento.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Ocurren cosas extrañas cuando arranco con el disco de - instalación - </para> - </question> - - <answer> - <para>Si observas cosas como que la maquina se ``cuelga'' o se - reinicializa espontáneamente cuando intentas arrancar con el - disco de instalación, aquí tienes tres preguntas que - debes responder tu mismo:</para> - - <para> - <orderedlist> - <listitem> - <para>¿Estás usando un disco nuevo, recién - formateado y libre de errores, o estás usando el disco de - publicidad que venía con la revista que lleva guardada - varios meses debajo de la cama?</para> - </listitem> - - <listitem> - <para>¿Descargaste por ftp la imagen del disco en modo - binario?... (no te preocupes ya que hasta el mejor de nosotros, - por lo menos una vez, ha descargado un archivo en modo - ASCII).</para> - </listitem> - - <listitem> - <para>Si estás usando uno de esos nuevos sistemas - operativos como Windows 95 o Windows NT, debes arrancar la - máquina en modo DOS puro, ya que parece ser que los - Windows no se llevan bien con los programas que escriben - directamente sobre los dispositivos hardware, como hace el - programa de creación de discos de instalación de - FreeBSD.</para> - </listitem> - </orderedlist> - </para> - - <para>Han habido informaciones referentes a problemas al bajar el disco - de instalación con Netscape, por lo que te recomentados que uses - un programa diferente como cliente de ftp.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¡Ayuda! ¡No puedo instalar desde una cinta!</para> - </question> - - <answer> - <para>Si estás instalando la versión 2.1.7R desde una - cinta, debes crear esa cinta con un tamaño de bloque de tar de - 10 (5120 bytes). El tamaño por defecto de los bloques tar es de - 20 (10240 bytes), y las cintas creadas con este tamaño por - defecto no pueden ser usadas para instalar FreeBSD 2.1.7R; con estas - cintas tendrás un error referente a un tamaño de registro - demasiado grande.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Conexión de dos máquinas FreeBSD vía puerto - paralelo (PLIP) - </para> - </question> - - <answer> - <para>Coge un cable de laplink y asegurate que ambos computadores tienen - un kernel que soporta el puerto paralelo.</para> - - <para> - <literallayout> -$ dmesg | grep lp -lpt0 at 0x378-0x37f irq 7 on isa -lpt0: Interrupt-driven port -lp0: TCP/IP capable interface - </literallayout> - </para> - - <para>Conecta el cable en los dos puertos paralelos.</para> - - <para>Configura los parámetros de red para el interfaz lp0 (como - root) en ambas máquinas. Por ejemplo, si quieres conectar la - máquina max y moritz:</para> - - <para> - <literallayout> -max <-----> moritz -Direccion IP 10.0.0.1 10.0.0.2 - </literallayout> - </para> - - <para>En el arranque de max - <literallayout> -# ifconfig lp0 10.0.0.1 10.0.0.2 - </literallayout> - </para> - - <para>En el arranque de moritz</para> - - <para> - <literallayout> -# ifconfig lp0 10.0.0.2 10.0.0.1 - </literallayout> - </para> - - <para>Esto es todo!!. Por favor, lee los man de lp(4) y lpt(4).</para> - - <para>También deberías añadir las máquinas - en el archivo /etc/hosts:</para> - - <para> - <literallayout> -127.0.0.1 localhost.my.domain localhost -10.0.0.1 max.my.domain max -10.0.0.2 moritz.my.domain moritz - </literallayout> - </para> - - <para>Para asegurarte que funciona haz:</para> - - <para>en max:</para> - - <para> - <literallayout> -$ ifconfig lp0 -lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500 - inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000 - </literallayout> - </para> - - <para> - <literallayout> -$ netstat -r -Routing tables - -Internet: -Destination Gateway Flags Refs Use Netif Expire -moritz max UH 4 127592 lp0 - </literallayout> - </para> - - <para> - <literallayout> -$ 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 - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Puedo instalar FreeBSD en mi portátil sobre PLIP - (Parallel Line IP)?</para> - </question> - - <answer> - <para>Conecta los dos computadores usando Laplink mediante el puerto - paralelo y usa las siguientes características:</para> - - <para> - <literallayout> -+----------------------------------------+ -|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 - | -+----------------------------------------+ - </literallayout> - </para> - - <para>Mira también <link linkend="pao">esta nota</link> en la - página de informática móvil.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="geometry"> - <para>¿Que geometría debo usar para mis discos?</para> - </question> - - <answer> - <para>(Por geometría de un disco, entendemos el número de - cilindros, cabezales y sectores por pista en el disco - de ahora en - adelante nos referiremos por conveniencia a estos parámetros - como C/H/S. Así es como trabaja el BIOS de los PC's para - gestionar la lectura/escritura.</para> - - <para>Por alguna razón, esto parece crear mucha - confusión. Ante todo, la geometría - <emphasis remap=tt>física</emphasis> de un disco SCSI es - totalmente irrelevante ya que FreeBSD trabaja en términos de - bloques de disco. Con discos IDE, FreeBSD trabaja en términos de - C/H/S, pero todos los discos modernos convierten estos datos en - referencias internas de bloques.</para> - - <para>Para discos SCSI, la geometría a usar depende de si - tenemos activado en la controladora el soporte de translación - (comunmente conocido como "soporte para discos mayores de 1GB" o - algo similar). Si esta opción está desactivada, entonces - usa N cilindros, 64 cabezales y 32 sectores por pista, donde N es la - capacidad del disco en MB. Por ejemplo, para un disco de 2GB, los - parámetros correctos serían 2048 cilindros, 64 cabezales - y 32 sectores.</para> - - <para>Si el soporte de translación está activado y la - capacidad del disco es mayor de 1GB, usa M cilindros, 63 cabezales - (*no* 64), y 255 sectores, donde M es la capacidad del disco en MB - dividida por 7.844238. Para nuestro ejemplo de un disco de 2GB, los - parámetros serían 261 cilindros, 62 cabezales y 255 - sectores.</para> - - <para>Si no estás seguro sobre los parámetros a usar, o - FreeBSD falla al detectar la geometría correcta del disco - durante la instalación, el método más simple para - solucionar este problema es crear una pequeña partición - DOS en el disco. Entonces, la geometría debería ser - detectada correctamente (y siempre puedes borrar esa partición - desde el ``editor de particiones'' si no quieres mantenerla).</para> - - <para>Alternativamente, existe una utilidad de libre - distribución incluida en FreeBSD llamada - <filename>pfdisk.exe</filename> (situada en el directorio - <emphasis remap=tt>tools</emphasis> del CD-ROM de distribución o - en cualquiera de los servidores ftp) que nos dice la geometría - del disco usada por el sistema operativo DOS. Lo único que - tenemos que hacer es introducir los datos obtenidos en el editor de - particiones de FreeBSD.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Existe alguna restricción en cómo dividir - el disco?</para> - </question> - - <answer> - <para>Sí. Debes asegurarte de que la partición raiz esta - por debajo del cilindro 1024, para que el BIOS pueda arrancar el kernel - desde ella. (Ésta es una limitación del BIOS de los PCs, - no de FreeBSD).</para> - - <para>Para discos SCSI, esto implica que la partición - raíz debe estar instalada en los primeros 1024MB (o en los - primeros 4096MB si la translación extendida esta activada). Para - discos IDE, la partición raíz debe estar en los primeros - 504MB.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué hay sobre los ``disk managers''?</para> - </question> - - <answer> - <para>FreeBSD reconoce el disk manager Ontrack. Otros disk managers no - están soportados.</para> - - <para>Si quieres usar el disco solo con FreeBSD no necesitas el disk - manager. Solo configura el disco para el espacio máximo que - pueda manejar el BIOS (usualmente 504MB), y FreeBSD se encargará - de averiguar cuánto espacio tienes realmente. Si estás - usando un disco antiguo con controladora MFM, necesitarás - decirle explícitamente a FreeBSD cuántos cilindros puede - usar.</para> - - <para>Si quieres usar el disco con FreeBSD y otro sistema operativo, - todavía puedes hacerlo sin necesitar un disk manager; - sólo asegúrate de que la partición raíz de - FreeBSD y la partición de arranque del otro sistema operativo - están en los primeros 1024 cilindros. Si eres cuidadoso, una - partición raiz de 20MB debería ser suficiente.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="missing-os"> - <para>Cuando arranco FreeBSD obtengo ``Missing Operating System''</para> - </question> - - <answer> - <para>Esto es un clásico conflicto entre FreeBSD y DOS u otro - sistema operativo sobre sus ideas de - <link linkend="geometry">geometría.</link>. Tendrás que - reinstalar FreeBSD, pero teniendo en cuenta la información que - te damos más arriba sobre este asunto.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>No puedo pasar del prompt `F?'.</para> - </question> - - <answer> - <para>Éste es otro problema descrito en el párrafo - anterior. La geometría de tu BIOS y los datos de - configuración de FreeBSD no coinciden. Si tu controladora o BIOS - soporta la translación de cilindros (también conocido - como "soporte para discos de más de 1GB"), intenta - activar/desactivar esta opción y reinstala FreeBSD.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="bigram"> - <para>Tengo >16MB de RAM. ¿Puede causar esto problemas?</para> - </question> - - <answer> - <para>Aparte del rendimiento, no. FreeBSD 2.X tiene buffers que - permiten al ``bus mastering controller'' acceder a más de 16MB. - (Esto sólo es aplicable si estás usando dispositivos - ISA).</para> - - <para>También mira la sección - <link linkend="reallybigram">máquinas con >64M</link> si - tienes esta cantidad de memoria o si usas máquinas Compaq u otro - BIOS que no da correctamente la cantidad de memoria disponible.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Necesito instalar todo el código fuente?</para> - </question> - - <answer> - <para>En general, no. De todas maneras, te recomendamos que instales, - por lo menos, el kit de código fuente - <emphasis remap=tt>base</emphasis>, el cual incluye muchos de los - archivos aquí mencionados, y el kit - <emphasis remap=tt>sys</emphasis>, que incluye el código fuente - del kernel. No hay nada en el sistema que requiera el código - fuente para funcionar, a excepción del programa de - configuración de kernel - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?config">config</ulink>. - Con la excepción de las fuentes del kernel, nuestra estructura - esta diseñada para que puedas montar una unidad en solo lectura - via NFS en la que exista el código fuente, y aun así, ser - capaz de compilar los nuevos binarios. (Debido a las restriciones de - los fuentes del kernel, recomendamos que no montes estos en - <filename>/usr/src</filename> directamente, sino en cualquier otra - parte del disco con los links simbólicos apropiados para - duplicar la estructura principal del árbol de directorios - original),</para> <para>Teniendo los fuentes on-line y sabiendo como - crear un sistema con ellas (compilar), te haremos mucho mas - fácil la actualización a futuras versiones de - FreeBSD.</para> - - <para>Para seleccionar auténticamente un subconjunto del - código fuente, usa la opción Custom del menú desde - el menú Distributions de la herramienta de instalación. - El script <filename>src/install.sh</filename> instalará - sólo partes de la distribución del código fuente - dependiendo de los parámetros (argumentos) que se le - pasen.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Necesito crear un nuevo kernel?</para> - </question> - - <answer> - <para>La creación de un nuevo kernel era, originariamente, un - paso requerido en la instalación de FreeBSD, pero en las - versiones más recientes nos hemos beneficiado de la - introducción de una herramienta de configuración de - kernel mucho más amigable. Cuando en el prompt de arranque de - FreeBSD (boot:), usamos el parámetro "-c", llegamos a una - pantalla de configuración visual la cual permite configurar las - opciones del kernel para la mayoría de tarjetas ISA.</para> - - <para>Todavía es recomendable la creación de un nuevo - kernel conteniendo sólo los drivers que nos sean necesarios para - ahorrar un poco de RAM, pero no es estrictamente necesario para la - mayoría de sistemas.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Vivo fuera de USA. ¿Puedo usar la encriptación - DES?</para> - </question> - - <answer> - <para>Si no es absolutamente necesario que uses la encriptación - DES, puedes usar la encriptación por defecto de FreeBSD para una - <emphasis remap=bf>mejor</emphasis> seguridad, y sin restricciones de - importación. La encriptación por defecto de los passwords - en FreeBSD está basada en <emphasis remap=bf>MD5</emphasis>, y - es necesario un mayor uso intensivo de CPU con programas de - descubrimiento de passwords que en DES. La única razón - para no usar hoy en día la encriptación <emphasis - remap=bf>MD5</emphasis> sería usar un sistema de passwords - compartidos entre sistemas FreeBSD y no FreeBSD.</para> - - <para>Puesto que el algoritmo de encriptación DES no puede ser - legalmente exportado fuera de USA, los usuarios externos a USA NO - deberían descargar este software desde los servidores FTP - situados en USA.</para> - - <para>Existe una alternativa para la biblioteca de encriptación, - basada en el código escrito en Australia por David Burren. Este - código está disponible en algunos mirrors de FreeBSD - fuera de USA. El código fuente de la biblioteca de - encriptación, y los binarios de los programas que la usan pueden - encontrarse en los siguientes servidores FTP:</para> - - <para> - <variablelist> - <varlistentry> - <term> - South Africa - </term> - <listitem> - <para><filename>ftp://ftp.internat.FreeBSD.org/pub/FreeBSD</filename> - <filename>ftp://storm.sea.uct.ac.za/pub/FreeBSD</filename></para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - Brazil - </term> - <listitem> - <para><filename>ftp://ftp.iqm.unicamp.br/pub/FreeBSD</filename></para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - Finland - </term> - <listitem> - <para><filename>ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt</filename></para> - </listitem> - </varlistentry> - </variablelist> - </para> - - <para>Los usuarios de fuera de USA no deben descargar ningún - software de encriptación de servidores situados en USA, ya que - de no seguir esta norma los responsables de esos servidores - podrían verse envueltos en importantes problemas legales.</para> - - <para>Se está desarrollando una distribución no - estadounidense de Kerberos, cuyas versiones actuales pueden obtenerse - vía ftp anónimo en - <filename>braae.ru.ac.za</filename>.</para> - - <para>Existe también una <link linkend="mailing">lista de - distribución</link> para la discusión de software de - encriptación externo a USA. Para más información - envía un e-mail con una simple línea diciendo "<emphasis - remap=tt>help</emphasis> en el cuerpo del mensaje a:</para> - - <para><email>majordomo@braae.ru.ac.za</email>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>El ``boot disc'' arranca pero se cuelga en la pantalla ``Probing - Devices...''</para> - </question> - - <answer> - <para>Si tienes instalado un ZIP o un Jaz IDE, desconéctalo e - inténtalo de nuevo. El disco de arranque puede haberse - confundido con los discos. Una vez el sistema esté instalado, - puedes volver a conectar los dispositivos. Esperamos que esto sea - arreglado en las próximas releases.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Aparece el siguiente error ``panic: can't mount root'' al - reiniciar el computador después de la instalación</para> - </question> - - <answer> - <para>Este error proviene de la confusión entre los bloques de - arranque y lo que ve el kernel en los discos. El error se suele - manifestar en sistemas con dos discos IDE, con los discos duros - dispuestos como máster o ''single'' en controladoras diferentes, - estando FreeBSD instalado en la controladora IDE secundaria. Los - bloques de arranque piensan que el sistema está instalado en wd1 - (el segundo disco en el BIOS) mientras el kernel asigna el primer disco - de la controladora secundaria wd2. Después de la - detección de dispositivos, el kernel intenta montar lo que los - bloques de arranque piensan que es el disco de arranque, wd1, cuando - realmente es el wd2, y falla.</para> - - <para>Para solucionar el problema, haz una de las siguientes - cosas:</para> - - <para> - <orderedlist> - <listitem> - <para>En el prompt de arranque (boot:), pon - <emphasis remap=tt>1:wd(2,a)kernel</emphasis> y presiona Enter. - Si el sistema arranca, ejecuta el comando: - <literallayout> -echo "1:wd(2,a)kernel" > /boot.config - </literallayout> - para actualizar la cadena de arranque por defecto.</para> - </listitem> - - <listitem> - <para>Mueve el disco de FreeBSD a la controladora IDE primaria - para que los discos sean consecutivos.</para> - </listitem> - - <listitem> - <para><ulink URL="../../handbook/kernelconfig.html">Crea un nuevo - kernel,</ulink> modifica las líneas de - configuración de wd de la siguiente manera: - <literallayout> -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 - </literallayout> - Instala el nuevo kernel: Si moviste los discos y quieres - recuperar la configuración previa, reemplaza los discos en - la configuración deseada y rearranca el sistema. Tu - sistema debería arrancar sin problemas.</para> - </listitem> - </orderedlist> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cuál es el límite de memoria?.</para> - </question> - - <answer> - <para>Para memoria, el límite (teórico) es de 4 - gigabytes. Un gigabyte ha sido comprobado y funciona sin problemas: - generalmente no se pueden comprar equipos i386 que soporten más - cantidad de memoria.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cuál es el límite del sistema de archivos - FFS?</para> - </question> - - <answer> - <para>Para sistemas de archivos FFS, el máximo teórico - está en 8 terabytes (bloques de 2G), o 16TB para el - tamaño de bloque por defecto de 8K. En la práctica hay un - límite ``blando'' de 1 terabyte, pero con pequeáas - modificaciones son posibles (y existen) sistemas de archivos de 4 - terabytes.</para> - - <para>El tamaño máximo de un único archivo FFS es - aproximadamente de 1 Gbloque (4TB) si el tamaño del bloque es - de 4K.</para> - - <para> - <literallayout> -maxfilesize ----------------------------------- - 2.2.7 3.0 -fs block size -stable -current works should-work -------------- ------- -------- ----- ----------- -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 - </literallayout> - </para> - - <para>Cuando el tamaño del bloque del sistema de archivos es de - 4K, los bloques triple-indirectos funcionan y el límite total - debería venir determinado por el número máximo de - bloques que puede ser representado usando los bloques triple-indirectos - (aproximadamente 1K^3 + 1K^2 + 1K), pero el límite total lo - establece un límite (incorrecto) de 1G-1 en el número de - bloques. El límite en el número de bloques debería - ser de 2G-1, pero estos números de bloque son inalcanzables - cuando los bloques del sistema de archivos son de 4K.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo puedo poner archivos de 1TB en un - disquete?</para> - </question> - - <answer> - <para>El tamaño máximo de un archivo no depende - directamente del tamaño máximo del disco. El - tamaño máximo del disco es de 1TB. Es una ventaja que el - tamaño del archivo pueda ser mayor que el tamaño del - disco.</para> - - <para>El siguiente ejemplo crea un archivo con un tamaño de 1TB - usando 32K de espacio de disco (3 bloques indirectos y 1 bloque de - datos) en una pequeña partición raíz.</para> - - <para> - <literallayout> -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 - </literallayout> - </para> - - <para>Bruce Evans, septiembre de 1998</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>He compilado un nuevo kernel y al arrancar aparece el error - "archsw.readin.failed".</para></question><answer> - - <para>Puedes arrancar especificando el kernel directamente en la - segunda fase del boot, pulsando cualquier tecla cuando veas el - símbolo | justo antes de que se arranque el cargador (loader). - Más específicamente, has actualizado los fuentes para tu - kernel, y lo has creado y actualizado a partir de ellos - <emphasis>sín hacer un ``make world''</emphasis>. Así no - funciona. Haz un ``make world''.</para> - </answer> - </qandaentry> - </qandaset> -</chapter> - -<chapter id="hardware"> - <title>Compatibilidad hardware </title> - <qandaset> - <qandaentry> - <question> - <para>¿Qué tipo de discos duros soporta FreeBSD?</para> - </question> - - <answer> - <para>FreeBSD soporta discos duros EIDE y SCSI (con controladoras - compatibles; mira en la siguiente sección), y todos los discos - que usen el interface original ``Western Digital'' (MFM, RLL, ESDI y - por supuesto IDE). Algunas controladoras ESDI que usan interfaces - propietarios quizá no funcionen correctamente.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué controladoras SCSI están - soportadas?</para> - </question> - - <answer> - <para>FreeBSD soporta las siguientes controladoras SCSI:</para> - <para> - <variablelist> - <varlistentry> - <term> - Adaptec - </term> - <listitem> - <para> - AH-1505 <ISA> - AH-152x Series <ISA> - AH-154x Series <ISA> - AH-174x Series <EISA> - Sound Blaster SCSI (AH-152x compat) <ISA> - AH-2742/2842 Series <ISA/EISA> - AH-2820/2822/2825 Series (Narrow/Twin/Wide) <VLB> - AH-294x and aic7870 MB controllers (Narrow/Twin/Wide) <PCI> - AH-394x (Narrow/Twin/Wide) - </para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry><term>Buslogic</term> - <listitem> - <para> - BT-445 Series <VLB> - BT-545 Series <ISA> - BT-742 Series <EISA> - BT-747 Series <EISA> - BT-946 Series <PCI> - BT-956 Series <PCI> - </para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - Future Domain - </term> - <listitem> - <para> - TMC-950 Series <ISA> - </para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - PCI Generic - </term> - <listitem> - <para> - NCR 53C81x based controllers <PCI> - NCR 53C82x based controllers <PCI> - NCR 53C860/75 based controllers <PCI> - </para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - ProAudioSpectrum - </term> - <listitem> - <para> - Zilog 5380 based controllers <ISA> - Trantor 130 based controllers <ISA> - </para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - DTC - </term> - <listitem> - <para> - DTC 3290 EISA SCSI in AHA-154x emulation. - </para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - Seagate - </term> - <listitem> - <para> - ST-01/02 Series <ISA> - </para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - UltraStor - </term> - <listitem> - <para> - UH-14f Series <ISA> - UH-24f Series <EISA> - UH-34f Series <VLB> - </para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - Western Digital - </term> - <listitem> - <para> - WD7000 <ISA> <No scatter/gather> - </para> - </listitem> - </varlistentry> - </variablelist> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué lectores CD-ROM soporta FreeBSD?</para> - </question> - - <answer> - <para>Está soportado cualquier disco SCSI conectado a una - controladora soportada</para> - - <para>Los siguientes interfaces de CD-ROM propietarios también - están soportados:</para> - - <para> - <itemizedlist> - <listitem> - <para>Mitsumi LU002 (8bit), LU005 (16bit) and FX001D (16bit 2x - Speed).</para> - </listitem> - - <listitem> - <para>Sony CDU 31/33A<!-- <br> --></para> - </listitem> - - <listitem> - <para>Sound Blaster Non-SCSI CD-ROM<!-- <br> --></para> - </listitem> - - <listitem> - <para>Matsushita/Panasonic CD-ROM<!-- <br> --></para> - </listitem> - - <listitem> - <para>ATAPI compatible IDE CD-ROMs<!-- <br> --></para> - </listitem> - </itemizedlist> - </para> - - <para>Todas las tarjetas no SCSI son conocidas por ser extremadamente - lentas comparadas con los discos SCSI, y algunos CDROM ATAPI - quizá no funcionen correctamente.</para> - - <para>A partir de la versión 2.2 de FreeBSD en CDROM de Walnut - Creek se soporta el arranque directo (boot) desde el propio CD.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Soporta FreeBSD discos ZIP?</para> - </question> - - <answer> - <para>FreeBSD soporta los ZIP SCSI externos. Las unidades ZIP - sólo pueden funcionar en los ID's SCSI 5 y 6, pero si el BIOS de - tu controladora lo soporta, puedes arrancar desde él. No sabemos - qué controladoras dejan arrancar desde ID's diferentes de la 0 o - 1... mira en tu documentación y házmelo saber si te - funciona.</para> - - <para>Los discos Zip ATAPI (IDE) están soportados en FreeBSD - 2.2.6 y releases posteriores.</para> - - <para>FreeBSD ha incluido el soporte de discos ZIP por puerto paralelo - desde la versión 3.0. Si estás usando una versión - actualizada, debes asegurarte de que tu configuración del kernel - incluye los drivers <emphasis remap=tt>scbus0</emphasis>, <emphasis - remap=tt>da0</emphasis>, <emphasis remap=tt>ppbus0</emphasis> y - <emphasis remap=tt>vp0</emphasis> (el kernel GENERIC los contiene todos - excepto vp0). Con todos estos drivers presentes, el disco por puerto - paralelo debería estar disponible como /dev/da0s4. Los discos se - pueden montar usando <command>mount /dev/da0s4 /mnt</command> o (para - discos dos) <emphasis remap=tt>mount_msdos /dev/da0s4 - /mnt</emphasis>.</para> - - <para>También mira en <link linkend="jaz">discos - removibles</link>, y <link linkend="disklabel">esta nota en - 'formatting'</link>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Soporta FreeBSD JAZ, EZ y otros discos removibles?</para> - </question> - - <answer> - <para>Aparte de la versión IDE de EZ, todos estos son - dispositivos SCSI, por lo que deberían funcionar sin problemas - ya que FreeBSD los toma como discos SCSI y el IDE EZ también - debería funcionar sin problemas ya que se toma como un disco IDE - estándar.</para> - - <para><anchor id="jaz">No estoy seguro de cómo soporta FreeBSD - el cambio de soporte mientras está funcionando. Deberás, - desde luego, desmontar la unidad antes de poder cambiar el soporte, y - estar seguro de que todas las unidades externas están encendidas - antes de arrancar el computador con FreeBSD para que éste pueda - reconocerlas.</para> - - <para>Mira <link linkend="disklabel">esta nota en - 'formatting'</link>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué tarjetas serie multipuerto están - soportadas por FreeBSD?</para> - </question> - - <answer> - <para>Hay una lista de ellas en la sección - <ulink URL="../../handbook/install.html#INSTALL-HW">dispositivos varios</ulink> - del manual (handbook).</para> - - <para>Algunas tarjetas ``sin nombre'' también han funcionado, - especialmente las que dicen ser compatibles AST.</para> - - <para>Mira la página - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sio">sio</ulink> - para obtener más información sobre la - configuración de estas tarjetas.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="busmouse"> - <para>Tengo un tipo de ratón no habitual. ¿Cómo lo configuro?</para> - </question> - - <answer> - <para>FreeBSD soporta el ``bus mouse'' y el ``InPort bus mouse'' de - fabricantes como Microsoft, Logitech y ATI. El driver de mouse - estiá compilado en el kernel GENERIC (kernel por defecto que - carga el sistema). Si estás haciéndote un kernel a medida - que incluya el driver de ratón, asegúrate de - añadir la siguiente línea en el archivo de - configuración del kernel:</para> - - <para> - <literallayout> -device mse0 at isa? port 0x23c tty irq5 vector mseintr - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question id="ps2mouse"> - <para>¿Cómo uso mi ratón PS/2 (``mouse port'' o - ``teclado'')?</para> - </question> - - <answer> - <para>Si estás usando una versión reciente de FreeBSD, el - driver necesario, psm, está incluido y activado en el kernel. El - propio kernel debería detectar tu ratón PS/2 en el - momento de arrancar.</para> - - <para>Si estás usando una versión antigua, sólo - tienes que activarlo en la configuración del kernel en el - momento de la instalación del sistema. Si éste ya - está instalado, escribe -c en el prompt boot: y actívalo. - Por defecto, este driver está desactivado.</para> - - <para>Si estás usando alguna de las versiones más - antiguas, tendras que añadir la siguiente línea en el - archivo de configuración del kernel y compilar uno nuevo:</para> - - <para> - <literallayout> -device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr - </literallayout> - </para> - - <para>Mira la sección - <ulink URL="../../handbook/kernelconfig.html">configuración del kernel</ulink> - si no tienes experiencia en la creación de nuevos kernel.</para> - - <para>Una vez que el kernel detecta correctamente el dispositivo psm0 - al arrancar, asegúrate de que existe una entrada en /dev para - este dispositivo. Puedes hacerlo tecleando:</para> - - <para> - <literallayout> -cd /dev; sh MAKEDEV psm0 - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question id="moused"> - <para>¿Es posible hacer uso del ratón fuera de X - Windows?</para> - </question> - - <answer> - <para>Si estás usando el driver por defecto de la consola, - syscons, puedes usar el ratón en las consolas de texto para - realizar ``cut & paste''. Ejecuta el demonio (daemon) de - ratón moused y arranca el ratón en la consola - virtual:</para> - - <para> - <literallayout> -moused -p /dev/xxxx -t yyyy -vidcontrol -m on - </literallayout> - </para> - - <para>donde <emphasis remap=tt>xxxx</emphasis> es el nombre del - dispositivo del ratón e <emphasis remap=tt>yyyy</emphasis> es un - tipo de protocolo para el ratón. Mira en - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?moused">moused</ulink> - para saber los tipos de protocolo soportados.</para> - - <para>Si quieres ejecutar el demonio moused automáticamente al - arrancar el sistema, activa las siguientes variables en - <filename>/etc/sysconfig</filename> (para versión 2.2.1).</para> - - <para> - <literallayout> -mousedtype="yyyy" -mousedport="xxxx" -mousedflags="" - </literallayout> - </para> - - <para>En versiones 2.2.2 o superiores, activa las siguientes variables - en <filename>/etc/rc.conf</filename>.</para> - - <para> - <literallayout> -moused_type="yyyy" -moused_port="xxxx" -moused_flags="" - </literallayout> - </para> - - <para>A partir de la versión 2.2.6, el demonio del ratón - es capaz de determinar automáticamente el protocolo correcto a - utilizar. Sólo tienes que especificar - <emphasis remap=tt>auto</emphasis> como el protocolo a usar.</para> - - <para>Cuando el demonio de ratón está funcionando, el - acceso al ratón necesita coordinarse con otros programas como - X Window. Mira en <link linkend="x-and-moused">esta - sección</link> para más información.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo hago un cut & paste con el ratón - en una consola de texto?</para> - </question> - - <answer> - <para>Una vez que tengas el demonio del ratón funcionando (mira - <link linkend="moused">la sección anterior</link>, pulsa el - botón 1 (izquierdo) y mueve el ratón para seleccionar la - región de texto. A continuación, pulsa el botón 2 - (medio) o 3 (derecho) para hacer un paste (pegar) de la región - seleccionada en el lugar en el que tengamos situado el cursor.</para> - - <para>En versiones 2.2.6 o superiores, pulsando el botón 2 hara - un paste del texto seleccionado. Pulsando el botón 3 - extenderemos la región seleccionada de texto. Si tu ratón - no tiene el botón medio, puedes emularlo o ``remapear'' - (reconfigurar) los botones de tu ratón con las opciones del - demonio moused. Mira en - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?moused">moused</ulink> - para más información.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Mi ratón tiene una rueda de desplazamiento y botones. - ¿Puedo usarlo?</para> - </question> - - <answer> - <para>La respuesta es, desafortunadamente, ``depende''. Estos ratones - con características adicionales requieren en muchos casos - drivers propios y especializados. A no ser que el driver de dispositivo - o el programa de usuario tenga soporte específico, el - ratón se comportará como un ratón normal y - corriente.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo uso el mouse/trackball/touchpad en mi - portátil?</para> - </question> - - <answer> - <para>Por favor, <link linkend="ps2mouse">mira en la respuesta - anterior</link>. Mira también <link linkend="pao">esta - nota</link> en la sección de computadores - portátiles.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué tipo de dispositivos de cinta están - soportados?</para> - </question> - - <answer> - <para>FreeBSD soporta unidades SCSI, QIC-36 (con interfaz QIC-02) y - QIC-40/80 (interfaz floppy). Esto inclye dispositivos de 8mm - (conocidos como Exabyte) y dispositivos DAT. Los QIC-40/80 son - conocidos por su lentitud.</para> - - <para>Algunos de los dispositivos de 8mm primitivos no son totalmente - compatibles con SCSI2 por lo que puede que no funcionen correctamente - en FreeBSD.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Soporta FreeBSD ``tape changers''?</para> - </question> - - <answer> - <para>FreeBSD 2.2 soporta SCSI changers usando el dispositivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ch(4)">ch</ulink> - y el comando - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?chio">chio</ulink>. - Los detalles acerca de cómo controlar realmente el changer se - encuentran en - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?chio">chio</ulink>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué tarjetas de sonido están soportadas por - FreeBSD?</para> - </question> - - <answer> - <para>FreeBSD soporta las tarjetas SoundBlaster, SoundBlaster Pro, - SoundBlaster 16, Pro Audio Spectrum 16, AdLib y Gravis Ultrasound. Hay - también soporte limitado para la tarjeta MPU-401 y compatibles - midi. Las tarjetas SoundBlaster 16 ASP todavía no son - soportadas. El Microsoft Sound System sí está - soportado.</para> - - <para><acronym>NOTA</acronym>: ¡Esto es solo para sonido! Este - driver no soporta CD-ROMs, SCSI o joysticks en estas tarjetas, a - excepción de la SoundBlaster. El interface SCSI de SoundBlaster - y algunos CD-ROMs no SCSI están soportados, pero no - podrás arrancar el sistema desde ellos.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>No obtengo sonido de la tarjeta es1370 con driver pcm</para> - </question> - - <answer> - <para>Puedes ejecutar el siguiente mandato cada vez que arranques el - sistema:</para> - - <para><literallayout> -mixer pcm 100 vol 100 cd 100 - </literallayout></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué tarjetas de red soporta FreeBSD?</para> - </question> - - <answer> - <para>Mira la sección de - <ulink URL="../../handbook/install:nics.html">tarjetas Ethernet</ulink> - en el manual para una lista más completa.</para> - - <para> - <variablelist> - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?de(4)">de</ulink> driver - </term> - <listitem> - <para>DEC DC21x40 and compatible PCI controllers (including 21140 100bT cards) - </para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ed(4)">ed</ulink> driver - </term> - <listitem> - <para>NE2000 and 1000 - WD/SMC 8003, 8013 and Elite Ultra (8216) - 3Com 3c503 - HP 27247B and 27252A - And clones of the above</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?le(4)">le</ulink> driver - </term> - <listitem> - <para>DEC EtherWORKS II and EtherWORKS III controllers</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ie(4)">ie</ulink> driver - </term> - <listitem> - <para>AT&T EN100/StarLAN 10 - 3COM 3c507 Etherlink 16/TP - NI5210 - Intel EtherExpress</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?is(4)">is</ulink> driver - </term> - <listitem> - <para>Isolan AT 4141-0 - Isolink 4110</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?el(4)">el</ulink> driver - </term> - <listitem> - <para>3com 3c501 (does not support Multicast or DMA)</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?eg(4)">eg</ulink> driver - </term> - <listitem> - <para>3com 3c505 Etherlink/+</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ze(4)">ze</ulink> driver - </term> - <listitem> - <para>IBM PCMCIA credit card adapter</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?lnc(4)">lnc</ulink> drive - </term> - <listitem> - <para>Lance/PCnet cards (Isolan, Novell NE2100, NE32-VL)(*)</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ep(4)">ep</ulink> driver - </term> - <listitem> - <para>3com 3c509 (Must disable PNP support on card)</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?cx(4)">cx</ulink> driver - </term> - <listitem> - <para>Cronyx/Sigma multiport Sync/Async (Cisco and PPP framing)</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?zp(4)">zp</ulink> driver - </term> - <listitem> - <para>3Com PCMCIA Etherlink III (aka 3c589)(A-C only)</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fea(4)">fea</ulink> driver - </term> - <listitem> - <para>DEC DEFEA EISA FDDI controller</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fpa(4)">fpa</ulink> driver - </term> - <listitem> - <para>DEC DEFPA PCI FDDI controller</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fe(4)">fe</ulink> driver - </term> - <listitem> - <para>Fujitsu MB86960A/MB86965A Ethernet cards</para> - </listitem> - </varlistentry> - </variablelist> - </para> - - <para><acronym>NOTA</acronym> Los drivers marcados con (*) pueden tener - problemas.</para> - - <para><acronym>NOTA</acronym>: 3C598D NO está soportada - todavía.</para> - - <para><acronym>NOTA</acronym>: FreeBSD también soporta TCP/IP - sobre líneas paralelo. En estos momentos, no somos compatibles - con otras versiones, pero esperamos corregirlo en un futuro cercano. - Encontrarás más información sobre este tema en la - página man de lp(4).</para> - - <para><acronym>NOTA</acronym>: Algunas de estas tarjetas requieren una - partición DOS en el disco duro para ejecutar el programa de - configuración.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>No tengo coprocesador matemático - ¿es malo?</para> - </question> - - <answer> - <para><acronym>NOTA</acronym>: Esto sólo afectará a los - computadores 386/486SX/486SLC. El resto de los microprocesadores - tienen un coprocesador integrado.</para> - - <para>En general, esto no causará problemas, pero hay - circunstancias en las que pudieras echarlo de menos, especialmente - si trabajas en entorno X Window. Si puedes, te recomendamos que compres - uno y lo instales en tu computador.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué otros dispositivos soporta FreeBSD 2.X?</para> - </question> - - <answer> - <para>Aquí hay una lista de drivers que no se han podido - catalogar en las categorías anteriores.</para> - - <para> - <variablelist> - <varlistentry> - <term> - <filename>b004.c</filename> - </term> - <listitem> - <para>Driver for B004 compatible Transputer boards</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - ``ctx'' driver - </term> - <listitem> - <para>Driver for CORTEX-I Frame grabber</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - ``gp'' driver - </term> - <listitem> - <para>Driver for National Instruments AT-GPIB and - AT-GPIB/TNT boards</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - ``pca'' driver - </term> - <listitem> - <para>Driver for PC speakers to allow the playing of audio files</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - ``spigot'' driver - </term> - <listitem> - <para>Driver for the Creative Labs Video Spigot</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?gsc(4)">gsc</ulink> driver - </term> - <listitem> - <para>Driver for the Genuis GS-4500 Hand scanner</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?joy(4)">joy</ulink> driver - </term> - <listitem> - <para>Driver for a joystick</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?labpc(4)">labpc</ulink> driver - </term> - <listitem> - <para>Driver for National Instrument's Lab-PC and Lab-PC+</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - ``uart'' driver - </term> - <listitem> - <para>Stand-alone 6850 UART for MIDI</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?psm(4)">psm</ulink> driver - </term> - <listitem> - <para>PS/2 mouse port</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - <filename>tw.c</filename> - </term> - <listitem> - <para>Driver for the X-10 POWERHOUSE</para> - </listitem> - </varlistentry> - </variablelist> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Soporta FreeBSD la administración de - energía en mi portátil?</para> - </question> - - <answer> - <para>FreeBSD soporta APM en algunas máquinas. Por favor, mira - en el archivo de configuración del kernel - <acronym>LINT</acronym> y busca la parabra <ulink - URL="http://www.FreeBSD.org/cgi/man.cgi?apm">APM</ulink></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Los sistemas Micron se bloquean al arrancar</para> - </question> - - <answer> - <para>Algunas placas base Micron tienen una implementación de - PCI en el BIOS que no es estándar, lo que provoca que FreeBSD no - pueda encontrar los dispositivos PCI en las direcciones en las que - deberían estar.</para> - - <para>Desactiva la opción ``Plug and Play Operating System'' en - el BIOS para solucionar el problema. Puedes encontrar más - información en: - <ulink URL="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron</ulink></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Tengo una de las controladoras Adaptec más modernas y - FreeBSD no puede encontrarla</para> - </question> - - <answer> - <para>Las nuevas controladoras Adaptec con chipset de la serie AIC789x - están soportados bajo la nueva CAM SCSI que hace su debut en la - version 3.0 de FreeBSD. Los parches para las versiones 3.0-CURRENT y - 2.2-STABLE están en: - <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/">ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/</ulink>. - Un disco de arranque con soporte CAM está disponible en: - <ulink URL="http://www.FreeBSD.org/~abial/cam-boot/">http://www.FreeBSD.org/~abial/cam-boot/</ulink>. - En ambos casos lee el archivo README antes de empezar.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Tengo un módem interno Plug & Play y FreeBSD no lo - encuentra</para> - </question> - - <answer> - <para>Necesitarás añadir el ID del modem PnP a la lista - de ID PnP en el driver serie. Para activar el soporte PnP, compila un - nuevo kernel con <emphasis remap=tt>controller pnp0</emphasis> en el - archivo de configuración y rearranca el sistema. El kernel - mostrará en pantalla los IDs de todos los dispositivos PnP que - encuentre. Copia el ID del módem en la tabla del archivo - <filename>/sys/i386/isa/sio.c</filename>, sobre la línea 2777. - Busca la cadena "SUP1310" en la estructura "siopnp_ids[]" para - encontrar la tabla. Genera un nuevo kernel, instálalo y - rearranca. Tu módem debería ser encontrado.</para> - - <para>Quizá tengas que configurar manualmente los dispositivos - PnP usando el comando ``pnp'' en la configuración de arranque - usandolo de la siguiente manera: - <literallayout> -pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8 - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo obtengo el prompt ``boot:'' en una consola - serie?</para> - </question> - - <answer> - <para> - <orderedlist> - <listitem> - <para>Crea un nuevo kernel con <emphasis remap=tt>options - COMCONSOLE</emphasis>.</para> - </listitem> - - <listitem> - <para>Crea el archivo /boot.config y pon <option>-P</option> como - único texto en el archivo.</para> - </listitem> - - <listitem> - <para>Desconecta el teclado del computador.</para> - </listitem> - </orderedlist> - </para> - - <para>Mira el archivo - <filename>/usr/src/sys/i386/boot/biosboot/README.serial</filename> para - más información.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Por qué no funciona mi tarjeta de red PCI 3Com con - mi computador Micron?</para> - </question> - - <answer> - <para>Algunas placas base Micron tienen una implementación de - PCI en el BIOS que no es estándar, lo que provoca que FreeBSD no - pueda encontrar los dispositivos PCI en las direcciones en las que - debieran estar.</para> - - <para>Para solucionar el problema, desactiva la opción - ``Plug and Play Operating System'' en el BIOS.</para> - - <para>Puedes encontrar más información sobre este - problema en - <ulink URL="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron</ulink></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Soporta FreeBSD el multiprocesamiento simétrico - (SMP)?</para> - </question> - - <answer> - <para>SMP sólo está soportado a partir de la - versión 3.0-STABLE</para> - </answer> - </qandaentry> - </qandaset> -</chapter> - -<chapter -id="troubleshoot"> - -<title>Problemas</title> - - <qandaset> - <qandaentry> - <question id="awre"> - <para>Tengo bloques erróneos en mi disco duro!</para> - </question> - - <answer> - <para>Los discos SCSI deberían ser capaces de marcar estos bloques - erróneos automaticamente para que no presenten problemas. Algunos - discos, por alguna razón desconocida, se venden con esta - característica desactivada.</para> - - <para>Para activar esta opción, tendrás que editar una de las - opciones del dispositivo, lo que puede ser hecho con FreeBSD tecleando el - siguiente comando (como root):</para> - - <para> - <literallayout> -scsi -f /dev/rsd0c -m 1 -e -P 3 - </literallayout> - </para> - - <para>y cambiando los valores de AWRE y ARRE de 0 a 1:-</para> - - <para> - <literallayout> -AWRE (Auto Write Reallocation Enbld): 1 -ARRE (Auto Read Reallocation Enbld): 1 - </literallayout> - </para> - - <para>Para otros tipos de discos, dependes de las características - de los sistemas operativos. Desafortunadamente, el comando "bad144" - que se incluye en FreeBSD, necesita ser desarrollado más en - profundidad. </para> - - <para>Se <emphasis>supone</emphasis> que los discos IDE incluyen de serie - la posibilidad de "remapear" los bloques dañados; si tienes - documentación de tu disco, podrás ver si esta opción - está activada o desactivada.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>FreeBSD no reconoce mi Bustek 742a EISA SCSI!</para> - </question> - - <answer> - <para>Esta información es específica para la tarjeta 742a, - pero puede ser aplicable a otras tarjetas Buslogic. (Bustek = Buslogic)</para> - - <para>Existen dos versiones de la tarjeta 742a. Son revisiones de - hardware A-G y H. La letra de revisión está situada - después del número de ensamblaje. La 742a tiene 2 ROMs, - una es el BIOS y la otra es el Firmware. FreeBSD no se fija en la - versión de BIOS de la tarjeta, pero si en la de Firmware. - Buslogic te enviará una actualización de de las ROMs si te - pones en contacto con su departamento técnico. La BIOS y el - Firmware son distribuidas de manera inseparable. Deberías tener - la versión de Firmware más actualizada para la - revisión de hardware de tu tarjeta.</para> - - <para>Las tarjetas con revisión A-G solo pueden aceptar BIOS/Firmware - 2.41/2.21. La revisión H y superiores pueden aceptar las versiones - más actuales 4.70/3.37. La diferencia entre las versiones de - Firmware es que la 3.38 soporta "round robin".</para> - - <para>Las tarjetas Buslogic tienen un número de serie serigrafiado - en ellas. Si tienes una revisión de hardware antigua, puedes llamar - al departamento de RMA de Buslogic y darles el número de serie de - la tarjeta para intentar cambiarla por una revisión superior del - hardware.</para> - - <para>FreeBSD 2.1 solo soporta revisiones de Firmware 2.21 o superiores. - Si tienes una versión inferior, tu tarjeta no será - reconocida como Buslogic. Quizás sea reconocida como una Adaptec - 1540. Las primeras versiones de Firmware de Buslogic contienen una modo - de emulación de la AHA1540.</para> - - <para>Si tienes una revisión de hardware antigua y consigues una - más actual (2.21), necesitarás chequear la posición - del jumper W1 y asegurarte que está en la posición B-C - (por defecto esta en B-C).</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Mi controladora SCSI HP Netserver's no es detectada!</para> - </question> - - <answer> - <para>Este es un problema ya conocido. Las controladoras SCSI EISA - integradas en la placa base en las máquinas HP Netserver, ocupan - el slot numero 11. El espacio de direcciones para los slots - EISA >=10 colisionan con los espacios de direcciones asignados - para los dispositivos PCI, y la autoconfiguración de FreeBSD no - maneja esta situación demasiado bien.</para> - - <para>Lo mejor que puedes hacer es pretender que no existan clases - de rangos de direcciones :), cambiando el valor de la opción del - kernel <symbol>EISA_SLOTS</symbol> a un valor de 12. - Configura y compila un nuevo kernel como se describe en la - <ulink URL="../../handbook/kernelconfig.html">entrada correspondiente del manual</ulink>. - </para> - - <para>Por supuesto, esto presenta un pequeño problema. Para poder - solucionarlo, es necesario un truco en la utilidad de - configuración. No uses el interface "visual", simplemente teclea - lo siguiente en la línea de comando de la utilidad</para> - - <para> - <literallayout> -eisa 12 -quit - </literallayout> - </para> - - <para>Esperamos que en las próximas versiones tengamos solucionados - estos temas.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué ocurre con la controladora IDE CMD640?</para> - </question> - - <answer> - <para>No funciona. No puede manejar comandos en los dos canales - simultáneamente.</para> - - <para>Hay una solución posible y se activa automáticamente si - tu sistema usa este chip. Para más detalles, referirse al man del - driver de discos (man 4 wd).</para> - - <para>Si todavía estás usando FreeBSD 2.2.1 o 2.2.2 con una - controladora IDE CMD640 y quieres usar el segundo canal, crea un nuevo - kernel con <emphasis remap=tt>options "CMD640"</emphasis> activada. Esta es - la opción por defecto en la versión 2.2.5 y superiores.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Tengo mensajes como ``<emphasis remap=tt>ed1: timeout</emphasis>''.</para> - </question> - - <answer> - <para>Esto, normalmente es causado por conflictos de interrupciones (por - ejemplo, dos tarjetas usando la misma IRQ). Las versiones - anteriores a la 2.0.5R eran tolerantes con los problemas de - conflictos de IRQ. A partir de esa versión, los conflictos de IRQ - ya no son tolerados. Arranca con la opción -c y cambia la entrada - correspondiente a tu tarjeta.</para> - - <para>Si estás usando conectores BCN en tu tarjeta de red, el mensaje - de error puede ser debido a una mala terminación de la red. Para - chequear esto, conecta un terminador directamente a la salida BNC de la - tarjeta (sin cable) y mira si el mensaje desaparece.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Cuando monto el CDROM, obtengo ``Incorrect super block''.</para> - </question> - - <answer> - <para>Tienes que indicar el tipo de dispositivo que quieres montar. Por - defecto <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?mount">mount</ulink> - asumirá que el dispositivo que quieres montar es - ``<emphasis remap=tt>ufs</emphasis>''. Si quieres montar un CDROM, tienes - que especificar <option>-t cd9660</option>. Esto hace que el sistema asuma - que tiene que montar un sistema de archivos con formato ISO 9660 que es lo - que los CDROM deben tener.</para> - - <para>Como ejemplo, si quieres montar una unidad CDROM, - <filename>/dev/cd0c</filename>, bajo <filename>/mnt</filename>, tienes que - ejecutar</para> - - <para> - <literallayout> -mount -t cd9660 /dev/cd0c /mnt - </literallayout> - </para> - - <para>Ten en cuenta que el nombre de tu dispositivo - (<filename>/dev/cd0c</filename> en este ejemplo) puede ser diferente - dependiendo del interface que estés usando. El comando anterior - puede ser acortado tecleando:</para> - - <para> - <literallayout> -mount_cd9660 /dev/cd0c /mnt - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Cuando monto un CDROM, obtengo ``Device not configured''.</para> - </question> - - <answer> - <para>Esto, generalmente, significa que no hay ningún disco en el - lector de CDROM. También puede significar que el lector no es - visible para el bus. Chequea que está bién configurado en - lo referente a master/slave si es IDE (ATAPI).</para> - - <para>Algunas veces un CDROM SCSI puede "desaparecer" por que no ha tenido - tiempo suficiente para responder a un reset del bus. Si tienes un - CDROM SCSI, añade la siguiente línea en el archivo de - configuración del kernel y recompílalo.</para> - - <para> - <literallayout> -options "SCSI_DELAY=15" - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Mi impresora es ridiculamente lenta. ¿Qué puedo hacer?</para> - </question> - - <answer> - <para>Si es paralelo, y el único problema es la lentitud, intenta - configurar el puero de impresora en modo "polled":</para> - - <para> - <literallayout> -lptcontrol -p - </literallayout> - </para> - - <para>Algunas impresoras nuevas de HP son conocidas por no trabajar - correctamente en modo de interrupción, aparentemente debido (y - todavía no exactamente entendido), a un problema de "timing".</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Mis programas ocasionalmente mueren con errores ``Signal 11''.</para> - </question> - - <answer> - <para>Esto puede ser por hardware erróneo (memoria, placa base, etc). - Intenta ejecutar algún programa de test de memoria. Ten en cuenta - que es posible que tu memoria pase el test del programa que uses, - pero que falle en algunas condiciones de uso, como en compilación - de kernel.</para> - - <para>La FAQ SIG11 (listada más abajo) apunta a problemas de - lentitud de memoria. Incrementa el número de "wait states" en tu - BIOS o instala una memoria más rápida.</para> - - <para>También puedes intentar desactivar el caché de placa - base en el BIOS y comprueba si se resuelve el problema.</para> - - <para>Hay una extensa FAQ en - <ulink URL="http://www.bitwizard.nl/sig11/">the SIG11 problem FAQ</ulink></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Cuando arranco, la pantalla queda negra!</para> - </question> - - <answer> - <para>Este es un problema conocido con las tarjetas de vídeo ATI - Mach 64. El problema es que esta tarjeta usa la dirección - <emphasis remap=tt>2e8</emphasis>, también usada por el puerto - serie 4. Debido a un bug (feature?) en el driver - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sio">sio.c</ulink> - , éste "tocará" este puerto aunque no esté instalado - o esté desactivado.</para> - - <para>Hasta que el problema sea fijado, puedes hacer esto:</para> - - <para> - <orderedlist> - <listitem> - <para>Teclea <option>-c</option> en el prompt de arranque. Esto te - llevará a la sección de configuración del kernel. - </para> - </listitem> - - <listitem> - <para>Desactiva <emphasis remap=tt>sio0</emphasis>, - <emphasis remap=tt>sio1</emphasis>, <emphasis remap=tt>sio2</emphasis> y - <emphasis remap=tt>sio3</emphasis> (todos ellos). De esta manera, el - driver sio no se activa.</para> - </listitem> - - <listitem> - <para>Teclea exit para seguir arrancando.</para> - </listitem> - </orderedlist> - </para> - - <para>Si quieres ser capaz de usar tus puertos serie, tendrás que - compilar un nuevo kernel con la siguiente modificación: - <filename>/usr/src/sys/i386/isa/sio.c</filename>. Busca la cadena - <literal>0x2e8</literal> y borra esta cadena y la coma anterior - (mantén la coma siguiente). Ahora, compila un nuevo kernel de - la manera habitual.</para> - - <para>Después de realizar estos cambios, puedes encontrarte aun que - las X Window no funcionan correctamente. Algunas tarjetas de - vídeo modernas ATI Mach 64 (especialmente la ATI Mach Xpression) - no funcionan con la versión actual de <emphasis remap=tt>XFree86</emphasis>; - la pantalla se queda negra cuando arrancas las X o ocurren cosas extrañas en - su funcionamiento. Puedes instalar una versión beta del nuevo - servidor X que trabaja mejor, situada en - <ulink URL="http://www.xfree86.org/">el servidor XFree86</ulink> - y seguir los links hasta el download. Coge los siguientes archivos:</para> - - <para><emphasis remap=tt>AccelCards, BetaReport, Cards, Devices, FILES, README.ati, - README.FreeBSD, README.Mach64, RELNOTES, VGADriver.Doc, - X312BMa64.tgz</emphasis></para> - - <para>Reemplaza los viejos archivos por las nuevas versiones y - asegúrate de ejecutar de nuevo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=xf86config">xf86config</ulink>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="reallybigram"> - <para>Tengo 128MB de RAM pero el sistema solo usa 64MB.</para> - </question> - - <answer> - <para>Debido a la forma que tiene FreeBSD de "ver" el tamaño de - memoria en el BIOS, solo puede detectar 16 bits - (65535 Kbytes = 64MB) (o menos... algunas BIOS fijan el tamaño de - la memoria a 16MB).</para> - - <para>Para solucionar este problema, tienes que usar la opción del - kernel indicada más adelante. Hay una manera de ver la - información completa sobre memoria en el BIOS, pero no tenemos - espacio en los bloques de arranque (bootblocks) para hacerlo. Por ahora, - tenemos que trabajar con la opción del kernel.</para> - - <para><literal>options "MAXMEM=<n>"</literal></para> - - <para>Donde <emphasis remap=tt>n</emphasis> es tu memoria en Kilobytes. - Para 128MB, tendrías que usar <emphasis remap=tt>131072</emphasis>. - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>FreeBSD 2.0 aborta con ``kmem_map too small!''</para> - </question> - - <answer> - <para><emphasis remap=tt>Nota</emphasis> El mensaje debería ser - ``mb_map too small!''</para> - - <para>La parada indica que el sistema no tiene memoria virtual - suficiente para los buffers de red (específicamente, - clusters mbuf). Puedes incrementar la cantidad de memoria virtual - disponible para los clusters mbuf añadiendo:</para> - - <para><literal>options "NMBCLUSTERS=<n>"</literal></para> - - <para>al archivo de configuración del kernel, donde <n> es un - número en el rango 512-4096, dependiendo del número de - conexiones tcp simultáneas que necesites soportar. Te recomendamos - intentar con 2048. Puedes monitorizar el número de clusters mbuf - en uso con la orden - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?netstat">netstat -m</ulink>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>``CMAP busy panic'' al arrancar con un nuevo kernel.</para> - </question> - - <answer> - <para>El programa que intenta detectar archivos - <filename>/var/db/kvm_*.db</filename> puede fallar y provocar el "panic" - en el arranque.</para> - - <para>Si esto ocurre, arranca en mono-usuario y haz:</para> - - <para> - <literallayout> -rm /var/db/kvm_*.db - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>ahc0: brkadrint, Illegal Host Access at seqaddr 0x0</para> - </question> - - <answer> - <para>Esto significa un conflicto con una controladora Ultrastor SCSI.</para> - - <para>Durante el proceso de arranque, entra en el menú de - configuración del kernel y desactiva el dispositivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?uha(4)">uha0</ulink>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Sendmail dice ``mail loops back to myself''</para> - </question> - - <answer> - <para>Esto está contestado en la FAQ de sendmail de la siguiente - manera:</para> - - <para> - <literallayout> - * Tengo el error "Local configuration error" : - - 553 relay.domain.net config error: mail loops back to myself - 554 <user@domain.net>... Local configuration error - - Cómo puedo solventar el problema? - - Has intentado enviar un mail al dominio domain.net y que sea - reenviado a un host específico (en este caso relay.domain.net) - usando un registro MX, pero la máquina que tiene que aceptar - ese mail, no reconoce el domimio como propio. Añade - domain.net al archivo /etc/sendmail.cw (si estás usando - FEATURE(use_cw_file) o añade "Cw domain.net" al archivo - sendmail.cf - </literallayout> - </para> - - <para>La versión actual de la - <ulink URL="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq">FAQ de sendmail</ulink> - puede ser encontrada en - <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>, y - <ulink URL="news:news.answers">news.answers</ulink>. - Tambien puedes recibir una copia enviando un mail a - <ulink URL="mailto:mail-server@rtfm.mit.edu">mail-server@rtfm.mit.edu</ulink> - con el comando "send usenet/news.answers/mail/sendmail-faq" en el - cuerpo del mensaje.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>No funcionan correctamente las aplicaciones a pantalla completa - en máquinas remotas</para> - </question> - - <answer> - <para>Quizás la máquina remota tiene el tipo de terminal - diferente de <emphasis remap=tt>cons25</emphasis> que es el usado por la consola de - FreeBSD.</para> - - <para>Hay diferentes maneras de solucionar este problema: - <itemizedlist> - <listitem> - <para>Después de hacer el login en la máquina remota, - configura la variable SHELL como <acronym>ANSI</acronym> o - <emphasis remap=tt>sco</emphasis>.</para> - </listitem> - - <listitem> - <para>Usa el emulador VT100 como - <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?screen-">screen</ulink> - local. <emphasis remap=tt>screen</emphasis> te permite la posibilidad de ejecutar - múltiples y concurrentes sesiones desde un terminal.</para> - </listitem> - - <listitem> - <para>Instala la base de datos del terminal <emphasis remap=tt>cons25</emphasis> - en la máquina remota.</para> - </listitem> - - <listitem> - <para>Lanza las X y haz el login en la máquina remota desde - <emphasis remap=tt>xterm</emphasis>.</para> - </listitem> - </itemizedlist> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Aparece el mensaje de error "calcru: negative time..."</para> - </question> - - <answer> - <para>Esto puede ser causado por varios problemas de hardware o software - relacionados con las interrupciones. Utilizar TCP/IP sobre el puerto - paralelo con un MTU muy grande es una buena manera de provocar este error. - Las tarjetas gráficas aceleradoras también lo pueden - provocar, teniendo que revisar la interrupción utilizada - por la tarjeta.</para> - - <para>El efecto de este error es que los procesos mueren con el mensaje - "SIGXCPU exceeded cpu time limit".</para> - - <para>Para FreeBSD 3.0 y posteriores desde el 29 de Noviembre de 1998: si - el problema no puede fijarse de otra manera, la solución es - poner la variable sysctl a: - <literallayout> -sysctl -w kern.timecounter.method=1 - </literallayout> - </para> - - <para>Esto puede significar un impacto en el rendimiento del sistema, pero - considerando la causa del problema, probablemente no lo notarás. Si - el problema persiste, mantén la variable sysctl a uno y - añade la opción "NTIMECOUNTER" en tu kernel para aumentar - su valor. Si finalmente llegas a un valor de "NTIMECOUNTER=20" el problema - no está resuelto, y las interrupciones están demasiado - saturadas para ofrecer un buén rendimiento.</para> - </answer> - </qandaentry> - </qandaset> -</chapter> - -<chapter id="commercial"> - <title>Aplicaciones Comerciales</title> - - <para><acronym>NOTA</acronym> Esta sección está todavía poco - desarrollada, por lo que esperamos que las compañías nos - ayuden a completarla :) . El grupo de FreeBSD no tiene ningún - interés financiero en ninguna de las empresas aquí listadas, - simplemente están como servicio público (y creemos que el - interés comercial por FreeBSD puede tener efectos - muy positivos en la viabilidad a largo término). Animamos a las - empresas desarrolladoras de software que nos envíen su - información para ser incluidas en esta lista.</para> - - <qandaset> - <qandaentry> - <question> - <para>¿Dónde puedo obtener Motif para FreeBSD?</para> - </question> - - <answer> - <para>Contacta con <link linkend="apps2go">Apps2go</link> para una - distribución de Motif ELF 2.1 para FreeBSD.<anchor id="apps2go"></para> - - <para>Esta distribución incluye: - <itemizedlist> - <listitem> - <para>OSF/Motif manager, xmbind, panner, wsm.</para> - </listitem> - - <listitem> - <para>Kit de desarrollo con uil, mrm, xm, xmcxx, includes y - archivos Imake.</para> - </listitem> - - <listitem> - <para>Librerías ELF estáticas y dinámicas - (para usar con FreeBSD 3.0 y posteriores).</para> - </listitem> - - <listitem> - <para>Applets demostrativos.</para> - </listitem> - </itemizedlist> - </para> - - <para>Asegúrate de especificar que deseas la distribución - para FreeBSD cuando hagas el pedido. También se distribuyen - versiones para NetBSD y OpenBSD por <emphasis>Apps2go</emphasis>. La - distribución sólo está disponible por FTP.</para> - - <para> - <variablelist> - <varlistentry> - <term> - Más información - </term> - <listitem> - <para><ulink URL="http://www.apps2go.com/">Página web de Apps2go</ulink></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - o - </term> - <listitem> - <para><ulink URL="mailto:sales@apps2go.com">Ventas</ulink> o - <ulink URL="mailto:support@apps2go.com">Soporte</ulink></para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - o - </term> - <listitem> - <para>teléfono (817) 431 8775 o +1 817 431-8775</para> - </listitem> - </varlistentry> - </variablelist> - </para> - - <para>Contacta con <link linkend="metrox">Metro Link</link> para obtener una - distribución de Motif 2.1 ELF o a.out para FreeBSD.</para> - - <para>Esta distribución incluye: - <itemizedlist> - <listitem> - <para>OSF/Motif manager, xmbind, panner, wsm.</para> - </listitem> - - <listitem> - <para>Kit de desarrollo con uil, mrm, xm, xmcxx, includes y - archivos Imake. </para> - </listitem> - - <listitem> - <para>Librerías estáticas y dinámicas (especifica - ELF para FreeBSD 3.0 y superior o a.out para FreeBSD 2.2.8 o - anterior).</para> - </listitem> - - <listitem> - <para>Applets demostrativos.</para> - </listitem> - - <listitem> - <para>Páginas man preformateadas.</para> - </listitem> - </itemizedlist> - </para> - - <para>Asegúrate de especificar que deseas la distribución - para FreeBSD cuando hagas el pedido. También se distribuyen - versiones para Linux por <emphasis>Metro Link</emphasis>. La distribución - está disponible en CDROM o vía FTP.</para> - - <para>Contacta con <link linkend="xig">Xi Graphics</link> para una - distribución de Motif a.out 2.0 para FreeBSD.</para> - - <para>Esta distribución incluye: - <itemizedlist> - <listitem> - <para>OSF/Motif manager, xmbind, panner, wsm.</para> - </listitem> - - <listitem> - <para>Kit de desarrollo con uil, mrm, xm, xmcxx, includes y - archivos Imake.</para> - </listitem> - - <listitem> - <para>Librerías estáticas y dinámicas - (para usar con FreeBSD 2.2.8 y anteriores).</para> - </listitem> - - <listitem> - <para>Applets demostrativos.</para> - </listitem> - - <listitem> - <para>Páginas man preformateadas.</para> - </listitem> - </itemizedlist> - </para> - - <para>Asegúrate de especificar que deseas la distribución - para FreeBSD cuando hagas el pedido. También se distribuyen - versiones para BSDI y Linux por <emphasis>Xi Graphics</emphasis>. La - distribución se hace en cuatro disquetes... en el futuro esto - se cambiará por una versión en CDROM unificada.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Dónde puedo conseguir CDE para FreeBSD?</para> - </question> - - <answer> - <para>Contacta con <link linkend="xig">Xi Graphics</link> para la - distribucion CDE 1.0.10 para FreeBSD. Incluye Motif 1.2.5, - y puede ser usada con Motif 2.0.</para> - - <para>Este es un CDROM unificado para FreeBSD y Linux.</para> - - <para><link linkend="xig">Xi Graphics</link> ya no vende el CDE - para FreeBSD.</para> - - <para><ulink URL="http://www.kde.org/">KDE</ulink> es un entorno - gráfico "open source" similar a CDE en muchos aspectos.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Hay algún servidor X comercial de altas prestaciones?</para> - </question> - - <answer> - <para>Sí, <ulink URL="http://www.xig.com/">Xi Graphics</ulink> y - <ulink URL="http://www.metrolink.com/">Metro Link</ulink> venden el - producto Accelerated-X para FreeBSD y otros sistemas basados en Intel. - <anchor id="xig"></para> - - <para>La oferta de Metro Link es un servidor X de altas prestaciones que - ofrece una fácil configuración usando el conjunto de - herramientas "FreeBSD Package", soporte de múltiples tarjetas - de vídeo concurrentes y sólo se distribuye en formato - binario desde su FTP. Mencionar que la oferta de Metro Link está - disponible por el razonable precio de $39. - <anchor id="metrox"> </para> - - <para>Metro Link también vende el Motif ELF y a.out para - FreeBSD.</para> - - <para> - <variablelist> - <varlistentry> - <term> - Más información - </term> - <listitem> - <para><ulink URL="http://www.metrolink.com/">Web de Metro Link</ulink></para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - o - </term> - <listitem> - <para><ulink URL="mailto:sales@metrolink.com">Ventas</ulink> o - <ulink URL="mailto:tech@metrolink.com">Soporte</ulink>.</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - o - </term> - <listitem> - <para>Teléfono (954) 938-0283 o +1 954 938-0283</para> - </listitem> - </varlistentry> - </variablelist> - </para> - - <para>La oferta de Xi Graphics es un servidor X de altas prestaciones que - ofrece una fácil configuración, soporte para - múltiples tarjetas de vídeo concurrentes, y sólo - se distribuye en formato binario, en una distribución en - disquetes unificada para FreeBSD y Linux. Xi Graphics también - ofrece un servidor X de altas prestaciones para computadores - portátiles.</para> - - <para>Hay una distribución demo para testear (versión 5.0).</para> - - <para>Xi Graphics también vende el Motif y CDE para FreeBSD.</para> - - <para> - <variablelist> - <varlistentry> - <term> - Máss información - </term> - <listitem> - <para><ulink URL="http://www.xig.com/">Web de Xi Graphics WWW</ulink></para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - o - </term> - <listitem> - <para><ulink URL="mailto:sales@xig.com">ventas</ulink> o - <ulink URL="mailto:support@xig.com">Soporte</ulink></para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term> - o - </term> - <listitem> - <para>Teléfono (800) 946 7433 o +1 303 298-7478.</para> - </listitem> - </varlistentry> - </variablelist> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Hay algún sistema de base de datos para FreeBSD?</para> - </question> - - <answer> - <para>Sí!. Mira en la sección - <ulink URL="../commercial/software_bycat.html#CATEGORY_DATABASE">Productos Comerciales</ulink> - del web de FreeBSD.</para> - - <para>También te recomendamos que mires en la sección - <ulink URL="../ports/databases.html">Bases de Datos</ulink> de la - colección de Ports.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Puedo usar Oracle en FreeBSD?</para> - </question> - - <answer> - <para>Sí. Las siguientes páginas te explican como configurar - el Oracle de Linux en FreeBSD:</para> - - <para> - <itemizedlist> - <listitem> - <para><ulink URL="http://www.scc.nl/~marcel/howto-oracle.html">http://www.scc.nl/~marcel/howto-oracle.html</ulink></para> - </listitem> - - <listitem> - <para><ulink URL="http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-FreeBSD">http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-FreeBSD</ulink></para> - </listitem> - </itemizedlist> - </para> - </answer> - </qandaentry> - </qandaset> -</chapter> - -<chapter id="applications"> -<title>Aplicaciones de usuario</title> - - <qandaset> - <qandaentry> - <question> - <para>¿Dónde están las aplicaciones?</para> - </question> - - <answer> - <para>Por favor, mira en <ulink URL="http://www.FreeBSD.org/ports/">la sección - de ports</ulink> para obtener información sobre - programas y aplicaciones que han sido portados a FreeBSD. En estos - momentos la lista llega a los 1800 creciendo día a día, - por lo que te recomendamos que la visites habitualmente o te subscribas - a la <link linkend="mailing">lista de distribución</link> - <emphasis remap=tt>FreeBSD-announce</emphasis> para las actualizaciones - periódicas de nuevas aportaciones.</para> - - <para>La mayoría de programas están disponibles tanto para la - rama 2.2 como para la 3.x y 4.0, y muchos de ellos deberían - funcionar en sistemas 2.1.x. Cada vez que se realiza una release de - FreeBSD, se incluye un snapshot del arbol de aplicaciones en el - directorio <filename>ports/</filename>.</para> - - <para>También trabajamos con el concepto de "package", que es, - esencialmente una distribución binaria "zipada" con una - pequeña información extra que realiza la instalación - del programa automaticamente. Un package puede ser instalado y - desinstalado fácilmente sin tener que saber los detalles de - archivos o configuraciones que esto conlleva.</para> - - <para>Usa el menú de instalación de "packages" en - <filename>/stand/sysinstall</filename> (bajo la opción post-configuration del - menú principal) o ejecuta el comando <command>pkg_add(1)</command> con el - package que estás interesado en instalar. Los package pueden ser - identificados por su extensión <filename>.tgz</filename>. En la - distribución de CDROM existe un directorio <filename>packages/All</filename> - en la que se encuentran todos los packages disponibles. También - pueden conseguirse en la red en los siguientes servidores:</para> - - <para> - <variablelist> - <varlistentry><term>para 2.2.8-RELEASE/2.2-stable</term> - <listitem> - <para><ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/</ulink></para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry><term>para 3.4-release/3.4-stable</term> - <listitem> - <para><ulink URL="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-3-stable/">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-3-stable/</ulink></para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry><term>para 4.0-current</term> - <listitem> - <para><ulink URL="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-4-current/">ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-4-current/</ulink></para> - </listitem> - </varlistentry> - </variablelist> - </para> - - <para>o en tu mirror más cercano.</para> - - <para>Ten en cuenta que no todos los ports están disponibles como - packages. Es siempre buena idea visitar periodicamente la - dirección <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/">ftp.FreeBSD.org</ulink>. - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Dónde encuentro la librería libc.so.3.0?</para> - </question> - - <answer> - <para>Estás intentando ejecutar un package para versión - 2.2/3.x/4.0 en un sistema de versión 2.1.x. Por favor, mira en la - sección anterior y usa el package adecuado para tu sistema.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="emul"> - <para>Ghostscript tiene muchos errores con mi 386/486SX.</para> - </question> - - <answer> - <para>No tienes coprocesador matemático, verdad? - Necesitarás añadir el emulador matemático en tu - kernel; puedes hacerlo añadiendo lo siguiente en el archivo de - configuración del kernel:</para> - - <para> - <literallayout> -options GPL_MATH_EMULATE - </literallayout> - </para> - - <para><acronym>NOTA</acronym> Necesitarás eliminar la opción - <symbol>MATH_EMULATE</symbol>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Cuando ejecuto una aplicación SCO/iBCS2, falla en - <emphasis remap=tt>socksys</emphasis>.</para> - </question> - - <answer> - <para>Primero necesitas editar el archivo <filename>/etc/sysconfig</filename> - (o <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)">/etc/rc.conf</ulink>) - y en la última sección cambiar la siguiente variable a - <acronym>YES</acronym>:</para> - - <para> - <literallayout> -# Set to YES if you want ibcs2 (SCO) emulation loaded at startup -ibcs2=NO - </literallayout> - </para> - - <para>El kernel caragará el módulo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ibcs2">ibcs2</ulink> - al arrancar.</para> - - <para>A continuación necesitarás configurar /compat/ibcs2/dev - de la siguiente manera</para> - - <para> - <literallayout> -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 - </literallayout> - </para> - - <para>Solo necesitas el socksys para ir a - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?null(4)">/dev/null</ulink> - e imitar la apertura y cierre de archivos. El código en -current - gestionará el resto. Esto es mucho más limpio que la - manera en la que se hacía antes. Si quieres el driver - <emphasis remap=tt>spx</emphasis> para un conexión, define - <symbol>SPX_HACK</symbol> cuando compiles el kernel.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo configuro INN (Internet News) para mi máquina?</para> - </question> - - <answer> - <para>Después de la instalación del package o port de inn, - un excelente lugar para empezar es - <ulink URL="http://www.cis.ohio-state.edu/~barr/INN.html">Dave Barr's INN Page</ulink> - donde encontrarás las FAQ de INN.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué versión de Microsoft FrontPage debo usar?</para> - </question> - - <answer> - <para>Usa el Port. Una versión pre-parcheada para Apache está - disponible en la colección de ports.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿FreeBSD soporta Java?</para> - </question> - - <answer> - <para>Sí. Por favor, mira en - <ulink URL="http://www.FreeBSD.org/java/">http://www.FreeBSD.org/java/</ulink>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Porqué no puedo compilar este port en mi máquina - 3.x-stable?</para></question><answer> - - <para>Si utilizas una versión de FreeBSD que ha quedado ligeramente anticuada - con respecto a -stable o -current necesitarás el kit de actualización - de ports disponible en - <ulink URL="http://www.FreeBSD.org/ports/">http://www.FreeBSD.org/ports/</ulink>. - Si tienes una versión actualizada, es posible que alguien haya modificado - el port de manera que éste compile en -current pero no en -stable. Por favor, - envía un informe de error con el comando <command>send-pr(1)</command> ya que - la colección de ports está pensada para que funcione tanto en las ramas - -stable como -current.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Dónde encuentro ld.so?</para> - </question> - - <answer> - <para>Si quieres ejecutar aplicaciones a.out como Netscape en sistemas con - formato de ejecución ELF como FreeBSD 3.1-RELEASE o posteriores, - necesitarás la librería /usr/libexec/ld.so y algunas otras - en formato a.out. Estas librerías están incluidas en la - distribución compat22. Usa /stand/sysinstall o el script install.sh - en el subdirectorio compat22 e instalala. También deberían - consultarse los archivos ERRATA de FreeBSD 3.1-R y 3.2-R.</para> - </answer> - </qandaentry> - </qandaset> -</chapter> - -<chapter id="kernelconfig"> - <title>Configuración del Kernel</title> - - <qandaset> - <qandaentry> - <question id="make-kernel"> - <para>Me gustaría personalizar mi kernel. ¿Es difícil?</para> - </question> - - <answer> - <para>No!, primero, necesitas la distribución completa de fuentes o, - por lo menos, la distribución de fuentes del kernel. De esta manera - tienes los fuentes necesarios para crearte un nuevo kernel. Al - contrario que muchos Unix comerciales, nosotros tenemos la política - de <acronym>NO</acronym> vender nuestro kernel en formato binario.</para> - - <para>La instalación de los fuentes ocupa un poco más de - espacio, pero te permite consultar los fuentes del kernel en caso de - dificultad o entender que está ocurriendo realmente en la - ejecución del sistema.</para> - - <para>Una vez tienes instalada la distribución completa de fuentes, o - por lo menos la del kernel, haz lo siguiente como root:</para> - - <para> - <orderedlist> - <listitem> - <para> <command>cd /usr/src/sys/i386/conf</command></para> - </listitem> - - <listitem> - <para> <emphasis remap=tt>cp GENERIC MYKERNEL</emphasis></para> - </listitem> - - <listitem> - <para> <emphasis remap=tt>vi MYKERNEL</emphasis></para> - </listitem> - - <listitem> - <para> <emphasis remap=tt>config MYKERNEL</emphasis></para> - </listitem> - - <listitem> - <para> <emphasis remap=tt>cd ../../compile/MYKERNEL</emphasis></para> - </listitem> - - <listitem> - <para> <emphasis remap=tt>make depend</emphasis></para> - </listitem> - - <listitem> - <para> <emphasis remap=tt>make all</emphasis></para> - </listitem> - - <listitem> - <para> <emphasis remap=tt>make install</emphasis></para> - </listitem> - - <listitem> - <para> <emphasis remap=tt>reboot</emphasis></para> - </listitem> - </orderedlist> - </para> - - <para>El paso 2 no es necesario si todavía tienes un archivo de - configuración del kernel de una release anterior de FreeBSD - 2.X. - simplemente, copia el archivo antiguo y examínalo - cuidadosamente para asegurar que no haya cambiado la sintaxis - da algún driver, o haya alguno anticuado.</para> - - <para>Un buen archivo de configuración para consultar es <acronym>LINT</acronym>, - el cual contiene ejemplos documentados para todas las posibles - opciones del kernel. El archivo de configuración <acronym>GENERIC</acronym> se - usa para crear el kernel "por defacto" que es el que estarás - usando si no has creado ninguno nuevo.</para> - - <para>Si no necesitas hacer ningún cambio al archivo <acronym>GENERIC</acronym>, - puedes saltar al paso 3, donde personalizas el kernel para tu - sistema. El paso 8 solo debe ejecutarse si los pasos 6 y 7 se - han realizado de manera satisfactoria. Esto copiará una - imágen del nuevo kernel a <filename>/kernel</filename> y - <emphasis remap=bf>realizará una copia del antiguo kernel en</emphasis> - <filename>/kernel.old</filename>. Es muy importante recordar esto por si el - nuevo kernel falla en algun momento - puedes seleccionar <filename>kernel.old</filename> - en el prompt de arranque. Al hacer un reboot, por defecto se cargará el - nuevo kernel.</para> - - <para>Si la compilación en el paso 7 falla por alguna razón, es - recomendable que empieces desde el paso 4 substituyendo - <acronym>GENERIC</acronym> por <acronym>MYKERNEL</acronym>. Si puedes generar el kernel - <acronym>GENERIC</acronym>, significa que algo en tu archivo de configuración - es incorrecto (o has decubierto un bug). Si la compilación del - kernel <acronym>GENERIC</acronym> falla, posiblemente tengas los fuentes - corruptos.</para> - - <para>Finalmente, si necesitas ver los mensajes originales de arranque - del sistema para compilar un nuevo kernel, ejecuta el comando - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?dmesg">dmesg</ulink>. Este - comando debe imprimir en pantalla todos los - mensajes producidos por el kernel al arrancar, los cuales te - pueden servir en la configuración de tu nuevo kernel.</para> - - <para><acronym>NOTA</acronym> Recomendamos hacer un historial fechado de los kernel - que vayas creando, de la manera <filename>kernel.YYMMDD</filename> una vez estén - funcionando correctamente. De esta manera, si la próxima vez que - juegues con el kernel algo no funciona, puedes arrancar desde el - último kernel correcto. Esto es especialmente importante si ahora - estás arrancando desde una controladora no soportada por el kernel - GENERIC (si, experiencia personal).</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>La compilación del kernel falla por "<symbol>_hw_float</symbol> is - missing."</para> - </question> - - <answer> - <para>Dejame adivinar. Has borrado - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?npx(4)">npx0</ulink> - de tu archivo de configuración porque no tienes coprocesador - matemático, no? Mal hecho :-) El dispositivo <emphasis remap=tt>npx0</emphasis> es - <acronym>OBLIGATORIO</acronym>. Aunque no tengas coprocesador, debes incluir - el dispositivo <emphasis remap=tt>npx0</emphasis></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Conflicto de interrupciones con tarjeta serie multi-port.</para> - </question> - - <answer> - <para>Cuando compilo el kernel con drivers para tarjetas serie - multipuerto, el sistema me dice que sólo el primer puerto es - testeado y el resto son obviados debido a conflictos de - interrupción. Cómo soluciono esto?</para> - - <para>El problema en este caso es que FreeBSD tiene código interno que - evita caidas del sistema por conflictos de hardware o software. La - manera de solucionar esto es dejar en blanco la entrada correspondiente - a la irq en todos los puertos excepto en uno. Aquí tienes un - ejemplo:</para> - - <para> - <literallayout> # - # 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 - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo activo el soporte para discos QIC-40/80?</para> - </question> - - <answer> - <para>Necesitas "descomentar" la siguiente línea en el archivo - genérico de configuración (o añadirla en tu propio - archivo), añade un <literal>flags 0x1</literal> en la línea - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fdc(4)">fdc</ulink> - y recompila.</para> - - <para> - <literallayout> -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 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - </literallayout> - </para> - - <para>A continuación, crea un nuevo dispositivo llamado - <filename>/dev/ft0</filename> entrando en el directorio <filename>/dev</filename> - y ejecutando el comando:</para> - - <para> - <literallayout> sh ./MAKEDEV ft0 - </literallayout> - </para> - - <para>Para el primer dispositivo. <emphasis remap=tt>ft1</emphasis> para el - segundo y así para todos los dispositivos de este tipo que tengas.</para> - - <para>Tendrás un dispositivo llamado <filename>/dev/ft0</filename>, al cual puedes - escribir a través de un programa especial de manejo llamado - <emphasis remap=tt>ft</emphasis> - mira el man en - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ft">ft</ulink> - para más detalles.</para> - - <para>Versiones anteriores a la <option>-current</option> tenían algunos problemas - al encontrase con cintas en mal estado; si tienes problemas en los - que parece que la cinta se rebovina siempre al llegar al mismo - lugar, intenta utilizar la última versión del programa - <emphasis remap=tt>ft</emphasis> que encontrarás en - <filename>/usr/src/sbin/ft</filename> en <option>-current</option>.</para> - </answer> - </qandaentry> - </qandaset> -</chapter> - -<chapter id="admin"> - <title>Administración de sistema</title> - - <qandaset> - <qandaentry> - <question> - <para>¿Dónde están los archivos de configuración - de arranque del sistema?</para> - </question> - - <answer> - <para>De la versión 2.0.5R a la 2.2.1R, el archivo principal de - configuración es <filename>/etc/sysconfig</filename>. Todas las opciones son - especificadas en este archivo y otros como - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc">/etc/rc</ulink> y - <filename>/etc/netstart</filename>.</para> - - <para>Mira en el archivo <filename>/etc/sysconfig</filename> y cambia los valores - para tu sistema. Este archivo está comentado para ayudar en la - configuración</para> - - <para>En versiones posteriores a la 2.2.1 y 3.0 el archivo - <filename>/etc/sysconfig</filename> fue renombrado como - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)">rc.conf</ulink>. - La sintaxis también fue retocada para ser más descriptiva. El - archivo <filename>/etc/netstart</filename> también fue renombrado como - <filename>/etc/rc.network</filename> para que todos los archivos de - configuración puedan ser copiados con el comando - <command><ulink URL="http://www.FreeBSD.org/cgi/man.cgi?cp">cp</ulink> - /usr/src/etc/rc* /etc</command>.</para> - - <para><filename>/etc/rc.local</filename> existe como siempre y debería ser usado - para arrancar servicios locales adicionales como - <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^inn">INN</ulink> o - programas propios.</para> - - <para>El archivo <filename>/etc/rc.serial</filename> es para la inicialización - de puertos serie.</para> - - <para>El archivo <filename>/etc/rc.i386</filename> es para especificaciones propias - de Intel, como la emulación iBCS2 o la configuración de la - consola del sistema.</para> - - <para>A partir de la versión 2.1.0R, también puedes tener un - directorio en el que instalar archivos de arranque locales especificado en - <filename>/etc/sysconfig</filename> (o <filename>/etc/rc.conf</filename>):</para> - - <para> - <literallayout> # Localización de los archivos de arranque locales. - local_startup=/usr/local/etc/rc.local.d - </literallayout> - </para> - - <para>Cada archivo acabado en <filename>.sh</filename> será ejecutado en orden - alfabético.</para> - - <para>Si quieres asegurarte de un cierto orden en la ejecución sin - tener que cambiar todos los nombres de los archivos, puedes usar un - esquema similar al siguiente con dígitos al principio del nombre - de cada archivo:</para> - - <para> - <literallayout> 10news.sh - 15httpd.sh - 20ssh.sh - </literallayout> - </para> - - <para>Puede ser visto como "malo" (o SysV :-)) pero nos provee de un - esquema regular para programas añadidos localmente sin tener que - hacer ediciones complicadas del archivo <filename>/etc/rc.local</filename>. - Muchos de los ports/packages asumen que <filename>/usr/local/etc/rc.d</filename> - es un directorio de arranque local.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo añado un usuario facilmente?</para> - </question> - - <answer> - <para>Usa el comando - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?adduser">adduser</ulink>. - Para opciones más avanzadas, usa el comando - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?pw">pw</ulink></para> - - <para>Para borrar a un usuario, usa el comando - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rmuser">rmuser</ulink>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo puedo añadir mi nuevo disco a FreeBSD?</para> - </question> - - <answer> - <para>Consultar el Tutorial de Formateo de Discos en - <ulink URL="../../tutorials/diskformat/">www.FreeBSD.org</ulink>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Tengo un nuevo disco removible, ¿como lo uso?</para> - </question> - - <answer> - <para>Se trate de un disco removible como un ZIP o EA (o un floppy, - si quieres usarlo de esta manera), o un nuevo disco duro, una vez - instalado y reconocido por el sistema, y tengas tu - cartridge/floppy/etc en su interior, las cosas son como para la - mayoría de dispositivos.</para> - - <para><anchor id="disklabel">(esta sección esta basada en - <ulink URL="http://vinyl.quickweb.com/mark/FreeBSD/ZIP-FAQ.html">Mark Mayo's ZIP FAQ</ulink>)</para> - - <para>Si es un disco ZIP o floppy, y está formateado en DOS, puedes - usar el comando:</para> - - <para> - <literallayout> -mount -t msdos /dev/fd0c /floppy - </literallayout> - </para> - - <para>Si es un floppy, o este:</para> - - <para> - <literallayout> -mount -t msdos /dev/da2s4 /zip - </literallayout> - </para> - - <para>para un disco ZIP con la configuración de fábrica.</para> - - <para>Para otros discos, mira como configurarlos usando - <emphasis remap=tt>fdisk</emphasis> o - <filename>/stand/sysinstall</filename>.</para> - - <para>El resto de ejemplos serán para un disco ZIP en da2, el tercer - disco SCSI.</para> - - <para>A no ser que se trate de un floppy o disco removible, lo que - planeas compartir con otros usuarios, es aconsejable convertir - el formato de archivos a BSD. Obtendrás nombre de archivos largos, - como mínimo doblarás la velocidad de acceso del disco, y - mucha más estabilidad. Antes, necesitas rehacer las particiones. - Puedes usar el comando - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fdisk">fdisk</ulink> - o la utilidad <filename>/stand/sysinstall</filename>. Si es un - disco pequeño que quieres dedicar enteramente a FreeBSD, solo - tienes que eliminar la FAT y tabla de particiones, y usar el sistema - de particiones de FreeBSD:</para> - - <para> - <literallayout> -dd if=/dev/zero of=/dev/rda2 count=2 -disklabel -Brw da2 auto - </literallayout> - </para> - - <para>Puedes usar el comando disklabel o - <filename>/stand/sysinstall</filename> para crear múltiples - particiones BSD.</para> - - <para>Finalmente, crea un nuevo sistema de archivos:</para> - - <para> - <literallayout> -newfs /dev/rda2c - </literallayout> - </para> - - <para>y montalo:</para> - - <para> - <literallayout> -mount /dev/da2c /zip - </literallayout> - </para> - - <para>Sería una buena idea añadir una línea como esta - en el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fstab">/etc/fstab</ulink> - para que solo tengas que teclear "mount /zip" las siguientes veces.</para> - - <para> - <literallayout> -/dev/da2c /zip ffs rw,noauto 0 0 - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo monto una partición secundaria DOS?</para> - </question> - - <answer> - <para>Las particiones DOS secundarias se encuentran después de TODAS - las particiones primarias. Por ejemplo, si tienes una partición - "E" como la segunda partición DOS en el segundo disco SCSI, - necesitas crear los archivos especiales para el dispositivo 5 en /dev, y - después montar /dev/da1s5:</para> - - <para> - <literallayout> -# cd /dev -# ./MAKEDEV da1s5 -# mount -t msdos /dev/da1s5 /dos/e - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Puedo montar otros sistemas de archivos bajo FreeBSD?</para> - </question> - - <answer> - <para><emphasis remap=bf>Digital UNIX</emphasis> UFS CDROMs pueden ser - montados directamente en FreeBSD. Montar particiones de disco de - Digital UNIX y otros sistemas que soportan UFS puede ser más complejo, - dependiendo de los detalles de la partición de disco del sistema - operativo en cuestión.</para> - - <para><emphasis remap=bf> Linux</emphasis>: 2.2 y posteriores soportan - particiones <emphasis remap=bf>ext2fs</emphasis>. Mira - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?mount_ext2fs">mount_ext2fs</ulink> - para más información.</para> - - <para><emphasis remap=bf> NT</emphasis>: Existe un driver de solo lectura - de NTFS para FreeBSD. Para más información, mira este tutorial - de Mark Ovens en - <ulink URL="http://www.users.globalnet.co.uk/~markov/ntfs_install.html">http://www.users.globalnet.co.uk/~markov/ntfs_install.html</ulink>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo puedo usar el "NT loader" para arrancar FreeBSD?</para> - </question> - - <answer> - <para>La idea general es que copies el primer sector de la partición - root nativa de FreeBSD en un archivo en la partición DOS/NT. - Asumiento que nombras a ese archivo como <filename>c:\bootsect.bsd</filename> - puedes editar el archivo <filename>c:\boot.ini</filename> para conseguir - algo como esto:</para> - - <para> - <literallayout> -[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" - </literallayout> - </para> - - <para>Este proceso asume que DOS, NT, FreeBSD o cualquier otro sistema - ha sido instalado en sus respectivas particiones en el mismo disco. - En nuestro caso, DOS y NT están en la primera partición - y FreeBSD en la segunda. Instalamos FreeBSD para arrancarlo desde su - partición nativa y no desde el disco MBR.</para> - - <para>Monta un floppy formateado en DOS bajo la partición - <filename>/mnt</filename>.</para> - - <para> - <literallayout> -dd if=/dev/rda0a of=/mnt/bootsect.bsd bs=512 count=1 - </literallayout> - </para> - - <para>Rearranca en DOS o NT. Copia el archivo - <filename>bootsect.bsd</filename> y/o el archivo - <filename>bootsect.lnx</filename> del floppy a - <emphasis remap=tt>C:\</emphasis>. Modifica los atributos a - <filename>boot.ini</filename> con:</para> - - <para> - <literallayout> -attrib -s -r c:\boot.ini - </literallayout> - </para> - - <para>Edita y añade las líneas apropiadas del boot.ini mostrado - enteriormente de ejemplo, y vuelve a poner los atributos originales:</para> - - <para> - <literallayout> -attrib +s +r c:\boot.ini - </literallayout> - </para> - - <para>Si FreeBSD está arrancando desde el MBR, restauralo desde el - comando <emphasis remap=tt>fdisk</emphasis> después de reconfigurarlos - para arrancar desde sus particiones nativas.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo arranco FreeBSD y Linux desde LILO?</para> - </question> - - <answer> - <para>Si tienes FreeBSD y Linux en el mismo disco, solo tienes que seguir - las instrucciones de instalación de LILO para arrancar un sistema - operativo no Linux. Brevemente, son estas:</para> - - <para>Arranca Linux, y añade las siguientes líneas en el - archivo <filename>/etc/lilo.conf</filename>: - <literallayout> -other=/dev/hda2 -table=/dev/hda -label=FreeBSD - </literallayout> - - (Asumiendo que tu partición FreeBSD es conocida por Linux como - <filename>/dev/hda2</filename>). A continuación, ejecuta - <emphasis remap=tt>lilo</emphasis> como root y ya debería - estar.</para> - - <para>Si FreeBSD está en otro disco, necesitas añadir - ``<literal>loader=/boot/chain.b</literal>'' al archivo - <filename>lilo.conf</filename>. Por ejemplo: - <literallayout> -other=/dev/sdb4 -table=/dev/sdb -loader=/boot/chain.b -label=FreeBSD - </literallayout> - </para> - - <para>En algunos casos necesitarás especificar el número de - disco en BIOS para que el cargador del boot funcione correctamente desde - el segundo disco. Por ejemplo, si tu disco SCSI con FreeBSD es visto por - el BIOS como disco 1, en el prompt del cargador de arranque - necesitarás especificar: - <literallayout> -Boot: 1:da(0,a)/kernel - </literallayout> - </para> - - <para>En FreeBSD 2.2.5 y posteriores, puedes configurar - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?boot(8)">boot(8)</ulink> - para que haga esto automaticamente.</para> - - <para>El - <ulink URL="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html">Linux+FreeBSD mini-HOWTO</ulink> - es una buena referencia para las opciones de interoperabilidad entre - FreeBSD y Linux.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo arranco FreeBSD y Linux usando BootEasy?</para> - </question> - - <answer> - <para>Instala el LILO al inicio de la partición de arranque del - Linux en lugar de hacerlo en el "Master Boot Record". Así - podrás arrancar el LILO desde BootEasy.</para> - - <para>Si estas usando Windows-95 y Linux, también es recomendable - hacer esto para simplificar el arranque de Linux en caso de que sea - necesaria una reinstalación del Windows-95 (ya que no quiere - convivir con otros sistemas operativos en el mismo Master Boot Record).</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Puede un disco "dedicado" provocar problemas?</para> - </question> - - <answer> - <para><anchor id="dedicate">El proceso de instalación nos permite - elegir dos métodos diferentes de particionar un disco. El sistema - por defecto hace que el disco sea compatible con otros sistemas - operativos en la misma máquina, usando las tablas de entrada de - fdisk (llamadas "slices" en FreeBSD). Opcionalmente, podemos instalar un - boot-selector que nos permite seleccionar el sistema operativo con - el que queremos arrancar.</para> - - <para>Mientras este es el caso más com&ún para gente - proveniente del mundo de PC, para la gente proveniente del mundo Unix y - quienes quieren instalar una máquina para funcionar con FreeBSD y - solo FreeBSD, es más habitual usar el sistema de reservar todo el - espacio del disco para un solo sistema operativo. - Si seleccionas "A)ll FreeBSD" en el editor de fdisk de la utilidad - sysinstall, y respondes la siguiente pregunta con "No", usarás - este último sistema. Ten en cuenta que usando este sistema no te - permitirá la instalación de ningún otro sistema - operativo o selector de arranque (boot manager).</para> - - <para>Entonces, ¿por qué se llama "peligroso"?. Un disco en - este modo no contiene lo que las utilidades normales de un PC - considerarían una tabla de partición de archivos válida. - Dependiendo del diseño de estas aplicaciones, puede que dañen - el sector de arranque una vez entren en contacto con el disco. Por lo menos una - BIOS Award usada por máquinas HP Netservers (pero no sólo - por ellos) es concocida por ignorar los disco duros que no contengan lo - que el BIOS entiende por una tabla de archivos válida.</para> - - <para>Para volver un disco "peligrosamente dedicado" a formato - estándar de PC, hay básicamente dos opciones. La primera es, - escribes suficientes bytes NULL sobre el MBR para hacer que - las siguientes instalaciones crean que están en un disco sín - usar. Puedes hacer esto así:</para> - - <para> - <literallayout> -dd if=/dev/zero of=/dev/rda0 count=15 - </literallayout> - </para> - - <para>Alternativamente, puedes hacer:</para> - - <para> - <literallayout> -fdisk /mbr - </literallayout> - </para> - - <para>que instalará un nuevo master boot record.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo puedo añadir más espacio de swap?</para> - </question> - - <answer> - <para>La mejor manera es incrementar el tamaño de tu partición - de swap, o usar esta excusa para añadir un otro disco nuevo.</para> - - <para>Añadir swap en discos separados hace las cosas más - rápidas que simplemente añadir swap en el mismo disco. - Como ejemplo, si estás compilando código fuente en un - disco, y el swap está en otro disco, es mucho más - rápido que si el swap y la compilación se realizaran en el - mismo disco. Esto es cierto específicamente para discos SCSI.</para> - - <para>Los discos IDE no son capaces de permitir el acceso a ambos discos - en el mismo canal al mismo tiempo (FreeBSD no soporta el modo 4, ya - que todas las I/O de discos IDE son "programadas").</para> - - <para>Es realmente muy mala idea instalar el swap sobre NFS a no ser que - trabajes en una red muy rápida con un muy buen servidor.</para> - - <para>Aquí hay un ejemplo para un archivo de swap de 64Mb - <filename>/usr/swap0</filename>, piensa que puedes usar el nombre que quieras).</para> - - <para>Asegurate que el kernel está compilado con la línea</para> - - <para> - <literallayout> -pseudo-device vn 1 #Vnode driver (turns a file into a device) - </literallayout> - </para> - - <para>en tu archivo de configuración. El kernel GENERIC la contiene. </para> - - <para> - <orderedlist> - <listitem> - <para>crea un vn-device - <literallayout> -cd /dev -sh ./MAKEDEV vn0 - </literallayout> - </para> - </listitem> - - <listitem> - <para>crea un swapfile (<filename>/usr/swap0</filename>) - <literallayout> -dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 - </literallayout> - </para> - </listitem> - - <listitem> - <para>activa el archivo de swap en <filename>/etc/rc.conf</filename> - <literallayout> -swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. - </literallayout> - </para> - </listitem> - - <listitem> - <para>rearranca la máquina.</para> - </listitem> - </orderedlist> - </para> - - <para>Para activar el archivo de swap inmediatamente teclea</para> - - <para> - <literallayout> -vnconfig -ce /dev/vn0c /usr/swap0 swap - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Tengo problemas para poner en marcha mi impresora.</para> - </question> - - <answer> - <para>Por favor, revisa la sección de impresoras del manual. Cubre la - mayoría de posibles problemas. Pásate por - <ulink URL="../../handbook/printing.html">esta sección.</ulink></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Mi teclado no coincide con los carácteres de pantalla.</para> - </question> - - <answer> - <para>El programa de control de teclado tiene una opción para cargar - el mapa de teclado. En el directorio <filename>/usr/share/syscons/keymaps</filename> - hay diferentes archivos de mapas de teclado. Selecciona el que - corresponde a tu sistema y cárgalo.</para> - - <para> - <literallayout> -kbdcontrol -l uk.iso - </literallayout> - </para> - - <para>Tanto el directorio <filename>/usr/share/syscons/keymaps</filename> como la - extensión <filename>.kbd</filename> son asumidas por la orden - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?kbdcontrol">kbdcontrol</ulink>.</para> - - <para>Esto puede ser configurado en <filename>/etc/sysconfig</filename> - (o <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf(5)">rc.conf</ulink>). - Mira los comentarios correspondientes en el propio archivo.</para> - - <para>En la versión 2.0.5R y posteriores, todo lo referente a fuentes, - teclado, etc está en <filename>/usr/share/examples/syscons</filename>.</para> - - <para>Actualmente se soportan los siguientes mapas de teclado:</para> - - <para> - <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> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Las cuotas de usuario no funcionan correctamente.</para> - </question> - - <answer> - <para> - <orderedlist> - <listitem> - <para>No actives las cuotas en '/',</para> - </listitem> - - <listitem> - <para>Pon el archivo de cuotas en el sistema de archivos en el que - se vayan a forzar las cuotas de usuario: - - <literallayout> -FS QUOTA FILE -/usr /usr/admin/quotas -/home /home/admin/quotas - ... - </literallayout> - </para> - </listitem> - </orderedlist> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Mi ccd no funciona correctamente</para> - </question> - - <answer> - <para>El síntoma es:</para> - <para> - <literallayout> -# ccdconfig -C -ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format -# - </literallayout> - </para> - - <para>Esto actualmente ocurre cuando estás intentando concatenar las - particiones c'. El driver ccd requiere que la partición sea del - tipo FS_BSDFFS. Edita la etiqueta del disco (disklabel) que estás - intentando concatenar y cambia el tipo de partición a '4.2BSD'.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Porqué no puedo editar el disklabel en mi ccd?</para> - </question> - - <answer> - <para>El síntoma es:</para> - <para> - <literallayout> -# disklabel ccd0 -(it prints something sensible here, so let's try to edit it) -# disklabel -e ccd0 -(edit, save, quit) -disklabel: ioctl DIOCWDINFO: No disk label on disk; -use "disklabel -r" to install initial label -# - </literallayout> - </para> - - <para>Esto es porque el disklabel retornado por el ccd es actualmente - uno que no corresponde con el real. Puedes resolver este problema - escribiendo explícitamente:</para> - - <para> - <literallayout> -# disklabel ccd0 > /tmp/disklabel.tmp -# disklabel -Rr ccd0 /tmp/disklabel.tmp -# disklabel -e ccd0 -(ahora funcionara) - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Soporta FreeBSD primitivas IPC System V?</para> - </question> - - <answer> - <para>Sí, FreeBSD las soporta. Estas incluyen memoria compartida, - mensajes y semáforos. Necesitas añadir las siguientes - líneas en la configuración de tu kernel para activarlas.</para> - - <para> - <literallayout> -options SYSVSHM -options "SHMMAXPGS=64" # 256Kb of sharable memory -options SYSVSEM # enable for semaphores -options SYSVMSG # enable for messaging - </literallayout> - </para> - - <para>Recompila e instala.</para> - - <para><emphasis remap=bf>NOTA:</emphasis> Quizás necesites incrementar - SHMMAXPGS a un número como 4096 (16M) si quieres usar GIMP. 256K es - suficiente para la memoria compartida en X11R6.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="uucpmail"> - <para>¿Cómo uso sendmail para envio de mail UUCP?</para> - </question> - - <answer> - <para>La configuración de sendmail incluida en FreeBSD está - preparada para sistemas que conectan directamente con Internet. Los - sistemas que quieran usar UUCP para el envío de mail deben - utilizar otro archivo de configuración.</para> - - <para>Retocar <filename>/etc/sendmail.cf</filename> manualmente está considerado - algo para puristas. La versión 8 de sendmail incluye un nuevo - sistema de configuración llamado - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?m4">m4</ulink>, en - el cual la configuración se realiza en un nivel más alto. - Deberías usar los archivos de configuración situados en</para> - - <para> - <literallayout> -/usr/src/usr.sbin/sendmail/cf - </literallayout> - </para> - - <para>Si no instalaste tu sistema con el código fuente completo, el - paquete de configuración de sendmail está en una - distribución aparte. Asumiendo que tienes tu CD-ROM montado, haz:</para> - - <para> - <literallayout> -cd /usr/src -tar -xvzf /cdrom/dists/src/ssmailcf.aa - </literallayout> - </para> - - <para>No te preocupes, solo son unos cientos de kilobytes de tamaño. - El archivo <acronym>README</acronym> en el directorio - <emphasis remap=tt>cf</emphasis> puede servir como introducción a - la configuración del m4.</para> - - <para>Para envío y recepción va UUCP, te aconsejamos usar la - opción <emphasis>mailertable</emphasis>. Se basa en una base de datos - que sendmail puede usar como base para tomar las decisiones - de enrutado del mail.</para> - - <para>Primero tienes que crear tu archivo <filename>.mc</filename>. Estos archivos - se encuentran en el directorio - <filename>/usr/src/usr.sbin/sendmail/cf/cf</filename>. Si miras, encontrarás - algunos ejemplos. Asumiendo que tu archivo se llama <filename>foo.com</filename>, - todo lo que necesitas hacer para convertirlo en un archivo - <filename>sendmail.cf</filename> válido es:</para> - - <para> - <literallayout> -cd /usr/src/usr.sbin/sendmail/cf/cf -make foo.cf -cp foo.cf /etc/sendmail.cf - </literallayout> - </para> - - <para>Un archivo típico <filename>.mc</filename> sería algo como:</para> - - <para> - <literallayout> - include(`../m4/cf.m4') - VERSIONID(`Your version number') - OSTYPE(bsd4.4) - - FEATURE(nodns) - FEATURE(nocanonify) - FEATURE(mailertable) - - define(`UUCP_RELAY', your.uucp.relay) - define(`UUCP_MAX_SIZE', 200000) - - MAILER(local) - MAILER(smtp) - MAILER(uucp) - - Cw your.alias.host.name - Cw youruucpnodename.UUCP - </literallayout> - </para> - - <para>Las opciones <emphasis>nodns</emphasis> y <emphasis>nocanonify</emphasis> previenen - del uso del DNS durante el tráfico de correo. La cláusula - <symbol>UUCP_RELAY</symbol> se necesita por razones imperiosas, no - preguntes :). Simplemente pon un nombre de máquina de Internet que - sea capaz de gestionar pseudo-dominios .UUCP; más sencillo, - entrarás el mail relay de tu ISP.</para> - - <para>Una vez hayas hecho esto, necesitas el archivo llamado - <filename>/etc/mailtertable</filename>. Un ejemplo típico sería:</para> - - <para> - <literallayout> - # - # 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 - </literallayout> - </para> - - <para>Como puedes ver, esto es parte de un archivo real. Las tres - primeras líneas manejan casos especiales donde el correo dirigido - a un dominio no debe ser enviado a través de la ruta por defecto, - si no a través de un UUCP vecino para acortar el path de - envío. La siguiente línea gestiona el mail del dominio - local para que sea enviado vía SMTP. Finalmente, los vecinos UUCP - son anotados en la parte .UUCP pseudo-domains, para poder sobreescribir - las reglas por defecto. La última línea es siempre un - punto, que indica el mail gateway hacia el resto del mundo. Todos los - nombres de nodos detrás de <emphasis remap=tt>uucp-dom:</emphasis> - deben ser vecinos válidos UUCP.</para> - - <para>Como recordatorio de que este archivo debe ser convertido a - una base de datos DBM antes de ser usada, la línea de comandos - para realizar esta operación esta puesta como un comentario al - inicio del archivo. Siempre tienes que ejecutar este comando - cada vez que realices algún cambio en tu mailtertable.</para> - - <para>Si no tienes la seguridad de que una ruta de correo vaya a - funcionar correctamente, recuerda la opción <option>-bt</option> de - sendmail. Esta opción arranca el sendmail en <emphasis>modo test</emphasis>; - simplemente entra 0, seguido por la dirección de mail sobre la que - quieres testear la ruta. La última línea te indica el agente - interno, el host de destino y la dirección (posiblemente - traducido). Sal de este modo tecleando Control-D.</para> - - <para> - <literallayout> - 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% - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question id="ispmail"> - <para>¿Cómo configuro el correo para conexiones NO - permanentes a Internet?</para> - </question> - - <answer> - <para>Si tienes una dirección IP fija en la conexión, no - necesitarás ajustar nada de lo que ya viene por defecto. - Configura tu hostname como el nombre asignado a tu IP de Internet y - sendmail hará el resto.</para> - - <para>Si tienes direcciones IP asignadas dinamicamente y usas una - conexión <emphasis remap=bf>ppp</emphasis> a Internet, probablemente - tendrás un buzón en el servidor de correo de tu proveedor. - Supongamos que el dominio de tu proveedor es <filename>myisp.com</filename>, - y tu nombre de usuario es <emphasis remap=tt>user</emphasis>. Supongamos - también que has llamado a tu máquina <filename>bsd.home</filename> - y que tu proveedor te ha indicado que uses la máaquina - <filename>relay.myISP.com</filename> como mail realy (gateway).</para> - - <para>Para poder recoger el correo de tu buzón necesitarás - instalar un agente de recogida de correo. <emphasis remap=bf>Fetchmail</emphasis> - es una buena opción ya que soporta diferentes protocolos. Normalmente se usa - POP3. Puedes recoger automaticamente tu correo al realizar la - conexión añadiendo la siguiente línea en el archivo - <filename>/etc+ppp/ppp.linkup</filename>:</para> - - <para> - <literallayout> - MYADDR: - !bg su user -c fetchmail - </literallayout> - </para> - - <para>Asumimos que tienes una cuenta para <emphasis remap=tt>user</emphasis> - en <filename>bsd.home</filename>. En el home directory de - <emphasis remap=tt>user</emphasis> en <filename>bsd.home</filename>, crea el - archivo <filename>.fetchmailrc</filename>:</para> - - <para> - <literallayout> - poll myISP.com protocol pop3 fetchall pass MySecret; - </literallayout> - </para> - - <para>No hace falta decir que este archivo no debe ser "leible" por nadie - excepto <emphasis remap=tt>user</emphasis> ya que contiene el password - <emphasis remap=tt>MySecret</emphasis>.</para> - - <para>Para enviar el correo con la cabecera <emphasis remap=bf>from:</emphasis> - correcta, debes decirle al sendmail que use <email>user@myISP.com</email> en lugar de - <email>user@bsd.home</email>. También deberías decirle al sendmail - que envie todo el correo saliente a traves de <filename>relay.myISP.com</filename>, para - una transmisión mucho más rápida.</para> - - <para>El siguiente archivo <filename>.mc</filename> debe ser suficiente:</para> - - <para> - <literallayout> - VERSIONID(`bsd.home.mc version 1.0') - OSTYPE(bsd4.4)dnl - FEATURE(nouucp)dnl - MAILER(local)dnl - MAILER(smtp)dnl - Cwlocalhost - Cwbsd.home - CwmyISP.com - MASQUERADE_AS(`myISP.com')dnl - FEATURE(allmasquerade)dnl - FEATURE(masquerade_envelope)dnl - FEATURE(nocanonify)dnl - FEATURE(nodns)dnl - define(SMART_HOST, `relay.myISP.com') - DmmyISP.com - define(`confDOMAIN_NAME',`myISP.com')dnl - define(`confDELIVERY_MODE',`deferred')dnl - </literallayout> - </para> - - <para>Mira en la sección anterior para los detalles de como convertir - este archivo <filename>.mc</filename> en un <filename>sendmail.cf</filename>. - No te olvides de rearrancar sendmail después de cada actualización del - archivo sendmail.cf.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Olvidé el password de Root!!</para> - </question> - - <answer> - <para>Tranquilo!!!. Simplemenre rearranca tu sistema, teclea -s en el - prompt de arranque para entrar en modo monousuario. En la pregunta - sobre el shell a usar, pulsa ENTER. Aparecerá un prompt #. Teclea - <command>mount -u /</command> para remontar tu sistema de archivos en modo - de lectura/escritura y a continuación teclea <command>mount -a</command> para - montar todos los sistemas de archivos. Ejecura <emphasis remap=tt>passwd root</emphasis> - para cambiar el password de root. Teclea <emphasis remap=tt>exit</emphasis> para continuar - normalmente con el arranque.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo mantengo el control sobre Control-Alt-Delete?</para> - </question> - - <answer> - <para>Edita el mapa de teclado que estás usando para la - consola y reemplaza las palabras <emphasis remap=tt>boot</emphasis> por - <emphasis remap=tt>nop</emphasis>. El mapa de teclado por defecto es - <filename>/usr/share/syscons/keymaps/us.iso.kbd</filename>. Por supuesto si - usas otro mapa de teclado adecuado a tu país, tendrías que - editarlo.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo reformateo archivos de texto DOS a UNIX?</para> - </question> - - <answer> - <para>Simplemente usando este comando de perl:</para> - - <para> - <literallayout> - perl -i.bak -npe 's/\r\n/\n/g' file ... - </literallayout> - </para> - - <para>file es el archivo a procesar. La modificación se hace en el - propio archivo dejando el original grabado con extensión .bak.</para> - - <para>Alternativamente puedes usar el comando - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tr">tr(1)</ulink></para> - - <para> - <literallayout>tr -d '\r' < dos-text-file > unix-file</literallayout> - </para> - - <para>dos-text-file es el archivo que contiene el texto DOS mientras que - unix-file contendrá la salida convertida. Este sistema puede - ser más rápido que usar perl.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo puedo hace "kill" de procesos por nombre?</para> - </question> - - <answer> - <para>Usa <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?killall">killall(1)</ulink>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Porque el su no me dejar ser root al no estar en el ACL?</para> - </question> - - <answer> - <para>El error proviene de sistema del autentificación distribuida - Kerberos. El problema no es fatal pero si molesto. Puedes ejecutar el - comando su con la opcion -K, o desinstalar Kerberos como se describe en - la siguiente sección.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo desinstalo Kerberos?</para> - </question> - - <answer> - <para>Para eliminar Kerberos del sistema, reinstala la distribución - bin de la release que estés usando. Si tienes el CDROM, puedes - montar el cd (asumiremos que esta en /cdrom) y ejecutar:</para> - - <para> - <literallayout> - cd /cdrom/bin - ./install.sh - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo añado pseudoterminales a mi sistema?</para> - </question> - - <answer> - <para>Si tienes muchos usuarios de telnet, ssh, X, o de consola, - probablemente terminarás desbordando el número de - pseudoterminales del sistema. Aquí tienes como añadir - más:</para> - - <para> - <orderedlist> - <listitem> - <para>Compila e instala un nuevo kernel com la línea - - <literallayout> - pseudo-device pty 256 - </literallayout> - </para> - <para>en el archivo de configuración.</para> - <para></para> - </listitem> - - <listitem> - <para>Ejecuta el comando - - <literallayout> - # cd /dev - # ./MAKEDEV pty{1,2,3,4,5,6,7} - </literallayout> - </para> - <para>para crear 256 nodos de dispositivo para los nuevos terminales.</para> - <para></para> - </listitem> - - <listitem> - <para>Edita el archivo <filename>/etc/ttys</filename> y añade una - línea para cada uno de los 256 terminales. Estas líneas deben - seguir la estructura de las entradas existentes, algo como esto: - - <literallayout> - ttyqc none network - </literallayout> - </para> - <para>El órden de la designación de letras es - <emphasis remap=tt>tty[pqrsPQRS][0-9a-v]</emphasis>, usando una - expresión regular.</para> - <para></para> - </listitem> - - <listitem> - <para>Rearranca el sistema con el nuevo kernel, y lo tendrás listo - para funcionar.</para> - </listitem> - </orderedlist> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo puedo releer el archivo /etc/rc.conf y relanzar /etc/rc - sin tener que hacer un reboot?</para> - </question> - - <answer> - <para>Entra en modo monousuario y a continuación vuelve a modo - multiusuario.</para> - - <para>En la consola haz: - <literallayout> - # shutdown now - (Nota: sin -r o -h) - - # return - # exit - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué es un sandbox?</para> - </question> - - <answer> - <para>Sandbox es un término de seguridad. Puede significar dos - cosas:</para> - - <para> - <itemizedlist> - <listitem> - <para></para> - - <para>Un proceso que es situado en el interior de una serie de muros - virtuales diseñados como prevención e imposibilitar - el acceso al sistema principal en caso de que alguien comprometa - la seguridad de ese proceso.</para> - - <para></para> - - <para>Se dice que el proceso es capaz de "jugar" entre los muros. - Esto significa que se supone que nada de lo que haga el proceso - referente a la ejecución de código, puede ser capaz - de romper los muros, así no es necesario hacer - auditorías detalladas de su código para poder conocer - todo lo referente a los riesgos de seguridad del proceso.</para> - - <para></para> - - <para>Los muros pueden, por ejemplo, un userid. Esta es la - definición usada en las páginas man de seguridad y del - programa named.</para> - - <para></para> - - <para>Veamos como ejemplo el servicio 'ntalk' (consultar /etc/inetd.conf). - Este servicio solía ejecutarse con el userid de root. Ahora se - ejecuta con el userid tty. El usuario tty esta diseñado para ser - usado como usuario sandbox, dificultando así la tarea de un - intruso que haya conseguido penetrar en el sistema a través del - servicio ntalk. De esta manera, el intruso solo puede afectar a los - servicios, programas o procesos propiedad del usuario tty.</para> - </listitem> - - <listitem> - <para></para> - - <para>Un proceso que se ha situado en el interior de una simulación - de la máquina. Esto es más hard-core. Básicamente, - significa que alguien que sea capaz de penetrar en el proceso, - creerá que ha penetrado en el sistema principal, pero de hecho, - ha penetrado en una simulación de esa máquina y no puede - modificar ningún dato real.</para> - - <para></para> - - <para>El sistema más común de conseguir esto es crear un - entorno simulado en un subdirectorio y ejecutar los procesos en ese - subdirectorio mediante chroot (la raiz "/" para ese proceso es este - directorio, no la raiz "/" real del sistema).</para> - - <para></para> - - <para>Otro sistema habitual es montar un sistema de archivos de solo - lectura y a continuació,n crear un nivel de sistema de archivos - por encima del anterior que dé al proceso la sensación - de encontrarse en un sistema de archivos de lectura/escritura. El - proceso creerá que es capaz de escribir esos archivos, pero - sólo el proceso ve los efectos; otros procesos del sistema - no ven absolutamente nada.</para> - - <para></para> - - <para>Se intenta crear este tipo de sandbox totalmente transparentes para - que el usuario (o intruso) no se de cuenta que está en él.</para> - </listitem> - </itemizedlist> - </para> - - <para>UNIX implementa dos tipos de sandboxes. Uno es a nivel de procesos, - y el otro es a nivel de usuarios (userid).</para> - - <para>Cada proceso UNIX es totalmente independiente de cualquier otro proceso - UNIX. Un proceso no puede modificar el espacio de direcciones de otro. Es - diferente a los sistemas Windows en los que un proceso puede sobreescribir - facilmente el espacio de direcciones de otro proceso, probocando una caida - de la máquina.</para> - - <para>Un proceso UNIX es propiedad de un userid determinado. Si el userid no - es el usuario root, éste solo podrá acceder a los procesos - de su propiedad, evitando la intrusión en procesos ajenos. El - userid también se usa como sistema de protección para datos - grabados en disco.</para> - </answer> - </qandaentry> - </qandaset> -</chapter> - -<chapter id="x"> - <title>El sistema X Windows y las consolas virtuales</title> - - <qandaset> - <qandaentry> - <question> - <para>Quiero ejecutar las X, ¿cómo lo hago?</para> - </question> - - <answer> - <para>La manera más fácil es, simplemente, especificar que - quieres usar las X durante el proceso de instalación.</para> - - <para>Entonces, lee y sigue la documentación de la herramienta - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=xf86config">xf86config</ulink>, - la cual te ayuda a configurar el sistema XFree86 sobre - las características propias de tu sistema (tarjeta de vídeo - , ratón, etc).</para> - - <para>Quizás te interesaría investigar y probar el servidor - Xaccel, disponible a un precio muy razonable. Mira en la sección - <link linkend="xig">Xi Graphics</link> o - <link linkend="metrox">Metro Link</link> para más detalles.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="x-and-moused"> - <para>¿Porqué no funciona mi ratón con las X?</para> - </question> - - <answer> - <para>Si estás usando syscons (el driver de consola por - defecto), puedes configurar FreeBSD para soportar un ratón en cada - consola virtual. Para evitar conflictos con las X, syscons soporta - un dispositivo virtual llamado <filename>/dev/sysmouse</filename>. Todos los - eventos recibidos desde el mouse real son escritos en el dispositivo sysmouse, - usando el protocolo MouseSystems. Si quieres usar el ratón en una o - más consolas virtuales <emphasis remap=bf>y</emphasis> usar las X, - te recomendamos la siguiente configuración:</para> - - <para> - <literallayout> - /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" - ..... - </literallayout> - </para> - - <para>Hay gente que prefiere usar <filename>/dev/mouse</filename> bajo X. Para que - esto funcione, <filename>/dev/mouse</filename> debe estar lincado a - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sysmouse">/dev/sysmouse</ulink>:</para> - - <para> - <literallayout> - # cd /dev - # rm -f mouse - # ln -s sysmouse mouse - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Los menus de X Window y cajas de diálogo no funcionan bien.</para> - </question> - - <answer> - <para>Intenta desactivar la tecla Num Lock.</para> - - <para>Si tu tecla Num Lock está activada por defecto al arrancar el - sistema, deberías añadir la siguiente línea en la - sección <emphasis remap=tt>Keyboard</emphasis> del archivo - <emphasis remap=tt>XF86Config</emphasis>.</para> - - <para> - <literallayout> - # Let the server do the NumLock processing. This should only be - # required when using pre-R6 clients - ServerNumLock - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué es una consola virtual y como creo más?</para> - </question> - - <answer> - <para>Las consolas virtuales te permiten tener sesiones - simultáneas en la misma máquina sin necesidad de tener - montajes complicados como una red o ejecución de X.</para> - - <para>Cuando el sistema arranca, mostrará el prompt de login en el - monitor una vez finalizado el mismo. Puedes entonces teclear - tu login y password y empezar a trabajar (o jugar), en la primera - consola virtual.</para> - - <para>En algun momento, es probablemente querras iniciar otra sesion - , por ejemplo, para mirar la documentación de un programa que - estás ejecutando, o para leer el correo mientras esperas que - termine una sesión ftp que tienes establecida. Solo haz Alt-F2 y - encontrarás un prompt un prompt de login esperandote en la segunda - "consola virtual". Cuando quieras volver a la sesión - original, sólo tienes que pulsar Alt-F1.</para> - - <para>La instalación por defecto de FreeBSD tiene tres consolas - virtuales activadas, y Alt-F1, Alt-F2 y Alt-F3 cambian entre ellas.</para> - - <para>Para activar más consolas virtuales, edita - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink> - y añade tantas entradas como consolas virtuales quieras a - partir de <emphasis remap=tt>ttyv4</emphasis>, después del - comentario "Virtual Terminals":</para> - - <para> - <literallayout> - # 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 - </literallayout> - </para> - - <para>Utiliza tantas consolas como quieras o necesites. Cuantas - más consolas tengas, más recursos utilizas; esto - puede ser importante si tienes 8MB de RAM o menos. También te - puede interesar cambiar el modo <emphasis remap=tt>secure</emphasis> a - <emphasis remap=tt>insecure</emphasis>.</para> - - <para><emphasis remap=bf>NOTA IMPORTANTE</emphasis> si quieres usar un - servidor X <acronym>DEBES</acronym> dejar, al menos, un terminal virtual - sin usar (o desactivado).</para> - - <para>La manera más fácil de desactivar una consola - es "apagarla". Por ejemplo, para desactivar el terminal 12, cambia esto:</para> - - <para> - <literallayout> - ttyvb "/usr/libexec/getty Pc" cons25 on secure - </literallayout> - </para> - - <para>por esto:</para> - - <para> - <literallayout> - ttyvb "/usr/libexec/getty Pc" cons25 off secure - </literallayout> - </para> - - <para>Si tu teclado solo tiene 10 teclas de función, tendras que - acabar con:</para> - - <para> - <literallayout> - ttyv9 "/usr/libexec/getty Pc" cons25 off secure - ttyva "/usr/libexec/getty Pc" cons25 off secure - ttyvb "/usr/libexec/getty Pc" cons25 off secure - </literallayout> - </para> - - <para>(También puedes, simplemente, borrar estas líneas.)</para> - - <para>Una vez has editado el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink>, - el siguiente paso es asegurarte de que tienes suficientes - dispositivos de terminales virtuales. La manera más fácil - de hacerlo es:</para> - - <para> - <literallayout> - # cd /dev - # ./MAKEDEV vty12 # For 12 devices - </literallayout> - </para> - - <para>A continuación, la manera más fácil de activar - las consolas virtuales es rearrancar el sistema. Si, realmente no - quieres rearrancarlo, puedes para el servidor de X Window y ejecutar - (como <emphasis remap=tt>root</emphasis>):</para> - - <para> - <literallayout> - kill -HUP 1 - </literallayout> - </para> - - <para>Es imperativo que pares el servidor de X Window si está - funcionando, antes de ejecutar este comando. Si no lo haces, - parecerá que tu sistema está parado/colgado después - de ejecutar el comando kill.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo accedo a las consolas virtuales desde X?</para> - </question> - - <answer> - <para>Si la consola está actualmente mostrando X Window, - puedes usar Ctrl-Alt-F1, etc, para cambiar entre las consolas - virtuales. Ten en cuenta que una vez pases de una consola X Window - a un terminal virtual, solo tienes que usar la tecla Alf- para volver a - conmutar entre terminales virtuales o volver a las X. No necesitas pulsar - la tecla Ctrl. Si usas la tecla Ctrl para volver a las X en alguna - de las releases antiguas, puedes encontrarte que la consola de - texto está bloqueada. Pulsa la tecla Ctrl de nuevo para - desbloquearla.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo arranco XDM desde el archivo - <filename>/etc/ttys</filename>?</para> - </question> - - <answer> - <para>Existen dos escuelas sobre como arrancar el - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=xdm">xdm</ulink> - . Una escuela arranca el xdm desde el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink> - usando el ejemplo dado, mientras que la otra simplemente arranca el xdm - desde el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc">rc.local</ulink> o - desde un script <filename>X.sh</filename> en - <filename>/usr/local/etc/rc.d</filename>. - Ambos métodos son igualmente válidos, y uno puede funcionar - en situaciones que el otro no. En ambos casos el resultado es el mismo: - el sistema X Window lanzará un prompt de login gráfico.</para> - - <para>El método ttys tiene la ventaja de documentar en que vty se - lanzarán las X pasando la responsabilidad de rearrancar el - servidor X al hacer el logout al proceso init. El método - rc.local hace más fácil terminar con el proceso xdm - en caso de problemas con el servidor X.</para> - - <para>Si arrancamos desde rc.local, <emphasis remap=tt>xdm</emphasis> debe ser - arrancado sin argumentos (como un daemon). xdm debe arrancar DESPUES del proceso - getty, o ambos entrarán en conflicto bloqueando la - consola. La mejor manera de evitar este problema es tener un - script que retrase el arranque de xdm durante 10 segundos.</para> - - <para>Una versión previa de esta FAQ decía que debías - añadir el <emphasis remap=tt>terminal virtual</emphasis> usado por las - X al archivo <filename>/usr/X11R6/lib/X11/xdm/Xservers</filename>. Esto no - es necesario: las X - usarán el primer <emphasis remap=tt>terminal virtual</emphasis> que - encuentre libre.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Cuando arranco xconsole obtengo "Couldn't open console".</para> - </question> - - <answer> - <para>Si arrancas las - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=X">X</ulink> - con - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=startx">startx</ulink>, - los permisos en /dev/console no serán cambiados, resultando en cosas - como que - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=xterm">xterm -C</ulink> - y <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=xconsole">xconsole</ulink> - no funcionen.</para> - - <para>Esto se debe a la manera en que son fijados los permisos de la - consola. En un sistema multiusuario, podemos no querer que - cualquier usuario pueda escribir en la consola de sistema. Para - usuarios que realizan logins directamente desde una máquina con - un VTY, existe el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fbtab">fbtab</ulink> - para resolver estos problemas.</para> - - <para>Asegúrate de que existe al menos una línea como esta - sin comentar:</para> - - <para> - <literallayout> - /dev/ttyv0 0600 /dev/console - </literallayout> - </para> - - <para>Está en - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?fbtab(5)">/etc/fbtab</ulink> - y asegurará que cualquiera que realice un login en - <filename>/dev/ttyv0</filename> será el propietario de la - consola.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Mi ratón PS/2 no funciona bien en X.</para> - </question> - - <answer> - <para>Tu ratón y el driver de ratón quizás estén - fuera de sincronización.</para> - - <para>En versiones 2.2.5 y anteriores, conmutando entre sesiones X y - sesiones de terminales virtuales, podía provocar una - desincronización. Si el problema ocurre muy amenudo, - deberías añadir la siguiente opción en el archivo - de configuración de tu kernel y recompilarlo.</para> - - <para> - <literallayout> - options PSM_CHECKSYNC - </literallayout> - </para> - - <para>Mira la sección <link linkend="make-kernel">creando un kernel</link> - si no tienes experiencia en compilar nuevos kernels.</para> - - <para>En versiones 2.2.6 y posteriores, el chequeo de sincronización - es realizado de otra manera, y es estándar en el driver de ratón - PS/2. Aun así, en casos extraños puedes llegar a ver - mensajes de error de sincronización como este:</para> - - <para> - <literallayout> - psmintr: out of sync (xxxx != yyyy) - </literallayout> - </para> - - <para>y parecer que tu ratón no funciona adecuadamente.</para> - - <para>Si esto ocurre, desactiva el código de chequeo de - sincronización poniendo los flags del driver PS/2 a 0x100. Entra - en <emphasis>UserConfig</emphasis> poniendo la opción <option>-c</option> - en el prompt de arranque:</para> - - <para> - <literallayout> - boot: -c - </literallayout> - </para> - - <para>Entonces, en la línea de comando de <emphasis>UserConfig</emphasis>, - teclea:</para> - - <para> - <literallayout> - UserConfig> flags psm0 0x100 - UserConfig> quit - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Mi ratón PS/2 de MouseSystems no funciona.</para> - </question> - - <answer> - <para>Hemos recibido reportes de que algunos modelos de ratones PS/2 de - MouseSystems solo trabajan si están configurados en modo "alta - resolución".</para> - - <para>Desafortunadamente no hay solución para versiones 2.0.x y 2.1.x. - En versiones 2.2.x, aplica el siguiente parche en - <filename>/sys/i386/isa/psm.c</filename> y compila un nuevo kernel.</para> - - <para> - <literallayout> -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 */ - </literallayout> - </para> - - <para>En versiones 2.2.6 o posteriores, especifica el flag 0x04 al - driver PS/2 para poner el ratón en modo de alta resolución. - Entra en <emphasis>UserConfig</emphasis>:</para> - - <para> - <literallayout> - boot: -c - </literallayout> - </para> - - <para>y en la línea de comandos teclea:</para> - - <para> - <literallayout> - UserConfig> flags psm0 0x04 - UserConfig> quit - </literallayout> - </para> - - <para>Mira en la sección anterior para posibles causas de problemas - con los ratones.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Cuando compilo una aplicación X. <emphasis remap=tt>imake</emphasis> - no puede encontrar el archivo <filename>imake.tmpl</filename>. ¿Dónde - está?</para> - </question> - - <answer> - <para>Imake.tmpl es parte del package Imake, una aplicación - estándar de compilación de X. Tanto Imake como headers y otros - archivos necesarios para compilar aplicaciones X están en la - distribución de programación X. Puedes instalarla desde - el sysinstall o manualmente desde los archivos de la distribución - X.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo invierto los botones del ratón?</para> - </question> - - <answer> - <para>Ejecuta el comando <literal> xmodmap -e "pointer = 3 2 1"</literal> desde el - archivo .xinitrc o .xsession.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo instalo un "splash screen" y donde los consigo?</para> - </question> - - <answer> - <para>Justo antes de la publicación de FreeBSD 3.1 se añadió - una nueva característica que permite mostrar "splash screens" durante los - mensajes de arranque del sistema. Los "splash screen" deben ser un bitmap de - 256 colores (<filename>*.BMP</filename>) o ZSoft PCX (<filename>*.PCX</filename>). - Además, deben tener una resolución de 320x200 o inferior para poder - trabajar en controladoras VGA estándares. Si se compila el soporte VESA - en el kernel, se pueden usar bitmaps de hasta 1024x768. Recordar que el soporte - de VESA requiere que la opción <emphasis remap=tt>VM86</emphasis> sea - compilada en el kernel. El soporte actual de VESA puede ser compilado - directamente en el kernel con la opción de configuración - <acronym>VESA</acronym> o cargando el módulo kld VESA durante el arranque.</para> - - <para>Para usar un "splash screen" necesitas modificar los archivos de - inicio que controlan el proceso de arranque de FreeBSD. Estos archivos cambiaron - con FreeBSD 3.2, así que ahora existen dos maneras de cargar un - "splash screen":</para> - - <para> - <itemizedlist> - <listitem> - <para>FreeBSD 3.1</para> - - <para>El primer paso es encontrar una versión bitmap de tu "splash - screen". La release 3.1 sólo soporta bitmaps de Windows. Una - vez hayas elegido tu "splash screen" copiala en - <filename>/boot/splash.bmp</filename>. A continuación necesitas tener - un archivo <filename>/boot/loader.rc</filename> que contenga las siguientes - líneas:</para> - - <para> - <literallayout> - load kernel - load -t splash_image_data /boot/splash.bmp - load splash_bmp - autoboot - </literallayout> - </para> - </listitem> - - <listitem> - <para>FreeBSD 3.2+</para> - - <para>Además de soportar los "splash screens" en formato PCX, - FreeBSD 3.2 incluye un mejor sistema de configuración - del proceso de arranque. Si quieres, puedes usar el método - señalado para FreeBSD 3.1. Si lo haces, y quieres usar PCX, - reemplaza <symbol>splash_bmp</symbol> con <symbol>splash_pcx</symbol>. Si por el - contrario quieres usar la nueva configuración de arranque, - necesitas crear un archivo <filename>/boot/loader.rc</filename> que contenga - las siguientes líneas:</para> - - <para> - <literallayout> - include /boot/loader.4th - start - </literallayout> - </para> - - <para></para> - - <para>y otro archivo <filename>/boot/loader.conf</filename> que contenga lo - siguiente:</para> - - <para> - <literallayout> - splash_bmp_load="YES" - bitmap_load="YES" - </literallayout> - </para> - - <para></para> - - <para>Esto asume que estás usando <filename>/boot/splash.bmp</filename> - como tu "splash screen". Si quieres usar un archivo PCX, - copialo a <filename>/boot/splash.pcx</filename>, crea un archivo - <filename>/boot/loader.rc</filename> como se ha indicado anteriormente, y - crea un <filename>/boot/loader.conf</filename> que contenga:</para> - - <para> - <literallayout> - splash_pcx_load="YES" - bitmap_load="YES" - bitmap_name="/boot/splash.pcx" - </literallayout> - </para> - </listitem> - </itemizedlist> - </para> - - <para>Ahora todo lo que necesitas es un "splash screen". Puedes navegar - por una inmejorable galería en - <ulink URL="http://www.cslab.vt.edu/~jobaldwi/splash/">http://www.cslab.vt.edu/~jobaldwi/splash/</ulink>.</para> - </answer> - </qandaentry> - </qandaset> -</chapter> - -<chapter id="networking"> -<title>Networking</title> - - <qandaset> - <qandaentry> - <question> - <para>¿Dónde puedo encontrar información sobre - "diskless booting"?</para> - </question> - - <answer> - <para>"Diskless booting" significa que una máquina FreeBSD sea - arrancada sobre una red, y lea los archivos necesarios de un servidor y no - desde su disco duro. Para más detalles, por favor, lee la - sección - <ulink URL="../../handbook/diskless.html">diskless booting del manual</ulink></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Puede una máquina FreeBSD ser usada como router dedicado?</para> - </question> - - <answer> - <para>Los estándares de Internet y las buenas prácticas de - ingeniería nos prohiben proveer el forward de paquetes en la - distribución estándar. Aun así, puedes activar esta - opción cambiando la siguiente variable a <acronym>YES</acronym> en el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf">rc.conf</ulink>:</para> - - <para> - <literallayout> - gateway_enable=YES # Set to YES if this host will be a gateway - </literallayout> - </para> - - <para>Esta opción pondrá la variable - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sysctl">sysctl</ulink> - <filename>net.inet.ip.forwarding</filename> a <emphasis remap=tt>1</emphasis>.</para> - - <para>En muchos casos también necesitarás ejecutar un proceso - de rutado para indicar la existencia en la red de tu router; FreeBSD - incluye el daemon estándar de rutado BSD - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?routed">routed</ulink>, - aunque en situaciones más complejas quizás quieras usar - <emphasis>GaTeD</emphasis> disponible en - <ulink URL="http://www.gated.org/">http://www.gated.org/</ulink></para> - - <para>Es nuestro deber advertirte que estando FreeBSD configurado de esta - manera, no cumple completamente con todos los estandares de routers - de Internet, pero es suficiente para uso ordinario.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Puedo conectar mi Win95 con Internet a través de - FreeBSD?</para> - </question> - - <answer> - <para>Típicamente, la gente que pregunta esto tiene dos pc's en casa, - uno con FreeBSD y otro con Win95; la idea es usar FreeBSD para conectar - a Internet y luego ser capaz de acceder a Internet desde el - computador con Windows 95. Este es realmente un caso especial de la - pregunta anterior.</para> - - <para>Hay un útil documento disponible que explica como configurar - FreeBSD como un - <ulink URL="http://www.ssimicro.com/~jeremyc/ppp.html">Router PPP</ulink></para> - - <para><emphasis remap=bf>NOTA:</emphasis> Esto requiere, al menos, tener - dos direcciones IP fijas disponibles, y posiblemente tres o más, - dependiendo del número de máquinas que quieras conectar. - Como alternativa, si no tienes una dirección IP fija, puedes usar - una de las subredes privadas e instalar un proxy como - <ulink URL="http://squid.nlanr.net/Squid/">SQUID</ulink> - y <ulink URL="http://www.tis.com/">The TIS firewall toolkit</ulink> - en tu FreeBSD.</para> - - <para>Mira también la sección <link linkend="direct-at">natd</link>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Por que falla la compilación del último BIND del ISC?</para> - </question> - - <answer> - <para>Hay un conflicto entre el archivo <filename>cdefs.h</filename> incluido en la - distribución de BIND y el distribuido con FreeBSD. Solo tienes que - borrar <filename>compat/include/sys/cdefs.h</filename>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Soporta FreeBSD SLIP y PPP?</para> - </question> - - <answer> - <para>Sí. Mira las paginas man de - <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> y - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink>. - <emphasis remap=tt>pppd</emphasis> y <emphasis remap=tt>ppp</emphasis> soportan - conexiones entrantes y salientes. - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sliplogin">Sliplogin</ulink> - trabaja exclusivamente con conexiones entrantes y - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?slattach">slattach</ulink> con - conexiones salientes.</para> - - <para>Estos programas son descritos en las siguientes secciones del - <ulink URL="../../handbook/index.html">manual</ulink>:</para> - - <para> - <itemizedlist> - <listitem> - <para> - <ulink URL="../../handbook/slips.html">Handbook entry on SLIP (server side)</ulink> - </para> - </listitem> - - <listitem> - <para> - <ulink URL="../../handbook/slipc.html">Handbook entry on SLIP (client side)</ulink> - </para> - </listitem> - - <listitem> - <para> - <ulink URL="../../handbook/ppp.html">Handbook entry on PPP (kernel version)</ulink> - </para> - </listitem> - - <listitem> - <para> - <ulink URL="../../handbook/ppp-and-slip.html#USERPPP">Handbook entry on PPP (user-mode version)</ulink> - </para> - </listitem> - </itemizedlist> - </para> - - <para>Si solo tienes acceso a Internet a traves de un "shell - account", quizás quieras mirar el package - <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^slirp">slirp</ulink>. - Puede darte un (limitado) acceso a servicios como ftp y http.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="natd"> - <para>¿Soporta FreeBSD NAT o Masquerading?</para> - </question> - - <answer> - <para>Si tienes una red local (una o más máquinas), pero solo - se te ha asignado una única dirección IP desde tu proveedor - de Internet (o si recibes las direcciones de manera dinámica), te - interesa mirar el programa - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?natd">natd</ulink>. - <emphasis remap=tt>Natd</emphasis> te permite conectar una red entera a Internet usando - solamente una dirección IP.</para> - - <para>El programa - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink> - tiene una funcionalidad similar incluida, a través del - parámetro -alias. La - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?libalias">librería alias</ulink> - es usada en ambos casos.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>No puedo crear el dispositivo <filename>/dev/ed0</filename>!</para> - </question> - - <answer> - <para>En el sistema de trabajo de red de Berkeley, los interfaces de - red solo son directamente accesibles por el código del kernel. Por - favor, mira el archivo <filename>/etc/rc.network</filename> y los man de los - programas de red allí mencionados. Si esto te deja totalmente - confundido, entonces tendrías que conseguir algun libro de - administración de red de cualquier sistema operativo basado en BSD; - con algunas excepciones significativas, administrar el sistema de red - en FreeBSD es básicamente igual que en SunOS 4.0 o Ultrix.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo puedo configurar alias de ethernets?</para> - </question> - - <answer> - <para>Añade ``<literal>netmask 0xffffffff</literal>'' en el comando - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ifconfig">ifconfig</ulink> - como el siguiente:</para> - - <para> - <literallayout> - ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo hago para usar el otro puerto de una 3C503?</para> - </question> - - <answer> - <para>Si quieres usar los otros puertos, tendrás que especificar - parámetros adicionales en el comando - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ifconfig">ifconfig</ulink>. - El puerto por defecto es <emphasis remap=tt>link0</emphasis>. Para usar el - puerto AUI en lugar del BSN, usa <emphasis remap=tt>link2</emphasis>. Estos - flags tendrían que ser especificados usando las variable ifconfig_* en - el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?rc.conf">/etc/rc.conf</ulink>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Tengo problemas con NFS desde/hacia FreeBSD.</para> - </question> - - <answer> - <para>Algunas tarjetas de red son mejores que otras y algunas veces - pueden causar problemas con aplicaciones de uso intensivo de red - como NFS</para> - - <para>Mira la <ulink URL="../../handbook/nfs.html">entrada en el manual de NFS</ulink> - para más información sobre este tema.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Porqué no puedo hacer NFS-mount desde Linux?</para> - </question> - - <answer> - <para>Algunas versiones de NFS para Linux solo aceptan peticiones - para montar unidades hechas desde un puerto privilegiado; intenta:</para> - - <para> - <literallayout> - mount -o -P linuxbox:/blah /mnt - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Porqué no puedo hacer NFS-mount desde una Sun?</para> - </question> - - <answer> - <para>Las estaciones de trabajo Sun con SunOS 4.x solo aceptan peticiones - de montar unidades hechas desde puertos privilegiados; intenta</para> - - <para> - <literallayout> - mount -o -P sunbox:/blah /mnt - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Tengo problemas usando ppp contra máquinas NeXTStep.</para> - </question> - - <answer> - <para>Intenta desactivar las extensiones TCP en - url="http://www.FreeBSD.org/cgi/man.cgi?rc.conf" name="/etc/rc.conf"> - cambiando la siguiente variable a NO:</para> - - <para> - <literallayout> - tcp_extensions=NO - </literallayout> - </para> - - <para>Las máquinas Xylogic's Annex también tienen este - problema, por lo que tienes que hacer el mismo cambio para conectar con - ellas.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo activo soporte de IP multicast?</para> - </question> - - <answer> - <para>Las operaciones multicast están totalmente soportadas en FreeBSD - 2.0 y superiores. Si quieres usar tu máquina como router multicast, - necesitarás cargar el módulo de kernel <symbol>ip_mrouted_mod</symbol> y - ejecutar el programa <emphasis remap=tt>mrouted</emphasis>.</para> - - <para>Para más información:</para> - - <para> - <literallayout> -Producto Descripcion Donde ---------------- ----------------------- --------------------------------------- -faq.txt Mbone FAQ ftp.isi.edu:/mbone/faq.txt -imm/immserv IMage Multicast ftp.hawaii.edu:/paccom/imm.src.tar.Z - for jpg/gif images. -nv Network Video. ftp.parc.xerox.com: - /pub/net-reseach/exp/nv3.3alpha.tar.Z -vat LBL Visual Audio Tool. ftp.ee.lbl.gov: - /conferencing/vat/i386-vat.tar.Z -wb LBL White Board. ftp.ee.lbl.gov: - /conferencing/wb/i386-wb.tar.Z -mmcc MultiMedia Conference ftp.isi.edu: - Control program /confctrl/mmcc/mmcc-intel.tar.Z -rtpqual Tools for testing the ftp.psc.edu:/pub/net_tools/rtpqual.c - quality of RTP packets. -vat_nv_record Recording tools for vat ftp.sics.se:archive/vat_nv_record.tar.Z - and nv. - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué tarjetas de red están basadas en el chipset DEC PCI?</para> - </question> - - <answer> - <para>Aquí tienes una lista hecha por - <ulink URL="mailto:gfoster@driver.nsta.org">Glen Foster</ulink>:</para> - - <para> - <literallayout> - Fabricante Modelo - ---------------------------------------------- - ASUS PCI-L101-TB - Accton ENI1203 - Cogent EM960PCI - Compex ENET32-PCI - D-Link DE-530 - Dayna DP1203, DP2100 - DEC DE435, DE450 - 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 - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Porqué tengo que usar el FQDN para hosts en mi servidor?</para> - </question> - - <answer> - <para>Probablemente el host estará en un dominio diferente; por - ejemplo, si estás en el dominio foo.bar.edu y quieres encontrar - un host llamado "mumble" en el dominio bar.edu, tendrás que - llamarlo por su nombre de dominio, "mumble.bar.edu", en vez de solo - "mumble".</para> - - <para>Tradicionalmente, esto era permitido por los resolvers BIND BSD. - La versión actual de - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?named">bind</ulink> que - se incluye en FreeBSD no resuelve abreviaciones de nombres para - hosts fuera de nuestro dominio.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>``Permission denied'' para todas las operaciones de red.</para> - </question> - - <answer> - <para>Si tienes el kernel compilado con la opción <acronym>IPFIREWALL</acronym> - . debes tener en cuenta que la política por defecto es denegar - explícitamente todos los paquetes que no están - explícitamente permitidos.</para> - - <para>Si involuntariamente has desconfigurado el firewall de tu sistema, - puedes restaurar la operatibilidad de la red tecleando el siguiente - comando como usuario root:</para> - - <para> - <literallayout> - ipfw add 65534 allow all from any to any - </literallayout> - </para> - - <para>Para más información en la configuración del firewall - de FreeBSD, mira la sección - <ulink URL="../../handbook/firewalls.html">del manual</ulink>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cuanto tiempo retrasa IPFW el tráfico?</para> - </question> - - <answer> - <para>Esta respuesta depende mucho en las reglas definidas y en la - versión del procesador. Para la mayoría de aplicaciones - que tienen que ver con la ethernet y pequeñas reglas, la - respuesta es, prácticamente nada.</para> - - <para>Aquí tienes una lista de cosas a tener en cuenta para crear reglas - de filtrado eficientes:</para> - - <para> - <itemizedlist> - <listitem> - <para>Poner una regla "established" al inicio para manejar la - mayoría de trafico TCP. No pongas ninguna regla - <emphasis remap=tt>allow tcp</emphasis> antes de esta. - </para> - </listitem> - - <listitem> - <para>Pon las reglas más usadas antes de las menos usadas - (<emphasis remap=bf>sin modificar la permisividad del firewall</emphasis>). - Puedes ver cuales son las reglas más usadas examinando los contadores - de paquetes con la orden <command>ipfw -a l</command>. - </para> - </listitem> - </itemizedlist> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo puedo redirigir peticiones de una máquina a - otra?</para> - </question> - - <answer> - <para>Puedes redirigir peticiones FTP (y otros servicios) con el package - "socket", disponible en la colección de ports categoría - "sysutils". Simplemente tienes que reemplazar la línea del servicio - correspondiente en el archivo /etc/services de la siguiente manera:</para> - - <para> - <literallayout>ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.foo.com ftp - </literallayout> - </para> - - <para>donde "ftp.foo.com" y "ftp" son la máquina y puerto - de destino.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Dónde puedo conseguir una herramienta de control de ancho - de banda?.</para> - </question> - - <answer> - <para>Existen dos herramientas de control de ancho de banda para FreeBSD. - <ulink URL="http://www.csl.sony.co.jp/person/kjc/programs.html">ALTQ</ulink> es - gratis; Bandwidth Manager de - <ulink URL="http://www.etinc.com/">Emerging Technologies</ulink> es un - producto comercial.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Porqué aparece "/dev/bpf0: device not configured"?</para> - </question> - - <answer> - <para>El driver Berkeley Packet Filter - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?bpf">(bpf)</ulink> necesita ser - activado para ejecutar programas que lo utilizan. Añade esto al - archivo de configuración de tu kernel y crea uno nuevo:</para> - - <para> - <literallayout> - pseudo-device bpfilter # Berkeley Packet Filter - </literallayout> - </para> - - <para>A continuación, después de rearrancar tendrás el - dispositivo. Esto puede hacerse entrando en el directorio <filename>/dev</filename> - y ejecutando el siguiente comando:</para> - - <para> - <informalexample> - <screen> - # sh MAKEDEV bpf0 - </screen> - </informalexample> - </para> - - <para>Por favor, mira la <ulink URL="../../handbook/kernelconfig-nodes.html">entrada - correspondiente en el handbook</ulink> para más - información sobre la creación de dispositivos.</para> - </answer> - </qandaentry> - </qandaset> -</chapter> - -<chapter id="ppp"> -<title>PPP</title> - - <qandaset> - <qandaentry> - <question id="userppp"> - <para>El ppp no funciona. ¿Qué estoy haciendo mal?</para> - </question> - - <answer> - <para>Primero deberías leer el - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">man de ppp</ulink> y - la <ulink URL="../../handbook/ppp-and-slip.html#USERPPP">sección de - PPP del handbook</ulink>. Activa los logs con el comando</para> - - <para> - <literallayout> - set log Phase Chat Connect Carrier lcp ipcp ccp command - </literallayout> - </para> - - <para>Este comando debería ser tecleado en el prompt del - <emphasis remap=bf>ppp</emphasis> o incluirse en el archivo de - configuración <filename>/etc/ppp/ppp.conf</filename> - (al inicio de la sección <emphasis remap=bf>default</emphasis> es el mejor lugar). - Asegurate que el archivo - url="http://www.FreeBSD.org/cgi/man.cgi?syslog.conf" - name="/etc/syslog.conf"> contiene las siguientes líneas:</para> - - <para> - <literallayout> !ppp - *.* /var/log/ppp.log - </literallayout> - </para> - - <para>y que el archivo <filename>/var/log/ppp.log</filename> existe. Puedes - encontrar mucha información sobre lo que está pasando en las - conexiones con el archivo de log.</para> - - <para>Si tu versión de ppp no entiende el comando "set log" - deberías bajarte la - <ulink URL="http://www.FreeBSD.org/~brian/">última versión</ulink>. - Esta compilará sin problemas en FreeBSD 2.1.5 y superiores.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Ppp se bloquea al ejecutarlo</para> - </question> - - <answer> - - <para>Esto ocurre normalmente por que no se puede resolver el nombre - de la máquina. La mejor manera de solucionar este problema - es asegurarse que el sistema use en primer lugar el archivo - <filename>/etc/hosts</filename> para hacer la resolución de - nombres. Para ello, basta con editar el archivo - <filename>/etc/host.conf</filename> y poner la línea - <emphasis remap=tt>hosts</emphasis> en primer lugar. A - continuación, simplemente hay que añadir una - línea para la máquina local en el archivo - <filename>/etc/hosts</filename>. Si no existe una red local, modificar - la línea <emphasis remap=tt>localhost</emphasis>:</para> - - <para> - <literallayout>127.0.0.1 foo.bar.com foo localhost - </literallayout> - </para> - - <para>Añadir otra línea para la máquina local. - Consultar las páginas man relevantes para más detalles.</para> - - <para>Ahora se debería poder ejecutar el siguiente mandato de - forma satisfactoria <command>ping -c1 `hostname`</command>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>PPP no quiere marcar en modo -auto</para> - </question> - - <answer> - <para>Primero, asegúrate de tener una ruta por defecto. Ejecutando - el comando url="http://www.FreeBSD.org/cgi/man.cgi?netstat"> - name="netstat -rn"> deberías ver dos entradas como estas:</para> - - <para> - <literallayout> -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 - </literallayout> - </para> - - <para>Esto es asumiendo que hayas usado las direcciones del manual, - la página man o del archivo de ejemplo ppp.conf.sample. Si no - tienes una ruta por defecto, puede ser por que estés usando una - versión antigua de <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink> - que no entiende la palabra <acronym>HISADDR</acronym> en el archivo ppp.conf. Si - tu versión de <emphasis remap=bf>ppp</emphasis> es de antes de FreeBSD 2.2.5, - cambia la línea</para> - - <para> - <literallayout> add 0 0 HISADDR - </literallayout> - </para> - - <para>por otra diciendo</para> - - <para> - <literallayout> add 0 0 10.0.0.2 - </literallayout> - </para> - - <para>Otra razón para la inexistencia de la ruta por defecto es que - sin darte cuenta hayas creado un default router en el archivo - /etc/rc.conf (anteriormente llamado <filename>/etc/sysconfig</filename>) y - hayas omitido la línea</para> - - <para> - <literallayout> delete ALL - </literallayout> - </para> - - <para>en el archivo <filename>ppp.conf</filename>. Si es este el caso vuelve a la - sección - <ulink URL="../../handbook/ppp-and-slip.html#USERPPP-FINAL.html">configuración final del sistema</ulink> - en el handbook.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué significa "No route to host"?</para> - </question> - - <answer> - <para>Este error se debe normalmente a la falta de la sección</para> - - <para> - <literallayout> - MYADDR: - delete ALL - add 0 0 HISADDR - </literallayout> - </para> - - <para>en el archivo <filename>/etc/ppp/ppp.linkup</filename>. Esto es solo - necesario si tienes una direccion IP dinámica o no sabes la - dirección de tu gateway. Si estás usando el modo - interactivo, puedes teclear lo siguiente despues de entrar en - <emphasis remap=tt>packet mode</emphasis>:</para> - - <para> - <literallayout> - delete ALL - add 0 0 HISADDR - </literallayout> - </para> - - <para>Pásate por la sección - <ulink URL="../../handbook/ppp-and-slip.html#USERPPP-DYNAMICIP">PPP y direcciones IP dinámicas</ulink> - del handbook para más información.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Mi conexión se corta pasados 3 minutos</para> - </question> - - <answer> - <para>El timeout de ppp por defecto es de 3 minutos. Se puede ajustar - con la línea:</para> - - <para> - <literallayout> set timeout NNN - </literallayout> - </para> - - <para>Donde <acronym>NNN</acronym> es el número de segundos de inactividad antes - de cerrar la conexión. Si <acronym>NNN</acronym> es 0, la conexión no - se cerrará nunca por timeout. Es posible poner este comando en - el archivo <filename>ppp.conf</filename>, o teclearla en el prompt del modo - interactivo. También es posible ajustarla en cualquier momento mientras la - conexión esté activa conectando al socket del servidor - <emphasis remap=bf>ppp</emphasis> usando - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?telnet">telnet</ulink> - o <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?pppctl">pppctl</ulink>. Leete el man de - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink> - para más detalles.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Mi conexión se corta en situaciones de carga</para> - </question> - - <answer> - <para>Si tienes la opción Link Quality Reporting (LQR) configurada - es posible que demasiados paquetes LQR se pierdan entre tu - máquina y el remoto. PPP deduce que la línea es mala y - corta la conexión. En versiones anteriores a la 2.2.5 de - FreeBSD, LQR estaba activado por defecto. Ahora está desactivado - por defecto. LQR puede ser activado con la línea</para> - - <para> - <literallayout> disable lqr - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Mi conexión se corta en periodos aleatorios</para> - </question> - - <answer> - <para>Algunas veces, en líneas telefónicas de baja calidad - o con mucho ruido, o líneas con la opción de llamada en - espera activada, el módem corta la conexión por que - piensa (erróneamente) que ha perdido la portadora.</para> - - <para>Hay una opción en muchos modems para determiar la tolerancia - a pérdidas temporales de portadora. En un USR Sportster por - ejemplo, esta es medida por el registro S10 en décimas de - segundo. Para hacer que tu módem sea más resistente, - puedes añadir la siguiente secuencia "send-expect" a la cadena - de llamada:</para> - - <para> - <literallayout> set dial "...... ATS10=10 OK ......" - </literallayout> - </para> - - <para>Mira en el manual de tu módem para más detalles.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>No ocurre nada después del mensaje Login OK</para> - </question> - - <answer> - <para>En versiones anteriores a FreeBSD 2.2.5, una vez estaba la - conexión establecida, - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink> espera a - que el remoto inicie la negociación LCP - (Line Control Protocol). Muchos proveedores de Internet no - iniciarán la negociación esperando que sea el cliente el - que lo haga. Para forzar al <emphasis remap=bf>ppp</emphasis> a iniciar el LCP, usa la - siguiente línea:</para> - - <para> - <literallayout> set openmode active - </literallayout> - </para> - - <para><emphasis remap=bf>Nota:</emphasis> Normalmente no hay problemas si las dos partes - inician la negocioacion LCP, ya que el modo abierto (open mode) - está activo por defecto. De todas maneras, la siguiente - sección explica cuando pueden haber problemas.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Sigo teniendo errores sobre el parámetro magic</para> - </question> - - <answer> - <para>Ocasionalmente, justo después de la conexión, puedes - ver mensajes en el log referentes a "magic number is the same". - Algunas veces, estos mensajes son inofensivos, y otras veces - uno de los dos extremos finaliza la conexión. Algunas - implementaciones de ppp no pueden solucionar este problema, y, - aunque parezca que la conexión está establecida, - verás repetidas peticiones y aceptaciones de - configuración en el archivo de log hasta que una de las dos - partes cierra la conexión.</para> - - <para>Esto ocurre normalmente en servidores con disco lentos que - tienen problemas para gestionar eficientemente los puertos - serie. También existen informes de problemas en conexiones - mediante slip. La razón es que en el tiempo que tarda el - servidor en salir del getty y ejecutar el ppp, el cliente - manda los paquetes de inicio LCP. Al estar el ECHO todavía - activo en el puerto del servidor, el cliente ppp lo único que - ve son sus propios paquetes "reflejados" por el servidor.</para> - - <para>Una parte de la negociación LCP es establecer un número - mágico para cada una de los dos extremos de las conexiones para - que los "reflejos" puedan ser detectados. El protocolo dice que - cuando el remoto intenta negociar el mismo "magic number", se debe - enviar un NAK para seleccionar un nuevo "magic number". Durante el - periodo de tiempo que el servidor tiene el ECHO activado en el - puerto, el cliente ppp envía paquetes LCP, ve que el mismo - "magic" vuelve en el paquete reflejado y lo da como no válido - (envia NAK). - Este todavía ve el paquete reflajado con NAK (lo que significa - que el ppp debe cambiar su "magic"). Esto produce un enorme - número de cambios de "magic number" que son introducidos en el - buffer tty del servidor. Tan pronto como el ppp arranca en el servidor, - es bombardeado con cambios de "magic numbers" e inmediatamente decide - que ya ha realizado el número suficiente de negociaciones LCP y - corta la conexión. Mientras tanto, el cliente, que ya no ve los - paquetes reflejados, recibe sin problemas la desconexión del - servidor y también cierra la conexión.</para> - - <para>Esto puede ser resuelto permitiendo que el remoto inicie la - negociación, poniendo la siguiente línea en el archivo - ppp.conf:</para> - - <para> - <literallayout> set openmode passive - </literallayout> - </para> - - <para>Esto indica al ppp que espere a que el servidor comience la - negociación LCP. Es posible que algunos servidores nunca inicien - la negociación. Si este es el caso, puedes hacer algo como:</para> - - <para> - <literallayout> set openmode active 3 - </literallayout> - </para> - - <para>Esto le indica al ppp que sea pasivo durante 3 segundos, y - despues comience a enviar peticiones LCP. Si el remoto envía - peticiones durante este periodo, ppp responderá inmediatamente - sin esperar los 3 segundos establecidos.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Las negociaciones LCP continuan hasta que se cierra la conexión</para> - </question> - - <answer> - <para>Existe actualmente un problema de implementación en - <emphasis remap=bf>ppp</emphasis> en la que no asocia las respuestas LCP, CCP - & IPCP con sus peticiones originales. Como resultado, si una implementación - <emphasis remap=bf>ppp</emphasis> es más lenta durante 6 segundos que la remota, la remota - enviará dos peticiones de configuración LCP adicionales. - Esto es fatal.</para> - - <para>Considera dos implementaciones, <emphasis remap=bf>A</emphasis> y - <emphasis remap=bf>B</emphasis>. <emphasis remap=bf>A</emphasis> empieza - a enviar peticiones LCP inmediatamente después de conectar y - <emphasis remap=bf>B</emphasis> tarda 7 segundos en arrancar. Cuando - <emphasis remap=bf>B</emphasis> arranca, <emphasis remap=bf>A</emphasis> ha - enviado 3 peticiones LCP. Estamos asumiendo que la línea tiene el - ECHO desactivado, si no, veriamos los problemas de "magic number" - descritos en el apartado anterior. <emphasis remap=bf>B</emphasis> envía un REQ, y a - continuación envía un ACK al primer REQ de <emphasis remap=bf>A</emphasis>. Esto - resulta en que <emphasis remap=bf>A</emphasis> entra en modo <acronym>OPENED</acronym> - y envía un ACK (el primero) a <emphasis remap=bf>B</emphasis>. Mientras, - <emphasis remap=bf>B</emphasis> devuelve dos ACKs más en respuesta a los dos REQs - adicionales enviados por <emphasis remap=bf>A</emphasis> antes de que - <emphasis remap=bf>B</emphasis> arrancase .<emphasis remap=bf>B</emphasis> recibe - el primer ACK de <emphasis remap=bf>A</emphasis> y entra en modo - <acronym>OPENED</acronym>. <emphasis remap=bf>A</emphasis> recibe el segundo ACK - de <emphasis remap=bf>B</emphasis> y vuelve al estado - <emphasis remap=bf>REQ-SENT</emphasis>, enviando otro (el cuarto) REQ. Entonces recibe el - tercer ACK y entra en modo <acronym>OPENED</acronym>. Mientras, - <emphasis remap=bf>B</emphasis> recibe el cuarto REQ de <emphasis remap=bf>A</emphasis>, - produciendo que vuelva de nuevo al estado <emphasis remap=bf>ACK-SENT</emphasis> y - enviando otro (el segundo) REQ y (cuarto) ACK. <emphasis remap=bf>A</emphasis> - recibe el REQ, entra en modo <emphasis remap=bf>REQ-SENT</emphasis> y envía otro REQ. - Inmediatamente recibe el siguiente ACK y entra en <acronym>OPENED</acronym>.</para> - - <para>Esto pasa hasta que una de las partes piensa que ya ha realizado - suficientes reintentos y corta la conexión.</para> - - <para>La mejor manera de evitar esto es configurar una de las partes - de manera <emphasis remap=bf>pasiva</emphasis> - que es, hacer que una de las partes espere - a que la otra comience la negociación. Esto puede realizarse - con el comando:</para> - - <para> - <literallayout> - set openmode passive - </literallayout> - </para> - - <para>Se debe tener cuidado con esta opción. También se puede - usar:</para> - - <para> - <literallayout> - set stopped N - </literallayout> - </para> - - <para>para limitar el número de veces que <emphasis remap=bf>ppp</emphasis> - espera a que el remoto comience la negociación. Alternativamente, puedes user - el comando:</para> - - <para> - <literallayout> - set openmode active N - </literallayout> - </para> - - <para>donde <emphasis remap=bf>N</emphasis> es el número de segundos que - espera antes de empezar la negociación. Mira en el manual para más - detalles.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Ppp se bloquea al conectar</para> - </question> - - <answer> - <para>Antes de la versión 2.2.5 era posible que la conexión - se corte nada más iniciarse debido a un problema en la - negociación de compresión Predictor1. Esto solo pasa si - las dos partes intentan negociar con diferentes protocolos de control - de compresión (CCP). Este problema ya está corregido, pero - si estás usando una versión antigua de - <emphasis remap=bf>ppp</emphasis>, el problema puede solucionarse - con la línea</para> - - <para> - <literallayout> - disable pred1 - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Ppp se bloqua al abrir un shell de test</para> - </question> - - <answer> - <para>Cuando ejecutas el comando <emphasis remap=tt>shell</emphasis> o - <emphasis remap=tt>!</emphasis>, <emphasis remap=bf>ppp</emphasis> ejecuta - un shell (o si has pasado argumentos, <emphasis remap=bf>ppp</emphasis> ejecutará esos - argumentos). Ppp esperará a que se complete el comando antes de - continuar. Si intentas usar la conexión ppp mientras se ejecuta - el comando, parecerá que la conexión se ha colgado. Esto - es por que <emphasis remap=bf>ppp</emphasis> está esperando a que se complete la - ejecución del comando.</para> - - <para>Si quieres ejecutar comandos como este, usa el comando - <emphasis remap=tt>!bg</emphasis> en su lugar. Esto ejecutará el comando - en background, y ppp continúa sin problemas con la conexión.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Ppp sobre un cable null-modem no funciona</para> - </question> - - <answer> - <para>No hay manera que <emphasis remap=bf>ppp</emphasis> detecte - automáticamente que una conexión directa se ha cortado. Es debido - a las líneas que se usan en un cable serie null-modem. Cuando usamos este tipo de - conexión, LQR debería estar siempre activada con el - comando</para> - - <para> - <literallayout> enable lqr - </literallayout> - </para> - - <para>LQR es aceptado por defecto si es negociado por el remoto.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Por que llama sin motivo el ppp en modo -auto?</para> - </question> - - <answer> - <para>Si <emphasis remap=bf>ppp</emphasis> llama inesperadamente, debes determinar la causa, y - poner filtros (dfilters) para prevenir esas llamadas.</para> - - <para>Para determinar la causa, usa la siguiente línea:</para> - - <para> - <literallayout> set log +tcp/ip - </literallayout> - </para> - - <para>Esto guardara todo el tráfico que pase a través de la - conexión. - La próxima vez que se realice una llamada no deseada, - podrás ver la causa convenientemente guardada.</para> - - <para>Ahora puedes desactivar las llamadas producidas por esa causa. - Usualmente, este tipo de problemas se debe a consultas de DNS. Para - prevenir que las consultas de DNS puedan establecer conexiones usa - la siguiente línea (esto no hará que los paquetes de DNS - queden parados cuando la conexión está establecida):</para> - - <para> - <literallayout> set dfilter 1 deny udp src eq 53 - set dfilter 2 deny udp dst eq 53 - set dfilter 3 permit 0/0 0/0 - </literallayout> - </para> - - <para>Esto no siempre es aconsejable, ya que puede afectar a la - capacidad de realizar conexiones bajo demanda - muchos programas - necesitan hacer una consulta al DNS antes de poder realizar - cualquier operación.</para> - - <para>En el caso del DNS, deberías determinar que es lo que - está intentando realizar esas consultas de DNS. Muchas veces, - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sendmail">sendmail</ulink> - es el culpable. Debes asegurarte configurar el - sendmail de manera que no realice ninguna consulta al DNS. Mira la - sección <link linkend="ispmail">Configuracion de correo</link> para - tener más detalles acerca de como crear una archivo propio de - configuración de sendmail. También deberías - añadir la siguiente línea en tu archivo <filename>.mc</filename>:</para> - - <para> - <literallayout> define(`confDELIVERY_MODE', `d')dnl - </literallayout> - </para> - - <para>Esto hara que sendmail encole todo el correo hasta que no se - procese la cola (usualmente, sendmail es invocado con - "-bd -q30m", indicandole que procese la cola cada 30 minutos) o - hasta que se ejecuta el comando "sendmail -q" (por ejemplo, desde - el archivo ppp.linup).</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué significan estos errores CCP?</para> - </question> - - <answer> - <para>Sigo viendo los siguientes errores en el archivo de log:</para> - - <para> - <literallayout> CCP: CcpSendConfigReq - CCP: Received Terminate Ack (1) state = Req-Sent (6) - </literallayout> - </para> - - <para>Esto es porque ppp está intentando negociar compresión - Predictor1, y el remoto no quiere negociar ningún tipo de - compresión. Estos mensajes son sin importancia, pero si quieres - eliminarlos, puedes desactivar la compresión Predictor1 - localmente:</para> - - <para> - <literallayout> disable pred1 - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>PPP se cuelga durante transferencia de archivos con errores I/OP</para> - </question> - - <answer> - <para>En la versión FreeBSD 2.2.2 y anteriores, había un - problema en el driver tun que no permitía paquetes entrantes con - un tamaño mayor que el MTU del interface. La recepción de - un paquete mayor que el MTU resulta en un error IO que es logueado - vía syslogd.</para> - - <para>La especificación PPP dice que un MRU de 1500 - <emphasis remap=bf>siempre</emphasis> - debería ser aceptada como mínimo, a pesar de lo que se - negocie mediante LCP, de todas maneras, es posible que hayas disminuido - el MTU por debajo de 1500 y tu proveedor te esté enviando - paquetes de 1500, haciendo que tu conexión se bloquee.</para> - - <para>El problema puede solucionarse haciendo que el tamaño del - MTU nunca sea inferior a 1500 bajo FreeBSD 2.2.2 y anteriores.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Por que ppp no loguea la velocidad de la conexión?</para> - </question> - - <answer> - <para>Para loguear todas las líneas de "conversación" de tu - módem, debes activar la siguiente opción:</para> - - <para> - <literallayout> set log +connect - </literallayout> - </para> - - <para>Esto hará que - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ppp">ppp</ulink> - loguee todo hasta la última cadena "expect" pedida.</para> - - <para>Si quieres ver la velocidad de tu conexión y usas PAP o CHAP - (y por lo tanto no tienes nada que "chatear" después del CONNECT - en el script de marcado), debes estar seguro de indicarle al ppp que - espera la línea "CONNECT con algo como esto:</para> - - <para> - <literallayout> set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n" - </literallayout> - </para> - - <para>Aquí, tenemos nuestro CONNECT, enviamos nada, y esperamos un - salto de línea, forzando al <emphasis remap=bf>ppp</emphasis> que lea - la respuesta del CONNECT.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Ppp ignora el carácter `\' en mi chat script</para> - </question> - - <answer> - <para>PPP lee cada línea de los archivos de configuración - para poder interpretar cadenas como <emphasis remap=tt>set phone "123 456 789"</emphasis> - correctamente. - Para especificar un carácter ``"'', debes usar la contrabarra - (``\'').</para> - - <para>Cuando el intérprete lee cada argumento, reinterpreta el - argumento para buscar alguna secuencia especial de escape como ``\P'' - o ``\T''. - Como resultado de esta doble lectura, recuerda que has de usar el - número correcto de escapes (contrabarras).</para> - - <para>Si quieres enviar un caracter ``\'' a tu módem, necesitas - hacer algo como:</para> - - <para> - <literallayout> set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK" - </literallayout> - </para> - - <para>resultando en la siguiente secuencia:</para> - - <para> - <literallayout> ATZ - OK - AT\X - OK - </literallayout> - </para> - - <para>o</para> - - <para> - <literallayout> set phone 1234567 - set dial "\"\" ATZ OK ATDT\\T" - </literallayout> - </para> - - <para>resultando en la siguiente secuencia:</para> - - <para> - <literallayout> ATZ - OK - ATDT1234567 - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Ppp produce un seg-fault, pero no veo el archivo - <filename>ppp.core</filename></para> - </question> - - <answer> - <para>Ppp (o cualquier otro programa de este tipo), nunca deberían - hacer un core dump. Por que ppp funciona con un id de usuario 0, - el sistema operativo no escribirá la imagen del core en disco. - Si ppp termina con errores de "segmentation violation" o cualquier - otra señal que normalmente causa un core dumped, y quieres poder - hacer un debug de ese core, asegúrate de usar la última - versión de ppp, y haz lo siguiente:</para> - - <para> - <literallayout> $ 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 - </literallayout> - </para> - - <para>Ahora tendrás instalada una versión "debuggable" de - ppp. Tendrás que ser root para poder ejecutar ppp ya que todos - sus privilegios han sido revocados. Cuando arranques ppp, acuerdate del - directorio en el que te encuentras.</para> - - <para>Ahora, cuando ppp recibe una violación de segmentación - , creará un archivo core llamado ppp.core. A continuación - , deberías hacer lo siguiente:</para> - - <para> - <literallayout> $ su - # gdb /usr/sbin/ppp ppp.core - (gdb) bt - ..... - (gdb) f 0 - ..... - (gdb) i args - ..... - (gdb) l - ..... - </literallayout> - </para> - - <para>Toda esta información puede hacer posible diagnosticar el - problema. Si estás familiarizado con gdb, puedes encontrar otras - pistas como que causó el dump y las direcciones y valores de las - variables más relevantes.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>El proceso que fuerza una llamada en modo auto nunca funciona</para> - </question> - - <answer> - <para>Este es un problema conocido cuando <emphasis remap=bf>ppp</emphasis> - está configurado para negociar una IP dinámica local con el - remoto. Este problema ha sido solucionado en la última versión - - busca en el man la palabra <emphasis remap=bf>iface</emphasis>.</para> - - <para>El problema era que cuando el programa inicial llama a - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?connect">connect(2)</ulink>, - el IP del interface tun es asignado al punto - final del socket. El kernel crea el primer paquete saliente y - establece la conexión. Si, como resultado de la - asignación dinámica de IP, la dirección del - interface es cambiada, el punto final del socket original será - invalido. Los siguientes paquetes enviados al remoto normalmente - serán descartados. Aun si no lo son, cualquier respuesta no - será enrutada hacia la máquina de origen por que la - dirección IP de la máquina de origen ha cambiado.</para> - - <para>Hay varias maneras teóricas de solucionar este problema. Lo - mejor sería que el remoto reasignase la misma IP si fuese - posible <emphasis remap=tt>:-)</emphasis> La versión actual de - <emphasis remap=bf>ppp</emphasis> hace esto, - pero otras muchas implementaciones no.</para> - - <para>El método más sencillo desde nuestra parte, - sería no cambiar nunca la IP del interface tun, pero por el - contrario, cambiar todos los paquetes salientes de manera que la ip de - origen es cambiada del IP del interface a la IP negociada, - instantaneamente. - Esto es, esencialmente, lo que hacen - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?libalias">libalias(3)</ulink> - y el parámetro <option>-alias</option> de ppp.</para> - - <para>Otra alternativa (y probablemente la más eficaz) es implementar - una llamada al sistema que cambie todos los sockets de una IP a - otra. <emphasis remap=bf>Ppp</emphasis> debería usar esta llamada para modificar los - sockets de todos los programas existentes cuando una nueva - dirección IP es negociada. La misma llamada de sistema - podría ser usada para clientes dhcp cuando son forzados - a rehacer sus sockets.</para> - - <para>Una tercera opción es permitir que un interface se active sin - IP. Los paquetes salientes tendrían un IP de 255.255.255.255 - hasta que el primer SIOCAIFADDR ioctl este hecho. Esto - permitiría que ppp cambiase el IP de origen, pero solo si el - socket es 255.255.255.255 y solo el IP y el checksum necesitan cambiar. Esto, de - todas maneras, requiere tocar el kernel para que puede enviar - paquetes incorrectos a un interface mal configurado.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Porqué muchos juegos no funcionan con el - parámetro -alias?</para> - </question> - - <answer> - <para>La razón por la que muchos de los juegos no funcionan es - por que la máquina externa intentará abrir una - conexión o enviar paquetes UDP (no solicitados) a la - máquina interna. El software "alias" no sabe que esos paquetes - debrín enviarse a la máquina interna.</para> - - <para>Para que las cosas funcionen, asegúrate que la única - cosa que está funcionando es el software con el que tienes - problemas, entonces ejecuta tcpdump en el interface tun del - gateway o ejecuta el log tcp/ip del ppp ("set log +tcp/ip" en el - gateway.</para> - - <para>Cuando arrancas el software que no funciona, deberís ver - paquetes que pasan a través del gateway. Cuando algo - vuelve del exterior, será rechazado (ese es el problema). - Apunta el número de puerto de esos paquetes y cierra el - software que no funciona. Haz esto varias veces para comprobar si - el número de puerto se repite. Si es así, la siguiente - línea en el archivo de configuración del ppp - /etc/ppp/ppp.conf hará que las cosas funcionen:</para> - - <para> - <literallayout> alias port proto internalmachine:port port - </literallayout> - </para> - - <para>donde "proto" puede ser "tcp" o "udp", "internalmachine" es la - máquina a la que quieres que los paquetes sean enviados y - "port" es el número de puerto de destino de los paquetes.</para> - - <para>No podrás usar ese software en otras máquinas sin - modificar el comando anterior, y ejecutar el software - simultaneamente en dos máquinas internas no será - posible - después de todo, el mundo exterior está - viendo a toda tu red como una sola máquina.</para> - - <para>Si los números de puertos no se repiten, hay tres opciones - más:</para> - - <para><emphasis remap=bf>1)</emphasis> Desarrollar el soporte en libalias. Ejemplos de estos - "casos especiales" los puedes encontrar en - /usr/src/lib/libalias/alias_*.c (alias_ftp.c es un buén - prototipo). Esto usualmente supone leer ciertos paquetes salientes - conocidos, identificando la instrucción que le indica a la - máquina exterior que inicie una conexión con la - máquina interna en un puerto específico (aleatorio) - y configurar un "ruta" en la tabla de alias para que los paquetes - siguientes sepan donde ir.</para> - - <para>Esta es la solución más difícil, pero es la - mejor y hará que el software funcione con múltiples - máquinas.</para> - - <para><emphasis remap=bf>2)</emphasis> Usar un proxy. La aplicación debe soportar - socks5 por ejemplo, o (como en el caso del "cvsup") debería - tener una opción "pasiva" que evita que el remoto intente abrir - conexiones con la maquina local.</para> - - <para><emphasis remap=bf>3)</emphasis> Redireccionar todo el tráfico - a la máquina interna usando "alias addr". Esta es la solución más - sencilla.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Ha hecho alguien una lista de puertos útiles?</para> - </question> - - <answer> - <para>Todavía no, pero se podría hacer, si hay - interés. En cada ejemplo, <emphasis remap=tt>internal</emphasis> debe ser - reemplazado por la dirección IP de la máquina que - va a estar jugando.</para> - - <para> - <itemizedlist> - <listitem> - <para><emphasis remap=bf>Quake</emphasis> - </para> - - <para><emphasis remap=tt>alias port udp internal:6112 6112</emphasis></para> - - <para>Alternativamente, quizás estés interesado en - mirar en el - <ulink URL="http://www.battle.net/support/proxy/">www.battle.net</ulink>soporte - de Quake a través de proxy">.</para> - </listitem> - </itemizedlist> - </para> - - <para> - <itemizedlist> - <listitem> - <para><emphasis remap=bf>Quake 2</emphasis></para> - - <para><emphasis remap=tt>alias port udp internal:27901 27910</emphasis></para> - </listitem> - </itemizedlist> - </para> - - <para> - <itemizedlist> - <listitem> - <para><emphasis remap=bf>Red Alert</emphasis></para> - - <para><emphasis remap=tt>alias port udp internal:8675 8675</emphasis></para> - - <para><emphasis remap=tt>alias port udp internal:5009 5009</emphasis></para> - </listitem> - </itemizedlist> - </para> - - <para> - <itemizedlist> - <listitem> - <para><emphasis remap=bf>Half Life</emphasis></para> - - <para><emphasis remap=tt>alias port udp internal:27005 27015</emphasis></para> - </listitem> - </itemizedlist> - </para> - - <para> - <itemizedlist> - <listitem> - <para><emphasis remap=bf>PCAnywhere 8.0</emphasis></para> - - <para><emphasis remap=tt>alias port udp internal:5632 5632</emphasis></para> - - <para><emphasis remap=tt>alias port tcp internal:5631 5631</emphasis></para> - </listitem> - </itemizedlist> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué son los errores FCS?</para> - </question> - - <answer> - <para>FCS significa <emphasis remap=bf>F</emphasis>rame - <emphasis remap=bf>C</emphasis>heck <emphasis remap=bf>S</emphasis>equence. - Cada paquete ppp tiene un checksum añadido para asegurar que los datos - que se reciben son los datos que han sido enviados. Si el FCS de un - paquete entrante es incorrecto, el paquete es rechazado y se - incremente el contador HDLC FCS. Los valores de error HDLC se - pueden visualizar usando el comando <emphasis remap=tt>show hdlc</emphasis>.</para> - - <para>Si tu conexión es mala (o si tu driver serie está - rechazando paquetes), verás errores FCS ocasionales. En general - no tienes porque preocuparte de ellos. Si tienes un módem - externo, asegúrate que el cable está correctamente - aislado de interferencias - esto debería erradicar el problema.</para> - - <para>Si tu conexión se corta tan pronto como has conectado y ves - gran cantidad de errores FCS, puede ser por que ti conexión no - es de 8 bits. Asegúrate de que tu módem no está - usando control de flujo (XON/XOFF) por software. Si tu conexión - de datos <emphasis remap=bf>debe</emphasis> usar control de flujo por software, usa el - comando <literal>set accmap 0x000a0000</literal> para indicar al - <emphasis remap=bf>ppp</emphasis> que "escape" los carácteres ^Q y ^S.</para> - - <para>Otra razón para ver muchos errores FCS puede ser que el - remoto haya dejado de "hablar" <acronym>PPP</acronym>. Deberís activar el - log asíncrono para determinar si los datos entrantes son de - un login o un prompt de shell. Si tienes un prompt de shell en el - extremo de la conexión, es posible terminar el ppp sin - cortar la conexión usando el comando <emphasis remap=tt>close clp</emphasis> (usando - el comando <emphasis remap=tt>term</emphasis> podrás conectar de nuevo con el shell - de la máquina remota.</para> - - <para>Si no hay nada en el log que indique por que se ha terminado la - conexión, deberís preguntar al administrador del - sistema remoto porqué ha terminado la sesión.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Nada de esto me ayuda - Estoy desesperado !</para> - </question> - - <answer> - <para>Si todo falla, envía toda la información que puedas, - incluyendo los archivos de configuración, como arrancas el ppp, - las partes relevantes del archivo de log y la salida del comando - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?netstat">netstat -rn</ulink> - (antes y despues de la conexión) a la lista de distribución - <ulink URL="mailto:FreeBSD-questions@FreeBSD.org">FreeBSD-questions@FreeBSD.org</ulink>, - a la lista de - <ulink URL="mailto:FreeBSD@es.FreeBSD.org">FreeBSD en castellano</ulink> o - al grupo de news - <ulink URL="news:comp.unix.bsd.FreeBSD.misc">comp.unix.bsd.FreeBSD.misc</ulink> - y alguien te ayudará a solucionar los problemas.</para> - </answer> - </qandaentry> - </qandaset> -</chapter> - -<chapter id="serial"> -<title>Comunicaciones serie</title> - - <para>Esta sección responde las preguntas más frecuentes sobre las - comunicaciones serie con FreeBSD. PPP y SLIP se tratan en la - sección <link linkend="networking">Networking</link>.</para> - - <qandaset> - <qandaentry> - <question> - <para>¿Cómo se si FreeBSD ha encontrado mis puertos serie?</para> - </question> - - <answer> - <para>Cuando el kernel de FreeBSD arranca, testeará los puertos serie - del sistema que estén configurados en el kernel. Puedes estar - atento a los mensajes de la consola o ejecutar el comando:</para> - - <para> - <literallayout> dmesg | grep sio - </literallayout> - </para> - - <para>una vez el sistema esté en funcionamiento.</para> - - <para>Aquí tienes un ejemplo del resultado de la ejecución - del comando:</para> - - <para> - <literallayout> sio0 at 0x3f8-0x3ff irq 4 on isa - sio0: type 16550A - sio1 at 0x2f8-0x2ff irq 3 on isa - sio1: type 16550A - </literallayout> - </para> - - <para>Esto muestra dos puertos serie. El primero en la irq 4 usando - la dirección <literal>0x3f8</literal>, y tiene una UART 16550A. El segundo usa - el mismo tipo de chip pero está en la irq 3 y usa la - dirección <literal>0x2f8</literal>. Los módems internos son tratados - como puertos serie, exceptuando que siempre tienen un módem - adjuntado al puerto.</para> - - <para>El kernel <acronym>GENERIC</acronym> incluye soporte para dos puertos serie - usando la misma irq y dirección que en el ejemplo anterior. Si - estas opciones no son correctar para tu sistema, o si has añadido - módems internos o tienes más puertos serie de los que - están configurados en el kernel, solo tienes que reconfigurar el - kernel. Mira en la sección - <link linkend="make-kernel">about building a kernel</link> para más - detalles.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo se si FreeBSD ha encontrado mi módem interno?</para> - </question> - - <answer> - <para>Respondido en la sección anterior.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>He actualizado a 2.0.5 y mi <emphasis remap=tt>tty0X</emphasis> no - existen!</para> - </question> - - <answer> - <para>No te preocupes, han sido integrados en los dispositivos - <emphasis remap=tt>ttydX</emphasis>. Tendrás que modificar algunos - archivos antiguos de configuración.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo accedo a los puertos serie en FreeBSD?</para> - </question> - - <answer> - <para>El tercer puerto serie, - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sio">sio2</ulink> (conocido - como COM3 en DOS), está en <filename>/dev/cuaa2</filename> para dispositivos de - salida (dial-out) y en <filename>/dev/ttyd2</filename> para dispositivos de - entrada (dial-in). Cuál es la diferencia entre estas dos clases de - dispositivos?.</para> - - <para>Usas los <emphasis remap=tt>ttydX</emphasis> para los entrantes. - Al abrir <filename>/dev/ttydX</filename> - en "blocking mode", un proceso esperará para que el dispositivo - <emphasis remap=tt>cuaaX</emphasis> correspondiente se vuelva inactivo. - Cuando abres un dispositivo <emphasis remap=tt>cuaaX</emphasis>, se asegura - de que el puerto serie no está en uso por un dispositivo - <emphasis remap=tt>ttydX</emphasis>. Si el puerto está disponible, - se lo "roba" al dispositivo <emphasis remap=tt>ttydX</emphasis>. Al mismo tiempo, - el dispositivo <emphasis remap=tt>cuaaXX</emphasis> no se preocupa de la - detección de portadora. Con este - esquema, y un módem en respuesta automática, puedes - recibir usuarios remotos y puedes hacer conexiones externas con el mismo - módem, mientras el sistema se preocupa de evitar los posible - conflictos.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo activo el soporte de tarjetas serie multipuerto?</para> - </question> - - <answer> - <para>Otra vez, en la sección de configuración del kernel - tienes la información. Para una tarjeta multipuerto, pon una - línea <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?sio">sio</ulink> - para cada puerto serie de la tarjeta en el archivo de - configuración del kernel. Especifica la irq y vector solo en una - de las líneas. - Todos los puertos de la tarjeta compartirán la misma irq. Por - consistencia, usa el último puerto serie para especificar la irq. - De la misma manera, especifica la opción <symbol>COM_MULTIPORT</symbol>.</para> - - <para>El siguiente ejemplo es para una tarjeta AST 4-port en la irq 7:</para> - - <para> - <literallayout> 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 - </literallayout> - </para> - - <para>Los flags indican que el puerto master tiene un número menor - de 7 (<literal>0x700</literal>), los diagnósticos están activados durante - el testeo (<literal>0x080</literal>), y los puertos comparten una irq - (<literal>0x001</literal>).</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Puede manejar FreeBSD tarjetas multipuerto compartiendo irq?</para> - </question> - - <answer> - <para>Todavía no. Tendrás que usar una irq diferente para cada - tarjeta.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Puedo cambiar los parámetros serie por defecto para - un puerto?</para> - </question> - - <answer> - <para>El dispositivo <emphasis remap=tt>ttydX</emphasis> (o - <emphasis remap=tt>cuaaX</emphasis>) es el que querrás abrir - para tus aplicaciones. Cuando un proceso abre el dispositivo, - tendrá una serie de configuraciones I/O por defecto. Puedes ver - estas configuraciones con el comando:</para> - - <para> - <literallayout> stty -a -f /dev/ttyd1 - </literallayout> - </para> - - <para>Cuando le cambias la configuración a este dispositivo, este cambio - se mantiene hasta que el dispositivo se cierra. Cuando se reabre, - vuelve a la configuración por defecto. Para hacer cambios sobre la - configuración por defecto, puedes abrir y ajustar las opciones del - "estado inicial" del dispositivo. Por ejemplo, para poner el - dispositivo tty5 en modo <acronym>CLOCAL</acronym>, 8 bits, y contro del flujo - <filename>XON/XOFF</filename>, haz</para> - - <para> - <literallayout> stty -f /dev/ttyid5 clocal cs8 ixon ixoff - </literallayout> - </para> - - <para>Un buen lugar para hacer esto es en <filename>/etc/rc.serial</filename>. Ahora, - una aplicación tendrá esta configuración por - defecto cuando abra el puerto <emphasis remap=tt>ttyd5</emphasis>.</para> - - <para>También puedes prevenir o limitar ciertos cambios que pretenda - hacer una aplicación. Para ello, ajusta el "lock state" del - dispostivo. Por ejemplo, para bloquear la velocidad del puerto - <emphasis remap=tt>ttyd5</emphasis> a 57600 bps, haz:</para> - - <para> - <literallayout> stty -f /dev/ttyld5 57600 - </literallayout> - </para> - - <para>Ahora, una aplicación que abre <emphasis remap=tt>ttyd5</emphasis> - e intenta cambiar la velocidad del puerto no podrá hacerlo.</para> - - <para>Naturalmente, deberías hacer que el estado inicial y el estado - de bloqueo sean solo de escritura para el usuario <emphasis remap=tt>root</emphasis>. - El script - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?MAKEDEV">MAKEDEV</ulink> - <acronym>NO</acronym> hace esto cuando crea el dispositivo.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo puedo activar logins de entrada en mi módem?</para> - </question> - - <answer> - <para>Quieres hacerte proveedor de Internet, eh?. Primero, - necesitarás uno o más módems que puedan responder - automáticamente. Tu módem necesitará activar el - carrier-detect sólo cuando detecte una portadora y no tenerla - activada continuamente. Necesitará cortar la comunicación - y resetearse él mismo cuando la línea <acronym>DTR</acronym> pase de on - a off. - Probablemente usaría <filename>RTS/CTS</filename> para el control de flujo. - Finalmente, debe usar una velocidad constante entre el computador y - él mismo, pero debería negociar la velocidad entre - él mismo y el módem remoto.</para> - - <para>Para muchos módems compatibles Hayes, este comando - creará estas configuraciones y las grabará en la memoria no - volátil:</para> - - <para> - <literallayout> AT &C1 &D3 &K3 &Q6 S0=1 &W - </literallayout> - </para> - - <para>Mira la sección <link linkend="direct-at">enviar comandos AT</link> - para saber como enviar estas configuraciones al módem sin - necesidad de un programa terminal de DOS.</para> - - <para>A continuación, añade una línea en el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink> - para el módem. Este archivo lista todos los puertos en los que el - sistema operativo esperará los logins. La línea - sería como esta:</para> - - <para> - <literallayout> ttyd1 "/usr/libexec/getty std.57600" dialup on insecure - </literallayout> - </para> - - <para>Esta línea indica que el segundo puerto serie - <filename>/dev/ttyd1</filename> tiene un módem conectado, la velocidad es de - 57600 bps y sin paridad (<emphasis remap=tt>std.57600</emphasis>. El tipo de - terminal para este puerto es "dialup". - El puerto está "on" y es inseguro (lo que significa que los logins - como root no son permitidos).</para> - - <para>Muchos usuarios, ponen un sus archivos .profile o .login un - prompt para el tipo de terminal. El ejemplo muestra el puerto como - inseguro. Para ser root en ese puerto, hacer el login como un usuario - normal, y ejecutar el comando su. Si en lugar de inseguro, el terminal - es seguro (secure), puedes hacer login como root directamente.</para> - - <para>Despues de modificar el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink>, - necesitas lanzar una señal <acronym>HUP</acronym> al proceso - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?init">init</ulink>:</para> - - <para> - <literallayout> kill -HUP 1 - </literallayout> - </para> - - <para>Esto fuerza al proceso init a releer el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink>. - El proceso init arrancará los procesos getty en todos los puertos - configurados como "on". Puedes ver si los logins están disponibles - en los puertos tecleando:</para> - - <para> - <literallayout> ps -ax | grep '[t]tyd1' - </literallayout> - </para> - - <para>deberías ver algo como:</para> - - <para> - <literallayout> 747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1 - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo puedo conectar un dumb terminal a un FreeBSD?</para> - </question> - - <answer> - <para>Si estás usando otro computador como terminal en tu sistema - FreeBSD, usa un cable null módem entre los dos puertos serie. Si - ya estás usando un terminal, mira en las instrucciones del mismo.</para> - - <para>A continuación, modifica el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ttys">/etc/ttys</ulink> - Por ejemplo, si estás instalando un terminal WYSE-50 en el quinto - puerto serie, usa una línea como esta:</para> - - <para> - <literallayout> ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure - </literallayout> - </para> - - <para>Este ejemplo muestra que el puerto <filename>/dev/ttyd4</filename> tiene un - terminal Wyse50 conectado a 38400 bps sin paridad y los logins de - root son permitidos.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Porqué no puedo ejecutar <emphasis remap=tt>tip</emphasis> o - <emphasis remap=tt>cu</emphasis>?</para> - </question> - - <answer> - <para>En tu sistema, los programas - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> y - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?cu">cu</ulink> son probablemente - ejecutables solo por <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?uucp">uucp</ulink> - y el grupo <emphasis remap=tt>dialer</emphasis>. Puedes usar el grupo - <emphasis remap=tt>dialer</emphasis> - para controlar quien tiene acceso al módem o sistemas remotos. - Sólo tienes que añadirte tu mismo al grupo dialer.</para> - - <para>Alternativamente, puedes dejar que todos los usuarios de tu sistema - ejecuten <emphasis remap=tt>tip</emphasis> y - <emphasis remap=tt>cu</emphasis> tecleando:</para> - - <para> - <literallayout> # chmod 4511 /usr/bin/cu - # chmod 4511 /usr/bin/tip - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Mi módem hayes no está soportado. ¿Que puedo hacer?</para> - </question> - - <answer> - <para>Actualmente, el man de - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> está - anticuado. Hay un dialer Hayes genérico. Solo usa - ``<literal>at=hayes</literal>'' en tu archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink>.</para> - - <para>El driver Hayes no es tan desarrollado como para reconocer algunas - de las características avanzadas de los módems modernos, - mensajes como <acronym>BUSY</acronym>, <emphasis remap=tt>NO DIALTONE</emphasis> o - <emphasis remap=tt>CONNECT 115200</emphasis> lo pueden confundir. - Deberías anular estos mensajes cuando uses - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> (utilizando - la cadena <emphasis remap=tt>ATX0&W</emphasis>).</para> - - <para>También, el timeout de llamada para <emphasis remap=tt>tip</emphasis> - está en 60 segundos. Tu módem debería usar algo menor, o tip puede - pensar que hay un problema de comunicación. Intenta con - <literal>ATS7=45&W</literal>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="direct-at"> - <para>¿Cómo puedo introducir estos comandos AT?</para> - </question> - - <answer> - <para>Haz lo que se llama una entrada <emphasis remap=tt>directa</emphasis> en el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink>. - Por ejemplo, si tu módem está - conectado al primer puerto serie, <filename>/dev/cuaa0</filename>, escribe la - siguiente línea:</para> - - <para> - <literallayout> cuaa0:dv=/dev/cuaa0:br#19200:pa=none - </literallayout> - </para> - - <para>Usa la velocidad más alta que soporte tu módem en la - sección br. - A continuación teclea - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip cuaa0</ulink> - y estarás conectado al módem.</para> - - <para>Si no existe el dispositivo <filename>/dev/cuaa0</filename> en tu sistema - , teclea lo siguiente:</para> - - <para> - <literallayout> # cd /dev - # ./MAKEDEV cuaa0 - </literallayout> - </para> - - <para>O usa el comando cu como root con los siguientes parámetros:</para> - - <para> - <literallayout> # cu -l``line'' -s``speed'' - </literallayout> - </para> - - <para>con line siendo el puerto serie (por ejemplo <filename>/dev/cuaa0</filename>>) - y speed siendo la velocidad (por ejemplo <emphasis remap=tt>57600</emphasis>. Cuando - termines de entrar los comandos AT, pulsa la tecla <emphasis remap=tt>.</emphasis> para - salir.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>El símbolo <emphasis remap=tt>@</emphasis> no funciona correctamente!</para> - </question> - - <answer> - <para>El símbolo <emphasis remap=tt>@</emphasis> en la opción de - números de teléfono indica a tip que busque en el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?phones(5)">phone(5)</ulink> un - número de teléfono determinado. Pero el símbolo - <email>@</email> es también un carácter especial en otros archivos y - opciones como <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink>. - Pon una contrabarra junto al carácter:</para> - - <para> - <literallayout> pn=\@ - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo puedo llamar desde la línea de comandos?</para> - </question> - - <answer> - <para>Pon lo que se llama una entrada <emphasis remap=tt>genérica</emphasis> - en el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink>. - Por ejemplo:</para> - - <para> - <literallayout> 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: - </literallayout> - </para> - - <para>Entonces puedes hacer cosas como <command>tip -115200 5551234</command>. Si - prefieres usar <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?cu">cu</ulink> - antes que <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink>, - usa una entrada genérica de cu:</para> - - <para> - <literallayout> cu115200|Use cu to dial any number at 115200bps:\ - :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du: - </literallayout> - </para> - - <para>y teclea ``<command>cu 5551234 -s 115200</command>''.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Tengo que teclear la velocidad cada vez que hago esto?</para> - </question> - - <answer> - <para>Pon una entrada para <emphasis remap=tt>tip1200</emphasis> o - <emphasis remap=tt>cu1200</emphasis>, pero puedes usar - la velocidad que mejor se amolde a tus necesidades. - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> piensa que - una buena velocidad por defecto es 1200 bps ya que busca una entrada - <emphasis remap=tt>tip1200</emphasis>. No tienes por que usar 1200 bps.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Accedo a diferentes hosts a través de un servidor de terminales.</para> - </question> - - <answer> - <para>En lugar de esperar a que estés conectado y teclear - <emphasis remap=tt>CONNECT <host></emphasis> cada vez, usa la - opción <emphasis remap=tt>cm</emphasis> de tip. - Por ejemplo, estas entradas en el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink>:</para> - - <para> - <literallayout> 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: - </literallayout> - </para> - - <para>Esto hará que puedas teclear <emphasis remap=tt>tip pain</emphasis> o - <emphasis remap=tt>tip muffin</emphasis> - para conectarte a las máquinas pain o muffin.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Puede tip intentar más de una línea para cada lugar?</para> - </question> - - <answer> - <para>Este es un problema habitual en universidades con diferentes - líneas de módem y unos cientos de usuarios intentado - usarlas...</para> - - <para>Haz una entrada para tu universidad en el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?remote">/etc/remote</ulink> - y usa <emphasis remap=tt><\@></emphasis> para la opción - <emphasis remap=tt>pn</emphasis>:</para> - - <para> - <literallayout> big-university:\ - :pn=\@:tc=dialout - dialout:\ - :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none: - </literallayout> - </para> - - <para>Entonces, lista los números de teléfono de la - universidad en el archivo - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?phones">/etc/phones</ulink>:</para> - - <para> - <literallayout> big-university 5551111 - big-university 5551112 - big-university 5551113 - big-university 5551114 - </literallayout> - </para> - - <para><ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> - intentará cada uno de estos números en el - orden en el que estén listados. Si quieres que se realicen - reintentos, ejecuta <emphasis remap=tt>tip</emphasis> en una bucle while.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Porqué tengo que teclea CTRL+P dos veces para enviar - CTRL+P una vez?</para> - </question> - - <answer> - <para>CTRL+P es el carácter por defecto de "forzar", usado para - indicarle al programa - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> - que el próximo carácter es un dato literal. Puedes - configurar el carácter "forzar" a cualquier otro carácter - con el escape <emphasis remap=tt>~s</emphasis>, el cual significa "poner una - variable".</para> - - <para>Teclea <literal>~sforce=<single-char></literal> seguido de una nueva - línea. <emphasis remap=tt><single-char></emphasis> es cualquier - carácter simple. Si dejas libre <emphasis remap=tt><single-char></emphasis> - entonces el carácter de forzar es el caracter nul, al cual puedes acceder - tecleando CTRL+2 o CTRL+SPACE. Un valor más adecuado para - <emphasis remap=tt><single-char></emphasis> es SHIFT+CTRL+6, el cual solo es usado en - algunos servidores de terminales.</para> - - <para>Puedes tener el carácter de forzar donde quieras, especificando - lo siguiente en tu archivo <filename>$HOME/.tiprc</filename></para> - - <para> - <literallayout> force=<single-char> - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>De repente, todo lo que tecleo es en mayúsculas</para> - </question> - - <answer> - <para>Has debido pulsar CTRL+A, - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?tip">tip</ulink> tiene este - carácter especial para gente que tenga la tecla caps-lock - estropeada. Usa <emphasis remap=tt>~s</emphasis> como en la sección anterior - y pon la variable "raisechar" a un valor razonable. De hecho, puedes ponerla al - mismo valor que que el carácter de forzar, si no esperas usar - estas características.</para> - - <para>Aqui hay un ejemplo del archivo .tiprc perfecto para usuarios de - Emacs que necesiten teclear CTRL+2 y CTRL+A muchas veces:</para> - - <para> - <literallayout> force=^^ - raisechar=^^ - </literallayout> - </para> - - <para>El simbolo ^^ es SHIFT+CTRL+6.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo puedo hacer transferecia de archivos con - <emphasis remap=tt>tip</emphasis>?</para> - </question> - - <answer> - <para>Si estás conectado con otro sistema UNIX, puedes enviar y - recibir archivos con <emphasis remap=tt>~p</emphasis> (put) y - <emphasis remap=tt>~t</emphasis> (take). Estos comandos - ejecutan - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?cat">cat</ulink> y - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?echo">echo</ulink> - en el sistema remoto para aceptar y enviar archivos. La sintaxis es:</para> - - <para> - <literallayout> ~p <local-file> [<remote-file>] - ~t <remote-file> [<local-file>] - </literallayout> - </para> - - <para>No hay chequeo de errores, por lo que es mejor usar otro protocolo - como zmodem.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo puedo usar zmodem con <emphasis remap=tt>tip</emphasis>?</para> - </question> - - <answer> - <para>Primero, instala uno de los programas zmodem de la colección de - ports (por ejemplo - <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^lrzsz">lrzsz</ulink> - y <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^rzsz">rzsz</ulink>).</para> - - <para>Para recibir archivos, inicia el programa de envío en la parte - remota. A continuación, pulsa enter y teclea - <emphasis remap=tt>~C rz</emphasis>'' (or ``<emphasis remap=tt>~C lrz</emphasis>'' - si instalaste lrzsz) para empezar a recibir localmente.</para> - - <para>Para enviar archivos, inicia el programa de recepción en la - parte remota. A continuación pulsa enter y teclea - <emphasis remap=tt>~C sz <files></emphasis>'' - (o <emphasis remap=tt>~C lsz <files></emphasis>) para enviarlos - al sistema remoto.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>FreeBSD parece que no puede encontrar mis puertos series aún - cuando la configuración es correcta.</para> - </question> - - <answer> - <para>Las placas bases y tarjetas con UARTs de Acer no son detectadas - correctamente por FreeBSD durante la fase de detección serie. - Obten un parche de - <ulink URL="http://www.lemis.com/serial-port-patch.html">www.lemis.com</ulink> - para solucionar el problema.</para> - </answer> - </qandaentry> - </qandaset> -</chapter> - -<chapter id="misc"> -<title>Preguntas varias</title> - - <qandaset> - <qandaentry> - <question> - <para>FreeBSD usa más espacio de swap que Linux. Porqué?</para> - </question> - - <answer> - <para>No lo hace. Deberías pensar "Porque mi swap parece lleno?". Si - esto es lo que realmente querías decir, es por que poniendo los - datos en swap en luar de descartarlos, hace que sea más - rápido recuperarlos que si el paginador tuviese que ir a - través del sistema de archivos y usar bloques sin modificar desde - un ejecutable.</para> - - <para>La cantidad actual de páginas que puedes tener en el core en una - sola vez no es reducida; las páginas sin usar son desplazadas como - sea necesario.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Porqué usar (que son) a.out y ELF como formatos - ejecutables?</para> - </question> - - <answer> - <para>Para entender por que FreeBSD usa el formato <filename>a.out</filename>, - debes saber primero un poco sobre los tres formatos dominantes actualmente - en UNIX:</para> - - <para> - <itemizedlist> - <listitem> - <para><ulink URL="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)">a.out</ulink> - </para> - - <para>El antiguo y clásico formato de objeto. Usa una corta y - compacta cabecera con un número mágico en el inicio que - es usado para caracterizar el formato (mira en - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)">a.out(5)</ulink> - para más detalles). Contiene tres segmentos - cargados: .text, .data y .bss más una tabla de símbolos - y una tabla de cadenas de carácteres.</para> - </listitem> - - <listitem> - <para><acronym>COFF</acronym></para> - - <para>El formato de objeto SVR3. La cabecera comprime una sección de - tablas, de manera que puedas tener más de una sola - sección .test, .data y .bss</para> - </listitem> - - <listitem> - <para><acronym>ELF</acronym></para> - - <para>El sucesor de <acronym>COFF</acronym>, ofreciendo múltiples - secciones y valores posibles de 32 o 64 bits. Un problema importante: - <acronym>ELF</acronym> fue diseñado con la presunción de - que solo existiría un único ABI por arquitectura de sistema. - Esta presunción actualmente es incorrecta, incluso en el - mundo comercial (el cual tiene al menos tres ABIs: SVR4, Solaris y SCO).</para> - - <para></para> - - <para>FreeBSD intenta solucionar este problema de manera que provee - de una utilidad para <emphasis>marcar</emphasis> un ejecutable - <acronym>ELF</acronym> con información sobre el ABI con el que - es compatible. Para más información, mira el man de - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?brandelf">brandelf</ulink>. - </para> - </listitem> - </itemizedlist> - </para> - - <para>FreeBSD viene del sistema clásico y tradicionalmente ha - utilizado el formato - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?a.out(5)">a.out</ulink>, - una tecnología probada y testeada a través - de muchas generaciones de releases de BSD. También es posible - construir y ejecutar binarios nativos <acronym>ELF</acronym> (y kernels) - en sistemas FreeBSD. FreeBSD inicialmente se resistió al salto de cambiar a - <acronym>ELF</acronym> como su formato por defecto. Porqué?, bien, cuando el - mundo Linux hizo su transición a <acronym>ELF</acronym> no era nada - fácil abandonar el formato ejecutable <filename>a.out</filename> - debido a su inflexible mecanismo de tablas basadas en librerías - compartidas. Esto hizo muy difícil para los fabricantes y desarrolladores la - creación de librerías compartidas. A partir del momento en - el que se ofrecieron una serie de herramientas que ofrecían la - solución al problema de las librerías compartidas, el - coste de la migración fue aceptado como necesario y la - transición se hizo.</para> - - <para>En el caso de FreeBSD, el mecanismo de librerías compartidas - esta más basado en el estilo de SunOS, mucho más sencillo - de usar. De todas maneras, empezando con la version 3.0, FreeBSD - soportará oficialmente binarios <acronym>ELF</acronym> como el formato por - defecto. Aunque pensamos que el formato ejecutable <filename>a.out</filename> - nos ha servidor muy bién, la gente de GNU, que hacen las herramientas de - compilación que usamos, ha dejado de dar soporte para el formato - <filename>a.out</filename>. Esto nos ha forzado a mantener dos versiones - divergentes del compilador y lincador.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Porqué chmod no puede cambiar los permisos de - los links?</para> - </question> - - <answer> - <para>Tienes que usar <option>-H</option> o <option>-L</option> junto - con la opción <option>-R</option> - para que funcione. Para más información, mira la - página de - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?chmod">chmod</ulink> y de - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?symlink">symlink</ulink>.</para> - - <para><acronym>CUIDADO</acronym> la opción <option>-R</option> hace un - <emphasis remap=tt>chmod</emphasis> <acronym>RECURSIVO</acronym>. Ten cuidado - aal especificar directorios o symlinks con - <emphasis remap=tt>chmod</emphasis>. Si quieres cambiar los permisos de - un directorio referenciado por un symlink, usa - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?chmod">chmod</ulink> - sin ninguna opción y sigue el symlink con una barra <filename>/</filename>. - Por ejemplo, si <emphasis remap=tt>foo</emphasis> es un symlink al directorio - <emphasis remap=tt>bar</emphasis>, y quieres - cambiar los permisos de <emphasis remap=tt>foo</emphasis> /actualmente - <emphasis remap=tt>bar</emphasis>), deberías - hacer algo como esto:</para> - - <para> - <literallayout> - chmod 555 foo/ - </literallayout> - </para> - - <para>Con la barra, - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?chmod">chmod</ulink> seguira - el symlink, <emphasis remap=tt>foo</emphasis>, para cambiar los permisos del - directorio <emphasis remap=tt>bar</emphasis>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Porqué están los nombres de usuario restringidos - a 8 caracteres?</para> - </question> - - <answer> - <para>Pensarás que es fácil y suficiente con cambiar - <symbol>UT_NAMESIZE</symbol> y reconstruir el kernel, y todo volverá a - funcionar. Desafortunadamente hay aplicaciones y programas (incluyendo - herramientas de sistema) que tienen en el propio código (no - siempre 8 o 9, pero si 15 o 20) en estructuras, buffers... y - rompería los clientes de NIS de Sun y sin duda existirían - otros problemas interactuando con otros sistemas UNIX.</para> - - <para>En FreeBSD 3.0 y superiores, se ha incrementado el número - máxmimo de carácteres a 16 y todas esas utilidades con - longitud de carácteres prefijada han sido encontradas y - arregladas. El hecho de que este cambio afectase a muchas áreas - del sistema es el motivo por el que el cambio no se ha hecho hasta - la versión 3.0.</para> - - <para>Si eres absolutamente cuidadoso y quieres arreglas tu mismo este - problema en versiones anteriores, edita el archivo - /usr/include/utmp.h y cambia el parámetro UT_NAMESIZE a la - longitud que desees. También debes editar el archivo - /usr/include/sys/param.h y poner el valor de MAXLOGNAME al mismo que - UT_NAMESIZE. Finalmente, recompila los fuentes, no te olvides que - el contenido de /usr/include es actualizado cada vez!. En su lugar, - cambia los archivos apropiados en /usr/src/..</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Puedo ejecutar binarios DOS bajo FreeBSD?</para> - </question> - - <answer> - <para>Sí, empezando en la versión 3.0 puedes usar la - emulación DOS <emphasis remap=tt>rundos</emphasis> de BSDI, la cual - ha sido integrada y mejorada. Envía un mail a la - <ulink URL="mailto:emulation@FreeBSD.org">Lista de discusión de emulación en FreeBSD</ulink> - si estás interesado en participar en la evolución de esta - característica.</para> - - <para>Para sistemas pre-3.0 hay una pequeña utilidad llamada - <ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^pcemu">pcemu</ulink> - en la colección de puertos que emula un 8088 y suficientes - servicios de BIOS para ejecutar aplicaciones de modo texto. Requiere el - sistema de X Window.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué es <emphasis remap=tt>sup</emphasis>, y como - lo uso?</para> - </question> - - <answer> - <para><ulink URL="http://www.FreeBSD.org/cgi/ports.cgi?^sup">SUP</ulink> - significa Software Update Protocol, y fue desarrollado por CMU para - mantener sus árboles de desarrollo sincronizados. Nosotros lo - usabamos para manterner el servidor central sincronizado con otros - servidores remotos.</para> - - <para>SUP no es amigo del ancho de banda, y ha sido retirado. El - método actual recomendado para mantener tus fuentes actualizados - es <ulink URL="../../handbook/synching.html#CVSUP">CVSup</ulink></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Existen herramientas de ahorro de energía - en FreeBSD?</para> - </question> - - <answer> - <para>FreeBSD usa la instrucción <acronym>HLT</acronym> (halt) - cuando el sistema está (idle) para reducir el consumo de energía. - Si tienes la opción APM (Automatic Power Management) configurado, FreeBSD - puede poner la cpu en modo de baja energía.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué significa "MFC"?</para> - </question> - - <answer> - <para>MFC es un acrónimo para "Merges From -CURRENT". Es usado en los - logs de CVS para indicar que un cambio se ha migrado de la rama CURRENT - a la rama STABLE.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Qué significa "BSD"?</para> - </question> - - <answer> - <para>Pertenece a un lenguaje secreto que solo sus miembros conoces. No tiene - traducción literal, pero basta con decir que su traducción - está entre, "Equipo de Fórmula-1", "Los Pinguinos son un - buén aperitivo", y "Tenermos mejor sentido del humor que Linux" - :-)</para> - - <para>Seriamente, BSD es un acrónimo de "Berkeley Software - Distribution", el cual es el nombre que el CSRG de Berkeley (Computer - Systems Research Group) escogió para sus distribuciones de Unix.</para> - </answer> - </qandaentry> - </qandaset> -</chapter> - -<chapter id="hackers"> -<title>Sólo para hackers serios de FreeBSD</title> - - <qandaset> - <qandaentry> - <question> - <para>¿Qué son SNAPs y RELEASEs?</para> - </question> - - <answer> - <para>Hay actualmente tres ramas activas/semi-activas en el desarrollo de - FreeBSD y en su - <ulink URL="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVS Repository</ulink>:</para> - - <para> - <itemizedlist> - <listitem> - <para><symbol>RELENG_2_2</symbol> AKA <emphasis remap=bf>2.2-stable</emphasis> - AKA <emphasis remap=bf>"2.2 branch"</emphasis></para> - </listitem> - - <listitem> - <para><symbol>RELENG_3</symbol> AKA <emphasis remap=bf>3.x-stable</emphasis> - AKA <emphasis remap=bf>"3.0 branch"</emphasis></para> - </listitem> - - <listitem> - <para><acronym>HEAD</acronym> AKA <option>-current</option> AKA - <emphasis remap=bf>4.0-current</emphasis></para> - </listitem> - </itemizedlist> - </para> - - <para><acronym>HEAD</acronym> no es una rama actual, como las otras dos, es - simplemente una constante simbólica para <emphasis>la versión - de desarrollo actual</emphasis> a la cual nos referimos simplemente como - <option>-current</option>.</para> - - <para>Actualmente, <option>-current</option> es el desarrollo de la - versión 4.0 y la rama <emphasis remap=bf>3.0-stable</emphasis> es - <symbol>RELENG_3</symbol>, separada de -current en Enero - de 1999.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="custrel"> - <para>¿Cómo puedo hacerme mi propia release personalizada?</para> - </question> - - <answer> - <para>Para hacer una release necesitas hacer tres cosas: primero, - necesitas usar un kernel con el driver - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?vn">vn</ulink> configurado. - Añade esto a tu archivo de configuración del kernel y - crea un nuevo kernel:</para> - - <para> - <literallayout> - pseudo-device vn #Vnode driver (turns a file into a device) - </literallayout> - </para> - - <para>Segundo, debes tener las herramientas del CVS a mano. Para hacer - esto, puedes usar - <ulink URL="../../handbook/synching.html#CVSUP">CVSUP</ulink> - pero en tu supfile pon el nombre de la release a cvs y borra cualquier - tag campo de fecha:</para> - - <para> - <literallayout> *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 - </literallayout> - </para> - - <para>A continuación ejecuta <command>cvsup -g supfile</command> - para tener todos los bits correctos en tu computador.</para> - - <para>Finalmente, necesitas una buena cantidad de espacio vacío para - crear en el la release. Digamos que está en - <filename>/algun/disco/grande</filename> y en el ejemplo anterior has dejado los - archivos del CVS en <filename>/home/ncvs</filename>:</para> - - <para> - <literallayout> - setenv CVSROOT /home/ncvs # or export CVSROOT=/home/ncvs - cd /usr/src/release - make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/algun/disco/grande/release - </literallayout> - </para> - - <para>Una release completa será creada en - <filename>/algun/disco/grande/</filename> y tendrás una - instalación completa de tipo FTP en - <filename>/algun/disco/grande/R/ftp</filename> cuando acabes. - Si quieres crear tu SNAP usando otra rama de desarrollo diferente de - -current, puedes añadir <literal>RELEASETAG=SOMETAG</literal> a la - línea de comando anterior de creación de la release. Por ejemplo, - <literal>RELEASETAG=RELENG_2_2</literal> crearía un snapshot 2.2 GAMMA. - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo creo discos de instalación personalizados?</para> - </question> - - <answer> - <para>El proceso completo de creacación de discos de - instalación y archivos fuentes y binarios esta automatizado por - varios targets en <filename>/usr/src/release/Makefile</filename>. La - información alli contenida debería ser suficiente para que - puedas empezar. Falta decir que este proceso necesita la ejecución - del comando "make world" y quizás te use mucho tiempo y espacio - en disco.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>``make world'' destruye mis binarios instalados.</para> - </question> - - <answer> - <para>Sí, esta es la idea general; como su nombre sugiere, - "make world" rehace todos los binarios del sistema, de manera que puedas - estar seguro de tener un entorno limpio y consistente al final (que es - por lo que tarda tanto).</para> - - <para>Si la variable de entorno <acronym>DESTDIR</acronym> está - definida mientras se ejecuta <emphasis remap=tt>make world</emphasis> o - <emphasis remap=tt>make install</emphasis>, los binarios creados - nuevamente seran depositados en un árbol de directorios - idéntico al instalado, y a partir de - <emphasis remap=tt>${DESTDIR}</emphasis>. Algunas combinaciones aleatorias - de modificaciones de librerías compartidas y programas pueden - causar que falle el <emphasis remap=tt>make world</emphasis>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Cuando mi sistema arranca, dice (bus speed defaulted).</para> - </question> - - <answer> - <para>Las controladoras SCSI Adaptec 1542 permiten al usuario configurar - su velocidad de acceso al bus en software. Versiones anteriores del - driver de la 1542 intentaban determinar la velocidad más alta - factible y configurar la Adaptec a esta. Nos hemos encontrado con que esto - hace fallar el sistema de algunos usuarios, por lo que tienes que - definir la opción de configuración del kernel - <symbol>TUNE_1542</symbol> para que esto ocurra. En algunos sistemas puede - que puede hacer que los discos vayan más rápidos, pero en - otros puede que los datos queden corrompidos.</para> - </answer> - </qandaentry> - - <qandaentry> - <question id="ctm"> - <para>¿Puedo seguir la rama current con acceso limitado a Internet?</para> - </question> - - <answer> - <para>Sí, puedes hacerlo <emphasis remap=tt>sin</emphasis> bajarte - todo el código fuente usando la - utilidad <ulink URL="../../handbook/synching.html#CTM">CTM.</ulink></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo partir la distribución en archivos de 240k?</para> - </question> - - <answer> - <para>Los sistemas BSD más modernos tienen una opción - <option>-b</option> para partir que les permite partir los archivos en - tamaños arbitrarios.</para> - - <para>Aqui hay un ejemplo de <filename>/usr/src/Makefile</filename>.</para> - - <para> - <literallayout> bin-tarball: - (cd ${DISTDIR}; \ - tar cf - . \ - gzip --no-name -9 -c | \ - split -b 240640 - \ - ${RELEASEDIR}/tarballs/bindist/bin_tgz.) - </literallayout> - </para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿He escrito una extensión del kernel, a quien la - envío?</para> - </question> - - <answer> - <para>Por favor, mira en - <ulink URL="../../handbook/contrib.html">como enviar código.</ulink></para> - - <para>Y gracias por pensar en nosotros!</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Cómo se detectan e inicializan las tarjetas ISA y PnP?</para> - </question> - - <answer> - <para>Brevemente, hay unos cuantos puertos de entrada/salida a los que - todas las tarjetas PnP responden cuando el computador pregunta si hay - alguien ahí. Así, cuando comienza la rutina de prueba - de PnP, pregunta si hay alguna tarjeta PnP presente y todas las - tarjetas responden con su número de modelo a una lectura I/O - del mismo puerto. Así el código de prueba puede conocer - el ID de cada tarjeta (asignado por Microsoft/Intel).</para> - - <para>Los ID's son dos campos de 32 bits (2ˆ64) + 8 bits de - checksum. Los primeros 32 bits son el identificador del fabricante. - No se ha dicho publicamente, pero parece estar asumido que diferentes - tipos de tarjeta del mismo fabricante pueden tener diferentes id's de - fabricante. La idea de necesitar 32 bits sólo para los - fabricantes parece un poco excesiva.</para> - - <para>La parte baja de 32 bits son un número de serie, - dirección ethernet, algo que haga a la tarjeta única. El - fabricante no debe producir nunca una segunda tarjeta que tenga los - mismos 32 bits de la parte baja, aunque los 32 bits de la parte alta sean - diferentes. Así puedes tener múltiples tarjetas del mismo - tipo en la misma máquina y los 64 bits serán únicos - para cada tarjeta.</para> - - <para>Los grupos de 32 bits nunca pueden ser todos cero. Esto permite - mostrar todos los bits no-cero durante la búsqueda binaria - inicial.</para> - - <para>Una vez el sistema ha identificado todos los ID's de las tarjetas - presentes, reactivaráa cada tarjeta, una tras otra (a - través de los mismos puertos I/O), y encontrará los - recursos que cada tarjeta necesita, que opciones de interrupción - están disponibles, etc. Se realiza un escaneo sobre todas y cada - una de las tarjetas presentes para conocer esta información.</para> - - <para>Esta información se combina con la información de los - archivos ECU del disco y con las BIOS MLB. El soporte PnP de ECU y las - BIOS para hardware en el MLB usualmente es sintético, y los - periféricos no hacen PnP genuino. De todas maneras, examinando - la información del BIOS más la información - ECU, la rutina de prueba puede causar que los dispositivos que no son - PnP puedan evitar a esos dispositivos que el código de prueba - no puede volver a posicionar.</para> - - <para>Así, los dispositivos PnP son visitados una vez más - y se les asigna su I/O, DMA, IRQ, direcciones del mapa de memoria. Los - dispositivos aparecerán en esas direcciones y permanecerán - en ellas hasta que se vuelva a reinicializar la máquina.</para> - - <para>Todo el proceso se ha simplificado mucho, pero espero que hayas podido - hacerte una idea del proceso.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>¿Soporta FreeBSD arquitecturas diferentes a x86?</para> - </question> - - <answer> - <para>Diferentes grupos de personas han expresado su interés en - trabajar en un port multi-arquitectura de FreeBSD y FreeBSD/AXP - (ALPHA) es un ejemplo de ese esfuerzo realizado, ahora disponible en - forma de 3.0 SNAPshot release en - <ulink URL="ftp://ftp.FreeBSD.org/pub/FreeBSD/alpha/">ftp://ftp.FreeBSD.org/pub/FreeBSD/alpha</ulink>. - El port de ALPHA funciona actualmente en diferentes tipos de máquinas ALPHA, - entre ellas, AlphaStation, AXPpci, PC164, Miata y Multia. Este port - todavía no se considera una release completa y no lo será - hasta que exista una colección completa de herramientas de - instalación y una distribución completa en cdrom para - instalació, incluyendo un número razonable de ports y - packages funcionales. FreeBSD/AXP debe considerarse software de - calidad BETA en estos momentos. Para más información del - proyecto, subscríbete a la - <email>FreeBSD-alpha@FreeBSD.org</email> - <link linkend="mailing">lista de correo</link>.</para> - - <para>También se ha expresado interés en un port de FreeBSD para - arquitectura SPARC. Subscríbete a - <email>FreeBSD-sparc@FreeBSD.org</email> - <link linkend="mailing">la lista</link> si estás interesado en - participar en el proyecto. Para discusiones generales en nuevas - arquitecturas, participa en - <link linkend="mailing">la lista</link> - <email>FreeBSD-platforms@FreeBSD.org</email>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Necesito un numero de dispositivo para un driver propio</para> - </question> - - <answer> - <para>Esto depende de si quieres hacer que el driver esté - públicamente disponible. Si la respuesta es afirmativa, por favor, - envianos una copia del código fuente del driver y las - modificaciones apropiadas del archivo <emphasis remap=tt>files.i386</emphasis>, - un ejemplo de configuración y el código apropiado de - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?MAKEDEV">MAKEDEV</ulink> para - crear cualquier archivo especial que use tu dispositivo. Puedes enviar - todo lo necesario a <email>FreeBSD-hackers@FreeBSD.org</email>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Alternativas a la política de directorios</para> - </question> - - <answer> - <para>En respuesta a esta pregunta de políticas alternativas - para los directorios, el esquema que está actualmente en uso - no ha cambiado desde que lo escribí en 1983. Escribí esa - política para el sistema de archivos rápido original, y - nunca se ha revisado. Trabaja bién manteniendo los grupos de - cilindros. Como muchos de vosotros habreis notado, el rendimiento es - muy pobre con "find". Muchos sistemas de archivos son creados desde - archivos que fueron creados por una primera búsqueda en - profundidad (también conocido como ftw). Estos directorios - terminan esparcidos a través de los grupos de cilindros. Si - conociesemos el número total de directorios a crear, la - solución sería crear (total / fs_ncg) por grupo de - cilindros antes de moverlos. Obviamente, tendriamos que crear - algún tipo de heurística para adivinar este número. - Usando un número pequeño fijo (como puede ser - 10) haría de orden de magnitud. Para diferencial restores de - operaciones normales (cuando el algoritmo actual es probablemente - más sensible), podrís usar el clustering hasta 10 si - fueran todos hechos dentro de una ventana de diez segundos. De cualquier - manera, mi conclusión es que este es un área para la - experimentación.</para> - - <para>Kirk McKusick, Septiembre 1998</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Obtener todo lo posible de un "kernel panic"</para> - </question> - - <answer> - <para><emphasis>[Esta sección fue extraida de un mensaje escrito - por <ulink URL="mailto:wpaul@FreeBSD.org">Bill Paul</ulink> en la - <link linkend="mailing">lista</link> FreeBSD-current por - <ulink URL="mailto:des@FreeBSD.org">Dag-Erling Coïdan Smørgrav</ulink>, - quién a fijado algunos errores y añadido algunos comentarios - entre corchetes]</emphasis></para> - - <para> - <literallayout>From: Bill Paul <wpaul@skynet.ctr.columbia.edu> - Subject: Re: the fs fun never stops - To: ben@rosengart.com - Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT) - Cc: current@FreeBSD.org - </literallayout> - </para> - - <para><emphasis>[<ben@rosengart.com> envió el siguiente - panic]</emphasis> - <literallayout>> Fatal trap 12: page fault while in kernel mode - > fault virtual address = 0x40 - > fault code = supervisor read, page not present - > instruction pointer = 0x8:0xf014a7e5 - ^^^^^^^^^^ - > stack pointer = 0x10:0xf4ed6f24 - > frame pointer = 0x10:0xf4ed6f28 - > code segment = base 0x0, limit 0xfffff, type 0x1b - > = DPL 0, pres 1, def32 1, gran 1 - > processor eflags = interrupt enabled, resume, IOPL = 0 - > current process = 80 (mount) - > interrupt mask = - > trap number = 12 - > panic: page fault - </literallayout> - </para> - - <para>[Cuando] ves un mensaje como este, no es suficiente con solo - reproducirlo y enviarlo. El valor del puntero de instrucciones que - he marcado arriba es importante; desafortunadamente, depende de la - configuración. En otras palabras, el valor varía - dependiendo de la imáden de kernel exacta que se use. Si - estás usando el kernel GENERIC de uno de los snapshots, entonces - es posible que alguien pueda seguir la función - problemática, pero si estás usando un kernel - personalizado, entonces solo <emphasis>tú</emphasis> puedes decirnos donde - ha ocurrido el fallo.</para> - - <para>Tendrías que hacer lo siguiente:</para> - - <para> - <itemizedlist> - <listitem> - <para>Anotar el valor del puntero de la instrucción. Ten en - cuenta la parte <literal>0x8:</literal> al inicio no es significante - en este caso: es la parte <literal>0xf0xxxxxx</literal> la que queremos.</para> - </listitem> - - <listitem> - <para>Cuando el sistema rearranca, haz lo siguiente: - <literallayout> - % nm /kernel.that.caused.the.panic | grep f0xxxxxx - </literallayout> - - donde <literal>f0xxxxxx</literal> es el valor del puntero de la - instrucción. El problema es que no obtendrás una - búsqueda exacta ya que los símbolos en la tabla de - símbolos del kernel son para los puntos de entrada de las - funciones y la dirección - del puntero de la instrucción estará en algún - lugar dentro de una función, no al principio. Si no obtienes - un resultado exacto, omite el último dígito del valor - del puntero de la instrucción e intentalo otra vez, por - ejemplo: - <literallayout> - % nm /kernel.that.caused.the.panic | grep f0xxxxx - </literallayout> - - Si esto no da ningún resultado, elimina otro dígito. - Repite la operación hasta que obtengas algún tipo de - salida. El resultado será una lista de posibles funciones - que causan el panic. Este no es un sistema muy exacto de - búsqueda de errores, pero es mejor que nada.</para> - </listitem> - </itemizedlist> - </para> - - <para>Veo gente que constantemente envía mensajes de panics como - este, pero raramente veo que alguien se tome el tiempo de buscar - la coincidencia entre el puntero de instrucción y una - función en la tabla de símbolos del kernel.</para> - - <para>La mejor manera de hacer el seguimiento de la causa de un panic es - capturar un "crash dump", usando <command>gdb(1)</command> para hacer una traza del - "crash dump". Por supuesto, esto depende de que <command>gdb(1)</command> funcione - correctamente en -current, lo que no puedo garantizar (recuerdo que - alguien ha comentado que el nuevo <command>gdb(1)</command> en formato ELF no - manejaba bién los "dumps" de un crash del kernel; alguién - debería mirar esto antes de que la 3.0 salga del estado beta).</para> - - <para>En cualquier caso, el método que normalmente uso es este:</para> - - <para> - <itemizedlist> - <listitem> - <para>Crear un archivo de configuración de kernel, opcionalmente - añadiendo 'options DDB' si piensas que necesitas el debugger - del kernel por algún motivo. (Uso esto principalmente para - configurar puntos de salida si sospecho que existe alguna - condición que crea un loop infinito).</para> - </listitem> - - <listitem> - <para>Usar <command>config -g KERNELCONFIG</command> para crear el directorio - de configuración del kernel.</para> - </listitem> - - <listitem> - <para><command>cd /sys/compile/KERNELCONFIG; make</command></para> - </listitem> - - <listitem> - <para>Esperar a que el kernel termine de compilar.</para> - </listitem> - - <listitem> - <para><emphasis remap=tt>cp kernel kernel.debug</emphasis></para> - </listitem> - - <listitem> - <para><command>strip -d kernel</command></para> - </listitem> - - <listitem> - <para><emphasis remap=tt>mv </emphasis>kernel /kernel.orig/</para> - </listitem> - - <listitem> - <para><command>cp kernel /</command></para> - </listitem> - - <listitem> - <para>reboot</para> - </listitem> - </itemizedlist> - </para> - - <para><emphasis>[Nota: ahora que los kernels de FreeBSD 3.x son ELF por defecto - debes usar <command>strip -g</command> en lugar de <command>strip -d</command>. - Si por algún motivo tu kernel es aún a.out, usa - <command>strip -aout -d</command>.]</emphasis></para> - - <para>Ten en cuenta que TU <acronym>NO</acronym> QUIERES ARRANCAR CON UN - KERNEL QUE TIENE TODOS LOS SIMBOLOS DE DEBUG EN EL. Un kernel compilado - con <option>-g</option> puede llegar facilmente a los 10MB de tamaño. - No tienes que arrancar esta imán masiva, solo lo necesitas para poder usar - después <command>gdb(1)</command> (<command>gdb(1)</command> quiere - la tabla de símbolos). Al contrario, quieres mantener una copia de la - imágen completa y crear una segunda imágen con los - símbolos de debug desactivados usando <command>strip -d</command>. Es esta - segunda imágen la que quieres arrancar.</para> - - <para>Para asegurarte de capturar un "crash dump", necesitas editar el - archivo <filename>/etc/rc.conf</filename> y apuntar - <emphasis remap=tt>dumpdev</emphasis> a tu - partición de swap. Esto hará que el script <command>rc(8)</command> - use el comando <command>dumpon(8)</command> para activar los "crash dumps". - También puedes ejecutar manualmente <command>dumpon(8)</command>. - Después de un panic, el "crash dump" puede ser recuperado usando - <command>savecore(8)</command>; si <emphasis remap=tt>dumpdev</emphasis> - está en <filename>/etc/rc.conf</filename>, el script - <command>rc(8)</command> ejecutará <command>savecore(8)</command> - automaticamente y pondrá el "crash dump" en - <filename>/var/crash</filename>.</para> - - <para>NOTA: los "crash dumps" de FreeBSD suelen tener el mismo - tamaño que la cantidad total de memoria física del - sistema. Esto significa que si tienes 64MB de RAM, obtendrás - un "crash dump" de 64MB. Debido a esto, tienes que asegurarte de tener - suficiente espacio libre en <filename>/var/crash</filename>. - Alternativamente puedes ejecutar <command>savecore(8)</command> - manualmente y hacer la recuparación en otro directorio donde - tengas más espacio libre. Es posible limitar el tamaño - del "crash dump" usando <literal>options MAXMEM=(foo)</literal> - para indicar la cantidad de memoria que el kernel puede ocupar. Por - ejemplo, si tienes 128MB de RAM, puedes limitar el uso de memoria del - kernel a 16MB para que el "crash dump" sea de 16MB y no de 128MB.</para> - - <para>Una vez hayas recuperado el "crash dump", puedes obtener una traza - del stack con <command>gdb(1)</command> de la manera siguiente:</para> - - <para> - <literallayout> - % gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0 - (gdb) where - </literallayout> - </para> - - <para>Es posible que aparezcan muchas líneas de información: - es una buena idea usar el comando <command>script(1)</command> para capturarlas - todas. Usando la imágen del kernel con todos los símbolos - de debug deberí mostrar la línea exacta de código - fuente del kernel donde ha ocurrido el panic. Normalmente, tienes que - leer la traza del stack de abajo hacia arriba para poder conocer la - secuencia exacta de eventos que han provocado el crash. También - puedes usar <command>gdb(1)</command> para mostrar los contenidos de las diferentes - variables o estructuras para examinar el estado del sistema en el - momento del crash.</para> - - <para>Ahora, si eres realmente curioso y tienes un segundo computador, - puedes configurar <command>gdb(1)</command> para hacer un debug remoto de manera - que puedes usar <command>gdb(1)</command> en un sistema para revisar el kernel - de otro sistema, de la misma manera que lo harías en la - máquina local.</para> - - <para><emphasis>[Bill añade: "Olvidé mencionar una cosa: si tienes - DDB activado, puedes forzar un panic (y un crash dump) tecleando - "panic" en el prompt del ddb. Es posible que el debugger se pare - durante la fase del panic. Si esto ocurre, teclea "continue" y el - crash dump finalizará"]</emphasis></para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>dlsym() no funciona con ejecutables ELF!</para> - </question> - - <answer> - <para>Las herramientas ELF no hacen por defecto que los símbolos - definidos en un ejecutable sean visibles por el linker dinámico. - Consecuentemente, <function>dlsym()</function> buscará en datos - obtenidos desde llamadas a <emphasis remap=tt>dlopen(NULL, flags)</emphasis>, - lo que provoca que no se encuentren esos símbolos.</para> - - <para>Si quieres buscar, usando <function>dlsym()</function> símbolos - presentes en el ejecutable principal de un proceso, necesitas linkar el - ejecutable usando la opción <option>-export-dynamic</option> en el - <ulink URL="http://www.FreeBSD.org/cgi/man.cgi?ld">linkador ELF</ulink>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Incrementando o reduciendo el espacio de direcciones del kernel</para> - </question> - - <answer> - <para>Por defecto, el espacio de direcciones del kernel es de 256MB en - FreeBSD 3.x y 1GB en FreeBSD 4.x. Si gestionas un servidor de red - muy cargado (por ejemplo, servidores FTP o HTTP con mucho - tráfico), es posible que notes que 256MB no es - suficiente.</para> - - <para>Así que... como incremento el espacio de direcciones?. Hay - dos aspectos a tener en cuenta. Primero, necesitas indicarle al kernel - que reserve una mayor parte del espacio de direcciones para él - mismo. Segundo, ya que el kernel se carga al inicio del espacio de - direcciones, necesitas disminuir la dirección de carga.</para> - - <para>El primer aspecto lo solucionamos incrementando el valor de - <acronym>NKPDE</acronym> en <filename>src/sys/i386/include/pmap.h</filename>. - Esta es una entrada de ejemplo para 1GB de espacio de direcciones:</para> - - <para> - <literallayout> - #ifndef NKPDE - #ifdef SMP - #define NKPDE 254 /* addressable number of page tables/pde's */ - #else - #define NKPDE 255 /* addressable number of page tables/pde's */ - #endif /* SMP */ - #endif - </literallayout> - </para> - - <para>Para encontrar el valor correcto de <acronym>NKPDE</acronym>, - divide el espacio de direcciones deseado (en megabytes) por cuatro, - después resta uno por UP y dos por SMP.</para> - - <para>Para solucionar el segundo aspecto, necesitas calcular la - dirección correcta de carga: simplemente resta el tamaño - del espacio de direcciones (en bytes) de 0x100100000; el resultado - es 0xc0100000 para 1GB de espacio de direcciones. Ajusta - <symbol>LOAD_ADDRESS</symbol> en - <filename>src/sys/i386/conf/Makefile.i386</filename> a ese - valor; a continuación pon el contador al inicio de la - sección listado en <filename>src/sys/i386/conf/kernel.script</filename> - al mismo valor, como sigue:</para> - - <para> - <literallayout> - OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") - OUTPUT_ARCH(i386) - ENTRY(btext) - SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-FreeBSDelf/lib); - SECTIONS - { - /* Read-only sections, merged into text segment: */ - . = 0xc0100000 + SIZEOF_HEADERS; - .interp : { *(.interp) } - </literallayout> - </para> - - <para>Reconfigura y compila el kernel. Probablemente tengas problemas con - <command>top(1)</command>, <command>ps(1)</command> y programas así - haciendo un <emphasis remap=tt>make world</emphasis> deberín - solucionarse esos problemas (o una recompilación manual de - <emphasis remap=tt>libkvm</emphasis>, <emphasis remap=tt>ps</emphasis> y - <emphasis remap=tt>top</emphasis> después de copiar el - <filename>pmap.h</filename> parcheado a <filename>/usr/include/vm/</filename>. - </para> - - <para>NOTA: el tamaño del espacio de direcciones debe ser un - múltiplo de cuatro megabytes.</para> - - <para><emphasis>[<ulink URL="mailto:dg@FreeBSD.org">David Greenman</ulink> - añade: </emphasis>Pienso que el espacio de direcciones del kernel - necesita ser una potencia de 2, pero no estoy totalmente seguro.]</para> - </answer> - </qandaentry> - </qandaset> -</chapter> - -<chapter id="acknowledgments"> -<title>AGRADECIMIENTOS</title> - - <para> - <literallayout> - Si ves algún problema o error en esta FAQ, o quieres enviar - información para que sea añadida, por favor, envía - un mail a la dirección faq-es@es.FreeBSD.org. Apreciamos tu - información e interés, y no podemos hacer una FAQ mejor - sin tu ayuda. - - - FreeBSD Spanish Documentation Project. - </literallayout> - </para> - - <para> - <variablelist> - <varlistentry> - <term>Cristobal Talavera (cristobal@es.FreeBSD.org)</term> - <listitem> - <para>Por haber obtenido la libertad :)</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>David Casademunt (david@es.FreeBSD.org)</term> - <listitem> - <para>No hay hardware que se le resista.</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Nick Clayton (nick@FreeBSD.org)</term> - <listitem> - <para>Gracias a su ayuda todo esto ha sido posible.</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Nexus Comunicacaciones (www.ncsa.es)</term> - <listitem> - <para>Por mantener el mirror y darme las facilidades para hacer todo esto.</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Oscar Colet (oscarc@abaforum.es)</term> - <listitem> - <para>Por aguantar lo que tiene que aguantar.</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Jordan Hubbard</term> - <listitem> - <para>Actualizaciones y entradas ocasionales.</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Doug White</term> - <listitem> - <para>Recopilaciones y respuestas en FreeBSD-questions.</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Joerg Wunsch</term> - <listitem> - <para>Recopilaciones y respuestas en las news.</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Garrett Wollman</term> - <listitem> - <para>Redes.</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Jim Lowe</term> - <listitem> - <para>Información sobre multicast.</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Peter da Silva</term> - <listitem> - <para>"Machaca de las teclas" de FreeBSD FAQ</para> - <para></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>The FreeBSD Team</term> - <listitem> - <para>De todo.</para> - </listitem> - </varlistentry> - </variablelist> - </para> - - <para>y para todos los que hemos olvidado, disculpas y muchas gracias por - todo!.</para> - - <para>Jesús Rodríguez - <ulink URL="mailto:jesusr@FreeBSD.org">jesusr@FreeBSD.org</ulink></para> -</chapter> -</book> diff --git a/es_ES.ISO8859-1/books/handbook/Makefile b/es_ES.ISO8859-1/books/handbook/Makefile deleted file mode 100755 index ba06443285..0000000000 --- a/es_ES.ISO8859-1/books/handbook/Makefile +++ /dev/null @@ -1,59 +0,0 @@ -# -# $FreeBSD$ -# -# Build the FreeBSD Handbook. -# - -MAINTAINER=jesusr@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+= authors.ent -SRCS+= chapters.ent -SRCS+= mailing-lists.ent - -DOC_PREFIX?= ${.CURDIR}/../../.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/es_ES.ISO8859-1/books/handbook/appendix.decl b/es_ES.ISO8859-1/books/handbook/appendix.decl deleted file mode 100644 index 5b0425623d..0000000000 --- a/es_ES.ISO8859-1/books/handbook/appendix.decl +++ /dev/null @@ -1 +0,0 @@ -<!DOCTYPE appendix PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN"> diff --git a/es_ES.ISO8859-1/books/handbook/authors.ent b/es_ES.ISO8859-1/books/handbook/authors.ent deleted file mode 100644 index 18e1c245e9..0000000000 --- a/es_ES.ISO8859-1/books/handbook/authors.ent +++ /dev/null @@ -1,477 +0,0 @@ -<!-- - Nombres y direcciones de email de los contribuyentes y committers. - Los nombres de entidad deben ser los mismos que el login que tienen en - freefall.FreeBSD.org. - - Usar estas entidades para hacer referencia a los autores. - - Por favor, mantener esta lista en orden alfabético por - entidades. - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/authors.ent,v 1.88 2000/05/26 15:21:18 jwd Exp $ ---> - -<!ENTITY a.abial "Andrzej Bialecki <email>abial@FreeBSD.org</email>"> - -<!ENTITY a.ache "Andrey A. Chernov <email>ache@FreeBSD.org</email>"> - -<!ENTITY a.adam "Adam David <email>adam@FreeBSD.org</email>"> - -<!ENTITY a.ade "Ade Lovett <email>ade@FreeBSD.org</email>"> - -<!ENTITY a.alc "Alan L. Cox <email>alc@FreeBSD.org</email>"> - -<!ENTITY a.alex "Alex Nash <email>alex@FreeBSD.org</email>"> - -<!ENTITY a.alfred "Alfred Perlstein <email>alfred@FreeBSD.org</email>"> - -<!ENTITY a.amurai "Atsushi Murai <email>amurai@FreeBSD.org</email>"> - -<!ENTITY a.andreas "Andreas Klemm <email>andreas@FreeBSD.org</email>"> - -<!ENTITY a.andy "Andrey Zakhvatov <email>andy@FreeBSD.org</email>"> - -<!ENTITY a.archie "Archie Cobbs <email>archie@FreeBSD.org</email>"> - -<!ENTITY a.asami "Satoshi Asami <email>asami@FreeBSD.org</email>"> - -<!ENTITY a.asmodai "Jeroen Ruigrok/Asmodai <email>asmodai@FreeBSD.org</email>"> - -<!ENTITY a.ats "Andreas Schulz <email>ats@FreeBSD.org</email>"> - -<!ENTITY a.awebster "Andrew Webster <email>awebster@pubnix.net</email>"> - -<!ENTITY a.bde "Bruce Evans <email>bde@FreeBSD.org</email>"> - -<!ENTITY a.billf "Bill Fumerola <email>billf@FreeBSD.org</email>"> - -<!ENTITY a.bp "Boris Popov <email>bp@FreeBSD.org</email>"> - -<!ENTITY a.brandon "Brandon Gillespie <email>brandon@FreeBSD.org</email>"> - -<!ENTITY a.brian "Brian Somers <email>brian@FreeBSD.org</email>"> - -<!ENTITY a.bsd "Brian S. Dean <email>bsd@FreeBSD.org</email>"> - -<!ENTITY a.cawimm "Charles A. Wimmer <email>cawimm@FreeBSD.org</email>"> - -<!ENTITY a.cg "Cameron Grant <email>cg@FreeBSD.org</email>"> - -<!ENTITY a.charnier "Philippe Charnier <email>charnier@FreeBSD.org</email>"> - -<!ENTITY a.chris "Chris Costello <email>chris@FreeBSD.org</email>"> - -<!ENTITY a.chuck "Chuck Robey <email>chuckr@glue.umd.edu</email>"> - -<!ENTITY a.chuckr "Chuck Robey <email>chuckr@FreeBSD.org</email>"> - -<!ENTITY a.cp "Chuck Paterson <email>cp@FreeBSD.org</email>"> - -<!ENTITY a.cpiazza "Chris Piazza <email>cpiazza@FreeBSD.org</email>"> - -<!ENTITY a.cracauer "Martin Cracauer <email>cracauer@FreeBSD.org</email>"> - -<!ENTITY a.csgr "Geoff Rehmet <email>csgr@FreeBSD.org</email>"> - -<!ENTITY a.cwt "Chris Timmons <email>cwt@FreeBSD.org</email>"> - -<!ENTITY a.dan "Dan Moschuk <email>dan@FreeBSD.org</email>"> - -<!ENTITY a.danny "Daniel O'Callaghan <email>danny@FreeBSD.org</email>"> - -<!ENTITY a.darrenr "Darren Reed <email>darrenr@FreeBSD.org</email>"> - -<!ENTITY a.davidn "David Nugent <email>davidn@blaze.net.au</email>"> - -<!ENTITY a.dbaker "Daniel Baker <email>dbaker@FreeBSD.org</email>"> - -<!ENTITY a.dburr "Donald Burr <email>dburr@FreeBSD.org</email>"> - -<!ENTITY a.dcs "Daniel C. Sobral <email>dcs@FreeBSD.org</email>"> - -<!ENTITY a.dec "David E. Cross <email>dec@FreeBSD.org</email>"> - -<!ENTITY a.deischen "Daniel Eischen <email>deischen@FreeBSD.org</email>"> - -<!ENTITY a.des "Dag-Erling C. Smørgrav <email>des@FreeBSD.org</email>"> - -<!ENTITY a.dfr "Doug Rabson <email>dfr@FreeBSD.org</email>"> - -<!ENTITY a.dg "David Greenman <email>dg@FreeBSD.org</email>"> - -<!ENTITY a.dick "Richard Seaman Jr. <email>dick@FreeBSD.org</email>"> - -<!ENTITY a.dillon "Matthew Dillon <email>dillon@FreeBSD.org</email>"> - -<!ENTITY a.dima "Dima Ruban <email>dima@FreeBSD.org</email>"> - -<!ENTITY a.dirk "Dirk Frömberg <email>dirk@FreeBSD.org</email>"> - -<!ENTITY a.dirkvangulik "Dirk-Willem van Gulik <email>Dirk.vanGulik@jrc.it</email>"> - -<!ENTITY a.dt "Dmitrij Tejblum <email>dt@FreeBSD.org</email>"> - -<!ENTITY a.dufault "Peter Dufault <email>dufault@FreeBSD.org</email>"> - -<!ENTITY a.dwhite "Doug White <email>dwhite@FreeBSD.org</email>"> - -<!ENTITY a.dyson "John Dyson <email>dyson@FreeBSD.org</email>"> - -<!ENTITY a.eivind "Eivind Eklund <email>eivind@FreeBSD.org</email>"> - -<!ENTITY a.ejc "Eric J. Chet <email>ejc@FreeBSD.org</email>"> - -<!ENTITY a.erich "Eric L. Hernes <email>erich@FreeBSD.org</email>"> - -<!ENTITY a.faq "FAQ Maintainer <email>faq@FreeBSD.org</email>"> - -<!ENTITY a.fenner "Bill Fenner <email>fenner@FreeBSD.org</email>"> - -<!ENTITY a.flathill "Seiichirou Hiraoka <email>flathill@FreeBSD.org</email>"> - -<!ENTITY a.foxfair "Howard F. Hu <email>foxfair@FreeBSD.org</email>"> - -<!ENTITY a.fsmp "Steve Passe <email>fsmp@FreeBSD.org</email>"> - -<!ENTITY a.gallatin "Andrew Gallatin <email>gallatin@FreeBSD.org</email>"> - -<!ENTITY a.gclarkii "Gary Clark II <email>gclarkii@FreeBSD.org</email>"> - -<!ENTITY a.gehenna "Masahide MAEKAWA <email>gehenna@FreeBSD.org</email>"> - -<!ENTITY a.gena "Gennady B. Sorokopud <email>gena@NetVision.net.il</email>"> - -<!ENTITY a.ghelmer "Guy Helmer <email>ghelmer@cs.iastate.edu</email>"> - -<!ENTITY a.gibbs "Justin T. Gibbs <email>gibbs@FreeBSD.org</email>"> - -<!ENTITY a.gioria "Sebastien Gioria <email>gioria@FreeBSD.org</email>"> - -<!ENTITY a.gj "Gary Jennejohn <email>gj@FreeBSD.org</email>"> - -<!ENTITY a.gpalmer "Gary Palmer <email>gpalmer@FreeBSD.org</email>"> - -<!ENTITY a.graichen "Thomas Graichen <email>graichen@FreeBSD.org</email>"> - -<!ENTITY a.green "Brian F. Feldman <email>green@FreeBSD.org</email>"> - -<!ENTITY a.grog "Greg Lehey <email>grog@FreeBSD.org</email>"> - -<!ENTITY a.groudier "Gerard Roudier <email>groudier@club-internet.fr</email>"> - -<!ENTITY a.gryphon "Coranth Gryphon <email>gryphon@healer.com</email>"> - -<!ENTITY a.gsutter "Gregory Sutter <email>gsutter@FreeBSD.org</email>"> - -<!ENTITY a.guido "Guido van Rooij <email>guido@FreeBSD.org</email>"> - -<!ENTITY a.hanai "Hiroyuki HANAI <email>hanai@FreeBSD.org</email>"> - -<!ENTITY a.handy "Brian N. Handy <email>handy@sxt4.physics.montana.edu</email>"> - -<!ENTITY a.roger "Roger Hardiman <email>roger@freebsd.org</email>"> - -<!ENTITY a.helbig "Wolfgang Helbig <email>helbig@FreeBSD.org</email>"> - -<!ENTITY a.hm "Hellmuth Michaelis <email>hm@FreeBSD.org</email>"> - -<!ENTITY a.hoek "Tim Vanderhoek <email>hoek@FreeBSD.org</email>"> - -<!ENTITY a.hosokawa "Tatsumi Hosokawa <email>hosokawa@FreeBSD.org</email>"> - -<!ENTITY a.hsu "Jeffrey Hsu <email>hsu@FreeBSD.org</email>"> - -<!ENTITY a.imp "Warner Losh <email>imp@FreeBSD.org</email>"> - -<!ENTITY a.imura "Ryuichiro IMURA <email>imura@FreeBSD.org</email>"> - -<!ENTITY a.itojun "Jun-ichiro Itoh <email>itojun@itojun.org</email>"> - -<!ENTITY a.iwasaki "Mitsuru IWASAKI <email>iwasaki@FreeBSD.org</email>"> - -<!ENTITY a.jake "Jake Burkholder <email>jake@FreeBSD.org</email>"> - -<!ENTITY a.jasone "Jason Evans <email>jasone@FreeBSD.org</email>"> - -<!ENTITY a.jayanth "Jayanth Vijayaraghavan <email>jayanth@FreeBSD.org</email>"> - -<!ENTITY a.jb "John Birrell <email>jb@cimlogic.com.au</email>"> - -<!ENTITY a.jdp "John Polstra <email>jdp@FreeBSD.org</email>"> - -<!ENTITY a.jedgar "Chris D. Faulhaber <email>jedgar@FreeBSD.org</email>"> - -<!ENTITY a.jehamby "Jake Hamby <email>jehamby@lightside.com</email>"> - -<!ENTITY a.jesusr "Jesus Rodriguez <email>jesusr@FreeBSD.org</email>"> - -<!ENTITY a.jfieber "John Fieber <email>jfieber@FreeBSD.org</email>"> - -<!ENTITY a.jfitz "James FitzGibbon <email>jfitz@FreeBSD.org</email>"> - -<!ENTITY a.jgreco "Joe Greco <email>jgreco@FreeBSD.org</email>"> - -<!ENTITY a.jhay "John Hay <email>jhay@FreeBSD.org</email>"> - -<!ENTITY a.jhb "John Baldwin <email>jhb@FreeBSD.org</email>"> - -<!ENTITY a.jhs "Julian Stacey <email>jhs@FreeBSD.org</email>"> - -<!ENTITY a.jim "Jim Mock <email>jim@FreeBSD.org</email>"> - -<!ENTITY a.jkh "Jordan K. Hubbard <email>jkh@FreeBSD.org</email>"> - -<!ENTITY a.jkoshy "Joseph Koshy <email>jkoshy@FreeBSD.org</email>"> - -<!ENTITY a.jlemon "Jonathan Lemon <email>jlemon@FreeBSD.org</email>"> - -<!ENTITY a.jlind "John Lind <email>john@starfire.MN.ORG</email>"> - -<!ENTITY a.jlrobin "James L. Robinson <email>jlrobin@FreeBSD.org</email>"> - -<!ENTITY a.jmacd "Joshua Peck Macdonald <email>jmacd@FreeBSD.org</email>"> - -<!ENTITY a.jmas "Jose M. Alcaide <email>jmas@FreeBSD.org</email>"> - -<!ENTITY a.jmb "Jonathan M. Bresler <email>jmb@FreeBSD.org</email>"> - -<!ENTITY a.jmg "John-Mark Gurney <email>jmg@FreeBSD.org</email>"> - -<!ENTITY a.jmz "Jean-Marc Zucconi <email>jmz@FreeBSD.org</email>"> - -<!ENTITY a.joe "Josef Karthauser <email>joe@FreeBSD.org</email>"> - -<!ENTITY a.joerg "Jörg Wunsch <email>joerg@FreeBSD.org</email>"> - -<!ENTITY a.john "John Cavanaugh <email>john@FreeBSD.org</email>"> - -<!ENTITY a.jraynard "James Raynard <email>jraynard@FreeBSD.org</email>"> - -<!ENTITY a.jseger "Justin Seger <email>jseger@FreeBSD.org</email>"> - -<!ENTITY a.julian "Julian Elischer <email>julian@FreeBSD.org</email>"> - -<!ENTITY a.jwd "John W. DeBoskey <email>jwd@FreeBSD.org</email>"> - -<!ENTITY a.jvh "Johannes Helander <email>jvh@FreeBSD.org</email>"> - -<!ENTITY a.karl "Karl Strickland <email>karl@FreeBSD.org</email>"> - -<!ENTITY a.kato "Takenori KATO <email>kato@FreeBSD.org</email>"> - -<!ENTITY a.kelly "Sean Kelly <email>kelly@ad1440.net</email>"> - -<!ENTITY a.ken "Kenneth D. Merry <email>ken@FreeBSD.org</email>"> - -<!ENTITY a.kevlo "Kevin Lo <email>kevlo@FreeBSD.org</email>"> - -<!ENTITY a.kjc "Kenjiro Cho <email>kjc@FreeBSD.org</email>"> - -<!ENTITY a.knu "Akinori MUSHA <email>knu@FreeBSD.org</email>"> - -<!ENTITY a.kris "Kris Kennaway <email>kris@FreeBSD.org</email>"> - -<!ENTITY a.kuriyama "Jun Kuriyama <email>kuriyama@FreeBSD.org</email>"> - -<!ENTITY a.lars "Lars Fredriksen <email>lars@FreeBSD.org</email>"> - -<!ENTITY a.lile "Larry Lile <email>lile@FreeBSD.org</email>"> - -<!ENTITY a.ljo "L Jonas Olsson <email>ljo@FreeBSD.org</email>"> - -<!ENTITY a.luoqi "Luoqi Chen <email>luoqi@FreeBSD.org</email>"> - -<!ENTITY a.marcel "Marcel Moolenaar <email>marcel@FreeBSD.org</email>"> - -<!ENTITY a.markm "Mark Murray <email>markm@FreeBSD.org</email>"> - -<!ENTITY a.martin "Martin Renters <email>martin@FreeBSD.org</email>"> - -<!ENTITY a.max "Masafumi NAKANE <email>max@FreeBSD.org</email>"> - -<!ENTITY a.mayo "Mark Mayo <email>mark@vmunix.com</email>"> - -<!ENTITY a.mbarkah "Ade Barkah <email>mbarkah@FreeBSD.org</email>"> - -<!ENTITY a.mckay "Stephen McKay <email>mckay@FreeBSD.org</email>"> - -<!ENTITY a.mckusick "Kirk McKusick <email>mckusick@FreeBSD.org</email>"> - -<!ENTITY a.md "Mark Dapoz <email>md@bsc.no</email>"> - -<!ENTITY a.mdodd "Matthew N. Dodd <email>winter@jurai.net</email>"> - -<!ENTITY a.mharo "Michael Haro <email>mharo@FreeBSD.org</email>"> - -<!ENTITY a.mjacob "Matthew Jacob <email>mjacob@FreeBSD.org</email>"> - -<!ENTITY a.mks "Mike Spengler <email>mks@FreeBSD.org</email>"> - -<!ENTITY a.motoyuki "Motoyuki Konno <email>motoyuki@FreeBSD.org</email>"> - -<!ENTITY a.mph "Matthew Hunt <email>mph@FreeBSD.org</email>"> - -<!ENTITY a.mpp "Mike Pritchard <email>mpp@FreeBSD.org</email>"> - -<!ENTITY a.msmith "Michael Smith <email>msmith@FreeBSD.org</email>"> - -<!ENTITY a.mtaylor "Mark J. Taylor <email>mtaylor@FreeBSD.org</email>"> - -<!ENTITY a.murray "Murray Stokely <email>murray@FreeBSD.org</email>"> - -<!ENTITY a.nakai "Yukihiro Nakai <email>nakai@FreeBSD.org</email>"> - -<!ENTITY a.nate "Nate Williams <email>nate@FreeBSD.org</email>"> - -<!ENTITY a.nbm "Neil Blakey-Milner <email>nbm@FreeBSD.org</email>"> - -<!ENTITY a.nectar "Jacques Vidrine <email>nectar@FreeBSD.org</email>"> - -<!ENTITY a.newton "Mark Newton <email>newton@FreeBSD.org</email>"> - -<!ENTITY a.nhibma "Nick Hibma <email>n_hibma@FreeBSD.org</email>"> - -<!ENTITY a.nik "Nik Clayton <email>nik@FreeBSD.org</email>"> - -<!ENTITY a.nsayer "Nick Sayer <email>nsayer@FreeBSD.org</email>"> - -<!ENTITY a.nsj "Nate Johnson <email>nsj@FreeBSD.org</email>"> - -<!ENTITY a.nyan "Yoshihiro Takahashi <email>nyan@FreeBSD.org</email>"> - -<!ENTITY a.obrien "David O'Brien <email>obrien@FreeBSD.org</email>"> - -<!ENTITY a.olah "Andras Olah <email>olah@FreeBSD.org</email>"> - -<!ENTITY a.opsys "Chris Watson <email>opsys@open-systems.net</email>"> - -<!ENTITY a.patrick "Patrick S. Gardella <email>patrick@FreeBSD.org</email>"> - -<!ENTITY a.paul "Paul Richards <email>paul@FreeBSD.org</email>"> - -<!ENTITY a.pb "Pierre Beyssac <email>pb@fasterix.freenix.org</email>"> - -<!ENTITY a.pds "Peter da Silva <email>pds@FreeBSD.org</email>"> - -<!ENTITY a.peter "Peter Wemm <email>peter@FreeBSD.org</email>"> - -<!ENTITY a.phantom "Alexey Zelkin <email>phantom@FreeBSD.org</email>"> - -<!ENTITY a.phk "Poul-Henning Kamp <email>phk@FreeBSD.org</email>"> - -<!ENTITY a.pho "Peter Holm <email>pho@FreeBSD.org</email>"> - -<!ENTITY a.piero "Piero Serini <email>piero@strider.inet.it</email>"> - -<!ENTITY a.pjc "Peter Childs <email>pjchilds@imforei.apana.org.au</email>"> - -<!ENTITY a.proven "Chris Provenzano <email>proven@FreeBSD.org</email>"> - -<!ENTITY a.ps "Paul Saab <email>ps@FreeBSD.org</email>"> - -<!ENTITY a.pst "Paul Traina <email>pst@FreeBSD.org</email>"> - -<!ENTITY a.reg "Jeremy Lea <email>reg@FreeBSD.org</email>"> - -<!ENTITY a.rgrimes "Rodney Grimes <email>rgrimes@FreeBSD.org</email>"> - -<!ENTITY a.rhuff "Robert Huff <email>rhuff@cybercom.net</email>"> - -<!ENTITY a.ricardag "Ricardo AG <email>ricardag@ag.com.br</email>"> - -<!ENTITY a.rich "Rich Murphey <email>rich@FreeBSD.org</email>"> - -<!ENTITY a.rnordier "Robert Nordier <email>rnordier@FreeBSD.org</email>"> - -<!ENTITY a.roberto "Ollivier Robert <email>roberto@FreeBSD.org</email>"> - -<!ENTITY a.rse "Ralf S. Engelschall <email>rse@FreeBSD.org</email>"> - -<!ENTITY a.ru "Ruslan Ermilov <email>ru@FreeBSD.org</email>"> - -<!ENTITY a.rwatson "Robert Watson <email>rwatson@FreeBSD.org</email>"> - -<!ENTITY a.sada "Kenji SADA <email>sada@FreeBSD.org</email>"> - -<!ENTITY a.scrappy "Marc G. Fournier <email>scrappy@FreeBSD.org</email>"> - -<!ENTITY a.se "Stefan Esser <email>se@FreeBSD.org</email>"> - -<!ENTITY a.sef "Sean Eric Fagan <email>sef@FreeBSD.org</email>"> - -<!ENTITY a.sheldonh "Sheldon Hearn <email>sheldonh@FreeBSD.org</email>"> - -<!ENTITY a.shige "Shigeyuki Fukushima <email>shige@FreeBSD.org</email>"> - -<!ENTITY a.shin "Yoshinobu Inoue <email>shin@FreeBSD.org</email>"> - -<!ENTITY a.simokawa "Hidetoshi Shimokawa <email>simokawa@FreeBSD.org</email>"> - -<!ENTITY a.smace "Scott Mace <email>smace@FreeBSD.org</email>"> - -<!ENTITY a.smpatel "Sujal Patel <email>smpatel@FreeBSD.org</email>"> - -<!ENTITY a.sobomax "Maxim Sobolev <email>sobomax@FreeBSD.org</email>"> - -<!ENTITY a.sos "Søren Schmidt <email>sos@FreeBSD.org</email>"> - -<!ENTITY a.stark "Gene Stark <email>stark@FreeBSD.org</email>"> - -<!ENTITY a.stb "Stefan Bethke <email>stb@FreeBSD.org</email>"> - -<!ENTITY a.steve "Steve Price <email>steve@FreeBSD.org</email>"> - -<!ENTITY a.sumikawa "Munechika Sumikawa <email>sumikawa@FreeBSD.org</email>"> - -<!ENTITY a.swallace "Steven Wallace <email>swallace@FreeBSD.org</email>"> - -<!ENTITY a.tanimura "Seigo Tanimura <email>tanimura@FreeBSD.org</email>"> - -<!ENTITY a.taoka "Satoshi Taoka <email>taoka@FreeBSD.org</email>"> - -<!ENTITY a.tedm "Ted Mittelstaedt <email>tedm@FreeBSD.org</email>"> - -<!ENTITY a.tegge "Tor Egge <email>tegge@FreeBSD.org</email>"> - -<!ENTITY a.tg "Thomas Gellekum <email>tg@FreeBSD.org</email>"> - -<!ENTITY a.thepish "Peter Hawkins <email>thepish@FreeBSD.org</email>"> - -<!ENTITY a.tom "Tom Hukins <email>tom@FreeBSD.org</email>"> - -<!ENTITY a.torstenb "Torsten Blum <email>torstenb@FreeBSD.org</email>"> - -<!ENTITY a.truckman "Don “Truck” Lewis <email>truckman@FreeBSD.org</email>"> - -<!ENTITY a.ugen "Ugen J.S.Antsilevich <email>ugen@FreeBSD.org</email>"> - -<!ENTITY a.uhclem "Frank Durda IV <email>uhclem@FreeBSD.org</email>"> - -<!ENTITY a.ulf "Ulf Zimmermann <email>ulf@FreeBSD.org</email>"> - -<!ENTITY a.ume "Hajimu UMEMOTO <email>ume@FreeBSD.org</email>"> - -<!ENTITY a.unfurl "Bill Swingle <email>unfurl@FreeBSD.org</email>"> - -<!ENTITY a.vanilla "Vanilla I. Shu <email>vanilla@FreeBSD.org</email>"> - -<!ENTITY a.wes "Wes Peters <email>wes@FreeBSD.org</email>"> - -<!ENTITY a.whiteside "Don Whiteside <email>whiteside@acm.org</email>"> - -<!ENTITY a.wilko "Wilko Bulte <email>wilko@FreeBSD.org</email>"> - -<!ENTITY a.will "Will Andrews <email>will@FreeBSD.org</email>"> - -<!ENTITY a.wlloyd "Bill Lloyd <email>wlloyd@mpd.ca</email>"> - -<!ENTITY a.wollman "Garrett Wollman <email>wollman@FreeBSD.org</email>"> - -<!ENTITY a.wosch "Wolfram Schneider <email>wosch@FreeBSD.org</email>"> - -<!ENTITY a.wpaul "Bill Paul <email>wpaul@FreeBSD.org</email>"> - -<!ENTITY a.wsanchez "Wilfredo Sánchez <email>wsanchez@FreeBSD.org</email>"> - -<!ENTITY a.yokota "Kazutaka YOKOTA <email>yokota@FreeBSD.org</email>"> - diff --git a/es_ES.ISO8859-1/books/handbook/book.sgml b/es_ES.ISO8859-1/books/handbook/book.sgml deleted file mode 100755 index a67427d9fb..0000000000 --- a/es_ES.ISO8859-1/books/handbook/book.sgml +++ /dev/null @@ -1,144 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD$ - ---> - - -<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ -<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> -%man; - -<!ENTITY % bookinfo PUBLIC "-//FreeBSD//ENTITIES DocBook BookInfo Entities//EN"> -%bookinfo; - -<!ENTITY % chapters SYSTEM "chapters.ent"> %chapters; -<!ENTITY % authors SYSTEM "authors.ent"> %authors; -<!ENTITY % mailing-lists SYSTEM "mailing-lists.ent"> %mailing-lists; -<!ENTITY % newsgroups SYSTEM "newsgroups.ent"> %newsgroups; -<!ENTITY % not.published "INCLUDE"> - -<!-- La version release actual de FreeBSD. Este valor es usado para - crear algunos links a webs, asi que NO cambiarlo hasta que exista - una nueva release --> - -<!-- ***** COSAS POR HACER ***** - cambiar las descripciones de las listas de distribucion - cambiar las descripciones de los grupos de news ---> - -<!ENTITY rel.current CDATA "4.0"> -]> - -<book lang=es> - <bookinfo> - <title>Manual de FreeBSD</title> - - <authorgroup> - <author> - <surname>Proyecto de Documentacion de FreeBSD</surname> - <affiliation> - <address> - <email>doc@FreeBSD.org</email> - </address> - </affiliation> - </author> - </authorgroup> - - <pubdate>Febrero 1999</pubdate> - - <copyright> - <year>1995</year> - <year>1996</year> - <year>1997</year> - <year>1998</year> - <year>1999</year> - <year>2000</year> - <holder>The FreeBSD Documentation Project</holder> - </copyright> - - <abstract> - <para>Bienvenido a FreeBSD!. Este manual cubre la instalación y uso - diario de <emphasis>FreeBSD Release &rel.current;</emphasis>. Este - manual está en <emphasis>constante evolución</emphasis> y - es el resultado del trabajo de muchas personas. Algunas secciones no - están completas y otras no están actualizadas. Si - estás interesado en colaborar en este proyecto, envía - un mail a &a.doc;. La última versión de este documento - está siempre disponible en el - <ulink URL="http://www.FreeBSD.ORG/"> - servidor World Wide Web de FreeBSD</ulink>. También está - disponible en <ulink url="handbook.latin1"> texto </ulink>, - <ulink url="handbook.ps">postscript</ulink> o <ulink - url="handbook-html.tar.gz">HTML</ulink> vía HTTP o comprimido - con gzip desde el <ulink url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/docs/"> - servidor FTP de FreeBSD</ulink> o uno de sus numerosos - <link linkend="mirrors-ftp">mirrors</link>. - También puedes <ulink URL="http://www.FreeBSD.ORG/search.html"> - realizar búsquedas en el manual</ulink>.</para> - </abstract> - </bookinfo> - - <part> - <title>Empezamos</title> - - &chap.introduction; - &chap.install; - &chap.basics; - &chap.ports; - </part> - - <part> - <title>Administración del sistema</title> - - &chap.kernelconfig; - &chap.security; - &chap.printing; - &chap.disks; - &chap.backups; - &chap.quotas; - &chap.x11; - &chap.hw; - &chap.l10n; - </part> - - <part> - <title>Comunicaciones en Red</title> - - &chap.serialcomms; - &chap.ppp-and-slip; - &chap.advanced-networking; - &chap.mail; - </part> - - <part> - <title>Conceptos Avanzados</title> - - &chap.cutting-edge; - &chap.contrib; - &chap.policies; - &chap.kernelopts; - &chap.kerneldebug; - &chap.linuxemu; - &chap.internals; - </part> - - <part> - <title>Apéndices</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/es_ES.ISO8859-1/books/handbook/chapter.decl b/es_ES.ISO8859-1/books/handbook/chapter.decl deleted file mode 100755 index 9021993901..0000000000 --- a/es_ES.ISO8859-1/books/handbook/chapter.decl +++ /dev/null @@ -1,5 +0,0 @@ -<!-- - $FreeBSD$ ---> - -<!DOCTYPE chapter PUBLIC "-//FreeBSD//DTD DocBook V3.0-Based Extension//EN"> diff --git a/es_ES.ISO8859-1/books/handbook/chapters.ent b/es_ES.ISO8859-1/books/handbook/chapters.ent deleted file mode 100755 index f022a48532..0000000000 --- a/es_ES.ISO8859-1/books/handbook/chapters.ent +++ /dev/null @@ -1,52 +0,0 @@ -<!-- - Crea entidades para cada uno de los capítulos en el Manual de - FreeBSD. Cada entidad es nombrada como chap.foo, donde foo es el - atributo identificador en ese capítulo y corresponde al - nombre del directorio en el que está guardado el archivo - .sgml que contiene la información. - - Chapters should be listed in the order in which they are referenced. - Los capítulos deben listarse en el mismo orden en el que son - referenciados. - - $FreeBSD$ ---> - -<!-- 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/es_ES.ISO8859-1/books/handbook/mailing-lists.ent b/es_ES.ISO8859-1/books/handbook/mailing-lists.ent deleted file mode 100755 index a3a3647a21..0000000000 --- a/es_ES.ISO8859-1/books/handbook/mailing-lists.ent +++ /dev/null @@ -1,48 +0,0 @@ -<!-- - Nombres de listas de distribucion de FreeBSD. - - $FreeBSD$ ---> - -<!ENTITY a.announce "Lista de anuncios de FreeBSD - <email>freebsd-announce@FreeBSD.ORG</email>"> - -<!ENTITY a.cvsall "Lista de actualizaciones en el CVS de FreeBSD CVS - <email>cvs-all@FreeBSD.ORG</email>"> - -<!ENTITY a.doc "Lista del Proyecto de Documentación de FreeBSD - <email>freebsd-doc@FreeBSD.ORG</email>"> - -<!ENTITY a.bugs "Lista de informe de bugs en FreeBSD - <email>freebsd-bugs@FreeBSD.ORG</email>"> - -<!ENTITY a.current "Lista FreeBSD-current - <email>freebsd-current@FreeBSD.ORG</email>"> - -<!ENTITY a.emulation "Lista de FreeBSD-emulation - <email>freebsd-emulation@FreeBSD.ORG</email>"> - -<!ENTITY a.fs "Lista del proyecto del sistema de ficheros de FreeBSD - <email>freebsd-fs@FreeBSD.ORG</email>"> - -<!ENTITY a.hackers "Lista de discusiones técnicas de FreeBSD - <email>freebsd-hackers@FreeBSD.ORG</email>"> - -<!ENTITY a.ports "Lista de Ports de FreeBSD - <email>freebsd-ports@FreeBSD.ORG</email>"> - -<!ENTITY a.questions "Lista de preguntas generales de FreeBSD - <email>freebsd-questions@FreeBSD.ORG</email>"> - -<!ENTITY a.scsi "Lista del subsistema SCSI en FreeBSD - <email>freebsd-scsi@FreeBSD.ORG</email>"> - -<!ENTITY a.stable "Lista de FreeBSD-stable - <email>freebsd-stable@FreeBSD.ORG</email>"> - -<!ENTITY a.majordomo "<email>majordomo@FreeBSD.ORG</email>"> - -<!ENTITY a.core "FreeBSD core team - <email>freebsd-core@FreeBSD.ORG</email>"> - - diff --git a/es_ES.ISO8859-1/books/handbook/newsgroups.ent b/es_ES.ISO8859-1/books/handbook/newsgroups.ent deleted file mode 100644 index 47217f15b4..0000000000 --- a/es_ES.ISO8859-1/books/handbook/newsgroups.ent +++ /dev/null @@ -1,10 +0,0 @@ -<!-- - Nombre de grupos de noticias de FreeBSD. - - $FreeBSD$ ---> - -<!ENTITY ng.misc "the - <ulink url='news:comp.unix.bsd.freebsd.misc'>comp.unix.bsd.freebsd.misc</ulink> - newsgroup"> - diff --git a/es_ES.ISO8859-1/share/sgml/freebsd.dsl b/es_ES.ISO8859-1/share/sgml/freebsd.dsl deleted file mode 100644 index b9912bbffb..0000000000 --- a/es_ES.ISO8859-1/share/sgml/freebsd.dsl +++ /dev/null @@ -1,30 +0,0 @@ -<!-- $FreeBSD$ --> - -<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ -<!ENTITY freebsd.dsl SYSTEM "../../../share/sgml/freebsd.dsl" CDATA DSSSL> -]> - -<style-sheet> - <style-specification use="docbook"> - <style-specification-body> - - <![ %output.html; [ - (define ($email-footer$) - (make sequence - (literal "For questions about FreeBSD, e-mail <") - (make element gi: "a" - attributes: (list (list "href" "mailto:questions@FreeBSD.org")) - (literal "questions@FreeBSD.org")) - (literal ">.") - (make empty-element gi: "br") - (literal "For questions about this documentation, e-mail <") - (make element gi: "a" - attributes: (list (list "href" "mailto:doc@FreeBSD.org")) - (literal "doc@FreeBSD.org")) - (literal ">."))) - ]]> - </style-specification-body> - </style-specification> - - <external-specification id="docbook" document="freebsd.dsl"> -</style-sheet> diff --git a/fr_FR.ISO8859-1/Makefile b/fr_FR.ISO8859-1/Makefile deleted file mode 100644 index 1097bbc7d9..0000000000 --- a/fr_FR.ISO8859-1/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -# $FreeBSD$ - -SUBDIR = articles -SUBDIR+= books - -COMPAT_SYMLINK = fr - -DOC_PREFIX?= ${.CURDIR}/.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/Makefile b/fr_FR.ISO8859-1/articles/Makefile deleted file mode 100644 index 90a0ff7873..0000000000 --- a/fr_FR.ISO8859-1/articles/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $FreeBSD: doc/fr_FR.ISO_8859-1/articles/Makefile,v 1.1 1999/11/10 21:28:21 nik Exp $ -# 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 -SUBDIR+= committers-guide -SUBDIR+= zip-drive - -ROOT_SYMLINKS+= new-users - -DOC_PREFIX?= ${.CURDIR}/../.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/articles/Makefile.inc b/fr_FR.ISO8859-1/articles/Makefile.inc deleted file mode 100644 index 3e2eea4dc7..0000000000 --- a/fr_FR.ISO8859-1/articles/Makefile.inc +++ /dev/null @@ -1,9 +0,0 @@ -# -# 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.ISO8859-1/articles/committers-guide/Makefile b/fr_FR.ISO8859-1/articles/committers-guide/Makefile deleted file mode 100644 index 0d3f683af0..0000000000 --- a/fr_FR.ISO8859-1/articles/committers-guide/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $Id: Makefile,v 1.1 2000-05-25 16:27:48 gioria Exp $ -# 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.ISO8859-1/articles/committers-guide/article.sgml b/fr_FR.ISO8859-1/articles/committers-guide/article.sgml deleted file mode 100644 index eb9a85e71f..0000000000 --- a/fr_FR.ISO8859-1/articles/committers-guide/article.sgml +++ /dev/null @@ -1,1233 +0,0 @@ -<!-- - 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 sgml.todo SYSTEM "../../books/handbook/todo.sgml"> -<!ENTITY sgml.in-progress SYSTEM "../../books/handbook/in-progress.sgml"> -<!ENTITY rel.current CDATA "3.2"> -]> - -<article lang="fr"> - <artheader> - <title>Le Guide du Nouveau - “<foreignphrase>Committer</foreignphrase>”</title> - - <authorgroup> - <author> - <surname>Projet de Documentation de FreeBSD</surname> - </author> - </authorgroup> - - <pubdate>Septembre 1999</pubdate> - - <copyright> - <year>1999</year> - <holder>Projet de Documentation de FreeBSD</holder> - </copyright> - - <abstract> - <para>Nouveau “<foreignphrase>committer</foreignphrase>”, - bienvenue dans l'équipe de développement de FreeBSD !</para> - - <para>L'objectif de cette documentation est de vous orienter sur la - façon d'utiliser CVS sur la machine d'archive centrale de FreeBSD. Il - est présumé que vous avez déjà une connaissance de base de CVS, - quoique des informations de référence, des guides et Questions - Fréquemment Posées soient disponibles à l'adresse : - <ulink url="http://www.cyclic.com/cyclic-pages/books.html">http://www.cyclic.com/cyclic-pages/books.html</ulink></para> - - <para>Bonne chance, et bienvenue à bord !</para> - - &abstract.license; - &abstract.disclaimer; - &trans.a.haby; - - </abstract> - </artheader> - - <sect1 id="admin"> - <title>Détails d'organisation</title> - - <informaltable frame="none" orient="port"> - <tgroup cols="2"> - <tbody> - <row> - <entry><emphasis>Machine d'archive principale</emphasis></entry> - <entry><hostid>freefall.FreeBSD.org</hostid></entry> - </row> - - <row> - <entry> - <emphasis>Machine d'archive internationale pour les codes de - cryptographie</emphasis> - </entry> - <entry><hostid>internat.FreeBSD.org</hostid></entry> - </row> - - <row> - <entry><emphasis>Méthode de connexion</emphasis></entry> - <entry>&man.ssh.1;</entry> - </row> - - <row> - <entry><emphasis>Répertoire CVSROOT</emphasis></entry> - <entry>/home/ncvs</entry> - </row> - - <row> - <entry><emphasis>Répertoire CVSROOT pour la version internationale - des codes de cryptographie</emphasis></entry> - <entry>/home/cvs.crypt</entry> - </row> - - <row> - <entry><emphasis>Administrateurs des archives CVS - principales</emphasis></entry> - <entry>&a.jdp; et &a.peter; ainsi que &a.asami; pour - <filename>ports/</filename></entry> - </row> - - <row> - <entry> - <emphasis>Administrateur des archives CVS pour la version - internationale des codes de cryptographie</emphasis> - </entry> - <entry>&a.markm;</entry> - </row> - - <row> - <entry><emphasis>Liste de diffusion</emphasis></entry> - <entry><email>cvs-committers@FreeBSD.org</email></entry> - </row> - - <row> - <entry><emphasis>Etiquettes CVS importantes</emphasis></entry> - <entry>RELENG_3 (3.x-STABLE), HEAD (-CURRENT)</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para>Il vous est demandé d'utiliser &man.ssh.1; ou &man.telnet.1; - et Kerberos 5 pour vous connecter aux machines d'archive. Ces méthodes - sont globalement plus sûres qu'un simple &man.telnet.1; ou - &man.rlogin.1; parce que la négociation de l'authentification est - cryptée. Par défaut &man.ssh.1; crypte toute la session. Les utilitaires - disponibles &man.ssh-agent.1; et &man.scp.1; sont aussi bien plus - pratiques. Si vous ne connaissez pas &man.ssh.1, reportez-vous à la - <xref linkend="ssh.guide">.</para> - </sect1> - - <sect1 id="cvs.operations"> - <title>Opérations CVS</title> - - <para>Les opérations CVS se font habituellement en se connectant à - <hostid>freefall</hostid>, vérifiant que votre variable d'environnement - <envar>CVSROOT</envar> est bien positionnée à - <filename>/home/ncvs</filename>, et en effectuant les opérations - d'extraction (<foreignphrase>check-out</foreignphrase>) et de mise à - jour (<foreignphrase>check-in</foreignphrase>) nécessaires. Si vous - avez quelque chose d'entiérement nouveau à ajouter (un nouveau logiciel - porté, du source d'origine externe, etc.), il existe une procédure - appelée <quote>easy-import</quote> qui facilite cette opération. Elle - ajoute automagiquement une entrée pour le nouveau module, fait ce qu'il - faut via <command>cvs import</command>, etc. – exécutez-la sans - arguments et elle vous demandera tout ce qu'elle a besoin de - savoir.</para> - - <para>Si vous avez la pratique de CVS à distance et vous considérez - relativement opérationnel sur CVS en général, vous pouvez aussi effectuer - les opérations CVS directement depuis votre machine avec une copie - local à jour des sources. N'oubliez cependant pas de positionner - <envar>CVS_RSH</envar> à <wordasword>ssh</wordasword> de façon à - utiliser un moyen de transmission sécurisé et fiable. D'une autre côté, - si vous ne savez pas ce que cela veut dire, tenez-vous en s'il vous - plaît à la méthode qui consiste à vous connecter à - <hostid>freefall</hostid> et mettre en place vos modifications avec - &man.patch.1;.</para> - - <para>Si vous avez à utiliser les opérations <command>add</command> et - <command>delete</command> pour faire en fait une opération - <quote>mv</quote>, il faut une copie sur l'archive plutôt que votre - commande CVS <command>add</command> suivie d'un - <command>delete</command>. Dans ce cas, un <link - linkend="conventions">Administrateur CVS</link> copiera le(s) fichier(s) - là où il(s) doi(ven)t aller et vous avertira une fois qu'il l'aura fait. - Le but de la copie dans les archives est de conserver l'historique des - modifications, la journalisation. Le Projet FreeBSD accorde une grande - importance à l'historique du projet que CVS nous permet de - conserver.</para> - </sect1> - - <sect1 id="conventions"> - <title>Conventions et Traditions</title> - - <para>Les Administrateurs CVS (Peter Wemm et John Polstra) sont les - <quote>propriétaires</quote> des archives CVS et sont responsables de - chaque et de <emphasis>toute</emphasis> modification directe de - celles-ci pour mise au propre ou rectification d'erreur CVS dûe à un - <foreignphrase>committer</foreignphrase>. Personne d'autre ne doit - intervenir directement sur les archives. Si vous faites un fausse - manipulation, une importation incorrecte ou vous trompez d'étiquette - par exemple, n'essayez <emphasis role="bold">pas</emphasis> de la - rectifier vous-même ! Envoyez immédiatement un courrier - électronique ou téléphonez à John ou Peter et expliquez leur le - problème. Satoshi Asami est aussi Administrateur CVS pour la partie - <filename>ports/</filename> de l'arborescence. Mark Murray est - l'administrateur des archives internationales pour les logiciels de - cryptographie, en Afrique du Sud.</para> - - <para>Si vous êtes nouveau <foreignphrase>committer</foreignphrase>, la - première chose à faire est de vous ajouter vous-même à la liste des - développeurs (section 28.2) du Manuel de Référence. Extraire le manuel - de référence et ajouter une entrée à la liste est relativement facile, - mais c'est néanmoins un bon test initial de vos compétences CVS. Si - vous pouvez le faire, vous n'aurez probablement pas de problèmes par - la suite.</para> - - <para>L'étape suivante consiste à vous présenter aux autres - <foreignphrase>committers</foreignphrase>, sans quoi ils n'auront aucune - idée de qui vous êtes et à quoi vous travaillez. Il n'est pas - nécessaire de rédiger une biographie exhaustive, un paragraphe ou deux - suffiront, pour dire qui vous êtes et à quoi vous comptez travailler sur - FreeBSD. Envoyez-les par courrier électronique à - <email>cvs-committers@FreeBSD.org</email> et vous serez prêt à commencer - à travailler !</para> - - <para>N'oubliez pas aussi de vous connecter à - <hostid>hub.FreeBSD.org</hostid> et de vous y créez un fichier - <filename>/var/forward/<replaceable>utilisateur</replaceable></filename> - (où <replaceable>utilisateur</replaceable> est votre nom d'utilisateur), - qui contienne votre adresse de courrier électronique principale où vous - souhaitez que le courrier électronique adressé à - <replaceable>votre_nom_d_utilisateur</replaceable>@FreeBSD.org vous soit - redirigé. Les boîtes aux lettres vraiment volumineuses qui demeurent en - en permanence sur <hostid>hub</hostid> sont souvent - <quote>accidentellement</quote> tronquées sans avertissement, redirigez - donc votre courrier, ou lisez-le, et vous ne le perdrez pas.</para> - - <para>Tous les nouveaux <foreignphrase>committers</foreignphrase> ont un - mentor qui leur est assigné les premiers mois. Votre mentor est plus ou - moins chargé de vous expliquer tout ce que vous ne comprenez pas bien et - est aussi responsable de ce que vous faites à vos débuts. Si vous faites - une soummission erronée, c'est votre mentor qui sera ennuyé et vous - devriez probablement vous fixer comme ligne de conduite de faire passer - vos premières soumissions par lui avant de les intégrer aux - archives.</para> - - <para>Toutes les soumissions doivent être intégrées d'abord à - <literal>-CURRENT</literal>, avant d'aller dans - <literal>-STABLE</literal>. Aucune nouvelle fonctionnalité ou - modification à haut risque ne devrait être intégrée à la branche - <literal>-STABLE</literal>.</para> - </sect1> - - <sect1 id="developer.relations"> - <title>Relations entre développeurs</title> - - <para>Si vous travaillez directement sur votre propre code ou sur du code - dont il est bien établi que vous avez la responsabilité, il n'est - probablement pas nécessaire de valider ce que vous allez faire avec - d'autres développeurs avant de soumettre du code. Si vous trouvez un - bogue dans un module qui est manifestement orphelin (il y en a - malheureusement quelques uns), cela s'y applique aussi. Si, au - contraire, vous vous apprêtez à modifier quelque chose qui est - activement maintenu par quelqu'un d'autre (ce n'est qu'en surveillant - la &a.cvsall; que vous pourrez vous faire une idée de ce qu'il l'est et - de ce qui ne l'est pas), envisagez alors de lui envoyer vos - modifications, tout comme vous l'auriez fait quand vous n'étiez pas - <foreignphrase>committer</foreignphrase>. Pour les logiciels portés, - vous devriez contacter la personne listée comme - <makevar>MAINTAINER</makevar> dans le <filename>Makefile</filename>. - Pour le reste des archives, si vous n'êtes pas sûr de qui maintient - effectivement tel ou tel module, il peut être utile de passer en revue - le résultat de <command>cvs log</command> pour voir qui a soumis des - modifications dans le passé. Si vous ne trouvez personne, ou si la - personne en charge montre un désinterêt pour la partie en question, - allez-y et faites vos modifications.</para> - - <para>Si vous avez pour une raison ou une autre des doutes à propos d'une - soumission que vous envisagez, faites-la d'abord examiner par - <literal>-hackers</literal> avant de l'intégrer. Il vaut mieux que l'on - vous fasse des remarques alors, qu'une fois qu'elle fera partie des - archives CVS. S'il vous arrive de soumettre quelque chose qui soulève - une controverse, envisagez éventuellement de faire marche arrière - en attendant que la question soit réglée. N'oubliez pas – avec - CVS, vous pourrez toujours remettre votre modification en - service.</para> - </sect1> - - <sect1 id="gnats"> - <title>GNATS</title> - - <para>Le Projet FreeBSD utilise <application>GNATS</application> pour - enregistrer les rapports de bogues et les demandes de modification. Si - vous effectuez une correction ou une modification décrite dans un - PR - <foreignphrase>Problem Report</foreignphrase>, rapport - d'anomalie - <application>GNATS</application>, veillez à - utiliser - <command>edit-pr <replaceable>numéro_de_pr</replaceable></command> - sur <hostid>freefall</hostid> pour le fermer. L'usage veut aussi que - vous preniez le temps de fermer les rapports ayant trait à vos - soumission, le cas échéant. Vous pouvez aussi utiliser vous-même - &man.send-pr.1; pour proposer les modifications dont vous pensez qu'il - faut les probablement les faire, après une revue plus extensive par - les autres participants.</para> - - <para>Vous trouverez plus d'informations sur - <application>GNATS</application> aux adresses suivantes :</para> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.cs.utah.edu/csinfo/texinfo/gnats/gnats.html">http://www.cs.utah.edu/csinfo/texinfo/gnats/gnats.html</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.FreeBSD.org/support.html">http://www.FreeBSD.org/support.html</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.FreeBSD.org/send-pr.html">http://www.FreeBSD.org/send-pr.html</ulink></para> - </listitem> - - <listitem> - <para>&man.send-pr.1;</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1 id="people"> - <title>Who's Who</title> - - <para>En dehors de Peter Wemm et John Polstra, les administrateurs des - archives, il y a d'autres membres du Projet FreeBSD que vous - rencontrerez probablement dans votre nouvelle fonction de - <foreignphrase>committer</foreignphrase>. Rapidement, et en aucun - cas exhaustivement, ce sont :</para> - - <variablelist> - <varlistentry> - <term>&a.asami;</term> - - <listitem> - <para>Est le reponsable du catalogue des logiciels portés, ce qui - signifie qu'il a le pouvoir de décision en ce qui concerne toute - modification aux logiciels portés et à leurs macros-instructions - de compilation. Il est aussi responsable la gestion des gels du - code entre deux versions.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.bde;</term> - - <listitem> - <para>Est l'<foreignphrase>Obersturmbahnfuhrer</foreignphrase> de la - Police du Style. Quand vous soumettez quelque chose que vous - auriez pu faire mieux, Bruce sera là pour vous le signaler. - Remerciez-le qu'il y ait quelqu'un pour le faire.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.dg;</term> - - <listitem> - <para>Est notre architecte principal et superviseur du système de - gestion de la mémoire virtuelle. Si vous envisagez une - modification de ce système, voyez cela avec David. Si vous êtes - pris dans une discussion âpre et insoluble avec un autre - participant à propos d'une modification envisagée (ce qui, - heureusement, ne se produit pas souvent), il peut aussi - occasionnellement être nécessaire de demander alors à David - de mettre sa casquette d'Architecte Principal et de prendre la - décision finale.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.jkh;</term> - - <listitem> - <para>Est le responsable des versions. Il a la charge de définir les - dates butées et de superviser le processus de mise en place de la - nouvelle version. Pendant les gels du code, il a aussi le pouvoir - de décision sur toutes les modifications sur la branche de code - qui est en cours de finalisation. S'il y a quelque chose que vous - voudriez voir reporter de <literal>-CURRENT</literal> dans - <literal>-STABLE</literal> (quelqu'intérêt que cela puisse avoir à - un moment donné), c'est aussi la personne à qui il faut en - parler.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.markm;</term> - <listitem> - <para>Mark est le responsable des archives CVS internationales pour - le code de cryptographie, sur - <hostid>internat.FreeBSD.org</hostid> en Afrique du Sud.</para> - - <para>Mark supervise la plupart du code de cryptographie ; si - vous vous y envisagez des mises à jour, parlez-en s'il vous plaît - d'abord à Mark.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.steve;</term> - - <listitem> - <para>Steve est le responsable non officiel de - <filename>/usr/src/bin</filename>. S'il y a quelque chose - d'important que vous voudriez y voir, vous devriez probablement - envisager d'abord cela avec Steve. Il est aussi administrateur des - “<foreignphrase>Problem Report</foreignphrase>”, en - coopération avec &a.phk;.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.brian;</term> - - <listitem> - <para>Maintient officiellement - <filename>/usr/bin/ppp</filename> et - <application>LPD</application>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>&a.wollman;</term> - - <listitem> - <para>Si vous avez besoin d'un conseil sur des points obscurs du - code réseau ou n'êtes pas certain d'une modification que vous - envisagez à ce sous-système, c'est avec Garrett qu'il faut en - discuter.</para> - </listitem> - </varlistentry> - </variablelist> - </sect1> - - <sect1 id="ssh.guide"> - <title>Introduction rapide à <application>SSH</application></title> - - <procedure> - <step> - <para>Mettez à jour et installez le logiciel porté - <application>ssh</application> dans - <filename>/usr/ports/security/ssh</filename> (il faut une version - 1.2.25 ou postérieure).</para> - </step> - - <step> - <para>Veillez à exécuter &man.ssh-agent.1; avant toute autre - application. Les utilisateurs de <application>X</application>, par - exemple, le font habituellement depuis leur fichier - <filename>.xsession</filename> ou - <filename>.xinitrc</filename>. Reportez-vous à &man.ssh-agent.1; - pour plus de détails.</para> - </step> - - <step> - <para>Générez une paire de clés avec &man.ssh-keygen.1;. Ces clés - seront créées dans le répertoire - <filename><envar>$HOME</envar>/.ssh</filename>.</para> - </step> - - <step> - <para>Copiez votre clé publique - (<filename><envar>$HOME</envar>/.ssh/identity.pub</filename>) - dans le fichier <filename>authorized_keys</filename> de votre - répertoire utilisateur sur <hostid>freefall</hostid> - (i.e. - <filename><envar>$HOME</envar>/.ssh/authorized_keys</filename>). - </para> - </step> - </procedure> - - <para>Vous devriez maintenant pouvoir utiliser &man.ssh-add.1; pour vous - authentifier à chaque début de session. Il vous demandera la phrase clé - pour votre clé privée, et l'enregistrera via votre agent - d'authentification (&man.ssh-agent.1;) de façon à ce que vous n'ayez - plus à la retaper à chaque fois.</para> - - <para>Testez en faisant quelque chose du style : <command>ssh - freefall.FreeBSD.org ls /usr</command>.</para> - - <para>Pour plus d'informations, reportez-vous à - <filename>/usr/ports/security/ssh</filename>, &man.ssh.1;, - &man.ssh-agent.1;, &man.scp.1;, et &man.ssh-keygen.1;.</para> - </sect1> - - <sect1> - <title>Régles à Suivre par les <foreignphrase>Committers</foreignphrase> - FreeBSD</title> - - <orderedlist> - <listitem> - <para>Respectez les autres - <foreignphrase>committers</foreignphrase>.</para> - </listitem> - - <listitem> - <para>Discutez de toute modification importante - <emphasis>avant</emphasis> intégration.</para> - </listitem> - - <listitem> - <para>Respectez les reponsables de la maintenance s'il y en a de - définis par la variable <makevar>MAINTAINER</makevar> du - <filename>Makefile</filename> ou dans le fichier - <filename>MAINTAINER</filename> au premier niveau de - l'arborescence.</para> - </listitem> - - <listitem> - <para>N'intervenez jamais directement sur les archives. Demandez au - reponsable de ces archives de le faire.</para> - </listitem> - - <listitem> - <para>Toute modification controversée doit, si le responsable de - la maintenance ou l'Architecte Principal le demande, être annulée - jusqu'à ce que la discussion soit terminée. Les modifications pour - des questions de sécurité peuvent être effectuées par l'Officier de - Sécurité, malgré les souhaits d'un responsable de la - maintenance.</para> - </listitem> - - <listitem> - <para>Les modifications doivent être faites dans - <literal>-current</literal> avant d'être reportées dans - <literal>-stable</literal> sauf autorisation expresse du - responsable des versions ou si elles ne s'appliquent pas à - <literal>-current</literal>. Toute modification non triviale ni - urgente doit rester au moins trois jours dans - <literal>-current</literal> pour être testée suffisamment avant - d'être reportée. Le responsable des versions a les mêmes - prérogatives sur la branche <literal>-stable</literal> que celles - décrites, pour ce qui concerne l'Architecte Principal, par le règle - #5.</para> - </listitem> - - <listitem> - <para>Ne vous disputez pas publiquement avec les autres - <foreignphrase>committers</foreignphrase> ; cela fait mauvais - effet. Si vous êtes en “profond” désaccord sur un point, - n'en discutez qu'en privé.</para> - </listitem> - - <listitem> - <para>Respectez tous les gels du code et lisez régulièrement la liste - de diffusion pour les <foreignphrase>committers</foreignphrase> pour - savoir quand il y en a.</para> - </listitem> - - <listitem> - <para>En cas de doute sur une procédure, renseignez-vous - d'abord !</para> - </listitem> - - <listitem> - <para>Testez vos modifications avant de les intégrer.</para> - </listitem> - </orderedlist> - - <para>Comme indiqué, enfreindre l'un de ces règles peut entraîner une - suspension provisoire, et, en cas de récidive, une suppression - permanente des privilèges de <foreignphrase>committers</foreignphrase>. - Trois membres ou plus de l'équipe de base, ou l'Architecte Principal et - un autre membre de l'équipe de base, peuvent, s'ils en sont d'accord, - suspendre temporairement ces privilèges jusqu'à ce que l'ensemble de - <literal>-core</literal> examine la question. En cas - d'<quote>urgence</quote> (un <foreignphrase>committer</foreignphrase> - endommageant les archives), une suspension provisoire peut aussi être - décidée par l'un des administrateurs des archives ou tout autre membre - de l'équipe de base qui se trouve être réveillé à ce moment-là. Seule la - totalité de l'équipe de base peut suspendre pour une durée importante - les droits d'un <foreignphrase>committer</foreignphrase>, ou les - retirer définitivement, cette dernière mesure n'étant en général prise - qu'après consultation avec les - <foreignphrase>committers</foreignphrase>. Le but de cette règle n'est - pas de faire de l'équipe de base une bande de dictateurs cruels qui - puissent disposer des <foreignphrase>committers</foreignphrase> comme de - cannettes vides, mais d'avoir une sorte de fusible pour le projet. Si - quelqu'un est sévèrement incontrôlable, il est important de pouvoir - réagir immédiatement, au lieu d'être paralysé par la discussion. Dans - tous les cas, le <foreignphrase>committers</foreignphrase> dont les - privilèges sont suspendus a le droit d'être “entendu”, c'est - à ce moment-là qu'il est décidé de la durée totale de la suspension. Il - peut aussi demander un révision de la décision après 30 jours et tous - les 30 jours ensuite (à moins que la durée totale de la suspension soit - inférieure à 30 jours). Quelqu'un à qui les privilèges ont été - définitivement retiré peut demander que son cas soit revu après 6 mois. - La procédure de révision est <emphasis>strictement - informelle</emphasis>, et, dans tous les cas, l'équipe de base se - réserve le droit de prendre en compte ou d'ignorer les demandes de - révision, si elle pense que sa décision initiale était la bonne.</para> - - <para>Pour toutes les autres aspects du fonctionnement du projet, l'équipe - de base est un sous-ensemble des - <foreignphrase>committers</foreignphrase> et est soumise aux - <emphasis>même</emphasis> règles. Ce n'est pas parce que quelqu'un - appartient à l'équipe de base qu'il est dispensé de suivre les - instructions que l'on vient de donner, les “pouvoirs - spéciaux” de l'équipe de base ne sont effectifs que lorsqu'elle - agit en tant que groupe, pas individuellement. - Individuellement, nous sommes tous d'abord des - <foreignphrase>committers</foreignphrase> et ensuite seulement membres - de l'équipe de base.</para> - - <sect2> - <title>Détails</title> - - <orderedlist> - <listitem> - <para>Respectez les autres - <foreignphrase>committers</foreignphrase>.</para> - - <para>Cela signifie que vous devez traiter les autres - <foreignphrase>committers</foreignphrase> en tant que groupe de - co-développeurs qu'ils sont en fait. Malgré nos tentatives - occasionnelles pour prouver le contraire, on ne devient pas - <foreignphrase>committer</foreignphrase> en étant stupide et - rien n'est plus irritant que d'être traité comme tel par un de vos - collaborateurs. Que nous apprécions toujours quelqu'un d'autre - ou pas (chacun a ses jours sans), nous devons malgré tout toujours - <emphasis>traiter</emphasis> les autres avec respect, sans quoi - c'est toute l'organisation de l'équipe qui se désagrège - rapidement.</para> - - <para>Etre capable de travailler ensemble à long terme est le plus - grand atout du projet, bien plus important que n'importe quel - série de modifications du code, et transformer les discussions à - propos du code en disputes qui affectent notre capacité à - travailler harmonieusement ensemble à long terme n'en vaut - vraiment pas la peine, quelque justification que l'on puisse - imaginer.</para> - - <para>Pour respecter cette règle, n'envoyez pas de courrier - électronique quand vous êtes en colère et ne vous comportez en - outre pas de façon à paraître inutilement aggressif aux autres. - Commencez par vous calmer et réfléchissez à la manière la plus - efficace de convaincre l(es) autre(s) personne(s) de la justesse - de votre point de vue. Ne partez pas sur les chapeaux de roues - pour vous sentir simplement immédiatement mieux au prix d'une - dispute à long terme. Non seulement c'est une mauvaise - “gestion des ressources”, mais les responsables du - projet sanctionneront sévérement les manifestations d'aggressivité - publiques et répétées, jusqu'à suspendre ou vous retirer - définitivement vos privilèges de - <foreignphrase>committer</foreignphrase>. Ce n'est pas une chose - qu'ils aiment le moins du monde faire, mais l'unité est la - priorité. Aucune dose de code ou de judicieux conseils ne s'y - mesure.</para> - </listitem> - - <listitem> - <para>Discutez de toute modification importante - <emphasis>avant</emphasis> intégration.</para> - - <para>Ce n'est pas dans les archives CVS que les modifications - doivent être intégrées pour validation ou discussion, cela doit - se faire d'abord sur les listes de dicussion et être intégré - ensuite lorsqu'on est arrivé à quelque chose qui approche du - consensus. Cela ne signifie pas que vous deviez demander la - permission avant de corriger chaque erreur évidente de syntaxe ou - d'orthographe dans une page de manuel, mais simplement que vous - devriez essayer de sentir quand vous envisagez une modification - qui n'est pas aussi triviale et qui demande à être discutée au - préalable. Les gens n'ont rien contre les modifications - d'envergure si le résultat en est quelque chose de nettement - meilleur que ce qu'ils avaient auparavant, mais ils n'aiment pas - être <emphasis>surpris</emphasis> par ces modifications. La - meilleure façon de vous assurer que vous allez dans le bon sens et - de faire valider votre code par un ou plusieurs autres - <foreignphrase>committers</foreignphrase>.</para> - - <para>En cas de doute, demandez une validation !</para> - </listitem> - - <listitem> - <para>Respectez les responsbales de la maintenance, s'il y en - a.</para> - - <para>De nombreuses parties de FreeBSD n'“appartiennent” - à personne, c'est-à-dire qu'il n'y aura personne pour pousser de - hauts cris si vous faites des modifications sur “leur” - terrain, mais il vaut mieux s'en assurer d'abord. Une de nos - convention est de mettre une ligne indiquant qui maintient dans le - <filename>Makefile</filename> du paquetage ou de la - sous-arborescence activement maintenue par une ou plusieurs - personnes voyez <ulink - url="http://www.FreeBSD.org/handbook/policies.html">http://www.FreeBSD.org/handbook/policies.html</ulink> - pour plus d'information à ce sujet. Quand il y a plusieurs - personnes qui maintiennent une même section de code, les - soumissions d'une de ces personnes sur ces sections doivent être - revues par au moins une des autres personnes qui la maintiennent. - Dans le cas où l'<quote>attribution</quote> n'est pas claire, - vous pouvez aussi consulter les messages de CVS pour les - fichiers concernés, pour voir si quelqu'un a travaillé dessus - récemment ou travaille de façon prédominante sur ce - domaine.</para> - - <para>Il y a d'autres parties de FreeBSD qui sont contrôlées par - quelqu'un qui gère tout un domaine de l'évolution de FreeBSD, - l'internationalisation ou le réseau par exemple. Reportez-vous à - <ulink - url="http://www.FreeBSD-fr.org/handbook/staff-who.html">http://www.FreeBSD.org/handbook/staff-who.html</ulink> - pour avoir plus d'informations à ce sujet.</para> - </listitem> - - <listitem> - <para>N'intervenez jamais directement sur les archives. Demandez à - un responsable des archives de le faire.</para> - - <para>C'est assez clair - vous n'avez pas le droit de - faire de modifications directement sur les archives, point. En cas - de difficultés, adressez-vous à l'un des responsables des - archives en envoyant un courrier électronique à - <email>cvs@FreeBSD.org</email> et attendez qu'ils corrigent le - problème et vous relancent. N'essayez pas de régler le problème - vous-même !</para> - - <para>Si vous envisagez de supprimer un étiquette ou d'en mettre une - nouvelle, ou bien d'importer du code sur nouvelle branche, il vous - sera peut-être utile de demander d'abord un avis. Nombreux sont - ceux qui se trompent en faisant cela les premières fois et cela - aboutit à la modification de nombreux fichiers et irrite les - utilisateurs de <application>CVSup/CTM</application> qui recoivent - tout à coup de nombreuses mises à jour inutiles.</para> - </listitem> - - <listitem> - <para>Toute modification controversée doit, si le responsable de - la maintenance ou l'Architecte Principal le demande, être annulée - jusqu'à ce que la discussion soit terminée. Les modifications pour - des questions de sécurité peuvent être effectuées par l'Officier - de Sécurité, malgré les souhaits d'un responsable de la - maintenance.</para> - - <para>Ce peut être dur à avaler en cas de conflit (quand chaque - partie est bien sûr convaincue qu'elle a raison) mais CVS permet - d'éviter de prolonger la dispute, il est bien plus facile de - revenir sur les modifications, d'attendre que tout le monde se - calme et d'essayer de voir quelle est la meilleure solution. - S'il s'avère que la modification était la bonne chose à faire, - elle peut-être facilement remise en service. Dans le cas contraire, - les utilisateurs n'auront pas eu à subir l'évolution erronnée le - temps que tout le monde ait débattu de sa pertinence. Il est très - rare que l'on ait à revenir sur des modifications archivées, parce - que la discussion met la plupart du temps en évidence les - interventions controversés ou non justifiées avant même qu'elles - n'aient été intégrées, mais dans les rares cas où cela se produit, - il faut revenir en arrière sans discuter de façon à ce que l'on - puisse immédiatement examiner s'il y avait erreur ou non.</para> - </listitem> - - <listitem> - <para>Les modifications doivent être faites dans - <literal>-current</literal> avant d'être reportées dans - <literal>-stable</literal> sauf autorisation expresse du - responsable des versions ou si elles ne s'appliquent pas à - <literal>-current</literal>. Toute modification non triviale ni - urgente doit rester au moins trois jours dans - <literal>-current</literal> pour être testée suffisamment avant - d'être reportée. Le responsable des versions a les mêmes - prérogatives sur la branche <literal>-stable</literal> que celles - décrites, pour ce qui concerne l'Architecte Principal, par le règle - #5</para> - - <para>C'est un autre point <quote>sans appel</quote> parce que c'est - l'ingénieur de version qui est en dernier lieu responsable (et - encaisse les coups) si une modification s'avère mal fondée. - Respectez s'il vous plaît cette règle et coopérez totalement - avec le responsable des versions pour ce qui concerne la branche - <literal>-stable</literal>. La gestion de la branche - <literal>-stable</literal> peut parfois paraître excessivement - conservatrice à un observateur occasionnel, mais rappelez vous que - c'est le principe même de <literal>-stable</literal> et que - <literal>-current</literal> suit d'autres règles. Il n'y a aucune - raison d'avoir une branche <literal>-current</literal> si toutes - les modifications vont immédiatement dans - <literal>-stable</literal>, sans pouvoir d'abord être testées par - les développeurs de <literal>-current</literal>, laissez donc - passer un peu de temps avant de les reporter dans - <literal>-stable</literal>, à moins que la modification ne soit - critique, urgente, ou suffisamment triviale pour rendre tout - test ultérieur superflu (correction d'ortographe dans les pages - de manuel, de bogue flagrant ou de faute de frappe, etc.) En - d'autres termes, faites preuve de bon sens.</para> - </listitem> - - <listitem> - <para>Ne vous disputez pas publiquement avec les autres - <foreignphrase>committers</foreignphrase> ; cela fait mauvais - effet. Si vous êtes en “profond” désaccord sur un point, - n'en discutez qu'en privé.</para> - - <para>Le projet a une image publique à conserver et cette image est - très importante pour nous tous, en particulier si nous voulons - continuer à attirer de nouveaux membres. Il y aura des situations - où, malgré tous les efforts de chacun pour rester mesurés, - certains perdront leur calme et laisserons leur colère s'exprimer, - et le mieux que nous puissions faire est d'essayer d'en minimiser - les effets jusqu'à ce que chacun se soit de nouveau calmé. Cela - signifie que vous ne devez ni laisser exprimer votre colère en - public, ni faire suivre de courriers privés sur des listes ou des - alias publics. Ce que les gens se disent entre eux est souvent - moins édulcoré que ce qu'ils disent en public, et ce type - d'échange n'y a donc pas sa place - cela ne peut - qu'envenimer une situation déjà regrettable. Si la personne qui - vous adresse des reproches prend au moins la précaution de le - faire en privé, ayez vous aussi la correction de le garder pour - vous. Si vous estimez avoir été injustement traité par un autre - développeur et que cela vous soucie, parlez-en à l'équipe de base - plutôt qu'en public. Nous ferons de notre mieux pour jouer les - médiateurs et ramener les choses au raisonnable. Quand la - discussion a trait à une modifications de code et que les - participants n'arrivent apparemment pas à se mettre d'accord, - l'équipe de base peut désigner une troisième partie ayant l'accord - mutuel pour résoudre le problème. Les autres personnes impliquées - doivent alors accepter de se plier aux décisions de cette - troisième partie.</para> - </listitem> - - <listitem> - <para>Respectez tous les gels du code et lisez régulièrement la - liste de diffusion pour les - <foreignphrase>committers</foreignphrase> pour savoir quand il y - en a.</para> - - <para>Soumettre des modifications pendant un gel du code est - vraiment une grave erreur et l'on attend des - <foreignphrase>committers</foreignphrase> qu'ils se tiennent au - courant de ce qui se passe avant de se remanifester après une - longue absence et soumettre 10 Mo de code accumulés pendant ce - temps. Les gens qui se comportent régulièrement de cette façon - verront leurs privilèges de - <foreignphrase>committers</foreignphrase> suspendus jusqu'à leur - retour du Joyeux Camp de Rééducation de FreeBSD que nous gérons - au Gröenland.</para> - </listitem> - - <listitem> - <para>En cas de doute sur une procédure, renseignez-vous - d'abord !</para> - - <para>De nombreuses erreurs sont commises parce que quelqu'un est - pressé et estime qu'il sait quelle est la meillleure façon de - faire quelque chose. Il y a des bonnes chances que vous ne sachiez - en fait pas comment faire ce que vous n'avez encore jamais fait et - que vous ayez vraiment besoin de demander d'abord sans quoi vous - allez vous mettre publiquement dans l'embarras. Il n'y a aucune - honte à demander “Comment diable fait-on cela ?”, - nous savons déjà que vous êtes quelqu'un d'intelligent, sans quoi - vous ne seriez pas - <foreignphrase>committer</foreignphrase>.</para> - </listitem> - - <listitem> - <para>Testez vos modifications avant de les intégrer.</para> - - <para>Cela peut paraître évident, mais si c'était vraiment le cas, - nous ne verrions probablement pas autant de cas où les gens ne le - font manifestement pas. Si vos modifications touchent le noyau, - vérifiez que vous pouvez toujours compiler et - <literal>GENERIC</literal> et <literal>LINT</literal>. Si vos - modifications s'appliquent ailleurs, assurez-vous que vous pouvez - toujours compiler l'ensemble du système - <command>make - world</command>. Si vous faites vos modifications sur une branche - donnée, veillez à tester vos modifications sur une machine qui - utilise cette version du système. Si votre modifications risque - de poser des problèmes sur une autre architecture matérielle, - veillez à tester sur toutes les architectures supportées. Nous - n'avons actuellement qu'x86 et Alpha, c'est donc assez facile à - faire. Si vous avez besoin de tester sur l'AXP, votre compte sur - <hostid role="fqdn">beast.FreeBSD.org</hostid> vous permet de - compiler et tester des binaires/noyaux/etc. sur Alpha. Quand - d'autres architectures seront ajoutées à la liste des - plates-formes supportées par FreeBSD, des ressources partagées - de test seront disponibles.</para> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Autres suggestions</title> - - <para>Quand vous intégrez des modifications de la documentation, - utilisez un correcteur orthographique avant de soumettre. Pour toutes - les documentations en SGML, vous devrirez aussi vérifier que vos - directives de formatage sont valides, avec un <command>make - lint</command>.</para> - - <para>Pour toutes les pages de manuel en ligne, servez-vous de - <command>manck</command> (au catalogue des logiciels portés) sur la - page pour vérifier que toutes les références croisées et noms de - fichiers sont corrects et que les <makevar>MKLINK</makevar>s - appropriés sont installés.</para> - </sect2> - </sect1> - - <sect1> - <title>Questions Fréquemment Posées propres aux logiciels portés</title> - - <qandaset> - <qandadiv> - <title>Importer un nouveau logiciel</title> - - <qandaentry> - <question> - <para>Comment faire pour importer un nouveau logiciel ?</para> - </question> - - <answer> - <para>Lisez s'il vous plaît d'abord la section sur la copie des - archives.</para> - - <para>Pour importer un nouveau logiciel, le plus facile est - d'utiliser la procédure <command>easy-import</command> sur - <hostid>freefall</hostid>. Elle vous posera quelques questions - et importera directement le logiciel dans le répertoire que vous - aurez indiqué. Elle a été écrite par &a.joerg;, envoyez-lui - s'il vous plaît un courrier électronique si vous avez des - questions à propos de <command>easy-import</command>.</para> - - <para>Il y a une chose qu'elle ne fera pas à votre place : - ajouter le logiciel au <filename>Makefile</filename> du - répertoire de niveau supérieur (catégorie). Il faudra le faire - vous-même.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Y'a-t-il d'autres choses qu'il faut que je sache quand - j'importe un nouveau logiciel ?</para> - </question> - - <answer> - <para>Vérifiez votre portage, pour vous assurez qu'il compile et - que le paquetage est correctement construit. Voici ce qu'il est - recommandé de faire :</para> - - <screen>&prompt.user; <userinput>make install</userinput> -&prompt.user; <userinput>make package</userinput> -&prompt.user; <userinput>make deinstall</userinput> -&prompt.user; <userinput>pkg_add <replaceable>le_paquetage_que_vous_venez_de_compiler</replaceable></userinput> -&prompt.user; <userinput>make deinstall</userinput> -&prompt.user; <userinput>make reinstall</userinput> -&prompt.user; <userinput>make package</userinput> - </screen> - - <para>Le chapitre - <ulink url="../handbook/porting.html">faire vous-même un - portage</ulink> du Manuel de Référence vous donnera des - instructions plus détaillées.</para> - - <para>Utilisez &man.portlint.1; pour vérifier la syntaxe du - portage. Il n'est pas indispensable d'éliminer la totalité des - messages d'avertissement, mais veillez à régler les problèmes - les plus évidents.</para> - - <para>Si le logiciel porté a été soumis par quelqu'un qui n'a - jamais collaboré au projet auparavant, ajoutez le nom de cette - personne à la section <citetitle pubwork="section">Autres - Collaborateurs</citetitle> du Manuel de Référence.</para> - - <para>Fermez le PR, si le portage résulte d'un PR. Pour fermer un - PR, il suffit d'exécuter <userinput>edit-pr - <replaceable>PR#</replaceable></userinput> sur - <hostid>freefall</hostid> et de modifier la valeur de la - variable <varname>state</varname> de <constant>open</constant> - en <constant>closed</constant>. On vous demandera d'entrer un - commentaire, et c'est tout.</para> - </answer> - </qandaentry> - </qandadiv> - - <qandadiv> - <title>Copies des archives</title> - - <qandaentry> - <question> - <para>Quand avons-nous besoin qu'une opération de copie soit faite - sur les archives ?</para> - </question> - - <answer> - <para>Quand vous voulez importer un logiciel en rapport avec un - autre logiciel déjà archivé dans un autre répertoire, envoyez - s'il vous plaît un courrier électronique au responsable des - logiciels portés pour lui demander son avis. - <wordasword>En rapport</wordasword> désigne ici une version - différente ou une version légèrement modifiée. En exemple, on - peut citer <filename>print/ghostscript*</filename> (versions - différentes) et <filename>x11-wm/windowmaker*</filename> - (version Anglaise et version internationalisée).</para> - - <para>Comme autre exemple, on peut citer le cas d'un logiciel porté - déplacé d'un sous-répertoire à un autre, ou d'une modification du - nom d'un répertoire parce que l'auteur a changé le nom de son - logiciel, bien qu'il dérive d'un logiciel déjà importé.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Quand n'avons-nous <emphasis>pas</emphasis> besoin q'une - opération de copie soit faite sur les archives ?</para> - </question> - - <answer> - <para>Quand il n'y a pas d'historique à conserver. Si un logiciel - est importé dans une catégorie erronnée et immédiatement - déplacé, il suffit d'un simple <command>cvs remove</command> de - l'ancien suivi d'un <command>cvs import</command> du - nouveau.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Que faut-il que je fasse ?</para> - </question> - - <answer> - <para>Envoyez un courrier électronique au responsable des - logiciels portés, qui fera la copie de l'ancien emplacement vers - le nouveau. Vous en serez averti, et l'on attendra alors de vous - que vous exécutiez les opérations suivantes :</para> - - <procedure> - <step> - <para><command>cvs remove</command> de l'ancien logiciel (si - besoin est),</para> - </step> - - <step> - <para>Correction du <filename>Makefile</filename> de niveau - supérieur (catégorie),</para> - </step> - - <step> - <para>Mise à jour de - <filename>CVSROOT/modules</filename></para> - </step> - - <step> - <para>Si d'autres logiciels dépendent de celui qui vient - d'être mis à jour, correction des lignes décrivant leurs - dépendendances dans leurs - <filename>Makefile</filename>s,</para> - </step> - - <step> - <para>Si le logiciel a changé de catégories, modification en - conséquence de la ligne <makevar>CATEGORIES</makevar> du - <filename>Makefile</filename> du logiciel.</para> - </step> - </procedure> - </answer> - </qandaentry> - </qandadiv> - - <qandadiv> - <title>Gel des logiciels portés</title> - - <qandaentry> - <question> - <para>Qu'est-ce qu'un <quote>gel des logiciels - portés</quote> ?</para> - </question> - - <answer> - <para>Avant livraison d'une nouvelle version, il est nécessaire de - limiter les interventions sur les archives des logiciels portés - pendant une courte période, le temps que les paquetages et la - version elle-même soient compilés. Cela pour garantir la - cohérence entre les différents composants de la version, c'est - cela que l'on appelle le <quote>gel des logiciels - portés</quote>.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Combien de temps dure ce gel ?</para> - </question> - - <answer> - <para>Habituellement deux à trois jours.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Qu'est-ce que cela signifie pour moi ?</para> - </question> - - <answer> - <para>Pendant le gel des logiciels portés, vous ne devez pas - soumettre quoi que ce soit dans l'arborescence des logiciels - portés, sauf autorisation explicite du responsable des - logiciels. <quote>Autorisation explicite</quote> correspond ici - à l'un des deux cas de figure suivants :</para> - - <itemizedlist> - <listitem> - <para>Vous avez posé la question au responsable des logiciels, - et il vous a répondu : <quote>Allez-y, - intégrez</quote>.</para> - </listitem> - - <listitem> - <para>Le responsable des ports vous a envoyé un courrier - électronique, soit directement, soit à la liste de - diffusion, pour signaler un problème à corriger sur le - logiciel.</para> - </listitem> - </itemizedlist> - - <para>Notez bien que vous n'êtes pas implicitement autorisé à - corriger un logiciel pendant un gel simplement parce qu'il ne - compile plus.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Comment suis-je averti du début du gel des - logiciels ?</para> - </question> - - <answer> - <para>Le responsable des logiciels portés enverra des messages - d'avertissement sur la &a.ports; et la &a.committers; pour - annoncer la mise en oeuvre prochaine d'une nouvelle version, - habituellement deux à trois semaines à l'avance. La date exacte - ne sera définitivement fixée que quelques jours avant. Cela - parce que le gel des logiciels doit être synchronisé avec la - mise en oeuvre de la version elle-même, et que ce n'est qu'à ce - moment-là que l'on sait exactement quand cette opération aura - lieu.</para> - - <para>Quand le gel commencera, il y aura bien sûr une nouvelle - annonce sur la &a.committers;.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Comment suis-je averti de la fin du gel des - logiciels ?</para> - </question> - - <answer> - <para>Quelques heures après la mise en place de la nouvelle - version, le responsable des logiciels enverra un courrier - électronique à la &a.ports; et à la &a.committers pour annoncer - la fin du gel des logiciels. Remarquez que la finalisation de la - version n'implique pas automatiquement la fin du gel. Nous - devons nous assurer qu'un problème de dernière minute ne demande - pas de reconstruction immédiate de la version.</para> - </answer> - </qandaentry> - </qandadiv> - - <qandadiv> - <title>Questions diverses</title> - - <qandaentry> - <question> - <para>Comment sais-je si un logiciel porté compile correctement ou - non ?</para> - </question> - - <answer> - <para>Commencez par consulter - <ulink url="http://bento.FreeBSD.org/~asami/errorlogs/">http://bento.FreeBSD.org/~asami/errorlogs/</ulink>. - Vous y trouverez les messages d'erreurs des dernières - compilations des logiciels portés sous - <literal>3-stable</literal> et - <literal>4-current</literal>.</para> - - <para>Néanmoins, il ne suffit pas qu'un logiciel n'y apparaisse - pas pour pouvoir dire qu'il compile correctement. (Une de ses - dépendances, par exemple, peut ne pas avoir compilé.) Voici les - répertoires de <hostid>bento</hostid>, n'hésitez pas à aller y - voir :</para> - - <programlisting> -/a/asami/portbuild/3/errors messages d'erreur de la dernière compilation de 3-stable - /logs tous les messages de la dernière compilation de 3-stable - /packages messages d'erreur sur les paquetages de la dernière compilation 3-stable - /bak/errors messages d'erreur de la dernière compilation intégrale de 3-stable - /bak/logs tous les messages de la dernière compilation de l'intégrale de 3-stable - /bak/packages messages d'erreur sur les paquetages de la dernière compilation intégrale de 3-stable - /4/errors messages d'erreur de la dernière compilation de 4-current - /logs tous les messages de la dernière compilation de 4-current - /packages messages d'erreur sur les paquetages de la dernière compilation 4-current - /bak/errors messages d'erreur de la dernière compilation intégrale de 4-current - /bak/logs tous les messages de la dernière compilation de l'intégrale de 4-current - /bak/packages messages d'erreur sur les paquetages de la dernière compilation intégrale de 4-current - </programlisting> - - <para>Essentiellement, si le logiciel apparait dans - <filename>packages</filename>, ou dans - <filename>logs</filename> mais pas dans - <filename>errors</filename>, il compile correctement. (Les - répertoires <filename>errors</filename> contiennent ce que vous - voyez sur la page Web.)</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>J'ai importé un nouveau logiciel. Dois-je l'ajouter au - fichier <filename>INDEX</filename> ?</para> - </question> - - <answer> - <para>Non. Le responsable des logiciels portés regénère - l'<filename>INDEX</filename> et l'intègre régulièrement aux - archives.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Y'a-t-il d'autres fichiers auxquels je ne dois pas - toucher ?</para> - </question> - - <answer> - <para>Tous les fichiers immédiatement dans - <filename>ports/</filename>, et tous les fichiers des - sous-répertoires dont le nom commence par une majuscule - (<filename>Mk</filename>, <filename>Tools</filename>, etc.). Le - responsable des logiciels est particulièrement susceptible pour - ce qui touche à <filename>ports/Mk/bsd.port.mk</filename>, n'y - touchez donc pas à moins que vous ne vouliez affronter son - courroux.</para> - </answer> - </qandaentry> - </qandadiv> - </qandaset> - </sect1> -</article> diff --git a/fr_FR.ISO8859-1/articles/ddwg/Makefile b/fr_FR.ISO8859-1/articles/ddwg/Makefile deleted file mode 100644 index 68714b471c..0000000000 --- a/fr_FR.ISO8859-1/articles/ddwg/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $Id: Makefile,v 1.1 2000-06-01 19:14:23 gioria Exp $ -# 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.ISO8859-1/articles/ddwg/article.sgml b/fr_FR.ISO8859-1/articles/ddwg/article.sgml deleted file mode 100644 index 012e35654a..0000000000 --- a/fr_FR.ISO8859-1/articles/ddwg/article.sgml +++ /dev/null @@ -1,1861 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $Id: article.sgml,v 1.1 2000-06-01 19:14:23 gioria Exp $ - 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>Le guide de l'auteur de pilotes de périphériques pour FreeBSD</title> - <authorgroup> - <author> - <firstname>Eric L.</firstname> - <surname>Hernes</surname> - </author> - </authorgroup> - &artheader.copyright; - <abstract> - <para><email>erich@rrnet.com</email></para> - <para>29 Mai 1996</para> - <para>Ce document décrit comment ajouter un module de gestion de -périphérique à FreeBSD. Il <emphasis>n'est pas</emphasis> destiné pour être un -cours d'instruction sur des modules de gestion de périphérique -d'Unix en général. Il est destiné pour les auteurs de module de -gestion de périphérique, au courant du modèle de module de gestion -de périphérique d'Unix, pour travailler sur FreeBSD. - </para> - &abstract.license; - &abstract.disclaimer; - &trans.a.dntt; - </abstract> - </artheader> - - -<sect1> -<title>Spécificité de FreeBSD2.x</title> - -<para>Dû aux changements de FreeBSD avec le temps, ce guide est -seulement précis en ce qui concerne FreeBSD 2.x. Un guide de -rechange pour FreeBSD 3.x et au-delà est en train d'être écrit. -Contactez Jeroen Ruigrok <email>asmodai@wxs.nl</email> si -vous voulez l'aider à ce sujet. -</para> -</sect1> - - -<sect1> -<title>Généralité</title> - -<para> <emphasis>Le noyau de FreeBSD est très bien -documenté, malheureusement il est entièrement écrit en `C'.</emphasis> -</para> -</sect1> - -<sect1> -<title>Types de pilotes de module de périphériques.</title> - -<sect2> -<title>Caractère</title> - -<sect3> -<title>Structures de données</title> - -<para>Structure <citerefentry><refentrytitle>cdevsw</refentrytitle></citerefentry></para> -</sect3> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>d_open()</function></title> -<para> -<function>d_open()</function> prend plusieurs arguments, la liste formelle ressemble à -quelque chose comme : -</para> - -<programlisting> -int -d_open(dev_t dev, int flag, int mode, struct proc *p) -</programlisting> - -<para><function>d_open()</function> est appelé à <emphasis>chaque</emphasis> ouverture du périphérique.</para> - -<para>L'argument <citerefentry><refentrytitle>dev</refentrytitle></citerefentry> contient le nombre majeur et mineur du -périphérique ouvert. Ils sont disponibles par les macros -<citerefentry><refentrytitle><function>major()</function></refentrytitle></citerefentry> et <citerefentry><refentrytitle><function>minor()</function></refentrytitle></citerefentry> -</para> - -<para>Les arguments <citerefentry><refentrytitle>flag</refentrytitle></citerefentry> et <citerefentry><refentrytitle>mode</refentrytitle></citerefentry> sont comme décrits sur -la page de manuel de -<ulink url="http://www.freebsd.org/cgi/man.cgi?open(2)">open</ulink>. -Il est recommandé que vous examiniez -ces derniers pour vous assurer des droits d'accès dans <sys/fcntl.h> -et faire ce qui est exigé. Par exemple si <citerefentry><refentrytitle>flag </refentrytitle></citerefentry> est -(O_NONBLOCK | O_EXLOCK) l'ouverture échouerait si il bloquait ou -si l'accès exclusif ne pouvait pas être accordé. -</para> - -<para> -L'argument <citerefentry><refentrytitle>p</refentrytitle></citerefentry> contient toutes les informations à propos du -processus actuel. -</para> -</sect4> - -<sect4> -<title><function>d_close()</function></title> -<para> <function>d_close()</function> prend la même liste d'argument que <function>d_open()</function>: -</para> - -<programlisting> -int -d_close(dev_t dev , int flag , int mode , struct proc *p) -</programlisting> - -<para><function>d_close()</function> est seulement appelé à la dernière fermeture de votre -périphérique (par périphérique mineur). Par exemple dans le fragment -suivant de code, <function>d_open()</function> est appelé 3 fois, mais <function>d_close()</function> -seulement une fois. -</para> - -<programlisting> - ... - fd1=open("/dev/mydev", O_RDONLY); - fd2=open("/dev/mydev", O_RDONLY); - fd3=open("/dev/mydev", O_RDONLY); - ... - <useful stuff with fd1, fd2, fd3 here> - ... - close(fd1); - close(fd2); - close(fd3); - ... -</programlisting> - -<para>Les arguments sont semblables à ceux décrits ci-dessus pour -<function>d_open()</function>. -</para> -</sect4> - -<sect4> -<title><function>d_read()</function> et <function>d_write()</function></title> - -<para><function>d_read()</function> et d_write prennent les listes suivantes d'argument: -</para> - -<programlisting> -int -d_read(dev_t dev, struct uio *uio, int flat) -int -d_write(dev_t dev, struct uio *uio, int flat) -</programlisting> - -<para> -Les points d'entrée de <function>d_read()</function> et de <function>d_write()</function> sont appelés quand -<ulink url="http://www.freebsd.org/cgi/man.cgi?read(2)">read</ulink> et -<ulink url="http://www.freebsd.org/cgi/man.cgi?write(2)">write</ulink> -sont appelés sur votre périphérique depuis l'espace utilisateur. Le transfert -des données peut être manipulé par la routine du noyau <function>uiomove()</function>. -</para> -</sect4> - -<sect4> -<title><function>d_ioctl()</function></title> - -<para> Sa liste d'argument est comme suit: -</para> -<programlisting> -int -d_ioctl(dev_t dev, int cmd, caddr_t arg, int flag, struct proc *p) -</programlisting> - -<para> -<function>d_ioctl()</function> est un fourre-tout pour les exécutions qui ne semblent -pas raisonnable dans un paradigme lecture/écriture. Le plus -célèbre de tout les ioctl est probablement celui sur des périphériques -tty, par le -<ulink url="http://www.freebsd.org/cgi/man.cgi?stty(1)">stty</ulink>. - -Le point d'entrée d'ioctl est appelé depuis l'<function>ioctl()</function> de -<filename>sys/kern/sys_generic.c</filename></para> - -<para> -Il y a quatre types différents d'ioctl qui peuvent être implémentés. - -<sys/ioccom.h> contient des macros pratiques de -pour définir ces ioctls. -</para> - -<itemizedlist> -<listitem> -<para><citerefentry><refentrytitle>_IO(g, n) </refentrytitle></citerefentry> pour les opérations de type contrôle. -</para> -</listitem> - -<listitem> -<para> -<citerefentry><refentrytitle>_IOR(g, n, t) </refentrytitle></citerefentry> pour des opérations lisant des données d'un -périphérique. -</para> -</listitem> - -<listitem> -<para> -<citerefentry><refentrytitle>_IOW(g, n, t) </refentrytitle></citerefentry> pour les opérations écrivant des données -sur un périphérique. -</para> -</listitem> - -<listitem> -<para> -<citerefentry><refentrytitle>_IOWR(g,n,t)</refentrytitle></citerefentry> pour les opérations écrivant sur un périphérique -puis lisent les données. -</para> -</listitem> -</itemizedlist> - - -<para> -Ici <citerefentry><refentrytitle>g </refentrytitle></citerefentry> se rapporte à un <emphasis>groupe </emphasis>/. C'est une valeur -de 8 bits, en général indicative du périphérique ; par exemple, 't' -est utilisé dans des ioctls de tty. <citerefentry><refentrytitle>n</refentrytitle></citerefentry> se -rapporte au nombre de l'ioctl dans le groupe. Sur SCO, ce seul nombre -dénote l'ioctl. <citerefentry><refentrytitle>t</refentrytitle></citerefentry> est le type de données qui sera -passé au pilote de périphérique; ceci est alors remis à un opérateur -<function>sizeof()</function> du noyau. L'appel système <function>ioctl()</function> fera soit un <function>copyin()</function> -soit un <function>copyout()</function> ou les deux à votre pilote, puis vous -renverra un pointeur à la structure de données dans l'argument -<citerefentry><refentrytitle>arg</refentrytitle></citerefentry> de l'appel d'd_ioctl. Actuellement la taille de -données est limitée à une page (4k sur l'i386). -</para> -</sect4> - -<sect4> -<title><function>d_stop()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>d_reset()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>d_devtotty()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>d_poll()</function> (3.0 et plus) ou <function>d_select()</function> (2.2)</title> - -<para>la liste d'argument de <function>d_poll()</function> est comme suit : -</para> - -<programlisting> -void -d_poll(dev_t dev, int events, struct proc *p) -</programlisting> - -<para> <function>d_poll()</function> est employé pour découvrir si un périphérique -est prêt pour les E/S. Par exemple, attendre que des données du réseau -soient dispnibles, ou que l'utilisateur presse une touche. -Cela correspond à un appel de <function>poll()</function> dans l'espace utilisateur. -</para> - -<para>L'appel à <function>d_poll()</function> devrait vérifier les événements -indiqués dans le masque d'évènement. Si aucun des événements demandés n'est -en activité, mais qu'elles pourraient devenir actif plus tard, il -devrait enregistrer ceci pour les actions futures du noyau. -<function>d_poll()</function> fait ceci en appelant <function>selrecord()</function> avec une structure -selinfo pour ce périphérique. La somme de toutes ces activités -ressemblent à quelque chose comme ceci: -</para> - -<programlisting> -static struct my_softc { - struct queue rx_queue; /* As example only - not required */ - struct queue tx_queue; /* As example only - not required */ - struct selinfo selp; /* Required */ -} my_softc[NMYDEV]; - -... - -static int -mydevpoll(dev_t dev, int events, struct proc *p) -{ - int revents = 0; /* Events we found */ - int s; - struct my_softc *sc = &my_softc[dev]; - - /* We can only check for IN and OUT */ - if ((events & (POLLIN|POLLOUT)) == 0) - return(POLLNVAL); - - s = <function>splhigh()</function>; - /* Writes are if the transmit queue can take them */ - if ((events & POLLOUT) && - !IF_QFULL(sc->tx_queue)) - revents |= POLLOUT; - /* ... while reads are OK if we have any data */ - if ((events & POLLIN) && - !IF_QEMPTY(sc->rx_queue)) - revents |= POLLIN; - if (revents == 0) - selrecord(p, &sc->selp); - splx(s); - return revents; -} -</programlisting> - -<para> <function>d_select()</function> est utilisé dans la version 2.2 et -précédentes de FreeBSD. Au lieu de 'events', il prend un simple -entier 'rw', qui peut être FREAD pour la lecture (comme dans -POLLIN ci-dessus), FWRITE pour l'écriture (comme dans POLLOUT ci-dessus), -et 0 pour 'exception' - lorsque quelque chose d'exceptionnel se produit, -comme une carte étant insérée ou retirée pour le pilote de -pccard. -</para> -<para>Pour 'select', le fragment correspondant à la description -ci-dessus ressembleraient à ceci: -</para> -<programlisting> -static int -mydevselect(dev_t dev, int rw, struct proc *p) -{ - int ret = 0; - int s; - struct my_softc *sc = &my_softc[dev]; - - s = <function>splhigh()</function>; - switch (rw) { - case FWRITE: - /* Writes are if the transmit queue can take them */ - if (!IF_QFULL(sc->tx_queue)) - ret = 1; - break; - case FREAD: - /* ... while reads are OK if we have any data */ - if (!IF_QEMPTY(sc->rx_queue)) - ret = 1; - break; - case 0: - /* This driver never get any exceptions */ - break; - } - if(ret == 0) - selrecord(p, &sc->selp); - splx(s); - return(revents); -} -</programlisting> -</sect4> - -<sect4> -<title><function>d_mmap()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>d_strategy()</function></title> - -<para> -La liste d'argument de <function>d_strategy()</function> est comme suit : -</para> - -<programlisting> -void -d_strategy(struct buf *bp) -</programlisting> - -<para><function>d_strategy()</function> est utilisé pour les périphériques utilisant -des E/S de type disperser-regrouper (<foreignphrase>scatter-gather</foreignphrase>). -C'est ce qu'il y a de plus courant dans un périphérique de bloc. -C'est sensiblement différent du modèle de système V, où seulement -le pilote de bloc fait une E/S de type disperser-regrouper. -Sous BSD, les périphériques de caractère sont parfois sommé d'exécuter -une E/S de type disperser-regrouper par l'intermédiaire des appels -systèmes <function>readv()</function> et <function>writev()</function>. -</para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> -<para></para> -</sect3> -</sect2> - -<sect2> -<title>Bloc</title> - -<sect3> -<title>Structures de données</title> -<para> Structure <citerefentry><refentrytitle>struct bdevsw</refentrytitle></citerefentry> -</para> - -<para> Structure <citerefentry><refentrytitle>struct buf</refentrytitle></citerefentry> -</para> -</sect3> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>d_open()</function></title> -<para> Décrit dans la section périphérique de caractère. -</para> -</sect4> - -<sect4> -<title><function>d_close()</function></title> -<para>Décrit dans la section périphérique de caractère. -</para> -</sect4> - -<sect4> -<title><function>d_strategy()</function></title> -<para>Décrit dans la section périphérique de caractère. -</para> -</sect4> - -<sect4> -<title><function>d_ioctl()</function></title> -<para>Décrit dans la section périphérique de caractère. -</para> -</sect4> - -<sect4> -<title><function>d_dump()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>d_psize()</function></title> -<para></para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> -<para></para> -</sect3> -</sect2> - -<sect2> -<title>Réseau</title> -<para>Structure <citerefentry><refentrytitle>struct ifnet</refentrytitle></citerefentry> -</para> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>if_init()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>if_output()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>if_start()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>if_done()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>if_ioctl()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>if_watchdog()</function></title> -<para></para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> -<para></para> -</sect3> -</sect2> - -<sect2> -<title>Protocole de communication</title> - -<sect3> -<title>Structures de données</title> -<para>Structure <citerefentry><refentrytitle>struct linesw</refentrytitle></citerefentry> -</para> -</sect3> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>l_open()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>l_close()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>l_read()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>l_write()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>l_ioctl()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>l_rint()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>l_start()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>l_modem()</function></title> -<para></para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> -<para></para> -</sect3> -</sect2> -</sect1> - -<sect1> -<title>Bus Supportés</title> - -<sect2> -<title>ISA -- Architecture Standard d'Industrie (<foreignphrase>Industry Standard -Architecture</foreignphrase></title> - -<sect3> -<title>Structures de données</title> - -<sect4> -<title>Structure <citerefentry><refentrytitle>struct isa_device</refentrytitle></citerefentry></title> - -<para>Cette structure est obligatoire, mais généralement elle est créée par -<ulink url="http://www.freebsd.org/cgi/man.cgi?config(8)">config</ulink> à partir du fichier de configuration de noyau. -Elle est requise pour chaque périphérique, c'est à dire que si vous avez -un pilote de périphérique contrôlant deux "serial boards", vous -aurez deux structures isa_device. Si vous construisez un périphérique -comme un LKM, vous devrez créer votre propre structure isa_device afin -de refléter votre configuration (lignes 85 - 131 de pcaudio_lkm.c). -Il y a un équivalence directe ebtre le fichier de configuration et la -structureisa_device. La définition de -<filename>/usr/src/sys/i386/isa/isa_device.h</filename> -est : -</para> - -<programlisting> -struct isa_device { - int id_id; /* device id */ - struct isa_driver *id_driver; - int id_iobase; /* base i/o address */ - u_short id_irq; /* interrupt request */ - short id_drq; /* DMA request */ - caddr_t id_maddr; /* physical i/o memory address on bus (if any)*/ - int id_msize; /* size of i/o memory */ - inthand2_t *id_intr; /* interrupt interface routine */ - int id_unit; /* unit number */ - int id_flags; /* flags */ - int id_scsiid; /* scsi id if needed */ - int id_alive; /* device is present */ -#define RI_FAST 1 /* fast interrupt handler */ - u_int id_ri_flags; /* flags for <function>register_intr()</function> */ - int id_reconfig; /* hot eject device support (such as PCMCIA) */ - int id_enabled; /* is device enabled */ - int id_conflicts; /* we're allowed to conflict with things */ - struct isa_device *id_next; /* used in isa_devlist in <function>userconfig()</function> */ -}; -</programlisting> -</sect4> - -<sect4> -<title>Structure <citerefentry><refentrytitle>struct isa_driver</refentrytitle></citerefentry></title> - -<para>Cette structure est définie dans -<filename>/usr/src/sys/i386/isa/isa_device.h</filename>, -est est requise pour chaque pilote de périphérique. La définition -est : -</para> - -<programlisting> -struct isa_driver { - int (*probe) __P((struct isa_device *idp)); - /* test whether device is present */ - int (*attach) __P((struct isa_device *idp)); - /* setup driver for a device */ - char *name; /* device name */ - int sensitive_hw; /* true if other probes confuse us */ -}; -</programlisting> - -<para> -C'est la structure employée par le code sondage/attachement -(<foreignphrase>probe/attach</foreignphrase>) pour -détecter et initialiser votre périphérique. Le membre <citerefentry><refentrytitle>probe</refentrytitle></citerefentry> -est un pointeur à votre fonction permettant de sonder les périphériques. -Le membre <citerefentry><refentrytitle>attach</refentrytitle></citerefentry> est un pointeur vers votre fonction d'attache. -Le membre <citerefentry><refentrytitle>name</refentrytitle></citerefentry> est un pointeur de caractère sur le nom de deux -ou trois lettres de votre pilote. -C'est le nom enregistré pendant le processus de -sondage/attachement (et probablement aussi dans -<ulink url="http://www.freebsd.org/cgi/man.cgi?lsdev(8)">lsdev</ulink>). -Le membre <citerefentry><refentrytitle>sensitive_hw </refentrytitle></citerefentry> est un -indicateur qui aide le code de sondage à déterminer l'ordre du sondage. -</para> - -<para> -Un instantiation typique est: -</para> - -<programlisting> -struct isa_driver mcddriver = { mcd_probe, mcd_attach, "mcd" }; -</programlisting> -</sect4> -</sect3> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>probe()</function></title> -<para><function>probe()</function> prend un pointeur sur une structure isa_device -comme argument et renvoie un int. La valeur de retour est ``zéro'' ou -``non-zéro '' quant à l'absence ou à la présence de votre périphérique. -Ce point d'entrée peut être déclaré comme -<citerefentry><refentrytitle>static</refentrytitle></citerefentry> parce qu'il -est accessible par l'intermédiaire du membre -<citerefentry><refentrytitle>probe</refentrytitle></citerefentry> de la structre -isa_driver. Cette fonction est destinée à -détecter la présence de votre périphérique seulement et ne devrait -faire aucune configuration du périphérique elle-même. -</para> -</sect4> - -<sect4> -<title><function>attach()</function></title> -<para> -<function>attach()</function> prend également un pointeur sur une structure -isa_device comme argument et -renvoie un int. La valeur de retour est également ``zéro'' ou -``non-zéro'' indiquant si l'attache a réussie. Cette fonction -est destinée pour faire n'importe quelle initialisation spéciale du -périphérique aussi bien que pour confirmer que le périphérique est utilisable. -Il devrait aussi être déclaré <citerefentry><refentrytitle>static</refentrytitle></citerefentry> parce qu'il est accesible -par le membre <citerefentry><refentrytitle>attach</refentrytitle></citerefentry> de la structure <citerefentry><refentrytitle>isa_driver </refentrytitle></citerefentry>. -</para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> -<para></para> -</sect3> -</sect2> - -<sect2> -<title>EISA -- Architecture Étendue de Standard industriel (<foreignphrase>Extended Industry Standard Architecture</foreignphrase>)</title> -<para></para> - -<sect3> -<title>Structures de données</title> - -<para>Structure <citerefentry><refentrytitle>struct eisa_dev </refentrytitle></citerefentry> </para> -<para>Structure <citerefentry><refentrytitle>struct isa_driver</refentrytitle></citerefentry> </para> -</sect3> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>probe()</function></title> -<para>Décrit dans la section de périphérique ISA.</para> -</sect4> - -<sect4> -<title><function>attach()</function></title> -<para>Décrit dans la section de périphérique ISA.</para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> -<para></para> -</sect3> -</sect2> - -<sect2> -<title>PCI -- Bus d'interconnexion Périphérique (<foreignphrase>Peripheral Computer -Interconnect</foreignphrase>)</title> - -<sect3> -<title>Structures de données</title> - -<para> Structure <citerefentry><refentrytitle>struct pci_device</refentrytitle></citerefentry> -</para> - -<itemizedlist> -<listitem> -<para>nom : Le nom abrégé du périphérique. -</para> -</listitem> - -<listitem> -<para> sonde: Contrôle si le pilote peut supporter un périphérique avec -ce type. L'étiquette peut être employée pour obtenir plus -d'information avec <function>pci_read_conf()</function>. Voir ci-dessous. Elle renvoie -une chaîne de caractères avec le nom du périphérique, ou un pointeur -NULL si le pilote ne peut pas supporter ce périphérique. -</para> -</listitem> - -<listitem> -<para> attache: Assigne une structure de contrôle et la prépare. Cette -fonction peut utiliser les fonctions de mapping PCI. Voir -ci-dessous. (identification de configuration) ou type. -</para> -</listitem> - -<listitem> -<para> compte: Un pointeur sur un compteur d'unité. Il est -employé par le configurateur de PCI pour assigner des numéros. -</para> -</listitem> -</itemizedlist> - -</sect3> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>probe()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>attach()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>shutdown()</function></title> -<para></para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> -<para></para> -</sect3> -</sect2> - -<sect2> -<title>SCSI -- <foreignphrase>Small Computer Systems Interface</foreignphrase></title> - -<sect3> -<title>Structure de données</title> - -<para>Structure <citerefentry><refentrytitle>struct scsi_adapter</refentrytitle></citerefentry> </para> -<para>Structure <citerefentry><refentrytitle>struct scsi_device</refentrytitle></citerefentry> </para> -<para>Structure <citerefentry><refentrytitle>struct scsi_ctlr_config</refentrytitle></citerefentry> </para> -<para>Structure <citerefentry><refentrytitle>struct scsi_device_config</refentrytitle></citerefentry> </para> -<para>Structure <citerefentry><refentrytitle>struct scsi_link</refentrytitle></citerefentry> </para> -</sect3> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>attach()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>init()</function></title> -<para></para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> -<para></para> -</sect3> -</sect2> - - -<sect2> -<title>PCCARD (PCMCIA)</title> - -<sect3> -<title>Structure de données</title> - -<para>Structure <citerefentry><refentrytitle>struct slot_cont</refentrytitle></citerefentry> </para> -<para>Structure <citerefentry><refentrytitle>struct pccard_drv</refentrytitle></citerefentry> </para> -<para>Structure <citerefentry><refentrytitle>struct pccard_dev</refentrytitle></citerefentry> </para> -<para>Structure <citerefentry><refentrytitle>struct slot</refentrytitle></citerefentry> </para> -</sect3> - -<sect3> -<title>Points d'entrée</title> - -<sect4> -<title><function>handler()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>unload()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>suspend()</function></title> -<para></para> -</sect4> - -<sect4> -<title><function>init()</function></title> -<para></para> -</sect4> -</sect3> - -<sect3> -<title>Fichiers d'en-tête</title> - -<para><pccard/slot.h> -</para> -</sect3> -</sect2> -</sect1> - - -<sect1> -<title>Incorporation dans le noyau</title> - -<para>Dans FreeBSD, le support des bus d'ISA et EISA est spécifique à -i386. Tandis que FreeBSD lui-même est actuellement -disponible sur la plateforme i386, un certain effort a été fait pour -faire du code portable pour PCI, PCCARD, et SCSI. Le code -spécifique à ISA et EISA réside dans -<filename>/usr/src/sys/i386/isa</filename> et -<filename>/usr/src/sys/i386/eisa</filename> respectivement. Le code indépendant de la -machine de PCI, de PCCARD, et de SCSI réside dans -<filename>/usr/src/sys/{pci,pccard,scsi</filename>}. Le code spécifique i386 quand à lui -réside dans <filename>/usr/src/sys/i386/{pci, pccard, scsi}</filename>. -</para> - - -<para> Dans FreeBSD, un module de gestion de périphérique peut -être soit sous forme binaire soit sous forme de sources. -Il n'y a aucun endroit ``officiel'' pour mettre les binaires des -pilotes de périphériques. les systèmes BSD utilise quelque -chose comme sys/i386/OBJ. Puisque la plupart des pilotes sont -distribués dans les sources, la discussion suivante se rapporte à un -source pilote de périphérique. -Des binaires de pilotes de périphériques sont -parfois fournis par les constructeurs de matériel qui souhaitent -maintenir les sources de manière propriétaire. -</para> - -<para> Un pilote typique a son code source sous forme de fichier C, -comme dev.c. Le pilote peut également inclure des -fichiers; devreg.h contient typiquement des déclarations publiques -de registre de périphérique, des macros, et d'autres -déclarations spécifique au pilote de périphérique. -Quelques pilotes appellent parfois ce fichier devvar.h. -Quelques pilotes, tels que -le dgb (pour le Digiboard PC/Xe), exigent que du microcode soit chargé -sur la carte. Pour le pilote de dgb le microcode est compilé -et reporté dans un fichier d'en-tête par -<ulink url="http://www.freebsd.org/cgi/man.cgi?file2c(1)">file2c</ulink>. -</para> - -<para> Si le pilote de périphérique a des structures de données et des -ioctl qui sont spécifiques au pilote de périphérique ou -périphérique, et -doivent être accessibles de l'espace-utilisateur, elles devraient -être mises dans un fichier d'en-tête séparé qui résidera dans -<filename>/usr/include/machine/</filename> (certaines de ces derniers résident dans -<filename>/usr/include/sys/</filename>). Ceux-ci est typiquement nommé quelque chose comme -ioctl_dev.h ou devio.h. -</para> - -<para> Si un pilote écrit depuis l'espace -d'utilisateur est identique à un périphérique qui existe déjà, il faut -prendre garde à utiliser les mêmes -interfaces ioctl et structures de données. Par exemple, de l'espace -utilisateur, un lecteur de SCSI CDROM devrait être identique à un -lecteur de cdrom IDE; ou une ligne série sur une carte -intelligente multiport (Digiboard, Cyclades...) devrait être identique -à un périphérique sio. Ces périphériques ont une interface définie -relativement bonne et devraient être utilisées. -</para> - -<para> Il y a deux méthodes pour lier un pilote dans le -noyau, statiquement et le modèle LKM. La première méthode -est assez standard à travers la famille *BSD. L'autre -méthode a été initialement développée par Sun (je crois), et a -été mis en application dans BSD en utilisant le modèle de Sun. -Je ne crois pas que l'implémentation actuelle utilise encore le moindre -code de Sun. -</para> - -<sect2> -<title>Modèle Standard</title> - -<para> Les étapes exigées pour ajouter votre pilote au -noyau standard de FreeBSD sont -</para> - -<itemizedlist> -<listitem> -<para>Ajout à la liste des pilotes de périphérique -</para> -</listitem> - -<listitem> -<para>Ajout d'une entrée au [bc]devsw -</para> -</listitem> - -<listitem> -<para>Ajout d'une entrée du pilote de périphérique au fichier de -configuration du noyau -</para> -</listitem> - -<listitem> -<para><ulink -url="http://www.freebsd.org/cgi/man.cgi?config(8)">config</ulink>, -compilation et installation du noyau -</para> -</listitem> - -<listitem> -<para>créer les fichiers spéciaux requis -</para> -</listitem> - -<listitem> -<para>redémarrage -</para> -</listitem> -</itemizedlist> - -<sect3> -<title>Ajout à la liste des pilotes de périphérique</title> - -<para>Le modèle standard pour ajouter un module de gestion de périphérique -au noyau de Berkeley est d'ajouter votre pilote à la liste des -périphériques connus. Cette liste dépend de l'architecture du CPU. -Si le périphérique n'est pas spécifique i386 -(PCCARD, PCI, SCSI), le fichier est dans -<filename>/usr/src/sys/conf/files</filename>. -Si le périphérique est spécifique i386, utilisez -<filename>/usr/src/sys/i386/conf/files.i386</filename>. Une ligne typique ressemblerait -à : -</para> - -<programlisting> -i386/isa/joy.c optional joy device-driver -</programlisting> - -<para>Le premier champ relatif est le chemin du module de pilote -par rapport à <filename>/usr/src/sys</filename>. -Pour le cas d'un pilote binaire, le chemin d'accès serait quelque -chose comme <filename>i386/OBJ/joy.o</filename>. -</para> - -<para>Le deuxième champ indique à -<ulink url="http://www.freebsd.org/cgi/man.cgi?config(8)">config(8)</ulink> -que c'est un pilote facultatif. Quelques -périphériques sont obligatoires pour que le noyau puisse être construit. -</para> - -<para> -Le troisième champ est le nom du périphérique. -</para> - -<para>Le quatrième champ indique à config que c'est un -pilote de périphérique (par opposition à juste facultatif). Ceci -dit à config de créer des entrées pour le périphérique dans dans -des structures de <filename>/usr/src/sys/compile/KERNEL/ioconf.c</filename>. -</para> - -<para>Il est également possible de créer un fichier -<filename>/usr/src/sys/i386/conf/files.KERNEL</filename> dont le contenu ignorera le -fichier par défaut files.i386, mais seulement pour le noyau ``KERNEL''. -</para> -</sect3> - -<sect3> -<title>Faire de la place dans conf.c</title> - -<para>Maintenant vous devez éditer <filename>/usr/src/sys/i386/i386/conf.c</filename> -pour faire une entrée pour votre pilote. Quelque part au début, -vous devez déclarer vos points d'entrée. L'entrée pour -le pilote du joystick est: </para> - -<programlisting> -#include "joy.h" -#if NJOY > 0 -d_open_t joyopen; -d_close_t joyclose; -d_rdwr_t joyread; -d_ioctl_t joyioctl; -#else -#define joyopen nxopen -#define joyclose nxclose -#define joyread nxread -#define joyioctl nxioctl -#endif -</programlisting> - -<para> -Cela définit vos points d'entrée, ou points d'entrée nuls qui -renverront ENXIO quand appelé (clause #else). -</para> - -<para> -Le fichier d'en-tête ``joy.h'' est automatiquement produit par -<ulink url="http://www.freebsd.org/cgi/man.cgi?config(8)">config</ulink> -quand l'arborescence de construction du noyau est -créé. Cela se réduit habituellement à une seule ligne comme : -</para> - -<programlisting> -#define NJOY 1 -</programlisting> - -<para> -ou -</para> -<programlisting> -#define NJOY 0 -</programlisting> - -<para> ce qui définit le nombre de vos périphériques dans votre noyau. -</para> - -<para> -Vous devez additionnellement ajouter un slot au cdevsw[&rsqb, ou -au bdevsw[&rsqb, selon que ce soit un périphérique caractère, -périphérique bloc, ou les deux si c'est un périphérique bloc -avec une interface brute. L'entrée pour le pilote du joystick -est: -</para> - -<programlisting> -/* open, close, read, write, ioctl, stop, reset, ttys, select, mmap, strat */ -struct cdevsw cdevsw[] = -{ - ... - { joyopen, joyclose, joyread, nowrite, /*51*/ - joyioctl, nostop, nullreset, nodevtotty,/*joystick */ - seltrue, nommap, NULL}, - ... -} -</programlisting> - -<para> - L'ordre est ce qui détermine le nombre majeur de votre -périphérique. C'est pourquoi il y aura toujours une entrée -pour votre pilote, que ce soit des points d'entrée nuls, -ou des points d'entrée actuels. Il est probablement intéressant de -noter que c'est -sensiblement différent de SCO et d'autres dérivés du système V, où -n'importe quel périphérique (dans la théorie) peut avoir n'importe -quel nombre majeur. C'est en grande partie un avantage sur FreeBSD, -sur la manière dont les fichiers spéciaux de périphérique sont créés. -Nous reviendrons en détail sur ceci plus tard. -</para> -</sect3> - -<sect3> -<title>Ajout de votre périphérique dans le fichier de configuration.</title> - -<para> Ceci ajoute simplement une ligne décrivant votre périphérique. La -ligne de description du joystick est : -<programlisting> -device joy0 at isa? port "IO_GAME" -</programlisting> -Ceci indique que nous avons un -périphérique appelé ``joy0'' sur le bus ISA en utilisant -le port E/S ``IO_GAME'' (IO_GAME est une macro définie dans -<filename>/usr/src/sys/i386/isa/isa.h</filename>). -</para> - -<para> -Une entrée légèrement plus compliquée est pour le pilote ``ix'' : - -<programlisting> -device ix0 at isa? port 0x300 net irq 10 iomem 0xd0000 iosiz 32768 -vector ixintr -</programlisting> - -Ceci indique que nous avons un périphérique appelé -`ix0 ' sur le bus ISA. Il utilise le port E/S 0x300. Son -interruption sera masqué par d'autres périphériques dans la classe -réseau. Il utilise l'interruption 10. Il utilise 32k de mémoire -partagée à l'adresse physique 0xd0000. Il le définit également -son pilote d'interruption comme étant ``<function>ixintr()</function>'' -</para> -</sect3> - -<sect3> -<title><ulink url="http://www.freebsd.org/cgi/man.cgi?config(8)">config</ulink> -du noyau.</title> - -<para> Maintenant avec notre fichier de configuration en main, -nous pouvons créer un répertoire de compilation du noyau. Cela peut être -fait en tapant : -<programlisting> -# config KERNEL -</programlisting> - -où KERNEL est le nom de votre fichier de configuration. -La configuration crée un arbre de compilation -pour votre noyau dans <filename>/usr/src/sys/compile/KERNEL</filename>. Elle crée le fichier -makefile, quelques fichiers C, et quelques fichiers H avec des -macros définissant le nombre de chaque périphérique à inclure dans votre -votre noyau. -</para> - -<para> -Maintenant vous pouvez aller dans le répertoire de compilation et -construire votre noyau. À chaque fois que vous lancerez config, votre -arbre de construction précédent sera retiré, à moins que vous ne lancez -config avec un -n. Si vous avez configuré et compilé un noyau GENERIC, -vous pouvez faire un ``make links'' afin d'éviter de compiler certains -fichiers à chaque itération. Typiquement, je lance : -<programlisting> -# make depend links all -</programlisting> -suivi d'un ``make install'' quand le noyau me convient. -</para> -</sect3> - -<sect3> -<title>Créer les fichiers spéciaux de périphériques</title> - -<para> Sur FreeBSD, vous avez la responsabilité de faire vos propres fichiers -spéciaux -de périphérique. Le -nombre majeur de votre périphérique est déterminé par le nombre de -slots dans le commutateur de périphérique. Le nombre mineur est -dépendant du pilote, naturellement. Vous pouvez -soit exécuter mknod depuis la ligne de commande, soit liasser faire le -travail à <filename>/dev/MAKEDEV.local</filename>, ou même -<filename>/dev/MAKEDEV</filename>. -Je crée parfois un script MAKEDEV.dev qui peut être soit lancé -de manière autonome soit collé dans <filename>/dev/MAKEDEV.local</filename>. -</para> -</sect3> - -<sect3> -<title>Redémarrage</title> -<para> C'est la partie facile. Il y a un -certain nombre de méthodes pour faire ceci, reboot, fastboot, -shutdown - r, couper le courant, etc. Au démarrage, vous -devriez voir votre XX<function>probe()</function> appelé, et si tout marche, -votre <function>attach()</function> aussi. -</para> -</sect3> -</sect2> - -<sect2> -<title>Module du noyau à chargement dynamique (LKM)</title> - -<para>Il n'y a vraiment aucune procédure définie pour écrire un pilote de -LKM. Ce qui suit est ma propre conception après expérimentation -avec l'interface de périphérique LKM et en regardant le modèle standard -de module de gestion de périphérique, c'est une manière d'ajouter une -interface LKM à un pilote existant sans toucher aux sources (ou binaire) -initiaux de pilote . On recommande cependant, -que si vous projetez de distribuer les sources de votre pilote, -que les parties spécifiques LKM devraient faire partie du pilote -lui-même, compilé de manière conditionnelle par la macro LKM -(c.-à-d. #ifdef LKM). -</para> - -<para> -Cette section se concentrera sur la manière d'écrire la partie spécifique -LKM du pilote. Nous supposerons que nous avons écrit un -pilote qui atterrira dans le modèle standard de -gestion de périphérique, que nous voudrions maintenant mettre en -application comme étant LKM. Nous utiliserons le pilote de pcaudio -comme pilote d'exemple, et développerons une entrée LKM. La -source et le fichier makefile pour le LKM pcaudio , ``pcaudio_lkm.c'' -et ``Makefile'', devraient être dans placé <filename>/usr/src/lkm/pcaudio</filename>. -Ce qui suit est le code commenté de pcaudio_lkm.c. -</para> - -<para> -Lignes 17 - 26 -</para> - -<para> -Ceci inclut le fichier ``pca.h'' et fait une compilation conditionnelle -du reste de LKM suivant que vous avez défini ou non le pilote de -périphérique pcaudio. -Cela imite le comportement de config. Dans un pilote de -périphérique standard, -<ulink url="http://www.freebsd.org/cgi/man.cgi?config(8)">config</ulink> -produit le fichier pca.h depuis le nombre de périphériques pca -le fichier de config. </para> - -<programlisting> - 17 /* - 18 * figure out how many devices we have.. - 19 */ - 20 - 21 #include "pca.h" - 22 - 23 /* - 24 * if we have at least one ... - 25 */ - 26 #if NPCA > 0 -</programlisting> - -<para> -Lignes 27 - 37 -</para> - -<para> -Les fichiers d'en-tête requis depuis divers répertoire d'inclusion. -</para> - -<programlisting> - 27 #include <sys/param.h> - 28 #include <sys/systm.h> - 29 #include <sys/exec.h> - 30 #include <sys/conf.h> - 31 #include <sys/sysent.h> - 32 #include <sys/lkm.h> - 33 #include <sys/errno.h> - 34 #include <i386/isa/isa_device.h> - 35 #include <i386/isa/isa.h> - 36 - 37 -</programlisting> - -<para> -Lignes 38 - 51 -</para> - -<para>déclarent vos points d'entrée comme externs . -</para> - -<programlisting> - 38 /* - 39 * declare your entry points as externs - 40 */ - 41 - 42 extern int pcaprobe(struct isa_device *); - 43 extern int pcaattach(struct isa_device *); - 44 extern int pcaopen(dev_t, int, int, struct proc *); - 45 extern int pcaclose(dev_t, int, int, struct proc *); - 46 extern int pcawrite(dev_t, struct uio *, int); - 47 extern int pcaioctl(dev_t, int, caddr_t); - 48 extern int pcaselect(dev_t, int, struct proc *); - 49 extern void pcaintr(struct clockframe *); - 50 extern struct isa_driver pcadriver; - 51 -</programlisting> - -<para> -Lignes 52 - 70 -</para> - -<para> -Cela crée la table d'entrée de commutateur de périphérique pour -votre pilote. Cette table est en gros entièrement mise dans le -système de commutation de périphériques à l'emplacement indiqué par -votre nombre majeur. Dans le modèle standard, c'est dans -<filename>/usr/src/sys/i386/i386/conf.c</filename>. -NOTE: vous ne pouvez pas sélectionner -un nombre majeur de périphérique plus grand que ce qui existe dans -conf.c, par exemple -il y a 67 slots pour des périphériques caractère, vous ne popuvez pas -utiliser un périphérique (caractère) de numéro majeur 67 ou -plus, sans avoir d'abord réservé de l'espace dans conf.c. -</para> - -<programlisting> - 52 /* - 53 * build your device switch entry table - 54 */ - 55 - 56 static struct cdevsw pcacdevsw = { - 57 (d_open_t *) pcaopen, /* open */ - 58 (d_close_t *) pcaclose, /* close */ - 59 (d_rdwr_t *) enodev, /* read */ - 60 (d_rdwr_t *) pcawrite, /* write */ - 61 (d_ioctl_t *) pcaioctl, /* ioctl */ - 62 (d_stop_t *) enodev, /* stop?? */ - 63 (d_reset_t *) enodev, /* reset */ - 64 (d_ttycv_t *) enodev, /* ttys */ - 65 (d_select_t *) pcaselect, /* select */ - 66 (d_mmap_t *) enodev, /* mmap */ - 67 (d_strategy_t *) enodev /* strategy */ - 68 }; - 69 - 70 -</programlisting> - -<para> -Lignes 71 - 131 -</para> -<para> -cette section est analogue à la déclaration de fichier de configuration -de votre périphérique. Les membres de la structure isa_device sont -remplis grace à ce qu'il connait de votre périphérique, -port E/S, segment partagé de mémoire, etc... -Nous n'aurons probablement jamais un besoin de deux périphériques -pcaudio dans le noyau, mais cet exemple montre comment -périphériques multiples peuvent être supportés. -</para> - -<programlisting> - 71 /* - 72 * this lkm arbitrarily supports two - 73 * instantiations of the pc-audio device. - 74 * - 75 * this is for illustration purposes - 76 * only, it doesn't make much sense - 77 * to have two of these beasts... - 78 */ - 79 - 80 - 81 /* - 82 * these have a direct correlation to the - 83 * config file entries... - 84 */ - 85 struct isa_device pcadev[NPCA] = { - 86 { - 87 11, /* device id */ - 88 &pcadriver, /* driver pointer */ - 89 IO_TIMER1, /* base io address */ - 90 -1, /* interrupt */ - 91 -1, /* dma channel */ - 92 (caddr_t)-1, /* physical io memory */ - 93 0, /* size of io memory */ - 94 pcaintr , /* interrupt interface */ - 95 0, /* unit number */ - 96 0, /* flags */ - 97 0, /* scsi id */ - 98 0, /* is alive */ - 99 0, /* flags for register_intr */ - 100 0, /* hot eject device support */ - 101 1 /* is device enabled */ - 102 }, - 103 #if NPCA >1 - 104 { - 105 - 106 /* - 107 * these are all zeros, because it doesn't make - 108 * much sense to be here - 109 * but it may make sense for your device - 110 */ - 111 - 112 0, /* device id */ - 113 &pcadriver, /* driver pointer */ - 114 0, /* base io address */ - 115 -1, /* interrupt */ - 116 -1, /* dma channel */ - 117 -1, /* physical io memory */ - 118 0, /* size of io memory */ - 119 NULL, /* interrupt interface */ - 120 1, /* unit number */ - 121 0, /* flags */ - 122 0, /* scsi id */ - 123 0, /* is alive */ - 124 0, /* flags for register_intr */ - 125 0, /* hot eject device support */ - 126 1 /* is device enabled */ - 127 }, - 128 #endif - 129 - 130 }; - 131 -</programlisting> - -<para> -Lignes 132 - 139 -</para> - -<para> -Ceci appelle la macro MOD_DEV du préprocesseur C, qui -installe un module de gestion de périphérique de LKM, par -opposition à un système de fichiers LKM, ou un appel système de LKM. -</para> - -<programlisting> - 132 /* - 133 * this macro maps to a function which - 134 * sets the LKM up for a driver - 135 * as opposed to a filesystem, system call, or misc - 136 * LKM. - 137 */ - 138 MOD_DEV("pcaudio_mod", LM_DT_CHAR, 24, &pcacdevsw); - 139 -</programlisting> - -<para> -Lignes 140 - 168 -</para> - -<para> -c'est la fonction qui sera appelée lorsque le pilote sera -chargé. Cette fonction essaye de fonctionner comme -<filename>/sys/i386/isa/isa.c</filename> qui fait les appels de probe/attach pour un -pilote au moment du redémarrage. La plus grande astuce ici est qu'il -met en correspondance l'adresse physique du segment partagé de mémoire, qui est -indiqué dans la structure isa_device à une adresse virtuelle du noyau. -Normalement, l'adresse physique est mise dans le fichier de configuration -qui construit la structure isa_device dans -<filename>/usr/src/sys/compile/KERNEL/ioconf.c</filename>. La séquence probe/attach de -<filename>/usr/src/sys/isa/isa.c</filename> traduit l'adresse physique en une virtuelle de -sorte que dans les sous-programmes de probe/attach vous puissiez -faire des choses comme -</para> -<programlisting> -(int *)id->id_maddr = something; -</programlisting> -<para> et se réfère juste au segment partagé de mémoire -par l'intermédiaire de pointeurs. -</para> - -<programlisting> - 140 /* - 141 * this function is called when the module is - 142 * loaded; it tries to mimic the behavior - 143 * of the standard probe/attach stuff from - 144 * isa.c - 145 */ - 146 int - 147 <function>pcaload()</function>{ - 148 int i; - 149 uprintf("PC Audio Driver Loaded\n"); - 150 for (i=0; i<NPCA; i++){ - 151 /* - 152 * this maps the shared memory address - 153 * from physical to virtual, to be - 154 * consistent with the way - 155 * /usr/src/sys/i386/isa.c handles it. - 156 */ - 157 pcadev[i].id_maddr -=0xa0000; - 158 pcadev[i].id_maddr += atdevbase; - 159 if ((*pcadriver.probe)(pcadev+i)) { - 160 (*(pcadriver.attach))(pcadev+i); - 161 } else { - 162 uprintf("PC Audio Probe Failed\n"); - 163 return(1); - 164 } - 165 } - 166 return 0; - 167 } - 168 -</programlisting> - -<para>Lignes 169 - 179 -</para> - -<para>c'est la fonction appelée quand votre pilote n'est pas -chargé; il affiche juste un message à cet effet. -</para> - -<programlisting> - 169 /* - 170 * this function is called - 171 * when the module is unloaded - 172 */ - 173 - 174 int - 175 <function>pcaunload()</function>{ - 176 uprintf("PC Audio Driver Unloaded\n"); - 177 return 0; - 178 } - 179 -</programlisting> - -<para>Lignes 180 - 190 -</para> - -<para>c'est le point d'entrée qui est indiqué sur la ligne de commande -de modload. Par convention il est nommé <dev>_mod. C'est -ainsi qu'il est défini dans bsd.lkm.mk, le makefile qui -construit le LKM. Si vous nommez votre module suivant cette -convention, vous pouvez faire ``make load'' et ``make unload'' -de /usr/src/lkm/pcaudio.</para> - -<para>Note : Il y a eu <emphasis>tellement</emphasis> de révisions entre la version 2.0 et -2.1. Il peut ou ne peut ne pas être possible d'écrire -un module qui est portable pour chacune des trois versions. -</para> - - -<programlisting> - 180 /* - 181 * this is the entry point specified - 182 * on the modload command line - 183 */ - 184 - 185 int - 186 pcaudio_mod(struct lkm_table *lkmtp, int cmd, int ver) - 187 { - 188 DISPATCH(lkmtp, cmd, ver, pcaload, pcaunload, nosys); - 189 } - 190 - 191 #endif /* NICP > 0 */ -</programlisting> -</sect2> - -<sect2> -<title>Idiosyncrasies du type périphérique</title> - -<sect3> -<title>Caractère</title> -<para></para> -</sect3> - -<sect3> -<title>Bloc</title> -<para></para> -</sect3> - -<sect3> -<title>Réseau</title> -<para></para> -</sect3> - -<sect3> -<title>Line discipline</title> -<para></para> -</sect3> -</sect2> - -<sect2> -<title>Idiosyncrasies du type bus</title> - -<sect3> -<title>ISA</title> -<para></para> -</sect3> - -<sect3> -<title>EISA</title> -<para></para> -</sect3> - -<sect3> -<title>PCI</title> -<para></para> -</sect3> - -<sect3> -<title>SCSI</title> -<para></para> -</sect3> - -<sect3> -<title>PCCARD</title> -<para></para> -</sect3> -</sect2> -</sect1> - - -<sect1> -<title>Support du noyau</title> - -<sect2> -<title>Structures de données</title> - -<sect3> -<title>Structure <citerefentry><refentrytitle>struct kern_devconf</refentrytitle></citerefentry></title> - -<para>Cette structure contient quelques informations sur l'état du -périphérique et de son pilote. Elle est définie dans -<filename>/usr/src/sys/sys/devconf.h</filename> comme ci-dessous : -</para> - -<programlisting> -struct devconf { - char dc_name[MAXDEVNAME]; /* name */ - char dc_descr[MAXDEVDESCR]; /* description */ - int dc_unit; /* unit number */ - int dc_number; /* unique id */ - char dc_pname[MAXDEVNAME]; /* name of the parent device */ - int dc_punit; /* unit number of the parent */ - int dc_pnumber; /* unique id of the parent */ - struct machdep_devconf dc_md; /* machine-dependent stuff */ - enum dc_state dc_state; /* state of the device (see above) */ - enum dc_class dc_class; /* type of device (see above) */ - size_t dc_datalen; /* length of data */ - char dc_data[1]; /* variable-length data */ -}; -</programlisting> -</sect3> - -<sect3> -<title>Structure <citerefentry><refentrytitle>struct proc</refentrytitle></citerefentry></title> - -<para> Cette structure contient toutes les informations sur un processus. -Elle est dans définie <filename>/usr/src/sys/sys/proc.h</filename>: -</para> - -<programlisting> -/* - * Description of a process. - * - * This structure contains the information needed to manage a thread of - * control, known in UN*X as a process; it has references to -substructures - * containing descriptions of things that the process uses, but may -share - * with related processes. The process structure and the substructures - * are always addressable except for those marked "(PROC ONLY)" below, - * which might be addressable only on a processor on which the process - * is running. - */ -struct proc { - struct proc *p_forw; /* Doubly-linked run/sleep queue. */ - struct proc *p_back; - struct proc *p_next; /* Linked list of active procs */ - struct proc **p_prev; /* and zombies. */ - - /* substructures: */ - struct pcred *p_cred; /* Process owner's identity. */ - struct filedesc *p_fd; /* Ptr to open files structure. */ - struct pstats *p_stats; /* Accounting/statistics (PROC ONLY). */ - struct plimit *p_limit; /* Process limits. */ - struct vmspace *p_vmspace; /* Address space. */ - struct sigacts *p_sigacts; /* Signal actions, state (PROC ONLY). */ - -#define p_ucred p_cred->pc_ucred -#define p_rlimit p_limit->pl_rlimit - - int p_flag; /* P_* flags. */ - char p_stat; /* S* process status. */ - char p_pad1[3]; - - pid_t p_pid; /* Process identifier. */ - struct proc *p_hash; /* Hashed based on p_pid for kill+exit+... */ - struct proc *p_pgrpnxt; /* Pointer to next process in process group. */ - struct proc *p_pptr; /* Pointer to process structure of parent. */ - struct proc *p_osptr; /* Pointer to older sibling processes. */ - -/* The following fields are all zeroed upon creation in fork. */ -#define p_startzero p_ysptr - struct proc *p_ysptr; /* Pointer to younger siblings. */ - struct proc *p_cptr; /* Pointer to youngest living child. */ - pid_t p_oppid; /* Save parent pid during ptrace. XXX */ - int p_dupfd; /* Sideways return value from fdopen. XXX */ - - /* scheduling */ - u_int p_estcpu; /* Time averaged value of p_cpticks. */ - int p_cpticks; /* Ticks of cpu time. */ - fixpt_t p_pctcpu; /* %cpu for this process during p_swtime */ - void *p_wchan; /* Sleep address. */ - char *p_wmesg; /* Reason for sleep. */ - u_int p_swtime; /* Time swapped in or out. */ - u_int p_slptime; /* Time since last blocked. */ - - struct itimerval p_realtimer; /* Alarm timer. */ - struct timeval p_rtime; /* Real time. */ - u_quad_t p_uticks; /* Statclock hits in user mode. */ - u_quad_t p_sticks; /* Statclock hits in system mode. */ - u_quad_t p_iticks; /* Statclock hits processing intr. */ - - int p_traceflag; /* Kernel trace points. */ - struct vnode *p_tracep; /* Trace to vnode. */ - - int p_siglist; /* Signals arrived but not delivered. */ - - struct vnode *p_textvp; /* Vnode of executable. */ - - char p_lock; /* Process lock (prevent swap) count. */ - char p_pad2[3]; /* alignment */ - -/* End area that is zeroed on creation. */ -#define p_endzero p_startcopy - -/* The following fields are all copied upon creation in fork. */ -#define p_startcopy p_sigmask - - sigset_t p_sigmask; /* Current signal mask. */ - sigset_t p_sigignore; /* Signals being ignored. */ - sigset_t p_sigcatch; /* Signals being caught by user. */ - - u_char p_priority; /* Process priority. */ - u_char p_usrpri; /* User-priority based on p_cpu and p_nice. */ - char p_nice; /* Process "nice" value. */ - char p_comm[MAXCOMLEN+1]; - - struct pgrp *p_pgrp; /* Pointer to process group. */ - - struct sysentvec *p_sysent; /* System call dispatch information. */ - - struct rtprio p_rtprio; /* Realtime priority. */ -/* End area that is copied on creation. */ -#define p_endcopy p_addr - struct user *p_addr; /* Kernel virtual addr of u-area (PROC ONLY). */ - struct mdproc p_md; /* Any machine-dependent fields. */ - - u_short p_xstat; /* Exit status for wait; also stop signal. */ - u_short p_acflag; /* Accounting flags. */ - struct rusage *p_ru; /* Exit information. XXX */ -}; -</programlisting> -</sect3> - -<sect3> -<title>Structure <citerefentry><refentrytitle>struct buf</refentrytitle></citerefentry></title> -<para>La structure <citerefentry><refentrytitle>struct buf</refentrytitle></citerefentry> est employée pour s'interfacer -avec le cache de la mémoire tampon. Elle est dans -définie <filename>/usr/src/sys/sys/buf.h</filename> : -</para> - -<programlisting> -/* - * The buffer header describes an I/O operation in the kernel. - */ -struct buf { - LIST_ENTRY(buf) b_hash; /* Hash chain. */ - LIST_ENTRY(buf) b_vnbufs; /* Buffer's associated vnode. */ - TAILQ_ENTRY(buf) b_freelist; /* Free list position if not active. */ - struct buf *b_actf, **b_actb; /* Device driver queue when active. */ - struct proc *b_proc; /* Associated proc; NULL if kernel. */ - volatile long b_flags; /* B_* flags. */ - int b_qindex; /* buffer queue index */ - int b_error; /* Errno value. */ - long b_bufsize; /* Allocated buffer size. */ - long b_bcount; /* Valid bytes in buffer. */ - long b_resid; /* Remaining I/O. */ - dev_t b_dev; /* Device associated with buffer. */ - struct { - caddr_t b_addr; /* Memory, superblocks, indirect etc. */ - } b_un; - void *b_saveaddr; /* Original b_addr for physio. */ - daddr_t b_lblkno; /* Logical block number. */ - daddr_t b_blkno; /* Underlying physical block number. */ - /* Function to call upon completion. */ - void (*b_iodone) __P((struct buf *)); - /* For nested b_iodone's. */ - struct iodone_chain *b_iodone_chain; - struct vnode *b_vp; /* Device vnode. */ - int b_pfcent; /* Center page when swapping cluster. */ - int b_dirtyoff; /* Offset in buffer of dirty region. */ - int b_dirtyend; /* Offset of end of dirty region. */ - struct ucred *b_rcred; /* Read credentials reference. */ - struct ucred *b_wcred; /* Write credentials reference. */ - int b_validoff; /* Offset in buffer of valid region. */ - int b_validend; /* Offset of end of valid region. */ - daddr_t b_pblkno; /* physical block number */ - caddr_t b_savekva; /* saved kva for transfer while bouncing */ - void *b_driver1; /* for private use by the driver */ - void *b_driver2; /* for private use by the driver */ - void *b_spc; - struct vm_page *b_pages[(MAXPHYS + PAGE_SIZE - 1)/PAGE_SIZE]; - int b_npages; -}; -</programlisting> -</sect3> - - -<sect3> -<title>Structure <citerefentry><refentrytitle>struct uio</refentrytitle></citerefentry></title> - -<para>Cette structure est utilisée pour déplacer des données entre le noyau et -les espaces utilisateur par les appels système de <function>read()</function> et de <function>write()</function>. -Il est dans défini <filename>/usr/src/sys/sys/uio.h</filename> : -</para> - -<programlisting> -struct uio { - struct iovec *uio_iov; - int uio_iovcnt; - off_t uio_offset; - int uio_resid; - enum uio_seg uio_segflg; - enum uio_rw uio_rw; - struct proc *uio_procp; -}; -</programlisting> -</sect3> -</sect2> - - -<sect2> -<title>Fonctions</title> -<para>plein</para> -</sect2> - -<sect2> -<title>Références.</title> - -<para> FreeBSD Kernel Sources http://www.freebsd.org -</para> - -<para> NetBSD Kernel Sources http://www.netbsd.org -</para> - -<para> Writing Device Drivers: Tutorial and Reference; -Tim Burke, Mark A. Parenti, Al, Wojtas; -Digital Press, ISBN 1-55558-141-2. -</para> - -<para> Writing A Unix Device Driver; -Janet I. Egan, Thomas J. Teixeira; -John Wiley & Sons, ISBN 0-471-62859-X. -</para> - -<para> Writing Device Drivers for SCO Unix; -Peter Kettle; -</para> -</sect2> -</sect1> -</article> diff --git a/fr_FR.ISO8859-1/articles/diskless-x/Makefile b/fr_FR.ISO8859-1/articles/diskless-x/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/diskless-x/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# 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.ISO8859-1/articles/diskless-x/article.sgml b/fr_FR.ISO8859-1/articles/diskless-x/article.sgml deleted file mode 100644 index fdbd117e7c..0000000000 --- a/fr_FR.ISO8859-1/articles/diskless-x/article.sgml +++ /dev/null @@ -1,298 +0,0 @@ -<!-- - 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.ISO8859-1/articles/fonts/Makefile b/fr_FR.ISO8859-1/articles/fonts/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/fonts/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# 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.ISO8859-1/articles/fonts/article.sgml b/fr_FR.ISO8859-1/articles/fonts/article.sgml deleted file mode 100755 index 146bd45422..0000000000 --- a/fr_FR.ISO8859-1/articles/fonts/article.sgml +++ /dev/null @@ -1,775 +0,0 @@ -<!-- - 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.ISO8859-1/articles/formatting-media/Makefile b/fr_FR.ISO8859-1/articles/formatting-media/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/formatting-media/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# 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.ISO8859-1/articles/formatting-media/article.sgml b/fr_FR.ISO8859-1/articles/formatting-media/article.sgml deleted file mode 100755 index f58946b2fd..0000000000 --- a/fr_FR.ISO8859-1/articles/formatting-media/article.sgml +++ /dev/null @@ -1,557 +0,0 @@ -<!-- - 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.ISO8859-1/articles/ip-aliasing/Makefile b/fr_FR.ISO8859-1/articles/ip-aliasing/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/ip-aliasing/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# 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.ISO8859-1/articles/ip-aliasing/article.sgml b/fr_FR.ISO8859-1/articles/ip-aliasing/article.sgml deleted file mode 100755 index 149e58a4da..0000000000 --- a/fr_FR.ISO8859-1/articles/ip-aliasing/article.sgml +++ /dev/null @@ -1,277 +0,0 @@ -<!-- - 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.ISO8859-1/articles/make-world/Makefile b/fr_FR.ISO8859-1/articles/make-world/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/make-world/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# 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.ISO8859-1/articles/make-world/article.sgml b/fr_FR.ISO8859-1/articles/make-world/article.sgml deleted file mode 100755 index dd12d95e46..0000000000 --- a/fr_FR.ISO8859-1/articles/make-world/article.sgml +++ /dev/null @@ -1,1376 +0,0 @@ -<!-- - 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.ISO8859-1/articles/mh/Makefile b/fr_FR.ISO8859-1/articles/mh/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/mh/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# 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.ISO8859-1/articles/mh/article.sgml b/fr_FR.ISO8859-1/articles/mh/article.sgml deleted file mode 100644 index 26763e00a3..0000000000 --- a/fr_FR.ISO8859-1/articles/mh/article.sgml +++ /dev/null @@ -1,744 +0,0 @@ -<!-- - 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.ISO8859-1/articles/multi-os/Makefile b/fr_FR.ISO8859-1/articles/multi-os/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/multi-os/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# 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.ISO8859-1/articles/multi-os/article.sgml b/fr_FR.ISO8859-1/articles/multi-os/article.sgml deleted file mode 100755 index 994298fd4a..0000000000 --- a/fr_FR.ISO8859-1/articles/multi-os/article.sgml +++ /dev/null @@ -1,700 +0,0 @@ -<!-- - 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.ISO8859-1/articles/new-users/Makefile b/fr_FR.ISO8859-1/articles/new-users/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/new-users/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# 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.ISO8859-1/articles/new-users/article.sgml b/fr_FR.ISO8859-1/articles/new-users/article.sgml deleted file mode 100755 index 50a698babe..0000000000 --- a/fr_FR.ISO8859-1/articles/new-users/article.sgml +++ /dev/null @@ -1,827 +0,0 @@ -<!-- - 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.ISO8859-1/articles/ntfs/Makefile b/fr_FR.ISO8859-1/articles/ntfs/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/ntfs/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# 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.ISO8859-1/articles/ntfs/article.sgml b/fr_FR.ISO8859-1/articles/ntfs/article.sgml deleted file mode 100644 index a1922b42a2..0000000000 --- a/fr_FR.ISO8859-1/articles/ntfs/article.sgml +++ /dev/null @@ -1,490 +0,0 @@ -<!-- - 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.ISO8859-1/articles/ppp/Makefile b/fr_FR.ISO8859-1/articles/ppp/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/ppp/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# 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.ISO8859-1/articles/ppp/article.sgml b/fr_FR.ISO8859-1/articles/ppp/article.sgml deleted file mode 100755 index 100f07af58..0000000000 --- a/fr_FR.ISO8859-1/articles/ppp/article.sgml +++ /dev/null @@ -1,1894 +0,0 @@ -<!-- - 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.ISO8859-1/articles/programming-tools/Makefile b/fr_FR.ISO8859-1/articles/programming-tools/Makefile deleted file mode 100644 index 72c1d9b8c9..0000000000 --- a/fr_FR.ISO8859-1/articles/programming-tools/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# 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.ISO8859-1/articles/programming-tools/article.sgml b/fr_FR.ISO8859-1/articles/programming-tools/article.sgml deleted file mode 100755 index 064144f61c..0000000000 --- a/fr_FR.ISO8859-1/articles/programming-tools/article.sgml +++ /dev/null @@ -1,2001 +0,0 @@ -<!-- - 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.ISO8859-1/articles/zip-drive/Makefile b/fr_FR.ISO8859-1/articles/zip-drive/Makefile deleted file mode 100644 index 8617ec14d0..0000000000 --- a/fr_FR.ISO8859-1/articles/zip-drive/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# $FreeBSD: doc/en_US.ISO_8859-1/articles/zip-drive/Makefile,v 1.1 2000/02/14 01:24:34 nik Exp $ - -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.ISO8859-1/articles/zip-drive/article.sgml b/fr_FR.ISO8859-1/articles/zip-drive/article.sgml deleted file mode 100644 index 4bb9089721..0000000000 --- a/fr_FR.ISO8859-1/articles/zip-drive/article.sgml +++ /dev/null @@ -1,304 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Version française : Michel Boucey - Original revision: n.nn - ---> -<!-- %man; --> - -<!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 lecteurs ZIP</title> - - <authorgroup> - <author> - <firstname>Jason</firstname> - <surname>Bacon</surname> - - <affiliation> - <address><email>acadix@execpc.com</email></address> - </affiliation> - </author> - </authorgroup> - <abstract> - &abstract.license; - &abstract.disclaimer; - &trans.a.boucey; - </abstract> - </artheader> - - <sect1> - <title>Les bases au sujet des lecteurs ZIP</title> - - <para>Les disques ZIP sont des disques magnétiques amovibles de grande - capacité, accessibles en lecture et en écriture par les lecteurs ZIP de - marque IOMEGA. Les disques ZIP sont similaires aux disquettes, en - étant cependant bien plus rapides et en ayant une capacité bien - supérieure. Alors qu'une disquette comporte typiquement 1.44 Mo, - les disques ZIP sont disponibles en deux capacités, à savoir 100 Mo - et 250 Mo. Les lecteurs ZIP ne doivent pas être confondus avec - super-disquette, un lecteur de disquette de 120 Mo de capacité, - qui accepte aussi les traditionnelles disquettes de 1.44 Mo de - capacité.</para> - - <para>IOMEGA vends aussi un lecteur à la capacité et aux performances - supérieurs appelé JAZZ. Les lecteurs JAZZ sont livrés en 1 Go et 2 - Go de capacité.</para> - - <para>Les lecteurs ZIP sont disponibles en unité interne ou externe, - utilisant l'une des trois interfaces suivantes :</para> - - <orderedlist> - <listitem> - <para>L'interface SCSI (Small Computer Standard Interface) est - l'interface la plus rapide, la plus sophistiquée, la plus extensible, - et la plus chère. L'interface SCSI est utilisée sur tous types - d'ordinateur, du PC à la station de travail RISC, jusqu'aux - mini-ordinateurs, pour connecter tous types de périphériques - tels que lecteurs de disque, lecteurs de bande, scanners, etc. - Les lecteurs ZIP SCSI peuvent être internes ou externes, étant - entendu que votre adaptateur SCSI possède un connecteur - externe.</para> - - <note> - <para>Si vous utilisez un matériel SCSI externe, il est important - de ne jamais le connecter ni le déconnecter tout pendant - que l'ordinateur est en fonctionnement. Faire ceci risque de - causer des dommages aux systèmes de fichiers sur les disques - en cours de connection.</para> - </note> - - <para>Si vous souhaitez le maximum de performance et la plus grande - facilité d'installation, l'interface SCSI est le meilleur choix. Cela - demandera certainement l'adjonction d'un adaptateur SCSI, puisque la - majorité des PC (exception faite des serveurs hautes performances) - ne comportent pas d'origine de support SCSI. Chaque adaptateur peut - prendre en charge 7 ou 15 périphériques SCSI, selon le modèle.</para> - - <para>Chaque périphérique SCSI a son propre contrôleur, et ces - contrôleurs sont assez intelligents et bien standardisés (le - second `S' de SCSI est l'abréviation de Standard), ce qui signifie - , du point de vue du système d'exploitation, que tous les lecteurs de - disques SCSI sont quasiment identiques, ceci vaut aussi pour les - lecteurs de bandes, etc. Pour prendre en charge du matériel SCSI, le - système d'exploitation n'a besoin que d'un pilote (driver) propre à - l'adaptateur utilisé, et un pilote générique propre à chaque type de - matériel, à savoir un pilote pour disque SCSI, un pilote pour lecteur - de bande, et ainsi de suite. Il y a certains matériels SCSI qui - peuvent être mieux utilisés grâce à des pilotes spécialisés (comme par - exemple les lecteurs DAT), mais, généralement, ils fonctionnent bien - avec le pilote générique. Il se peut alors que le pilote générique ne prenne pas - en compte un certain nombre de caractèristiques spécifiques.</para> - - <para>Utiliser un lecteur ZIP SCSI consiste simplement à déterminer - quel fichier matériel dans le répertoire <filename>/dev</filename> - représente le lecteur ZIP. Pour ce faire, on peut observer les messages lors - de l'amorçage de BSD (ou dans <filename>/var/log/messages</filename> après le - démarrage), où vous verrez une ligne ressemblant fort à ceci:</para> - - <programlisting>da1: <IOMEGA ZIP 100 D.13> Removable Direct Access SCSI-2 Device</programlisting> - - <para>Cela signifie que le lecteur ZIP est représenté par le fichier - <filename>/dev/da1</filename>.</para> - </listitem> - - <listitem> - <para>L'interface IDE (Integrated Drive Electronics) est une interface - de lecteur de disque bon marché utilisée pour les ordinateurs de bureau. - La plus grande partie des matériels IDE est strictement interne.</para> - - <para>Les performances des lecteurs ZIP IDE sont comparables à celles des - lecteurs ZIP SCSI (l'interface IDE n'est pas aussi rapide que l'interface - SCSI, mais les performances des lecteurs ZIP sont limitées essentiellement - par leur mécanique, non pas à cause du bus SCSI).</para> - - <para>L'inconvénient de l'interface IDE sont les limites qu'elle impose. - La plupart des adaptateurs IDE ne peuvent prendre en charge que deux - périphériques, et ne sont en général pas conçues pour le long terme. Par - exemple, l'interface originelle IDE ne prend pas en charge les disques durs - comportant plus de 1024 cylindres, ce qui oblige de nombreuses personnes à - mettre à jour prématurément leurs équipements. Si vous prévoyez d'étendre - votre PC par l'adjonction d'un nouveau disque dur, d'un lecteur de bande, - ou d'un scanner, vous pouvez investir dans un adaptateur SCSI et ZIP SCSI - afin d'éviter des problèmes dans le futur.</para> - - <para>Les périphériques IDE sous FreeBSD sont préfixés par un <literal>w</literal>. - Par exemple, un disque dur IDE peut être <filename>/dev/wd0</filename>, - un lecteur de cdrom IDE (ATAPI) peut être <filename>/dev/wcd1</filename>, - et ainsi de suite.</para> - </listitem> - - <listitem> - <para>L'interface port parallèle est populaire grâce aux périphériques externes - portables tels que lecteurs ZIP externes, scanners, parce que potentiellement - chaque ordinateur possède un port parallèle standard (habituellement utilisé - pour les imprimantes). Ceci rend aisé pour tout un chacun le transfert de données - entre ordinateurs par simple le transport de ces lecteurs ZIP.</para> - - <para>Les performances seront en général moindre qu'avec un lecteur ZIP ou IDE, - du fait de la vitesse limitée du port parallèle. Cette vitesse varie - considérablement d'un ordinateur à l'autre, et peut souvent être configurée - à partir du système BIOS. Certaines machines demanderont une configuration du - BIOS pour pouvoir faire fonctionner le port parallèle en mode bidirectionnel - (Les ports parallèles ont seulement été conçus à l'origine pour fournir des - données sortantes vers les imprimantes)</para> - </listitem> - </orderedlist> - </sect1> - - <sect1> - <title>ZIP parallèle : Le pilote <devicename>vpo</devicename></title> - - <para>Pour utiliser un lecteur ZIP port parallèle sous FreeBSD, le pilote - <devicename>vpo</devicename> doit être configuré dans le noyau. Les lecteurs - ZIP port parallèle ont aussi un contrôleur SCSI intégré. Le pilote vpo authorise - le noyau FreeBSD à communiquer avec le contrôleur SCSI du lecteur ZIP au travers - du port parallèle.</para> - - <para>Depuis que le pilote vpo ne fait plus parti du noyau en standard (au - moins pour FreeBSD 3.2), vous avez à reconstruire le noyau afin de rendre - accessible ce périphérique. La démarche de reconstruction d'un noyau est indiquée - en détails dans une autre section. Les étapes suivantes indiquent brièvement - la démarche à suivre afin de mettre en état de marche le pilote vpo:</para> - - <orderedlist> - <listitem> - <para>Lancer <command>/stand/sysinstall</command>, et installer les sources - du noyau sur votre système.</para> - - <screen>&prompt.root; <userinput>cd /sys/i386/conf</userinput> -&prompt.root; <userinput>cp GENERIC MYKERNEL</userinput></screen> - - <para>Editer <filename>MYKERNEL</filename>, changer la ligne - <literal>ident</literal> en <literal>MYKERNEL</literal>, et décommenter - la ligne décrivant le pilote vpo.</para> - - <para>Si vous possédez un second port parallèle, vous pourriez avoir besoin - de copier la section dédiée à <literal>ppc0</literal> pour créer le - périphérique <literal>ppc1</literal>. Le second port parallèle utilise - généralement l'IRQ 5 et l'adresse 378. Seul l'IRQ est requise pour le - fichier de configuration.</para> - - <para>Si votre disque dur est un SCSI, vous courez au devant d'un problème - dans l'ordre de la détection des périphériques, qui entrainera le système - à tenter d'utiliser le lecteur ZIP en tant que périphérique racine. Le démarrage - échouera alors, à moins que vous ayez installé un système de fichiers racine - sur le disque ZIP! Dans ce cas, vous aurez besoin de forcer le noyau à lier - le disque SCSI racine à <filename>/dev/da0</filename>, à savoir le disque SCSI - racine. Cela assignera alors le disque ZIP au prochain disque SCSI disponible, - à savoir <literal>/dev/da1</literal>. Pour forcer votre disque dur SCSI en - <literal>da0</literal>, changer la ligne - - <programlisting>device da0</programlisting> - - en - - <programlisting>disk da0 at scbus0 target 0 unit 0</programlisting></para> - - <para>Vous aurez probablement à changer la cible afin de la faire correspondre à - l' ID SCSI de votre disque dur. vous devrez aussi forcer l'entrée scbus0 afin - de l'ajuster à votre contrôleur. Par exemple, si vous avez un contrôleur 15xx - de chez Adaptec, vous changerez - - <programlisting>controller scbus0</programlisting> - - en - - <programlisting>controller scbus0 at aha0</programlisting></para> - - <para>En dernier lieu, puisque vous étes en train d'éditer le fichier de - configuration du noyau, profitez-en pour ôter tous les pilotes inutiles. - Cela doit être fait avec de grandes précautions, et seulement si vous avez - assez confiance en vous en ce qui concerne les modifications du noyau. Ôter - les pilotes inutiles réduira la taille du noyau, laissant plus de mémoire disponible - à vos applications. Afin de déterminer les pilotes qui ne sont pas nécessaires, - allez à la fin du fichier <filename>/var/log/messages</filename>, et recherchez - les lignes comportant "not found" (non trouvé). Commenter alors ces périphériques - dans votre fichier de configuration (par un # en tête de ligne). Vous pouvez aussi - changer d'autres options afin de réduire la taille et d'accroître la rapidité de - votre noyau. Lisez la section concernant la reconstruction du noyau pour de - plus amples informations.</para> - </listitem> - - <listitem> - <para>Il est maintenant temps de compiler le noyau:</para> - - <screen>&prompt.root; <userinput>/usr/sbin/config MYKERNEL</userinput> -&prompt.root; <userinput>cd ../../compile/MYKERNEL</userinput> -&prompt.root; <userinput>make clean depend && make all install</userinput></screen> - </listitem> - </orderedlist> - - <para>Après le reconstruction du noyau, vous devez redémarrer. Assurez-vous - que le lecteur ZIP est connecté au port parallèle avant que le démarrage ne - commence. Vous devriez voir apparaître le lecteur ZIP parmi les messages de - démarrage en tant que périphérique vp0 ou vp1, selon le port parallèle auquel - le lecteur est rattaché. Vous devez pouvoir voir aussi à quel fichier - périphérique le lecteur ZIP a été associé. Ce sera <filename>/dev/da0</filename> - si vous n'avez pas d'autre disque SCSI dans le système, ou <filename>/dev/da1</filename> - si vous avez un disque dur SCSI à la racine de votre système.</para> - </sect1> - - <sect1> - <title>Monter les disques ZIP</title> - - <para>Pour accéder à un disque ZIP, vous avez simplement à le monter, comme - n'importe quel autre périphérique. Le système de fichiers est représenté - par la quatrième tranche sur le périphérique, que ce soit pour un disque ZIP - en SCSI ou en parallèle, vous devriez faire:</para> - - <screen>&prompt.root; <userinput>mount_msdos /dev/da1s4 /mnt</userinput></screen> - - <para>Pour les lecteurs ZIP IDE:</para> - - <screen>&prompt.root; <userinput>mount_msdos /dev/wd1s4 /mnt</userinput></screen> - - <para>Cela facilitera aussi les choses de mettre à jour <filename>/etc/fstab</filename> - afin de rendre le montage plus aisé. Ajoutez une ligne telle que la suivante, ajustée - à votre système: - - <programlisting>/dev/da1s4 /zip msdos rw,noauto 0 0</programlisting> - - et créer le répertoire <filename>/zip</filename>.</para> - - <para>Vous pouvez alors monter simplement en tapant - - <screen>&prompt.root; <userinput>mount /zip</userinput></screen> - - et démonter en entrant - - <screen>&prompt.root; <userinput>umount /zip</userinput></screen></para> - - <para>Pour savoir plus sur le format de <filename>/etc/fstab</filename>, - voir &man.fstab.5;.</para> - - <para>Vous pouvez aussi créer un système de fichiers FreeBSD sur un disque - ZIP en utilisant &man.newfs.8;. Cependant, le disque ne sera utilisable - que par un système FreeBSD, et peut-être par quelques clônes Unix - reconnaissant le système de fichiers FreeBSD (mais certainement pas par - DOS ou Windows).</para> - </sect1> -</article> - - - - - - diff --git a/fr_FR.ISO8859-1/books/Makefile b/fr_FR.ISO8859-1/books/Makefile deleted file mode 100644 index 5f83b5e103..0000000000 --- a/fr_FR.ISO8859-1/books/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# $FreeBSD: doc/fr_FR.ISO_8859-1/books/Makefile,v 1.1 1999/11/10 21:28:31 nik Exp $ -# Original revision: 1.4 -# - -SUBDIR = faq -SUBDIR+= handbook -SUBDIR+= fdp-primer - -ROOT_SYMLINKS= faq handbook - -DOC_PREFIX?= ${.CURDIR}/../.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/books/Makefile.inc b/fr_FR.ISO8859-1/books/Makefile.inc deleted file mode 100644 index 3e2eea4dc7..0000000000 --- a/fr_FR.ISO8859-1/books/Makefile.inc +++ /dev/null @@ -1,9 +0,0 @@ -# -# 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.ISO8859-1/books/faq/Makefile b/fr_FR.ISO8859-1/books/faq/Makefile deleted file mode 100644 index f8035e4ce4..0000000000 --- a/fr_FR.ISO8859-1/books/faq/Makefile +++ /dev/null @@ -1,45 +0,0 @@ -# -# 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.ISO8859-1/books/faq/acknowledgments.sgml b/fr_FR.ISO8859-1/books/faq/acknowledgments.sgml deleted file mode 100644 index 12c721893e..0000000000 --- a/fr_FR.ISO8859-1/books/faq/acknowledgments.sgml +++ /dev/null @@ -1,92 +0,0 @@ -<!-- - 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.ISO8859-1/books/faq/admin.sgml b/fr_FR.ISO8859-1/books/faq/admin.sgml deleted file mode 100644 index 9aed48536b..0000000000 --- a/fr_FR.ISO8859-1/books/faq/admin.sgml +++ /dev/null @@ -1,893 +0,0 @@ -<!-- - 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 connexion 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.ISO8859-1/books/faq/applications.sgml b/fr_FR.ISO8859-1/books/faq/applications.sgml deleted file mode 100644 index 0239ae5296..0000000000 --- a/fr_FR.ISO8859-1/books/faq/applications.sgml +++ /dev/null @@ -1,149 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $Id: applications.sgml,v 1.2 2000-05-29 20:36:01 gioria Exp $ - 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 connexion 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.ISO8859-1/books/faq/book.sgml b/fr_FR.ISO8859-1/books/faq/book.sgml deleted file mode 100644 index 9a79ac200d..0000000000 --- a/fr_FR.ISO8859-1/books/faq/book.sgml +++ /dev/null @@ -1,97 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD: doc/fr_FR.ISO_8859-1/books/faq/book.sgml,v 1.2 2000/05/29 20:36:01 gioria Exp $ - 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 % 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 % 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@FreeBSD.org</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-questions@freebsd-fr.org">freebsd-questions@freebsd-fr.org</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.ISO8859-1/books/faq/commercial.sgml b/fr_FR.ISO8859-1/books/faq/commercial.sgml deleted file mode 100644 index 204779a5c5..0000000000 --- a/fr_FR.ISO8859-1/books/faq/commercial.sgml +++ /dev/null @@ -1,254 +0,0 @@ -<!-- - 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.ISO8859-1/books/faq/hackers.sgml b/fr_FR.ISO8859-1/books/faq/hackers.sgml deleted file mode 100644 index a783be2f81..0000000000 --- a/fr_FR.ISO8859-1/books/faq/hackers.sgml +++ /dev/null @@ -1,299 +0,0 @@ -<!-- - 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.ISO8859-1/books/faq/hardware.sgml b/fr_FR.ISO8859-1/books/faq/hardware.sgml deleted file mode 100644 index 19b482805c..0000000000 --- a/fr_FR.ISO8859-1/books/faq/hardware.sgml +++ /dev/null @@ -1,478 +0,0 @@ -<!-- - 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 (8 bits), 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.ISO8859-1/books/faq/includes.sgml b/fr_FR.ISO8859-1/books/faq/includes.sgml deleted file mode 100644 index c8681585bf..0000000000 --- a/fr_FR.ISO8859-1/books/faq/includes.sgml +++ /dev/null @@ -1,10 +0,0 @@ -<!-- - 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.ISO8859-1/books/faq/install.sgml b/fr_FR.ISO8859-1/books/faq/install.sgml deleted file mode 100644 index 2caf17faf8..0000000000 --- a/fr_FR.ISO8859-1/books/faq/install.sgml +++ /dev/null @@ -1,860 +0,0 @@ -<!-- - 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.ISO8859-1/books/faq/kernelconfig.sgml b/fr_FR.ISO8859-1/books/faq/kernelconfig.sgml deleted file mode 100644 index 230acdd002..0000000000 --- a/fr_FR.ISO8859-1/books/faq/kernelconfig.sgml +++ /dev/null @@ -1,147 +0,0 @@ -<!-- - 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.ISO8859-1/books/faq/misc.sgml b/fr_FR.ISO8859-1/books/faq/misc.sgml deleted file mode 100644 index 4025d8adb4..0000000000 --- a/fr_FR.ISO8859-1/books/faq/misc.sgml +++ /dev/null @@ -1,353 +0,0 @@ -<!-- - 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 depuis 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.ISO8859-1/books/faq/network.sgml b/fr_FR.ISO8859-1/books/faq/network.sgml deleted file mode 100644 index 8fda1dc746..0000000000 --- a/fr_FR.ISO8859-1/books/faq/network.sgml +++ /dev/null @@ -1,1588 +0,0 @@ -<!-- - 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 assez 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és 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é 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 -manquante est que vous avez pu régler 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 connexion 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 la 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 activé 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é 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 au manuel de votre 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 connexion, 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.ISO8859-1/books/faq/preface.sgml b/fr_FR.ISO8859-1/books/faq/preface.sgml deleted file mode 100644 index 6bbf081975..0000000000 --- a/fr_FR.ISO8859-1/books/faq/preface.sgml +++ /dev/null @@ -1,785 +0,0 @@ -<!-- - 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êmes 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 8 bits).</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 8 bits).</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.ISO8859-1/books/faq/serial.sgml b/fr_FR.ISO8859-1/books/faq/serial.sgml deleted file mode 100644 index 72b43bbc0e..0000000000 --- a/fr_FR.ISO8859-1/books/faq/serial.sgml +++ /dev/null @@ -1,626 +0,0 @@ -<!-- - 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>, 8 bits 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.ISO8859-1/books/faq/troubleshoot.sgml b/fr_FR.ISO8859-1/books/faq/troubleshoot.sgml deleted file mode 100644 index 7faa53e036..0000000000 --- a/fr_FR.ISO8859-1/books/faq/troubleshoot.sgml +++ /dev/null @@ -1,640 +0,0 @@ -<!-- - 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.ISO8859-1/books/faq/x.sgml b/fr_FR.ISO8859-1/books/faq/x.sgml deleted file mode 100644 index 342b35bd8b..0000000000 --- a/fr_FR.ISO8859-1/books/faq/x.sgml +++ /dev/null @@ -1,475 +0,0 @@ -<!-- - 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.ISO8859-1/books/fdp-primer/Makefile b/fr_FR.ISO8859-1/books/fdp-primer/Makefile deleted file mode 100644 index c0e962b1db..0000000000 --- a/fr_FR.ISO8859-1/books/fdp-primer/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -# -# The FreeBSD Documentation Project -# The FreeBSD French Documentation Project -# -# Compilation de l'Introduction au Projet de Documentation de FreeBSD -# -# $Id: Makefile,v 1.1 2000-06-12 15:46:26 gioria Exp $ -# Original revision: 1.6 -# - -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+= overview/chapter.sgml -SRCS+= psgml-mode/chapter.sgml -SRCS+= see-also/chapter.sgml -SRCS+= sgml-markup/chapter.sgml -SRCS+= sgml-primer/chapter.sgml -SRCS+= stylesheets/chapter.sgml -SRCS+= the-faq/chapter.sgml -SRCS+= the-handbook/chapter.sgml -SRCS+= the-website/chapter.sgml -SRCS+= tools/chapter.sgml -SRCS+= translations/chapter.sgml -SRCS+= writing-style/chapter.sgml - -# Entities -SRCS+= chapters.ent -SRCS+= ../handbook/mailing-lists.ent -SRCS+= ../../../en_US.ISO_8859-1/books/handbook/authors.ent - -DOC_PREFIX?= ${.CURDIR}/../../.. - -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/fr_FR.ISO8859-1/books/fdp-primer/book.sgml b/fr_FR.ISO8859-1/books/fdp-primer/book.sgml deleted file mode 100644 index 38dbc8c38c..0000000000 --- a/fr_FR.ISO8859-1/books/fdp-primer/book.sgml +++ /dev/null @@ -1,303 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML, HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $Id: book.sgml,v 1.1 2000-06-12 15:46:26 gioria Exp $ - Original revision: 1.7 ---> - -<!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 "../handbook/mailing-lists.ent"> %mailing-lists; -<!ENTITY rel.current CDATA "3.2"> -<!-- We need the followings until the translation is completed --> -<!ENTITY sgml.in-progress SYSTEM "../handbook/in-progress.sgml"> -<!ENTITY sgml.todo SYSTEM "../handbook/todo.sgml"> -]> - -<book lang="fr"> - <bookinfo> - <title>Introduction au Projet de Documentation de FreeBSD pour les - nouveaux participants</title> - - <author> - <firstname>Nik</firstname> - <surname>Clayton</surname> - <affiliation> - <address><email>nik@FreeBSD.ORG</email></address> - </affiliation> - </author> - - <copyright> - <year>1998</year> - <year>1999</year> - <holder role="mailto:nik@FreeBSD.ORG">Nik Clayton</holder> - </copyright> - - <pubdate role="rcs">$Date: 2000-06-12 15:46:26 $</pubdate> - - <releaseinfo>$Id: book.sgml,v 1.1 2000-06-12 15:46:26 gioria Exp $</releaseinfo> - - <legalnotice> - <para>La redistribution et l'utilisation du code source (SGML), et - compilé (HTML, PostScript, etc.), modifiés ou non, sont soumises aux - conditions suivantes :</para> - - <orderedlist> - <listitem> - <para>Le code source (SGML DocBook) distribué doit conserver le - copyright ci-dessus, la présente liste de conditions et - l'avertissement qui la suit, sans modifications, en tête de ce - fichier.</para> - </listitem> - - <listitem> - <para>Le code source distribué sous forme compilé (transformation - vers d'autres DTDs, conversion en PDF, PostScript, RTF et autres - formats) doit faire apparaître dans la documentation et/ou les - autres composants distribués, le copyright ci-dessus, la présente - liste de conditions et l'avertissement qui la suit.</para> - </listitem> - </orderedlist> - - <important> - <para>CE DOCUMENT EST FOURNI PAR NIK CLAYTON “TEL QUEL” ET - AUCUNE GARANTIE EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS NON - LIMITÉE, GARANTIES IMPLICITES DE COMMERCIABILITÉ ET - D'ADÉQUATION À UN BUT PARTICULIER N'EST DONNÉE. - EN AUCUN CAS NIK CLAYTON NE SAURAIT ÊTRE TENU RESPONSABLE DES - DOMMAGES DIRECTS, INDIRECTS, ACCIDENTELS, SPÉCIAUX, - EXEMPLAIRES OU CONSÉQUENTS (Y COMPRIS, MAIS SANS LIMITATION, - LA FOURNITURE DE BIENS ET SERVICES ANNEXES DÉFAUT - D'UTILISABILITÉ, PERTE DE DONNÉES OU DE PROFITS ; - OU INTERRUPTION DE TRAVAIL) QUELLE QU'EN SOIT LA CAUSE ET SELON - TOUTE DÉFINITION DE RESPONSABILITÉ, SOIT PAR CONTRAT, - RESPONSABILITÉ STRICTE, OU PRÉJUDICE (Y COMPRIS - NÉGLIGENCE OU AUTRES) IMPUTABLES D'UNE FAÇON OU D'UNE - AUTRE À L'UTILISATION DE CE DOCUMENT, MÊME APRES AVOIR - ÉTÉ AVISÉ DE LA POSSIBILITÉ DE TELS - DOMMAGES.</para> - </important> - </legalnotice> - - <abstract> - <para>Merci de votre participation au Projet de Documentation de - FreeBSD. Votre contribution est très utile.</para> - - <para>Cette introduction décrit tout ce que vous devez savoir pour - commencer à participer au projet de documentation de FreeBSD, des - outils et logiciels que vous utiliserez (indispensables et - facultatifs) à la philosophie sous-jacente au Projet de - Documentation.</para> - - <para>Ce document est en cours de rédaction et n'est pas terminé. Les - sections inachevées sont indiquées par un - astérisque - <literal>*</literal> - qui précède - leur nom.</para> - - &trans.a.haby; - </abstract> - </bookinfo> - - <preface> - <title>Préface</title> - - <sect1> - <title>Invites de l'interpréteur de commandes</title> - - <para>La table ci-dessous donne les invites par défaut du système pour - un utilisateur normal et pour le super-utilisateur. Elles sont - utilisées dans les exemples pour indiquer quel utilisateur doit - appliquer l'exemple.</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Utilisateur</entry> - <entry>Invite</entry> - </row> - </thead> - - <tbody> - <row> - <entry>Utilisateur normal</entry> - <entry>&prompt.user;</entry> - </row> - - <row> - <entry><username>root</username></entry> - <entry>&prompt.root;</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </sect1> - - <sect1> - <title>Conventions Typographiques</title> - - <para>La table ci-dessous décrit les conventions typographiques - utilisées dans le présent ouvrage.</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Signification</entry> - <entry>Exemples</entry> - </row> - </thead> - - <tbody> - <row> - <entry>Noms de commandes, fichiers et répertoires. Affichage à - l'écran de l'ordinateur.</entry> - - <entry><para>Modifiez votre fichier - <filename>.login</filename>.</para><para>Utilisez - <command>ls -a</command> pour avoir la liste de tous les - fichiers.</para><para><screen>Vous avez reçu du courrier.</screen></para></entry> - </row> - - <row> - <entry>Ce que vous tapez, par opposition à ce que l'ordinateur - affiche.</entry> - - <entry><screen>&prompt.user; <userinput>su</userinput> -Password:</screen></entry> - </row> - - <row> - <entry>Références aux pages de manuel</entry> - - <entry>Utilisez <citerefentry><refentrytitle>su</refentrytitle> - <manvolnum>1</manvolnum></citerefentry> pour changer de nom - d'utilisateur.</entry> - </row> - - <row> - <entry>Noms d'utilisateurs et de groupes</entry> - - <entry>Seul <username>root</username> peut le faire.</entry> - </row> - - <row> - <entry>Mise en valeur</entry> - - <entry>Vous <emphasis>devez</emphasis> le faire.</entry> - </row> - - <row> - <entry>Variables sur la ligne de commande ; à remplacer par - le nom ou la valeur effectif.</entry> - - <entry>Pour supprimer un fichier, tapez <command>rm - <filename><replaceable>nom_du_fichier</replaceable></filename></command>.</entry> - </row> - - <row> - <entry>Variables d'environnement</entry> - - <entry><envar>$HOME</envar> est votre répertoire - utilisateur.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </sect1> - - <sect1> - <title>Notes, avertissements et exemples</title> - - <para>Dans le cours du texte, il peut y avoir des notes, des - avertissements et des exemples.</para> - - <note> - <para>Les notes apparaissent comme ceci, et contiennent des - informations que vous devriez prendre en considération, parce - qu'elles peuvent avoir une incidence sur ce que vous faites.</para> - </note> - - <warning> - <para>Les avertissements apparaissent comme ceci, et vous préviennent - de problèmes potentiels si vous n'appliquez pas ces instructions. - Des dégats peuvent être causés à votre matériel, ou ne pas être - physiques, suppression inopinée de fichiers importants par - exemple.</para> - </warning> - - <example> - <title>Un exemple d'exemple</title> - - <para>Les exemples apparaissent comme ceci, et sont généralement des - exemples que vous devriez tester ou qui vous montrent quels doivent - être les résultats d'une opération donnée.</para> - </example> - </sect1> - - <sect1> - <title>Remerciements</title> - - <para>Mes remerciements à Sue Blake, Patrick Durusau, Jon Hamilton, - Peter Flynn et Christopher Maden, qui ont pris le temps de lire les - premières versions de ce document et ont apporté de nombreux - commentaires et critiques utiles.</para> - </sect1> - </preface> - - &chap.overview; - &chap.tools; - &chap.sgml-primer; - &chap.sgml-markup; - &chap.stylesheets; - &chap.the-faq; - &chap.the-handbook; - &chap.the-website; - &chap.translations; - &chap.writing-style; - &chap.psgml-mode; - &chap.see-also; -</book> - -<!-- - Local Variables: - mode: sgml - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - End: ---> diff --git a/fr_FR.ISO8859-1/books/fdp-primer/chapters.ent b/fr_FR.ISO8859-1/books/fdp-primer/chapters.ent deleted file mode 100644 index eaaa5d0a09..0000000000 --- a/fr_FR.ISO8859-1/books/fdp-primer/chapters.ent +++ /dev/null @@ -1,23 +0,0 @@ -<!-- - Creates entities for each chapter in the Documentation Project Primer. - 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. - - $Id: chapters.ent,v 1.1 2000-06-12 15:46:26 gioria Exp $ ---> - -<!ENTITY chap.overview SYSTEM "overview/chapter.sgml"> -<!ENTITY chap.sgml-primer SYSTEM "sgml-primer/chapter.sgml"> -<!ENTITY chap.tools SYSTEM "tools/chapter.sgml"> -<!ENTITY chap.sgml-markup SYSTEM "sgml-markup/chapter.sgml"> -<!ENTITY chap.stylesheets SYSTEM "stylesheets/chapter.sgml"> -<!ENTITY chap.the-faq SYSTEM "the-faq/chapter.sgml"> -<!ENTITY chap.the-handbook SYSTEM "the-handbook/chapter.sgml"> -<!ENTITY chap.the-website SYSTEM "the-website/chapter.sgml"> -<!ENTITY chap.translations SYSTEM "translations/chapter.sgml"> -<!ENTITY chap.writing-style SYSTEM "writing-style/chapter.sgml"> -<!ENTITY chap.psgml-mode SYSTEM "psgml-mode/chapter.sgml"> -<!ENTITY chap.see-also SYSTEM "see-also/chapter.sgml"> diff --git a/fr_FR.ISO8859-1/books/fdp-primer/overview/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/overview/chapter.sgml deleted file mode 100644 index 81cbc4421e..0000000000 --- a/fr_FR.ISO8859-1/books/fdp-primer/overview/chapter.sgml +++ /dev/null @@ -1,187 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $Id: chapter.sgml,v 1.1 2000-06-12 15:46:30 gioria Exp $ - Original revision: 1.3 ---> - -<chapter id="overview"> - <title>Introduction</title> - - <para>Bienvenue au Projet de Documentation de FreeBSD. Une documentation de - bonne qualité est un facteur important de succès pour FreeBSD, et le - Projet de Documentation de - FreeBSD - “<foreignphrase>The FreeBSD Documentation - Project</foreignphrase>” - est la source d'une grande - part de cette documentation. Votre participation est importante.</para> - - <para>L'objectif principal de ce document est d'expliquer clairement - <emphasis>comment est organisé le FDP</emphasis>, <emphasis>comment - écrire et soumettre de la documentation au FDP</emphasis> et - <emphasis>comment utiliser les outils disponibles pour produire de la - documentation</emphasis>.</para> - - <para>La participation de chacun au FDP est bienvenue. Il n'y a pas de - cotisation minimum, pas de quota de documentation à produire par mois. Il - vous suffit de vous inscrire sur la &a.doc;.</para> - - <para>Après avoir lu ce document, vous :</para> - - <itemizedlist> - <listitem> - <para>Saurez quelles sont les documentations maintenues par le - FDP.</para> - </listitem> - - <listitem> - <para>Serez capable de lire et comprendre le code SGML source des - documentations maintenues par le FDP.</para> - </listitem> - - <listitem> - <para>Serez capable de modifier la documentation.</para> - </listitem> - - <listitem> - <para>Saurez comment soumettre vos modifications pour qu'elles soient - revues et incorporées à la documentation de FreeBSD.</para> - </listitem> - </itemizedlist> - - <sect1> - <title>Le jeu de documentations de FreeBSD</title> - - <para>Le FDP a la responsabilité de quatre catégories de documents.</para> - - <variablelist> - <varlistentry> - <term>Les pages de manuel</term> - - <listitem> - <para>Les pages de manuel système en anglais ne sont pas rédigées - par le FDP, puisqu'elles font partie du système de base. Le FDP, - néanmoins, peut (et a) récrit des pages de manuel existantes pour - les clarifier ou corriger des inexactitudes.</para> - - <para>Les équipes de traductions sont responsables de la traduction - des pages de manuel dans les différentes langues. Ces traductions - sont archivées par le FDP.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>FAQ</term> - - <listitem> - <para>L'objectif de la FAQ est de répondre (sous forme de courtes - questions/réponses) aux questions qui sont posées, ou devraient - être posées, sur les différentes listes de diffusion et forums de - discussion consacrées à FreeBSD. Son format n'autorise pas de - réponses longues et exhaustives.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Manuel de - référence - “<foreignphrase>Handbook</foreignphrase>”</term> - - <listitem> - <para>Le Manuel cherche à être la ressource en ligne exhaustive et - de référence pour les utilisateurs de FreeBSD.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Le site Web</term> - - <listitem> - <para>C'est le point de présence central de FreeBSD sur le - <foreignphrase>World Wide Web</foreignphrase>, dont le site - principal est <ulink - url="http://www.freebsd.org/">http://www.freebsd.org/</ulink> - et qui a de nombreux sites miroirs dans le monde. Pour beaucoup - de gens, ce site est leur première rencontre avec FreeBSD.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Ces quatres catégories de documentation sont disponibles dans les - archives CVS de FreeBSD. Ce qui signifie que les modifications et les - notifications sont accessibles à tous, et que chacun peut utiliser un - programme comme <application>CVSup</application> ou - <application>CTM</application> pour maintenir à jour son propre - exemplaire local.</para> - - - <para>En plus de ces documents, de nombreuses personnes ont écrit des - guides ou réalisé des sites Web se rapportant à FreeBSD. Certains sont - aussi archivés dans l'arborescence CVS (quand l'auteur a donné son - accord). Dans d'autre cas, l'auteur a choisi de conserver ses - documentations en dehors des archives FreeBSD. Le FDP essaie de donner - le maximum de liens possible sur ces documents.</para> - </sect1> - - <sect1> - <title>Avant de commencer</title> - - <para>Ce document fait l'hypothèse que vous savez déjà :</para> - <itemizedlist> - <listitem> - <para>Vous procurer et tenir à jour une copie locale de la - documentation. Soit en maintenant une copie locale des archives CVS - de FreeBSD (avec <application>CVS</application>, - <application>CVSup</application> ou <application>CTM</application>), - ou en vous servant de <application>CVSup</application> pour ne - télécharger que la version - extraite - <emphasis>courante</emphasis>.</para> - </listitem> - - <listitem> - <para>Comment télécharger et installer de nouveaux logiciels en vous - servant soit du catalogue des logiciels de FreeBSD soit de - &man.pkg.add.1;.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/fr_FR.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml deleted file mode 100644 index 0d53044f66..0000000000 --- a/fr_FR.ISO8859-1/books/fdp-primer/psgml-mode/chapter.sgml +++ /dev/null @@ -1,154 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $Id: chapter.sgml,v 1.1 2000-06-12 15:46:33 gioria Exp $ ---> - -<chapter id="psgml-mode"> - <title> Utiliser <literal>sgml-mode</literal> avec - <application>Emacs</application></title> - - <para>Les versions récentes d'Emacs ou Xemacs (disponibles au catalogue des - logiciels portés) incluent un paquetage très utile appelé PSGML. Il est - automatiquement appelé au chargement d'un fichier avec l'extension - <filename>.sgml</filename>, ou lorsque l'on tape <command>M-x - sgml-mode</command>. C'est un mode majeur pour traiter les fichiers - SGML, les éléments et les attributs.</para> - - <para>Connaître certaines des commandes de ce mode peut rendre le travail - sur des documents comme le Manuel de Référence beaucoup plus - facile.</para> - - <variablelist> - <varlistentry> - <term><command>C-c C-e</command></term> - - <listitem> - <para>Exécute <literal>sgml-insert-element</literal>. On vous - demandera le nom de l'élement à insérer là ou se trouve le - curseur. Vous pouvez utiliser la touche <keycap>Tab</keycap> pour - compléter le nom de l'élément. Seuls les éléments syntaxiquement - valides à cet endroit seront acceptés.</para> - - <para>L'éditeur insérera les marques de début et de fin de l'élément. - S'il y a d'autres éléments obligatoires qui doivent être inclus - dans cet élément, ils seront aussi inclus.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>C-c =</command></term> - - <listitem> - <para>Exécute <literal>sgml-change-element-name</literal>. Mettez-vous - dans un élément et utilisez cette commande. On vous demandera le nom - de l'élément par lequel il faut le remplacer. Les marques de début - et de fin de l'élément seront remplacées.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>C-c C-r</command></term> - - <listitem> - <para>Exécute <literal>sgml-tag-region</literal>. Sélectionnez du - texte (placez-vous au début, <command>C-espace</command>, allez à - la fin du texte, <command>C-espace</command>) et lancez ensuite - cette commande. On vous demandera quel élement utiliser. Celui-ci - sera inséré immédiatement avant et après la région choisie.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>C-c -</command></term> - - <listitem> - <para>Exécute <literal>sgml-untag-element</literal>. Mettez-vous sur - la marque de début ou de fin de l'élément que vous voulez supprimer - et lancez cette commande. Les marques de début et de fin de - l'élément seront supprimées.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>C-c C-q</command></term> - - <listitem> - <para>Exécute <literal>sgml-fill-element</literal>. - “Remplira” (i.e., reformatera) le contenu de l'élément - courant. Cela affectera aussi le contenu dont les blancs sont - significatifs, comme celui des éléments - <sgmltag>programlisting</sgmltag>, utilisez donc cette commande avec - précaution.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>C-c C-a</command></term> - - <listitem> - <para>Exécute <literal>sgml-edit-attributes</literal>. Ouvre un - deuxième tampon donnant la liste des attributs de l'élément - qui inclut le contenu courant, avec leurs valeurs. La touche - <keycap>Tab</keycap> vous permet de passer d'un attribut à l'autre, - <command>C-k</command> de modifier une valeur existante, et - <command>C-c</command> de fermer le tampon et de revenir au - document principal.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><command>C-c C-v</command></term> - - <listitem> - <para>Exécute <literal>sgml-validate</literal>. Vous propose de - sauvegarder le document en cours (si besoin est) et passe ensuite un - programme de validation du SGML. Les résultats de cette validation - sont affichés dans un nouveau tampon et vous pouvez ensuite naviguer - d'une erreur à l'autre, pour les corriger au fur et à mesure.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Il y a sans aucun doute d'autres fonctions utiles, mais j'ai décrit - celles que j'utilise le plus souvent.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/fr_FR.ISO8859-1/books/fdp-primer/see-also/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/see-also/chapter.sgml deleted file mode 100644 index d0f17d671a..0000000000 --- a/fr_FR.ISO8859-1/books/fdp-primer/see-also/chapter.sgml +++ /dev/null @@ -1,124 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $Id: chapter.sgml,v 1.1 2000-06-12 15:46:35 gioria Exp $ ---> - -<chapter id="see-also"> - <title> A consulter</title> - - <para>Ce document ne décrit délibérement pas exhaustivement, ni le SGML, ni - les DTDs citées, ni le Projet de Documentation de FreeBSD. Pour plus - d'information sur ces sujets, il est recommandé de consulter les sites Web - ci-dessous.</para> - - <sect1> - <title>Projet de Documentation de FreeBSD</title> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.freebsd.org/docproj/">Les pages Web du - Projet de Documentation de FreeBSD</ulink>,</para> - </listitem> - - <listitem> - <para><ulink url="http://www.freebsd.org/handbook/">Le Manuel de - Référence de FreeBSD</ulink>.</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1> - <title>SGML</title> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.oasis-open.org/cover/">La page Web - SGML/XML</ulink>, un ressource SGML exhaustive,</para> - </listitem> - - <listitem> - <para><ulink - url='http://etext.virginia.edu/bin/tei-tocs?div=DIV1&id=SG">http://etext.virginia.edu/bin/tei-tocs?div=DIV1&id=SG'>L'Introduction en - douceur au SGML</ulink>.</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1> - <title>HTML</title> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.w3.org/">Le consortium World Wide - Web</ulink>,</para> - </listitem> - - <listitem> - <para><ulink url="http://www.w3.org/TR/REC-html40/">Les spécifications - du HTML 4.0</ulink>.</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1> - <title>DocBook</title> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.oreilly.com/davenport/">Le - <foreignphrase>Davenport Group</foreignphrase></ulink>, qui - maintient la DTD DocBook.</para> - </listitem> - </itemizedlist> - </sect1> - - <sect1> - <title>Le Projet de Documentation de Linux</title> - - <itemizedlist> - <listitem> - <para><ulink url="http://metalab.unc.edu/LDP/">Les pages Web du Projet - de Documentation de Linux</ulink>.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/fr_FR.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml deleted file mode 100644 index a131820fd0..0000000000 --- a/fr_FR.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml +++ /dev/null @@ -1,2356 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $Id: chapter.sgml,v 1.1 2000-06-12 15:46:41 gioria Exp $ ---> - -<chapter id="sgml-markup"> - <title>Marques SGML</title> - - <para>Ce chapitre décrit les trois langages de marquage que vous - rencontrerez si vous contribuez au Projet de Documentation de FreeBSD. - Chaque section décrit le langage et détaille les marques que vous serez - probablement amenés à utiliser, ou qui sont déjà utilisées.</para> - - <para>Ces langages sont riches en éléments et il est parfois difficile de - savoir lequels employer dans un contexte particulier. Cette section - décrit ceux dont vous aurez probablement besoin et donne des exemples de - la manière de s'en servir.</para> - - <para>Ce n'est <emphasis>pas</emphasis> une liste exhaustive d'éléments, - cela ne ferait que reprendre le contenu de la documentation de chacun de - ces langages. L'objectif de cette section est de lister les éléments qui - ont le plus de chance de vous être utiles. Si vous avez des questions sur - le type de marque à employer dans un contexte particulier, posez-les s'il - vous plaît à la liste de diffusion du Projet de Documentation de FreeBSD, - <email>freebsd-doc@freebsd.org</email>.</para> - - <note> - <title>En ligne vs. de bloc</title> - - <para>Dans la suite de ce document, quand on décrira des éléments, - <emphasis>en ligne</emphasis> signifie que l'élément peut apparaître à - l'intérieur d'un bloc et ne génère pas de passage à la ligne. A - l'inverse un élément de bloc provoque un passage à la ligne (et d'autres - opérations) lorsqu'on le rencontre.</para> - </note> - - <sect1> - <title>HTML</title> - - <para>HTML, l'<foreignphrase>HyperText Markup - Language</foreignphrase> - Langage de Marquage de - l'Hypertexte - est le langage de prédilection du - World Wide Web. Vous trouverez plus d'informations sur - <URL:<ulink - url="http://www.w3.org/">http://www.w3.org/</ulink>>.</para> - - <para>HTML est utilisé pour marquer les pages du site Web de FreeBSD. Il - ne devrait (habituellement) pas servir pour d'autre type de - documentation, parce que DocBook offre un jeu de marques beaucoup plus - riche. Vous ne devriez donc rencontrez des pages HTML que si vous - écrivez pour le site Web.</para> - - <para>Il y a eu plusieurs versions de HTML, 1, 2, 3.0, 3.2, et il existe - deux variantes de la dernière version, 4.0 (disponible à la fois en - version <emphasis>stricte</emphasis> et - <emphasis>relachée</emphasis>).</para> - - <para>Les DTDs HTML existent au catalogue des logiciels portés dans - <filename>textproc/html</filename>. Elles sont automatiquement - installées par le méta-port - <filename>textproc/docproj</filename>.</para> - - <sect2> - <title><foreignphrase>Formal Public Identifier - (FPI)</foreignphrase> - Identifiant Public Formel</title> - - <para>Il y a un certain nombre de FPIs HTML, selon la version (qu'on - appelle aussi le niveau) de HTML avec laquelle vous voulez que votre - document soit compatible.</para> - - <para>La plupart des documents HTML du site Web de FreeBSD respectent - strictement la version relachée de HTML 4.0 :</para> - - <programlisting> -PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"</programlisting> - </sect2> - - <sect2> - <title>Sections</title> - - <para>Un document HTML est habituellement composé de deux sections. La - première section, appelée - <emphasis>head</emphasis> - en-tête, contient des - informations sur le document, comme son titre, le nom de son auteur, - le document dans lequel il est inclus, et ainsi de suite. La seconde - section, le <emphasis>body</emphasis> - corps, contient ce - qui sera affiché.</para> - - <para>Ces sections sont dénotées par les éléments - <sgmltag>head</sgmltag> et <sgmltag>body</sgmltag> respectivement. Ces - éléments appartiennent à l'élément de premier niveau - <sgmltag>html</sgmltag>.</para> - - <example> - <title>Structure habituelle d'un document HTML</title> - - <programlisting> -<html> - <head> - <title><replaceable>Le titre du document</replaceable></title> - </head> - - <body> - - … - - </body> -</html></programlisting> - </example> - </sect2> - - <sect2> - <title>Eléments de blocs</title> - - <sect3> - <title>Titres</title> - - <para>HTML vous permet d'avoir jusqu'à six niveaux de titres - différents dans votre document.</para> - - <para>Le titre le plus gros et le plus visible est - <sgmltag>h1</sgmltag>, puis <sgmltag>h2</sgmltag>, jusqu'à - <sgmltag>h6</sgmltag>.</para> - - <para>Le contenu de l'élément est le texte du titre.</para> - - <example> - <title><sgmltag>h1</sgmltag>, <sgmltag>h2</sgmltag>, etc.</title> - - <para>Utilisez :</para> - - <programlisting> -<![ CDATA [<h1>Première section</h1> - -<!-- Introduction du document --> - -<h2>C'est le titre de la première section</h2> - -<!-- Contenu de la première section --> - -<h3>C'est le titre de la première sous-section</h3> - -<!-- Contenu de la première sous-section --> - -<h2>C'est le titre de la seconde section</h2> - -<!-- Contenu de la seconde section -->]]></programlisting> - </example> - - <para>Un page HTML doit normalementi avoir un titre de premier niveau - (<sgmltag>h1</sgmltag>). Il peut contenir plusieurs titres de second - niveau (<sgmltag>h2</sgmltag>), et à leur tour, de nombreux titres - de troisième niveau. Chaque élément - <sgmltag>h<replaceable>n</replaceable></sgmltag> doit appartenir à - un même élément de niveau supérieur. Il faut éviter de sauter d'un - cran dans la numérotation.</para> - - <example> - <title>Mauvais ordonnancement des éléments - <sgmltag>h<replaceable>n</replaceable></sgmltag></title> - - <para>Use:</para> - - <programlisting> -<![ CDATA [<h1>Première section</h1> - -<!-- Introduction du document --> - -<h3>Sous-section</h3> - -<!-- Ce n'est pas bon, <h2> a été oublié -->]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Paragraphes</title> - - <para>HTML n'a qu'un seul élément paragraphe, - <sgmltag>p</sgmltag>.</para> - - <example> - <title><sgmltag>p</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting> -<![ CDATA [<p>C'est un paragraphe. Il peut contenir pratiquement - n'importe quel élément.</p>]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Citations</title> - - <para>Une citation d'un long extrait d'un autre document, qui ne doit - pas apparaître dans le paragraphe en cours, mais est mise dans un bloc - de citation.</para> - - <example> - <title><sgmltag>blockquote</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting> -<![ CDATA [<p>Un court extrait de la Constitution des Etats-Unis :</p> - -<blockquote>Nous le Peuple des Etats-Unis, dans le But de former - une Union plus parfaite, d'établir la Justice, d'assurer - la Tranquilité domestique, de défendre chacun, de promouvoir - le Bien-être général, et de garantir les Bénédictions de - la Liberté à nous-mêmes et à notre Postérité, décidons et - établissons cette Constitution des Etats-Unis d'Amérique.</blockquote>]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Listes</title> - - <para>Il y a trois types de listes que vous pouvez afficher : - ordonnée, non ordonnée et de définition.</para> - - <para>Typiquement, chaque entrée d'une liste ordonnée sera numérotée, - alors que chaque entrée d'une liste non ordonnée sera précédée d'une - puce. Les listes de définition ont deux sections pour chaque entrée. - La première est le terme que l'on définit et la seconde sa - définition.</para> - - <para>Les listes ordonnées sont dénotées par l'élément - <sgmltag>ol</sgmltag>, les listes non ordonnées par l'élément - <sgmltag>ul</sgmltag> et les listes de définition par l'élément - <sgmltag>dl</sgmltag> element.</para> - - <para>Les listes ordonnées et non ordonnées contiennent des éléments - de liste, notés avec l'élément <sgmltag>li</sgmltag>. Un élément de - liste peut contenir du texte, ou être décomposé en plusieurs - éléments <sgmltag>p</sgmltag>.</para> - - <para>Les listes de définition contiennent des termes à définir - (<sgmltag>dt</sgmltag>) et leurs définitions - (<sgmltag>dd</sgmltag>). Le terme à définir n'est composé que de - texte. La définition peut comporter d'autres éléments de - blocs.</para> - - <example> - <title><sgmltag>ul</sgmltag> et <sgmltag>ol</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting> -<![ CDATA [<p>Une liste non ordonnée. Les éléments de la liste seront - probablement précédés par des puces.</p> - -<ul> - <li>Premier élément</li> - - <li>Second élément</li> - - <li>Troisième élément</li> -</ul> - -<p>Une liste ordonnée, dont les éléments comportent plusieurs paragraphes. - Chaque élément (note : et non chaque paragraphe) sera numéroté.</p> - -<ol> - <li><p>C'est le premier élément. Il n'a qu'un paragraphe..</p></li> - - <li><p>C'est le premier paragraphe du second élément.</p> - - <p>C'est le second paragraphe du second élément.</p> - - <li><p>C'est le premier et seul paragraphe du troisième élément.</p></li> -</ol>]]></programlisting> - </example> - - <example> - <title>Listes de définition avec <sgmltag>dl</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting> -<![ CDATA [<dl> - <dt>Terme 1</dt> - - <dd><p>Paragraphe 1 de la définition 1.</p></dd> - - <p>Paragraphe 2 de la définition 1.</p></dd> - - <dt>Terme 2</dt> - - <dd><p>Paragraphe 1 de la définition 2.</p></dd> - - <dt>Terme 3</dt> - - <dd>Paragraphe 1 de la définition 3. Remarquez que l'élément <p> n'est - pas obligatoire dans le cas d'un paragraphe unique.</dd> -</dl>]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Texte pré-formaté</title> - - <para>Vous pouvez préciser que du texte doit apparaître exactement - comme il est présenté dans le fichier. Cela signifie habituellement - que le texte est affiché en police fixe, que les blancs successifs - sont conservés et que les passages à la ligne dans le texte sont - significatifs.</para> - - <para>Pour cela, il faut mettre ce texte dans un élément - <sgmltag>pre</sgmltag>.</para> - - <example> - <title><sgmltag>pre</sgmltag></title> - - <para>Vous pouvez utiliser <sgmltag>pre</sgmltag> pour marquer le - texte d'un courrier électronique :</para> - - <programlisting> -<![ CDATA [<pre> - From: nik@freebsd.org - To: freebsd-doc@freebsd.org - Subject: Nouvelle documentation disponible - - Une nouvelle version de mon introduction pour les nouveaux - participants au Projet de Documentation de FreeBSD est - disponible à l'adresse suivante : - - <URL:http://www.freebsd.org/~nik/primer/index.html> - - Commentaires souhaités. - - N -</pre>]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Tables</title> - - <note> - <para>La plupart des navigateurs en mode texte (comme Lynx) - n'affichent pas très bien les tables. Si vous utilisez ce type de - présentation en tableaux, vous devriez envisager d'utiliser - d'autres marques pour éviter la confusion.</para> - </note> - - <para>Marquez les tableaux avec l'élément <sgmltag>table</sgmltag>. - Un tableau est composé d'une ou plusieurs lignes - (<sgmltag>tr</sgmltag>), chacune contenant une ou plusieurs - cellules (<sgmltag>td</sgmltag>). Chaque cellule peut contenir - d'autres éléments de bloc, des paragraphes ou des listes par - exemple. Elle peut aussi contenir d'autres tables (cet emboîtement - peut se répéter indéfiniment). Si la cellule ne contient qu'un seul - paragraphe, l'élément <sgmltag>p</sgmltag> n'est pas - obligatoire.</para> - - <example> - <title>Emploi simple de <sgmltag>table</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting> -<![ CDATA [<p>C'est une table 2x2 simple.</p> - -<table> - <tr> - <td>Cellule en haut à gauche</td> - - <td>Cellule en haut à droite</td> - </tr> - - <tr> - <td>Cellule en bas à gauche</td> - - <td>Cellule en bas à droite</td> - </tr> -</table>]]></programlisting></example> - - <para>Une cellule peut occuper plusieurs lignes ou colonnes. Pour le - préciser, ajoutez les attributs <literal>rowspan</literal> et/ou - <literal>colspan</literal>, dont les valeurs donnent le nombre de - lignes et de colonnes occupées.</para> - - <example> - <title>Emploi de <literal>rowspan</literal></title> - - <para>Utilisez :</para> - - <programlisting> -<![ CDATA [<p>Une grande cellule à gauche, deux petites cellule à droite.</p> - -<table> - <tr> - <td rowspan="2">Grande et mince</td> - </tr> - - <tr> - <td>Cellule du haut</td> - - <td>Cellule du bas</td> - </tr> -</table>]]></programlisting> - </example> - - <example> - <title>Emploi de <literal>colspan</literal></title> - - <para>Utilisez :</para> - - <programlisting> -<![ CDATA [<p>Une grande cellule en haut, deux petites cellules en dessous.</p> - -<table> - <tr> - <td colspan="2">Cellule du haut</td> - </tr> - - <tr> - <td>Cellule du bas à gauche</td> - - <td>Cellule du bas à droite</td> - </tr> -</table>]]></programlisting> - </example> - - <example> - <title>Emploi de <literal>rowspan</literal> et - <literal>colspan</literal> ensemble</title> - - <para>Use:</para> - - <programlisting> -<![ CDATA [<p>Sur une grille 3x3, la cellule en haut à gauche d'étend sur deux - lignes et deux colonnes. Les autres cellules sont normales.</p> - -<table> - <tr> - <td colspan="2" rowspan="2">Grande cellule en haut à gauche</td> - - <td>Cellule en haut à droite</td> - </tr> - - <tr> - <!-- Comme la grande cellule se prolonge - sur cette colonne, la première cellule - marquée par <td> se trouvera à sa droite --> - - <td>Cellule du milieu à droite</td> - </tr> - - <tr> - <td>Cellule en bas à gauche</td> - - <td>Cellule en bas au milieu</td> - - <td>Cellule en bas à droite</td> - </tr> -</table>]]></programlisting> - </example> - </sect3> - </sect2> - - <sect2> - <title>Eléments</title> - - <sect3> - <title>Information d'accentuation</title> - - <para>Il y a deux niveaux d'accentuation disponibles en HTML, - <sgmltag>em</sgmltag> et <sgmltag>strong</sgmltag>. - <sgmltag>em</sgmltag> marque une accentuation normale et - <sgmltag>strong</sgmltag> une accentuation plus prononcée.</para> - - <para><sgmltag>em</sgmltag> est généralement rendu en italiques et - <sgmltag>strong</sgmltag> en gras. Ce n'est malgré tout pas toujours - le cas, et il ne faut pas se baser là-dessus.</para> - - <example> - <title><sgmltag>em</sgmltag> et <sgmltag>strong</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting> -<![ CDATA [<p><em>Ceci</em> est accentué, et - <strong>cela</strong> l'est encore plus.</p>]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Gras et italiques</title> - - <para>HTML comporte des marques pour la présentation, vous pouvez donc - aussi préciser qu'un contenu donné doit apparaître en gras ou en - italiques. Les éléments pour cela sont respectivement - <sgmltag>b</sgmltag> et <sgmltag>i</sgmltag>.</para> - - <example> - <title><sgmltag>b</sgmltag> et <sgmltag>i</sgmltag></title> - - <programlisting> -<![ CDATA [<p><b>Ceci</b> est en gras, tandis que <i>cela</i> est - en italiques.</p>]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Texte en police fixe</title> - - <para>S'il y a du texte qui doit être affiché en police fixe (machine - à écrire), servez-vous de <sgmltag>tt</sgmltag> ( pour - “télétype”).</para> - - <example> - <title><sgmltag>tt</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting> -<![ CDATA [<p>L'auteur original de ce document est - Nik Clayton, qui peut être contacté par courrier - électronique à l'adresse : <tt>nik@freebsd.org</tt>.</p>]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Taille de police</title> - - <para>Vous pouvez préciser qu'un contenu doit être affiché en police - plus grande ou plus petite. Il y a trois façons de le faire.</para> - - <orderedlist> - <listitem> - <para>Utilisez <sgmltag>big</sgmltag> et <sgmltag>small</sgmltag> - pour encadrer le texte dont vous voulez modifier la taille. Ces - marques peuvent être imbriquées, il est donc possible - d'avoir : <literal><big><big>C'est bien plus - gros</big></big></literal>.</para> - </listitem> - - <listitem> - <para>Servez-vous de <sgmltag>font</sgmltag> avec l'attribut - <literal>size</literal> prenant respectivement les valeurs - <literal>+1</literal> ou <literal>-1</literal>. C'est la même - chose que d'utiliser <sgmltag>big</sgmltag> ou - <sgmltag>small</sgmltag>. Mais cette façon de faire est - obsolète.</para> - </listitem> - - <listitem> - <para>Utilisez <sgmltag>font</sgmltag> avec l'attribut - <literal>size</literal> prenant une valeur de 1 à 7. La taille - de police par défaut est <literal>3</literal>. Cette façon de - faire est aussi obsolète.</para> - </listitem> - </orderedlist> - - <example> - <title><sgmltag>big</sgmltag>, <sgmltag>small</sgmltag> et - <sgmltag>font</sgmltag></title> - - <para>Les trois extraits suivants ont le même résultat :</para> - - <programlisting> -<![ CDATA [<p>Ce texte est <small>un peu plus petit</small>. - Mais celui-là <big>est un peu plus gros</big>.</p> - -<p>Ce texte est <font size="-1">un peu plus petit</font>. - Mais celui-là <font size="+1">est un peu plus gros</font>.</p> - -<p>Ce texte est <font size="2">un peu plus petit</font>. - Mais celui-là <font size="4">est un peu plus gros</font>.</p>]]></programlisting> - </example> - </sect3> - </sect2> - - <sect2> - <title>Liens</title> - - <note> - <para>Les liens font aussi partie du contenu du document.</para> - </note> - - <sect3> - <title>Liens vers d'autres documents sur le WWW</title> - - <para>Pour mettre un lien sur un autre document sur le WWW, il faut - que vous connaissiez l'URL de ce document.</para> - - <para>Ce lien est noté avec <sgmltag>a</sgmltag> et l'attribut - <literal>href</literal> contient l'URL du document cible. Le - lien est le contenu de l'élément, il est habituellement présenté - d'une façon ou d'une autre à l'utilisateur (souligné, couleur - différente, curseur de forme différente quand on passe dessus, et - ainsi de suite).</para> - - <example> - <title>Emploi de <literal><a href="..."></literal></title> - - <para>Utilisez :</para> - - <programlisting> -<![ CDATA [<p>Vous trouverez plus d'informations sur le - <a href="http://www.freebsd.org/">site Web de FreeBSD</a>.</p>]]></programlisting> - </example> - - <para>Ces liens amèneront l'utilisateur au début du document - sélectionné.</para> - </sect3> - - <sect3> - <title>Liens sur d'autres parties des documents</title> - - <para>Pour mettre un lien sur un endroit précis d'un autre (ou du - même) document, il faut que l'auteur de ce document y ait mis des - points d'ancrage sur lequels vous pouvez pointer.</para> - - <para>Les points d'ancrage sont notés avec <sgmltag>a</sgmltag> et - l'attribut <literal>name</literal> au lieu de - <literal>href</literal>.</para> - - <example> - <title>Emploi de <literal><a name="..."></literal></title> - - <para>Utilisez :</para> - - <programlisting> -<![ CDATA [<p><a name="para1">Ce</a> paragraphe peut être référencé - par d'autres liens via le nom <tt>para1</tt>.</p>]]></programlisting> - </example> - - <para>Pour mettre un lien sur une partie nommée d'un document, utilisez - un lien ordinaire, mais ajoutez-y le nom du point d'ancrage précédé - d'un symbole <literal>#</literal>.</para> - - <example> - <title>Lien sur une partie nommée d'un autre document</title> - - <para>Supposons que l'exemple <literal>para1</literal> se trouve - dans un document appelé <filename>foo.html</filename>.</para> - - <programlisting> -<![ CDATA [<p>Vous trouverez plus d'informations au - <a href="foo.html#para1">premier paragraphe</a> de - <tt>foo.html</tt>.</p>]]></programlisting> - </example> - - <para>Si le lien pointe sur un point d'ancrage nommé du même document, - vous pouvez ommettre son URL et ne mettre que le nom du point - d'ancrage (précédé de <literal>#</literal>).</para> - - <example> - <title>Lien sur une partie nommée du même document</title> - - <para>Supposons que l'exemple <literal>para1</literal> fasse partie - de ce document.</para> - - <programlisting> -<![ CDATA [<p>Vous trouverez plus d'informations au - <a href="#para1">premier paragraphe</a> de - ce document.</p>]]></programlisting> - </example> - </sect3> - </sect2> - </sect1> - - <sect1> - <title>DocBook</title> - - <para>DocBook est une DTD créée par le <ulink - url="http://www.oreilly.com/davenport/">Davenport Group</ulink> - pour la rédaction de documentation technique. De sorte que, et au - contraire de LinuxDoc ou HTML, les marques DocBook sont plus conçues - pour décrire <emphasis>ce qu'est</emphasis> quelque chose que - <emphasis>comment</emphasis> il faut le présenter.</para> - - <note> - <title><literal>formel</literal> vs. <literal>informel</literal></title> - - <para>Certains éléments ont deux - versions - <emphasis>formelle</emphasis> et - <emphasis>informelle</emphasis>. Habituellement, la version formelle - de l'élément comporte une titre. La version informelle n'en a - pas.</para> - </note> - - <para>La DTD DocBook est disponible au catalogue des logiciels portés avec - le “méta-logiciel porté” - <filename>textproc/docbook</filename>. Elle est automatiquement - installée par ce dernier.</para> - - <sect2> - <title>Extensions FreeBSD</title> - - <para>Le Projet de Documentation de FreeBSD a ajouté quelques nouveaux - éléments à la DTD DocBook. Ces éléments permettent un marquage plus - précis.</para> - - <para>Dans la suite, quand il sera question d'un élément propre à - FreeBSD, ce sera clairement indiqué.</para> - - <para>Le terme “DocBook” désigne dans ce qui suit la DTD - DocBook avec les extensions FreeBSD.</para> - - <note> - <para>Il n'y a rien dans ces extensions qui soit propre à FreeBSD, - on a juste pensé que ce seraient des ajouts utiles pour ce projet - précis. Si d'autres contributeurs aux autres projets - “*nix” (NetBSD, OpenBSD, Linux, …) sont - intéressés à participer à la mise au point d'un jeu d'extensions - DocBook standard, merci de contacter Nik Clayton - <email>nik@FreeBSD.org</email>.</para> - </note> - - <para>Les extensions FreeBSD ne font pas (actuellement) partie du - catalogue des logiciels portés. Elles sont inclues dans les sources du - Projet de Documentation et se trouvent dans - <filename>doc/share/sgml/freebsd.dtd</filename>.</para> - </sect2> - - <sect2> - <title>Identifiant Public Formel - <foreignphrase>Formal - Public Indentifier</foreignphrase>, (FPI)</title> - - <para>En conformité avec les conventions DocBook concernant les FPIs - pour les personnalisations de DocBook, le FPI pour la DTD DocBook avec - les extensions FreeBSD est :</para> - - <programlisting>PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN"</programlisting> - </sect2> - - <sect2> - <title>Structure des documents</title> - - <para>DocBook vous permet de structurer votre documentation de - différentes façons. Le Projet de Documentation de FreeBSD utilise deux - types de documents de base, le livre et l'article.</para> - - <para>Un livre est organisé <sgmltag>chapter</sgmltag>s. C'est une - obligation. Il peut y avoir des <sgmltag>part</sgmltag>s entre le - livre et le chapitre s'il l'on veut un niveau supplémentaire dans le - découpage.</para> - - <para>Un chapitre peut avoir (ou non) une ou plusieurs sections. Elles - sont désignées par l'élément <sgmltag>sect1</sgmltag>. Si une section - inclue une autre section, utilisez l'élément <sgmltag>sect2</sgmltag>, - et ainsi de suite, jusqu'à <sgmltag>sect5</sgmltag>.</para> - - <para>Le contenu du livre est lui-même dans les chapitres et - sections.</para> - - <para>Un article est plus simple qu'un livre, et n'a pas de chapitres. - Au lieu de cela, le contenu d'un article est organisé en une ou - plusieurs sections, à l'aide des mêmes éléments - <sgmltag>sect1</sgmltag> (<sgmltag>sect2</sgmltag> et ainsi de suite) - dont on se sert pour les livres.</para> - - <para>Il vous faudra manifestement choisir le type de document à - utiliser selon la nature du document que vous rédigez. Les articles - sont bien adaptés pour des documents qui n'ont pas besoin d'être - décomposés en chapitres, et qui sont, relativement parlant, assez - court - jusqu'à 20-25 pages. Les livres eux conviennent - aux documents qui peuvent être découpés en plusieurs chapitres, - avec éventuellement des annexes, et autres composants.</para> - - <para>Les <ulink url="&url.tutorials;">guides - FreeBSD</ulink> sont tous des articles, tandis que ce document, la - <ulink url="&url.faq;">FAQ FreeBSD</ulink>, et le - <ulink url="&url.handbook;">Manuel de Référence FreeBSD</ulink> sont - des livres.</para> - - <sect3> - <title>Commencer un livre</title> - - <para>Le contenu d'un livre est un inclus dans l'élément - <sgmltag>book</sgmltag>. Tout autant que des marques organisant le - contenu, cet élément peut contenir des éléments qui donnent des - informations supplémentaires sur le livre. Ce sont soit des - méta-informations, utilisées pour y faire référence, soit un - contenu supplémentaire servant à générer la page de titre.</para> - - <para>Ces informations supplémentaires doivent être inclues dans - l'élément <sgmltag>bookinfo</sgmltag>.</para> - - <example> - <title>Boilerplate??? <sgmltag>book</sgmltag> avec - <sgmltag>bookinfo</sgmltag></title> - - <!-- Can't put this in a marked section because of the - replaceable elements --> - <programlisting><book> - <bookinfo> - <title><replaceable>Mettez le titre ici</replaceable></title> - - <author> - <firstname><replaceable>Votre prénom</replaceable></firstname> - <surname><replaceable>Votre nom de famille</replaceable></surname> - <affiliation> - <address><email><replaceable>Votre adresse de courrier - électronique</replaceable></email></address> - </affiliation> - </author> - - <copyright> - <year><replaceable>1998</replaceable></year> - <holder role="mailto:<replaceable>Votre adresse de courrier - électronique</replaceable>"><replaceable>Votre nom</replaceable></holder> - </copyright> - - <pubdate role="rcs">$Date$</pubdate> - - <releaseinfo>$Id$</releaseinfo> - - <abstract> - <para><replaceable>Résumez ici le contenu du - livre.</replaceable></para> - </abstract> - </bookinfo> - - … - -</book></programlisting> - </example> - </sect3> - - <sect3> - <title>Commencer un article</title> - - <para>Le contenu d'un article est un inclus dans l'élément - <sgmltag>article</sgmltag>. Tout autant que des marques organisant le - contenu, cet élément peut contenir des éléments qui donnent des - informations supplémentaires sur l'article. Ce sont soit des - méta-informations, utilisées pour y faire référence, soit un - contenu supplémentaire servant à générer la page de titre.</para> - - <para>Ces informations supplémentaires doivent être inclues dans - l'élément <sgmltag>artheader</sgmltag>.</para> - - <example> - <title>Boilerplate??? <sgmltag>article</sgmltag> avec - <sgmltag>artheader</sgmltag></title> - - <!-- Can't put this in a marked section because of the - replaceable elements --> - <programlisting><article> - <artheader> - <title><replaceable>Mettez le titre ici</replaceable></title> - - <author> - <firstname><replaceable>Votre prénom</replaceable></firstname> - <surname><replaceable>Votre nom de famille</replaceable></surname> - <affiliation> - <address><email><replaceable>Votre adresse de courrier - électronique</replaceable></email></address> - </affiliation> - </author> - - <copyright> - <year><replaceable>1998</replaceable></year> - <holder role="mailto:<replaceable>Votre adresse de courrier - électronique</replaceable>"><replaceable>Votre nom</replaceable></holder> - </copyright> - - <pubdate role="rcs">$Date$</pubdate> - - <releaseinfo>$Id$</releaseinfo> - - <abstract> - <para><replaceable>Résumez ici le contenu de l'article.</replaceable></para> - </abstract> - </artheader> - - … - -</article></programlisting> - </example> - </sect3> - <sect3> - <title>Séparer les chapitres</title> - - <para>Utilisez <sgmltag>chapter</sgmltag> pour marquer vos chapitres. - Chaque chapitre a obligatoirement un <sgmltag>title</sgmltag>. Les - articles n'ont pas de chapitre, ils sont réservés aux livres.</para> - - <example> - <title>Un chapitre</title> - - <programlisting><![ CDATA [<chapter> - <title>Le titre du chapitre</title> - - ... -</chapter>]]></programlisting> - </example> - - <para>Un chapitre ne peut pas être vide, il doit contenir des éléments - en plus du <sgmltag>title</sgmltag>. Si vous voulez inclure un - chapitre vide, ajoutez lui simplement un paragraphe vide.</para> - - <example> - <title>Chapitres vides</title> - - <programlisting><![ CDATA [<chapter> - <title>C'est un chapitre vide</title> - - <para></para> -</chapter>]]></programlisting> - </example> - </sect3> - - <sect3> - <title>Sections dans les chapitres</title> - - <para>Dans les livres, les chapitres peuvent (mais ce n'est pas - obligatoire) être décomposés en sections, sous-sections, et ainsi de - suite. Dans les articles, les sections sont les principaux éléments - d'organisation et chaque article doit contenir au moins une section. - Utilisez l'élément - <sgmltag>sect<replaceable>n</replaceable></sgmltag>. Le - <replaceable>n</replaceable> est le type de section, qui indique son - niveau de profondeur.</para> - - <para>La première <sgmltag>sect<replaceable>n</replaceable></sgmltag> - est <sgmltag>sect1</sgmltag>. Vous pouvez en avoir plus d'une dans - un chapitre. Elles peuvent inclure un ou plusieurs éléments - <sgmltag>sect2</sgmltag>, et ainsi de suite, jusqu'à - <sgmltag>sect5</sgmltag>.</para> - - <example> - <title>Sections dans les chapitres</title> - - <programlisting><![ RCDATA [<chapter> - <title>Exemple de chapitre</title> - - <para>Du texte dans le chapitre.</para> - - <sect1> - <title>Première section (1.1)</title> - - … - </sect1> - - <sect1> - <title>Seconde section (1.2)</title> - - <sect2> - <title>Première sous-section (1.2.1)</title> - - <sect3> - <title>Première sous-sous-section (1.2.1.1)</title> - - … - </sect3> - </sect2> - - <sect2> - <title>Seconde sous-section (1.2.2)</title> - - … - </sect2> - </sect1> -</chapter>]]></programlisting> - </example> - - <note> - <para>Cet exemple donne les numéros des sections dans leurs titres. - Vous ne devez pas le faire. Les feuilles de style s'en chargent - (voir plus bas pour plus de détails), et vous n'avez pas à vous - en préoccupez.</para> - </note> - </sect3> - - <sect3> - <title>Subdivision en <sgmltag>part</sgmltag>s</title> - - <para>Vous pouvez avoir un niveau d'organisation supplémentaire entre - le <sgmltag>book</sgmltag> et le <sgmltag>chapter</sgmltag> en - définissant une ou plusieurs <sgmltag>part</sgmltag>s. Ce n'est pas - possible dans un <sgmltag>article</sgmltag>.</para> - - <programlisting><![ CDATA [<part> - <title>Introduction</title> - - <chapter> - <title>Resumé</title> - - ... - </chapter> - - <chapter> - <title>Qu'est-ce que FreeBSD ?</title> - - ... - </chapter> - - <chapter> - <title>Historique</title> - - ... - </chapter> -</part>]]></programlisting> - </sect3> - </sect2> - - <sect2> - <title>Eléments de blocs</title> - - <sect3> - <title>Paragraphes</title> - - <para>DocBook connaît trois types de paragraphes : - <sgmltag>formalpara</sgmltag>, <sgmltag>para</sgmltag> et - <sgmltag>simpara</sgmltag>.</para> - - <para>La plupart du temps, des <sgmltag>para</sgmltag>s vous - suffiront. Les <sgmltag>formalpara</sgmltag>s ont un - <sgmltag>title</sgmltag>, et avec les <sgmltag>simpara</sgmltag>s, - certains éléments sont interdits à l'intérieur du paragraphe. - Tenez-vous en aux <sgmltag>para</sgmltag>s.</para> - - <example> - <title><sgmltag>para</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<para>C'est un paragraphe. Il peut contenir - presque n'importe quel autre élément.</para> ]]></programlisting> - - <para>Apparence :</para> - - <para>C'est un paragraphe. Il peut contenir presque n'importe quel - autre élément.</para> - </example> - </sect3> - - <sect3> - <title>Citations en bloc</title> - - <para>Une citation en bloc est un long extrait d'un autre document qui - ne doit pas faire partie du paragraphe courant. Vous n'en aurez - probablement pas besoin souvent.</para> - - <para>Les citations en blocs peuvent facultativement avoir un titre et - une attribution (ou n'avoir ni titre ni attribution).</para> - - <example> - <title><sgmltag>blockquote</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<para>Un court extrait de la constitution des Etats-Unis :</para> - -<blockquote> - <title>Préambule à la Constitution des Etats-Unis</title> - - <attribution>Copié d'un site Web quelque part</attribution> - - <para>Nous le Peuple des Etats-Unis, dans le but de former - une Union plus parfaite, d'établir la Justice, de garantir - la Tranquilité domestique, assurer la défense collective, - promouvoir notre Bien-être général, et conserver à - nous-mêmes et à notre Postérité les bienfaits de la - Liberté, proclamons et établissons cette Constitution des - Etats-Unis d'Amérique.</para> -</blockquote>]]></programlisting> - - <para>Apparence :</para> - - <para>Un court extrait de la constitution des - Etats-Unis :</para> - - <blockquote> - <title>Préambule à la Constitution des Etats-Unis</title> - - <attribution>Copié d'un site Web quelque part</attribution> - - <para>Nous le Peuple des Etats-Unis, dans le but de former une - Union plus parfaite, d'établir la Justice, de garantir la - Tranquilité domestique, assurer la défense collective, - promouvoir notre Bien-être général, et conserver à nous-mêmes et - à notre Postérité les bienfaits de la Liberté, proclamons et - établissons cette Constitution des Etats-Unis d'Amérique.</para> - </blockquote> - </example> - </sect3> - - <sect3> - <title>Indications, notes, avertissements, mises en garde, - informations importantes et barres verticales.</title> - - <para>Vous devrez peut-être ajouter des informations distinctes du - texte lui-même. Ce sont habituellement des - “méta-informations” que l'utilisateur doit - connaître.</para> - - <para>Selon la nature de l'information, vous utiliserez l'un des - élements <sgmltag>tip</sgmltag>, <sgmltag>note</sgmltag>, - <sgmltag>warning</sgmltag>, <sgmltag>caution</sgmltag> ou - <sgmltag>important</sgmltag>. Ou bien, si l'information est en - rapport avec le texte, mais ne correspond à aucun des cas - précédents, servez-vous de <sgmltag>sidebar</sgmltag>.</para> - - <para>Les cas où il faut choisir l'un ou l'autre de ces éléments ne - sont pas clairement explicités. Voici ce que suggère la - documentation DocBook :</para> - - <itemizedlist> - <listitem> - <para>Une Note est une information destinée à tous les - lecteurs.</para> - </listitem> - - <listitem> - <para>Un élément Important est une variante de la Note.</para> - </listitem> - - <listitem> - <para>Une <foreignphrase>Caution</foreignphrase> est une - information relative à la perte de données ou dégats logiciels - éventuels.</para> - </listitem> - - <listitem> - <para>Un <foreignphrase>Warning</foreignphrase> est une - information relative aux dégats matériels ou risques - corporels.</para> - </listitem> - </itemizedlist> - - <example> - <title><sgmltag>warning</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<warning> - <para>Installer FreeBSD peut vous donner envie de supprimer - Windows de votre disque dur.</para> -</warning>]]></programlisting> - </example> - - <!-- Need to do this outside of the example --> - - <warning> - <para>Installer FreeBSD peut vous donner envie de supprimer Windows - de votre disque dur.</para> - </warning> - </sect3> - - <sect3> - <title>Listes and procédures</title> - - <para>Vous aurez souvent besoin de lister des informations ou - d'indiquer à l'utilisateur les différentes étapes nécessaires pour - effectuer une tâche donnée.</para> - - <para>Pour cela, servez-vous de <sgmltag>itemizedlist</sgmltag>, - <sgmltag>orderedlist</sgmltag> ou - <sgmltag>procedure</sgmltag><footnote><para>Il y a d'autres types de - listes dans DocBook, mais ils ne nous concernent pas pour le - moment.</para> - </footnote> - </para> - - <para><sgmltag>itemizedlist</sgmltag> et - <sgmltag>orderedlist</sgmltag> sont semblables à leurs contreparties - <sgmltag>ul</sgmltag> et <sgmltag>ol</sgmltag> en HTML. Chacune - comporte un ou plusieurs éléments <sgmltag>listitem</sgmltag>, et - chaque <sgmltag>listitem</sgmltag> contient un ou plusieurs éléments - de blocs. Les élements <sgmltag>listitem</sgmltag> sont analogues - aux marques <sgmltag>li</sgmltag> du HTML. Néanmoins, au contraire - du HTML, ils sont ici obligatoires.</para> - - <para>Une <sgmltag>procedure</sgmltag> est légérement différente. Elle - consiste en <sgmltag>step</sgmltag>s, qui à leur tour sont composés - de <sgmltag>step</sgmltag>s ou <sgmltag>substep</sgmltag>s. Chaque - <sgmltag>step</sgmltag> contient des éléments de blocs.</para> - - <example> - <title><sgmltag>itemizedlist</sgmltag>, - <sgmltag>orderedlist</sgmltag> et - <sgmltag>procedure</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<itemizedlist> - <listitem> - <para>C'est le premier élément de la liste.</para> - </listitem> - - <listitem> - <para>C'est le second élément de la liste.</para> - </listitem> -</itemizedlist> - -<orderedlist> - <listitem> - <para>C'est le premier élément de la liste - ordonnée.</para> - </listitem> - - <listitem> - <para>C'est le second élément de la liste ordonnée.</para> - </listitem> -</orderedlist> - -<procedure> - <step> - <para>Faites ceci.</para> - </step> - - <step> - <para>Puis cela.</para> - </step> - - <step> - <para>Et maintenant cela.</para> - </step> -</procedure>]]></programlisting> - - <para>Apparence :</para> - - <itemizedlist> - <listitem> - <para>C'est le premier élément de la liste.</para> - </listitem> - - <listitem> - <para>C'est le second élément de la liste.</para> - </listitem> - </itemizedlist> - - <orderedlist> - <listitem> - <para>C'est le premier élément de la liste ordonnée.</para> - </listitem> - - <listitem> - <para>C'est le second élément de la liste ordonnée.</para> - </listitem> - </orderedlist> - </example> - - <!-- Can't have <procedure> inside <example>, so this is a cheat --> - - <procedure> - <step> - <para>Faites ceci.</para> - </step> - - <step> - <para>Puis cela.</para> - </step> - - <step> - <para>Et maintenant cela.</para> - </step> - </procedure> - </sect3> - - <sect3> - <title>Extraits de fichiers</title> - - <para>Si vous voulez incorporer un extrait de fichier (ou - éventuellement une fichier entier), mettez-le dans un élément - <sgmltag>programlisting</sgmltag>.</para> - - <para>Les blancs et sauts de ligne à l'intérieur de - <sgmltag>programlisting</sgmltag> <emphasis>sont</emphasis> - significatifs. Cela signifie en particulier que la marque de début - doit être sur la même ligne que la première ligne du listing et que - la marque de fin doit être sur la même ligne que la dernière ligne - du listing, sans quoi il y aurait des lignes blanches en - trop.</para> - - <example> - <title><sgmltag>programlisting</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA[<para>Quand vous aurez fini, votre programme - ressemblera à cela :</para> - -<programlisting>#include <stdio.h> - -int -main(void) -{ - printf("bonjour, le monde\n"); -}</programlisting>]]></programlisting> - - <para>Notez qu'il faut utiliser les entités correspondantes et non - les signes “supérieur” et “inférieur” à la - ligne <literal>#include</literal>.</para> - - <para>Apparence :</para> - - <para>Quand vous aurez fini votre programme, ressemblera à - cela :</para> - - <programlisting>#include <stdio.h> - -int -main(void) -{ - printf("bonjour, le monde\n"); -}</programlisting> - </example> - - <note> - <para>DocBook dispose d'un mécanisme pour faire référence à des - sections d'un <sgmltag>programlisting</sgmltag> inclus auparavant, - appelé “rappels” (voir - <sgmltag>programlistingco</sgmltag> pour plus d'information). Je - ne le comprend pas tout à fait (i.e., je ne l'ai jamais employé), - je ne peux donc pas le décrire. En attendant, vous pouvez - numéroter les lignes et y faire référence ensuite. Cela changera - dès que je trouverais le temps de comprendre et documenter les - “rappels”.</para> - </note> - </sect3> - - <sect3> - <title>Tables</title> - - <para>Au contraire d'HTML, vous n'avez pas besoin d'utiliser les - tables pour des questions de présentation, puisque les feuilles de - style s'en chargent. Les tables servent uniquement pour les données - en tableaux.</para> - - <para>Brièvement (voyez la documentation de DocBook pour plus de - détails), une table (qui peut-être formelle ou informelle) est - constituée d'un élément <sgmltag>table</sgmltag>. Il contient au - moins un élément <sgmltag>tgroup</sgmltag>, dont l'attribut donne - le nombre de colonnes dans ce sous-tableau. Dans le sous-tableau, - vous pouvez ensuite avoir un élément <sgmltag>thead</sgmltag>, qui - contient les élements correspondant aux en-têtes des colonnes, et - un <sgmltag>tbody</sgmltag> qui contient le corps du - tableau.</para> - - <para>Les <sgmltag>thead</sgmltag> et <sgmltag>tbody</sgmltag> - contiennent des éléments <sgmltag>row</sgmltag> - lignes, - qui contiennent à leur tour des éléments <sgmltag>entry</sgmltag>. - Chaque élément <sgmltag>entry</sgmltag> correspond à une cellule du - tableau.</para> - - <example> - <title><sgmltag>informaltable</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<informaltable> - <tgroup cols="2"> - <thead> - <row> - <entry>C'est le titre de la colonne 1</entry> - <entry>C'est le titre de la colonne 2</entry> - </row> - </thead> - - <tbody> - <row> - <entry>Ligne 1, colonne 1</entry> - <entry>Ligne 1, colonne 2</entry> - </row> - - <row> - <entry>Ligne 2, colonne 1</entry> - <entry>Ligne 2, colonne 2</entry> - </row> - </tbody> - </tgroup> -</informaltable>]]></programlisting> - - <para>Apparence :</para> - - <informaltable> - <tgroup cols="2"> - <thead> - <row> - <entry>C'est le titre de la colonne 1</entry> - <entry>C'est le titre de la colonne 2</entry> - </row> - </thead> - - <tbody> - <row> - <entry>Ligne 1, colonne 1</entry> - <entry>Ligne 1, colonne 2</entry> - </row> - - <row> - <entry>Ligne 2, colonne 1</entry> - <entry>Ligne 2, colonne 2</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </example> - - <para>Si vous ne voulez pas de bordures autour du tableau, vous pouvez - ajouter à l'élément <sgmltag>informaltable</sgmltag> l'attribut - <literal>frame</literal> avec la valeur <literal>none</literal> - (i.e., <literal><informaltable - frame="none"></literal>).</para> - - <example> - <title>Tableaux avec <literal>frame="none"</literal></title> - - <para>Apparence :</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>C'est le titre de la colonne 1</entry> - <entry>C'est le titre de la colonne 2</entry> - </row> - </thead> - - <tbody> - <row> - <entry>Ligne 1, colonne 1</entry> - <entry>Ligne 1, colonne 2</entry> - </row> - - <row> - <entry>Ligne 2, colonne 1</entry> - <entry>Ligne 2, colonne 2</entry> - </row> - </tbody> - </tgroup> - </informaltable> - </example> - </sect3> - - <sect3> - <title>Exemples que l'utilisateur doit suivre</title> - - <para>Vous aurez souvent à donner des exemples que l'utilisateur - puisse suivre. Ce seront habituellement des dialogues avec la - machine : l'utilisateur tape une commande, il reçoit une - réponse, il tape une autre commande, et ainsi de suite.</para> - - <para>Il y a là un certain nombre d'entités et d'éléments qui entrent - en jeu.</para> - - <variablelist> - <varlistentry> - <term><sgmltag>screen</sgmltag></term> - - <listitem> - <para>Tout ce que l'utilisateur voit dans cet exemple est - affiché sur l'écran de l'ordinateur, l'élément suivant est - donc <sgmltag>screen</sgmltag>.</para> - - <para>A l'intérieur de <sgmltag>screen</sgmltag>, les blancs - sont significatifs.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><sgmltag>prompt</sgmltag>, - <literal>&prompt.root;</literal> et - <literal>&prompt.user;</literal></term> - - <listitem> - <para>Parmi ce que l'utilisateur verra à l'écran, il y a les - invites (du système, de l'interpréteur de commandes ou des - applications). Ils doivent être marqués avec - <sgmltag>prompt</sgmltag>.</para> - - <para>Le cas particulier des deux invites de l'interpréteur de - commandes, pour un utilisateur ordinaire et pour le - super-utilisateur, est traité avec des entités. Chaque fois - que vous voulez montrer que l'utilisateur est sous - l'interpréteur de commande, servez-vous de - <literal>&prompt.root;</literal> ou - <literal>&prompt.user;</literal> selon le cas. Il n'y a - pas besoin qu'elles soient à l'intérieur de - <sgmltag>prompt</sgmltag>.</para> - - <note> - <para><literal>&prompt.root;</literal> et - <literal>&prompt.user;</literal> sont des extensions - FreeBSD à DocBook, et ne font pas partie de la DTD - originale.</para> - </note> - </listitem> - </varlistentry> - - <varlistentry> - <term><sgmltag>userinput</sgmltag></term> - - <listitem> - <para>Quant il s'agit de texte que l'utilisateur doit taper, - mettez-le dans un élément <sgmltag>userinput</sgmltag>. Il - sera normalement affiché différement.</para> - </listitem> - </varlistentry> - </variablelist> - - <example> - <title><sgmltag>screen</sgmltag>, <sgmltag>prompt</sgmltag> et - <sgmltag>userinput</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<screen>&prompt.user; <userinput>ls -1</userinput> -foo1 -foo2 -foo3 -&prompt.user; <userinput>ls -1 | grep foo2</userinput> -foo2 -&prompt.user; <userinput>su</userinput> -<prompt>Password: </prompt> -&prompt.root; <userinput>cat foo2</userinput> -C'est le fichier 'foo2'</screen>]]></programlisting> - - <para>Apparence:</para> - - <screen>&prompt.user; <userinput>ls -1</userinput> -foo1 -foo2 -foo3 -&prompt.user; <userinput>ls -1 | grep foo2</userinput> -foo2 -&prompt.user; <userinput>su</userinput> -<prompt>Password: </prompt> -&prompt.root; <userinput>cat foo2</userinput> -C'est le fichier 'foo2'</screen> - </example> - - <note> - <para>Bien que nous montrions le contenu du fichier - <filename>foo2</filename>, nous n'utilisons - <emphasis>pas</emphasis> la marque - <sgmltag>programlisting</sgmltag>. Réservez - <sgmltag>programlisting</sgmltag> pour les extraits de fichiers - hors du dialogue homme/machine.</para> - </note> - </sect3> - </sect2> - - <sect2> - <title>Eléments en ligne</title> - - <sect3> - <title>Mettre de l'information en valeur</title> - - <para>Si vous voulez mettre en valeur un mot ou une phrase, - servez-vous de <sgmltag>emphasis</sgmltag>. La présentation en sera - peut-être en italiques, ou gras, ou bien ce sera prononcé - différement par un logiciel de synthèse vocale.</para> - - <para>Il n'y a aucun moyen de changer la présentation du texte mis en - valeur dans votre document, pas d'équivalent des - <sgmltag>b</sgmltag> et <sgmltag>i</sgmltag>. Si l'information que - vous donnez est importante, envisagez d'utiliser - <sgmltag>important</sgmltag> plutôt que - <sgmltag>emphasis</sgmltag>.</para> - - <example> - <title><sgmltag>emphasis</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<para>FreeBSD est sans aucun doute - <emphasis>le</emphasis> premier système - d'exploitation de type Unix pour - architecture Intel.</para>]]></programlisting> - - <para>Apparence :</para> - - <para>FreeBSD est sans aucun doute - <emphasis>le</emphasis> premier - système d'exploitation de type Unix pour architecture - Intel.</para> - </example> - </sect3> - - <sect3> - <title>Applications, commandes, options et références</title> - - <para>Il vous arrivera souvent de désigner des applications ou des - commandes quand vous rédigerez quelque chose pour le Manuel de - Référence. Distinguer les unes des autres est simple : une - application est un ensemble de (ou éventuellement un seul) - programmes dédiés à une tâche particulière. Une commande est le nom - d'un programme que l'utilisateur peut exécuter.</para> - - <para>Vous aurez aussi de temps à autre à lister une ou plusieurs des - options d'une commande.</para> - - <para>Pour finir, il arrivera souvent que vous vouliez indiquer en - même temps que la commande, son numéro de section dans les pages de - manuel, au format “commande(numéro)” habituel dans les - documentations Unix.</para> - - <para>Désignez les noms d'applications avec - <sgmltag>application</sgmltag>.</para> - - <para>Si vous voulez lister une commande avec son numéro de section - dans le manuel (ce qui sera la plupart du temps le cas), l'élément - DocBook pour cela est <sgmltag>citerefentry</sgmltag>. Il contiendra - deux autres éléments, <sgmltag>refentrytitle</sgmltag> et - <sgmltag>manvolnum</sgmltag>. Le contenu de - <sgmltag>refentrytitle</sgmltag> est le nom de la commande, et celui - de <sgmltag>manvolnum</sgmltag> est son numéro de section dans le - manuel.</para> - - <para>Ce peut être fastidieux à taper, aussi a-t-on défini une séries - d'<link - linkend="sgml-primer-general-entities">entités générales</link> - pour faciliter ces références. Chacune de ces entités est de la - forme - <literal>&man.<replaceable>page-de-manuel</replaceable>.<replaceable>section-du-manuel</replaceable>;</literal>.</para> - - <para>Ces entités sont dans le fichier - <filename>doc/share/sgml/man-refs.ent</filename>, qui peut-être - référencé par le FPI :</para> - - <programlisting>PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"</programlisting> - - <para>L'introduction de votre documentation ressemblera donc - probalement à :</para> - - <programlisting><!DOCTYPE book PUBLIC - "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [ - -<!ENTITY % man PUBLIC - "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> -%man; - -… - -]></programlisting> - - <para>Servez-vous de <sgmltag>command</sgmltag> quand vous voulez - mettre le nom d'une commande dans le texte en le présentant comme - quelque chose que l'utilisateur doit taper.</para> - - <para>Utilisez <sgmltag>option</sgmltag> pour désigner les options - d'une commande.</para> - - <para>Ce peut être confus, et le bon choix n'est pas toujours évident. - Espérons que les exemples qui suivent éclaircirons les - choses.</para> - - <example> - <title>Applications, commandes et options.</title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<para><application>Sendmail</application> est le logiciel de - courrier électronique le plus employé sous Unix.</para> - -<para><application>Sendmail</application> comporte les - programmes <citerefentry> - <refentrytitle>sendmail</refentrytitle> - <manvolnum>8</manvolnum> - </citerefentry> et &man.newaliases.8;.</para> - -<para>L'un des paramètres de la ligne de commande de - <citerefentry><refentrytitle>sendmail</refentrytitle> - <manvolnum>8</manvolnum></citerefentry>, - <option>-bp</option>, affiche l'état des messages - dans la file d'attente. Vérifiez-le en exécutant - <command>sendmail -bp</command>.</para>]]></programlisting> - - <para>Apparence :</para> - - <para><application>Sendmail</application> est le logiciel de - courrier électronique le plus employé sous Unix.</para> - - <para><application>Sendmail</application> comporte les programmes - <citerefentry><refentrytitle>sendmail</refentrytitle> - <manvolnum>8</manvolnum></citerefentry> et - <citerefentry><refentrytitle>newaliases</refentrytitle> - <manvolnum>8</manvolnum></citerefentry>.</para> - - <para>L'un des paramètres de la ligne de commande de - <citerefentry><refentrytitle>sendmail</refentrytitle> - <manvolnum>8</manvolnum></citerefentry>, <option>-bp</option>, - affiche l'état des messages dans la file d'attente. Vérifiez-le - en exécutant <command>sendmail -bp</command>.</para> - </example> - - <note> - <para>Remarquez comme il est plus facile d'utiliser la notation - <literal>&man.<replaceable>commande</replaceable>.<replaceable>section</replaceable>;</literal>.</para> - </note> - </sect3> - - <sect3> - <title>Fichiers, répertoires, extensions</title> - - <para>Chaque fois que vous voulez donner le nom d'un fichier, d'un - répertoire ou de l'extension d'un fichier, servez-vous de - <sgmltag>filename</sgmltag>.</para> - - <example> - <title><sgmltag>filename</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<para>Vous trouverez le source SGML du Manuel - de Référence en Anglais dans - <filename>/usr/doc/en/handbook/</filename>. Le - fichier principal, dans ce répertoire, s'appelle - <filename>handbook.sgml</filename>. Il doit aussi - y avoir un <filename>Makefile</filename> et un - certain nombre de fichiers avec l'extension - <filename>.ent</filename>.</para>]]></programlisting> - - <para>Apparence :</para> - - <para>Vous trouverez le source SGML du Manuel de Référence en - Anglais dans <filename>/usr/doc/en/handbook/</filename>. Le - fichier principal, dans ce répertoire, s'appelle - <filename>handbook.sgml</filename>. Il doit aussi y avoir un - <filename>Makefile</filename> et un certain nombre de fichiers - avec l'extension <filename>.ent</filename>.</para> - </example> - </sect3> - - <sect3> - <title>Fichiers spéciaux de périphériques</title> - - <note> - <title>extension FreeBSD</title> - - <para>Ces éléments font partie des extensions FreeBSD à DocBook et - n'existent pas dans la DTD DocBook d'origine.</para> - </note> - - <para>Pour faire référence à des fichiers spéciaux de périphériques, - vous avez deux solutions. Soit utiliser le nom du fichier spécial - dans <filename>/dev</filename>, soit le nom sous lequel il est - désigné dans le noyau. Dans ce dernier cas, servez-vous de - <sgmltag>devicename</sgmltag>.</para> - - <para>Il y a des cas où vous n'aurez pas le choix. Pour certains - périphériques, les cartes réseaux par exemple, il n'y a pas - d'entrées dans <filename>/dev</filename>, ou bien celles-ci sont - très différentes des noms utilisés dans le noyau.</para> - - <example> - <title><sgmltag>devicename</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<para><devicename>sio</devicename> sert - sous FreeBSD aux communications séries. - <devicename>sio</devicename> correspond - à un certain nombre d'entrées dans - <filename>/dev</filename>, dont - <filename>/dev/ttyd0</filename> et - <filename>/dev/cuaa0</filename>.</para> - -<para>A l'inverse, les périphériques réseaux, tel que - <devicename>ed0</devicename> n'apparaissent pas dans - <filename>/dev</filename>.</para> - -<para>Sous MS-DOS, le premier lecteur de disquette s'appelle - <devicename>a:</devicename>. Sous FreeBSD, c'est - <filename>/dev/fd0</filename>.</para>]]></programlisting> - - <para>Apparence :</para> - - <para><devicename>sio</devicename> sert sous FreeBSD aux - communications séries. <devicename>sio</devicename> correspond à - un certain nombre d'entrées dans <filename>/dev</filename>, dont - <filename>/dev/ttyd0</filename> et - <filename>/dev/cuaa0</filename>.</para> - - <para>A l'inverse, les périphériques réseaux, tel que - <devicename>ed0</devicename> n'apparaissent pas dans - <filename>/dev</filename>.</para> - - <para>Sous MS-DOS, le premier lecteur de disquette s'appelle - <devicename>a:</devicename>. Sous FreeBSD, c'est - <filename>/dev/fd0</filename>.</para> - </example> - </sect3> - - <sect3> - <title>Machines, domaines, adresses IP, et ainsi de suite</title> - - <note> - <title>extension FreeBSD</title> - - <para>Ces éléments font partie des extensions FreeBSD à DocBook et - n'existent pas dans la DTD DocBook d'origine.</para> - </note> - - <para>Il y a différentes façons de dénoter les informations - d'identification des machines en réseau, selon le type - d'information. Elles utilisent toutes <sgmltag>hostid</sgmltag> - comme élément, l'attribut <literal>role</literal> servant à - qualifier le type d'information.</para> - - <variablelist> - <varlistentry> - <term>Pas de valeur de l'attribut, ou - <literal>role="hostname"</literal></term> - - <listitem> - <para>Sans valeur de l'attribut (i.e., - <sgmltag>hostid</sgmltag>...<sgmltag>hostid</sgmltag>), - l'information donnée est le seul nom de la machine, - <literal>freefall</literal> ou <literal>wcarchive</literal>, - par exemple. Vous pouvez l'expliciter avec - <literal>role="hostname"</literal>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>role="domainname"</literal></term> - - <listitem> - <para>C'est ici un nom de domaine, comme - <literal>FreeBSD.org</literal> ou - <literal>ngo.org.uk</literal>. Il n'y a pas de nom de - machine.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>role="fqdn"</literal></term> - - <listitem> - <para>C'est le nom complet de la - machine - <foreignphrase>Fully Qualified Domain - Name</foreignphrase>, composé du nom de la machine et du nom - de domaine.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>role="ipaddr"</literal></term> - - <listitem> - <para>On donne alors l'adresse IP, probablement sous forme de - quatre nombres séparés par des points.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>role="netmask"</literal></term> - - <listitem> - <para>C'est un masque de sous-réseau, qui peut être donné comme - quatre nombres séparés par des points, un chaîne en - hexadécimal ou un <literal>/</literal> suivi d'un - nombre.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>role="mac"</literal></term> - - <listitem> - <para>C'est une adresse Ethernet MAC, exprimée par un séries de - valeurs hexadéciamales sur deux positions séparées par des - deux-points.</para> - </listitem> - </varlistentry> - </variablelist> - - <example> - <title><sgmltag>hostid</sgmltag> et <literal>role</literal>s</title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<para>La machine locale peut toujours - être désignée par <hostid>localhost</hostid>, - et aura l'adresse IP - <hostid role="ipaddr">127.0.0.1</hostid>.</para> - -<para>Le domaine - <hostid role="domainname">FreeBSD.org</hostid> - inclut un certain nombre de machine, dont - <hostid role="fqdn">freefall.FreeBSD.org</hostid> et - <hostid role="fqdn">bento.FreeBSD.org</hostid>.</para> - -<para>Quand vous ajoutez un alias IP à une interface (avec - <command>ifconfig</command>), utilisez - <emphasis>toujours</emphasis> le masque de sous-réseau - <hostid role="netmask">255.255.255.255</hostid> - (qui peut aussi s'écrire - <hostid role="netmask">0xffffffff)</hostid>.</para> - -<para>L'adresse MAC identifie de façon unique - chaque carte réseau existante. Une adresse MAC - ressemble typiquement à <hostid - role="mac">08:00:20:87:ef:d0</hostid>.</para>]]></programlisting> - - <para>Apparence :</para> - - <para>La machine locale peut toujours être désignée par - <hostid>localhost</hostid>, et aura l'adresse IP - <hostid role="ipaddr">127.0.0.1</hostid>.</para> - - <para>Le domaine <hostid role="domainname">FreeBSD.org</hostid> - inclut un certain nombre de machine, dont - <hostid role="fqdn">freefall.FreeBSD.org</hostid> et - <hostid role="fqdn">bento.FreeBSD.org</hostid>.</para> - - <para>Quand vous ajoutez un alias IP à une interface (avec - <command>ifconfig</command>), utilisez - <emphasis>toujours</emphasis> le masque de sous-réseau - <hostid role="netmask">255.255.255.255</hostid> - (qui peut aussi s'écrire - <hostid role="netmask">0xffffffff</hostid>).</para> - - <para>L'adresse MAC identifie de façon unique chaque carte réseau - existante. Une adresse MAC ressemble typiquement à <hostid - role="mac">08:00:20:87:ef:d0</hostid>.</para> - </example> - </sect3> - - <sect3> - <title>Noms d'utilisateurs</title> - - <note> - <title>extension FreeBSD</title> - - <para>Ces éléments font partie des extensions FreeBSD à DocBook et - n'existent pas dans la DTD DocBook d'origine.</para> - </note> - - <para>Si vous avez besoin de faire référence à un nom d'utilisateur, - comme <literal>root</literal> ou <literal>bin</literal>, servez-vous - de <sgmltag>username</sgmltag>.</para> - - <example> - <title><sgmltag>username</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<para>Pour effectuer la plupart des - tâches d'administration système, - vous aurez besoin d'être - <username>root</username>.</para>]]></programlisting> - - <para>Apparence :</para> - - <para>Pour effectuer la plupart des tâches d'administration système, - vous aurez besoin d'être <username>root</username>.</para> - </example> - </sect3> - - <sect3> - <title>Décrire les <filename>Makefile</filename>s</title> - - <note> - <title>extension FreeBSD</title> - - <para>Ces éléments font partie des extensions FreeBSD à DocBook et - n'existent pas dans la DTD DocBook d'origine.</para> - </note> - - <para>Il y a des éléments pour décrire les composantes d'un - <filename>Makefile</filename>s, <sgmltag>maketarget</sgmltag> et - <sgmltag>makevar</sgmltag>.</para> - - <para><sgmltag>maketarget</sgmltag> désigne une cible définie dans un - <filename>Makefile</filename> qui peut être utilisée en paramètre de - <command>make</command>. <sgmltag>makevar</sgmltag> désigne une - variable qui peut être définie (dans l'environnement, sur la ligne - de commande de <command>make</command> ou dans le - <filename>Makefile</filename>) et affecte le processus .</para> - - <example> - <title><sgmltag>maketarget</sgmltag> et - <sgmltag>makevar</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<para>Il y a deux cibles courantes dans les - <filename>Makefile</filename> : - <maketarget>all</maketarget> et - <maketarget>clean</maketarget>.</para> - -<para>Généralement, invoquer <maketarget>all</maketarget> - reconstruit l'application, et invoquer - <maketarget>clean</maketarget> supprime les - fichiers temporaires (<filename>.o</filename> - par exemple) créés lors de la reconstruction.</para> - -<para><maketarget>clean</maketarget> peut être - contrôlée par un certain nombre - de variables, dont <makevar>CLOBBER</makevar> et - <makevar>RECURSE</makevar>.</para>]]></programlisting> - - <para>Apparence :</para> - - <para>Il y a deux cibles courantes dans les - <filename>Makefile</filename> : <maketarget>all</maketarget> - et <maketarget>clean</maketarget>.</para> - - <para>Généralement, invoquer <maketarget>all</maketarget> - reconstruit l'application, et invoquer - <maketarget>clean</maketarget> supprime les fichiers temporaires - (<filename>.o</filename> par exemple) créés lors de la - reconstruction.</para> - - <para><maketarget>clean</maketarget> peut être contrôlée par un - certain nombre de variables, dont <makevar>CLOBBER</makevar> et - <makevar>RECURSE</makevar>.</para> - </example> - </sect3> - - <sect3> - <title>Litéraux</title> - - <para>Vous aurez souvent besoin d'inclure “litéralement” - du texte dans le Manuel. Ce sont des extraits d'un fichier, que l'on - doit pouvoir copier tel quel dans un autre fichier.</para> - - <para>Il vous suffira parfois de <sgmltag>programlisting</sgmltag> - pour cela. <sgmltag>programlisting</sgmltag> n'est pas toujours - approprié, en particulier quand vous voulez inclure un extrait - de fichier au fil de l'eau, dans le corps même du paragraphe.</para> - - <para>Servez-vous dans ces cas-là de - <sgmltag>literal</sgmltag>.</para> - - <example> - <title><sgmltag>literal</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<para>La ligne <literal>maxusers 10</literal> du fichier - de configuration du noyau détermine la table de nombreuses - tables système et définit approximativement le nombre de - connexions simultanées qu'acceptera le système.</para>]]></programlisting> - - <para>Apparence :</para> - - <para>La ligne <literal>maxusers 10</literal> du fichier de - configuration du noyau détermine la table de nombreuses tables - système et définit approximativement le nombre de connexions - simultanées qu'acceptera le système.</para> - </example> - </sect3> - - <sect3> - <title>Montrer ce que l'utilisateur <emphasis>doit</emphasis> - renseigner</title> - - <para>Il arrivera souvent que vous vouliez montrer à l'utilisateur ce - qu'il doit faire, faire référence à un fichier, à une ligne de - commande, ou autre, dans lesquels l'utitilisateur ne pourra pas - purement et simplement copier les examples que vous lui donnez, mais - devra y renseigner lui-même certaines informations.</para> - - <para><sgmltag>replaceable</sgmltag> est prévu pour ces cas-là. - Servez-vous en <emphasis>à l'intérieur</emphasis> d'autres éléments - pour indiquer quels contenus l'utilisateur doit remplacer.</para> - - <example> - <title><sgmltag>replaceable</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<informalexample> - <screen>&prompt.user; <userinput>man - <replaceable>command</replaceable></userinput></screen> -</informalexample>]]></programlisting> - - <para>Apparence :</para> - - <informalexample> - <screen>&prompt.user; <userinput>man <replaceable>command</replaceable></userinput></screen> - </informalexample> - - <para><sgmltag>replaceable</sgmltag> peut servir dans de nombreux - autres éléments, dont <sgmltag>literal</sgmltag>. Cet exemple - montre aussi qu'il ne faut mettre <sgmltag>replaceable</sgmltag> - qu'autour du contenu que l'utilisateur <emphasis>doit</emphasis> - fournir. Il faut laisser le reste tel quel.</para> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<para>La ligne <literal>maxusers 10</literal> du fichier - de configuration du noyau détermine la table de nombreuses - tables système et définit approximativement le nombre - de connexions simultanées qu'acceptera le système.</para> - -<para><literal>32</literal> est un valeur correcte de - <replaceable>n</replaceable> pour une station - de travail.</para>]]></programlisting> - - <para>Apparence :</para> - - <para>La ligne <literal>maxusers 10</literal> du fichier de - configuration du noyau détermine la table de nombreuses tables - système et définit approximativement le nombre de connexions - simultanées qu'acceptera le système.</para> - - <para><literal>32</literal> est un valeur correcte de - <replaceable>n</replaceable> pour une station de travail.</para> - </example> - </sect3> - </sect2> - - <sect2> - <title>Liens</title> - - <note> - <para>Les liens sont aussi des éléments en ligne.</para> - </note> - - <sect3> - <title>Mettre des liens vers d'autres parties du même document</title> - - <para>Pour mettre de liens à l'intérieur même du document, il faut que - vous précisiez d'où part le lien (i.e., le texte ou autre, sur - lequel l'utilisateur clique) et où il va.</para> - - <para>Chaque élément DocBook possède un attribut - <literal>id</literal>. Vous pouvez utiliser cet attribut pour donner - un nom unique à l'élément.</para> - - <para>C'est cette valeur que vous utiliserez quand vous préciserez - la destination du lien.</para> - - <para>Habituellement, vous mettrez des liens sur des chapitres ou des - sections, vous ajouterez donc un attribut <literal>id</literal> à - ces éléments.</para> - - <example> - <title><literal>id</literal> de chapitres et de section</title> - - <programlisting><![ CDATA [<chapter id="chapitre1"> - <title>Introduction</title> - - <para>C'est l'introduction. Elle comporte une sous-section, - qui a aussi un identifiant.</para> - - <sect1 id="chapter1-sect1"> - <title>Sous-section 1</title> - - <para>C'est la sous-section.</para> - </sect1> -</chapter>]]></programlisting> - </example> - - <para>Vous devriez utiliser des valeurs plus explicites. Ces valeurs - doivent être uniques pour le document (i.e., pas uniquement dans le - fichier, mais dans le document dans lequel le fichier peut - éventuellement être inclus aussi). Remarquez que - l'<literal>id</literal> de la sous-section est construit en le - préfixant de l'<literal>id</literal> du chapitre. Cela aide à - construire des identifiants uniques.</para> - - <para>Si vous voulez que l'utilisateur puisse aller à un endroit - précis du document (éventuellement au milieu du paragraphe), ou à un - exemple, servez-vous de <sgmltag>anchor</sgmltag>. Cet élément n'a - pas de contenu, mais il a un attribut <literal>id</literal>.</para> - - <example> - <title><sgmltag>anchor</sgmltag></title> - - <programlisting><![ CDATA [<para>Ce paragraphe inclut un - <anchor id="para1">lien interne. Il n'apparaît - pas dans le document.</para>]]></programlisting> - </example> - - <para>Si vous voulez fournir à l'utilisateur un lien qu'il puisse - activer (probablement en cliquant dessus) pour aller à une section - du document qui a un attribut <literal>id</literal>, vous pouvez - vous servir de <sgmltag>xref</sgmltag> ou - <sgmltag>link</sgmltag>.</para> - - <para>Ces deux éléments ont un attribut <literal>linkend</literal>. - La valeur de cette attribut doit être celle que vous avez utilisée - comme attribut <literal>id</literal> (peu importe si cette valeur - n'a pas encore été définie dans le document, les liens peuvent être - en avant ou en arrière).</para> - - <para>Si vous vous servez de <sgmltag>xref</sgmltag>, vous n'avez pas - le contrôle du texte du lien. Il sera généré automatiquement.</para> - - <example> - <title>Se servir de <sgmltag>xref</sgmltag></title> - - <para>Supposons que ce fragment apparaisse quelque part dans un - document qui contienne l'exemple que nous avons donné pour - <literal>id</literal> :</para> - - <programlisting><![ CDATA [<para>Vous trouverez plus d'information - au <xref linkend="chapter1">.</para> - -<para>Vous trouverez des informations plus détaillées dans - <xref linkend="chapter1-sect1">.</para>]]></programlisting> - - <para>Le texte du lien sera généré automatiquement, et cela - ressemblera à (le texte mis <emphasis>en valeur</emphasis> indique - que c'est cela le lien) :</para> - - <blockquote> - <para>Vous trouverez plus d'information au <emphasis>Chapitre - Un</emphasis>.</para> - - <para>Vous trouverez des informations plus détaillées dans - <emphasis>la section appellée Sous-section 1</emphasis>.</para> - </blockquote> - </example> - - <para>Remarquez que le texte du lien est construit à partir du titre - de la section ou du numéro du chapitre.</para> - - <note> - <para>Cela veut dire que vous <emphasis>ne pouvez pas</emphasis> - utiliser <sgmltag>xref</sgmltag> pour mettre un lien sur - l'attribut <literal>id</literal> d'un élément - <sgmltag>anchor</sgmltag>. L'<sgmltag>anchor</sgmltag> n'a pas de - contenu et <sgmltag>xref</sgmltag> ne pourrait donc pas générer le - texte du lien.</para> - </note> - - <para>Si vous voulez avoir la maîtrise du texte du lien, servez-vous - alors de <sgmltag>link</sgmltag>. Cet élément encadre un contenu qui - sera utilisé comme lien.</para> - - <example> - <title>Utiliser <sgmltag>link</sgmltag></title> - - <para>Supposons que ce fragment apparaisse quelque part dans un - document qui contienne l'exemple que nous avons donné pour - <literal>id</literal> :</para> - - <programlisting><![ CDATA [<para>Vous trouverez plus d'information - au <link linkend="chapter1">premier chapitre</link>.</para> - -<para>Vous trouverez des informations plus détaillées dans - <link linkend="chapter1-sect1">cette</link> - section.</para>]]></programlisting> - - <para>Ce qui générera (le texte mis <emphasis>en valeur</emphasis> - indique que c'est cela le lien) :</para> - - <blockquote> - <para>Vous trouverez plus d'information au <emphasis>premier - chapitre</emphasis>.</para> - - <para>Vous trouverez des informations plus détaillées dans - <emphasis>cette</emphasis> section.</para> - - </blockquote> - </example> - - <note> - <para>Le dernier exemple n'est pas à suivre. N'utilisez jamais - “ce” ou “ici” comme origine du lien. Le - lecteur devra détailler le contexte dans lequel c'est employé pour - comprendre où le lien va le mener.</para> - </note> - - <note> - <para>Vous <emphasis>pouvez</emphasis> vous servir de - <sgmltag>link</sgmltag> pour mettre un lien sur un - <literal>id</literal> ou une <sgmltag>anchor</sgmltag>, puisque - le contenu du <sgmltag>link</sgmltag> définit le texte qui sera - utilisé comme lien.</para> - </note> - </sect3> - - <sect3> - <title>Liens vers d'autres documents sur le WWW</title> - - <para>Mettre des liens sur des documents externes est beaucoup plus - facile, si tant est que vous connaissiez l'URL du document sur - lequel vous voulez mettre un lien. Servez-vous de - <sgmltag>ulink</sgmltag>. L'attribut <literal>url</literal> sera - l'URL de la page où pointera le lien, et le contenu du lien sera - utilisé pour que l'utilisateur puisse l'activer.</para> - - <example> - <title><sgmltag>ulink</sgmltag></title> - - <para>Utilisez :</para> - - <programlisting><![ CDATA [<para>Vous pouvez bien sûr cessez de lire - ce document, et aller au lieu de cela sur la <ulink - url="http://www.FreeBSD.org/"> page Web de FreeBSD</ulink>.</para>]]></programlisting> - - <para>Apparence :</para> - - <para>Vous pouvez bien sûr cessez de lire ce document, et aller au - lieu de cela sur la <ulink - url="http://www.FreeBSD.org/"> page Web de - FreeBSD</ulink>.</para> - </example> - </sect3> - </sect2> - </sect1> - - <sect1> - <title>* LinuxDoc</title> - - <para>LinuxDoc est adapté de la DTD QWERTZ, et a été d'abord utilisé par - le <ulink url="http://sunsite.unc.edu/LDP/">Projet de Documentation de - Linux</ulink>, puis adopté ensuite par celui de FreeBSD.</para> - - <para>La DTD LinuxDoc utilise des marques qui décrivent avant tout - l'apparence du document et non son contenu (i.e., elle décrit à quoi - quelque chose ressemble, et non ce que c'est).</para> - - <para>Et le Projet de Documentation de FreeBSD et celui de Linux sont en - train de migrer de la DTD LinuxDoc à la DTD DocBook.</para> - - <para>La DTD LinuxDoc DTD est disponible au catalogue des logiciels portés, - dans la catégorie <filename>textproc/linuxdoc</filename>.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/fr_FR.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml deleted file mode 100644 index 29422c6417..0000000000 --- a/fr_FR.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml +++ /dev/null @@ -1,1645 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML, HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $Id: chapter.sgml,v 1.1 2000-06-12 15:46:44 gioria Exp $ - Original revision: 1.8 ---> - -<chapter id="sgml-primer"> - <title>Introduction à SGML</title> - - <para>La majorité des documentations du FDP utilisent SGML. Ce chapitre vous - explique ce que cela signifie exactement, comment lire et comprendre le - source de la documentation et décrit la façon d'utiliser le SGML que vous - recontrerez dans la documentation.</para> - - <para>Des parties de cette section se sont inspirées du livre de Mark - Galassi, <ulink - url="http://nis-www.lanl.gov/~rosalia/mydocs/docbook-intro/docbook-intro.html">“<foreignphrase>Get Going With DocBook</foreignphrase>”</ulink>.</para> - - <sect1> - <title>Introduction</title> - - <para>Il était autrefois facile de travailler sur des documents - électroniques. Vous n'aviez normalement à connaître que le jeu de - caractères utilisé (ASCII, EBCDIC, ou l'un des nombreux autres) et - c'était à peu près tout. Le texte était du texte, et vous voyiez - vraiment ce que vous obteniez. Pas de sophistication, pas de formatage, - pas d'intelligence.</para> - - <para>Cela devint inévitablement insuffisant. Une fois que vous avez du - texte qu'une machine peut lire, vous vous attendez à ce que la machine - puisse l'utiliser et le manipuler intelligemment. Vous aimeriez pouvoir - préciser que certaines phrases sont accentuées, y ajouter un glossaire - ou des hyper-liens. Vous voulez que les noms de fichiers apparaissent - en police “machine à écrire” à l'écran et en italique à - l'impression, et tout un tas d'autres options de présentation - encore.</para> - - <para>Il fut un temps où l'on pensait que l'Intelligence Artificielle (IA) - rendrait cela facile. Votre ordinateur pourrait lire le document et - identifier les phrases clés, les noms de fichiers, le texte que - l'utilisateur devait taper, et d'autres encore. Malheureusement, la - réalité est un peu différente, et il faut aider nos ordinateurs à - manipuler intelligemment notre texte.</para> - - <para>Plus précisement, il faut les aider à indentifier ce qui est quoi. - Vous et moi, à la vue de :</para> - - <blockquote> - <para>Pour effacer <filename>/tmp/foo</filename>, utilisez - &man.rm.1; :</para> - - <screen>&prompt.user; <command>rm /tmp/foo</command></screen> - </blockquote> - - <para>distinguons facilement ce qui est nom de fichier, commande à - taper, référence aux pages de manuel, et ainsi de suite. Mais - l'ordinateur lui ne le peut pas. Pour cela, Nous avons besoin des - marques.</para> - - <para>Le “marquage” est communément qualifié de “valeur - ajoutée” ou “coût augmenté”. Le terme prend ces deux - sens quand il s'applique au texte. La marquage est du texte en - supplément dans le document, distinct par un moyen ou un autre du - contenu du document, de façon à ce que les programmes qui traitent le - document puisse le lire et l'utiliser pour prendre des décisions. Les - éditeurs peuvent masquer le marquage à l'utilisateur, de façon à ce - qu'il ne soit pas perturbé par ces marques.</para> - - <para>L'information supplémentaire donnée avec les marques - <emphasis>ajoute de la valeur</emphasis> au document. Le marquage doit - habituellement être manuel - après tout, si les ordinateurs - pouvait analyser suffisamment le texte pour ajouter les marques, il n'y - en aurait alors en fait pas besoin. Cela <emphasis>augment le - coût</emphasis> du document.</para> - - <para>L'exemple précédent est codé comme suit dans le présent - document :</para> - - <programlisting><![ CDATA [ -<para>Pour effacer <filename>/tmp/foo</filename>, utilisez - &man.rm.1;.</para> - -<para><command>rm /tmp/foo</command></para>]]></programlisting> - - <para>Comme vous pouvez le constater, le marquage est clairement séparé du - contenu.</para> - - <para>Bien évidemment, si vous devez utiliser des marques, vous devrez - définir ce que les marques veulent dire et comment elles doivent être - traitées. Il vous faudra un language de marquage auquel vous référer - pour marquer vos documents.</para> - - <para>Un seul language de marquage peut bien sûr ne pas suffire. Les - besoins de marquage d'une documentation technique diffèrent énormément - de ceux de recettes de cuisines. ces derniers seront à leur tour - différents de ceux d'un language de marquage pour de la poésie. Vous - avez en fait besoin d'un language qui vous permette de définir ces - autres languages de marquage. Un <emphasis>méta-language de - marquage</emphasis>.</para> - - <para>C'est exactement ce qu'est <foreignphrase>Standard Generalised - Markup Language (SGML)</foreignphrase> - Language de Marquage - Standard Généralisé. De nombreux languages de marquage sont écrits en - SGML, dont les deux languages les plus utilisés par le FDP, HTML et - DocBook.</para> - - <para>Chaque définition d'un language s'appelle plus exactement une - <foreignphrase>Document Type Definition - (DTD)</foreignphrase> - Définition de Type de Document. La DTD - définit les noms des éléments utilisables, leur ordre d'apparition (et - leur hiérarchie) et les informations qui s'y rapportent. Une DTD est - parfois désignée comme une <emphasis>application</emphasis> de - SGML.</para> - - <para id="sgml-primer-validating">Une DTD est une spécification - <emphasis>complète</emphasis> de tous les éléments autorisés, de l'ordre - dans lequel ils doivent être utilisés, quels sont ceux qui sont - obligatoires, quels sont ceux qui sont facultatifs, et ainsi de suite. - Il est alors possible d'écrire un <emphasis>analyseur</emphasis> qui - lise et la DTD et le document qui prétend s'y conformer. L'analyseur - peut alors vérifier si tous les éléments requis sont bien présents dans - l'ordre voulu dans le document et s'il y a des erreurs dans le marquage. - On appelle habituellement cela <quote>valider le - document</quote>.</para> - - <note> - <para>Ce traitement ne valide uniquement que le choix des éléments, leur - ordre, et ainsi de suite, se conforme à ce que définit la DTD. Il ne - vérifie <emphasis>pas</emphasis> que vous avez utilisé les marques - <emphasis>appropriées</emphasis> au document. Si vous marquez tous les - noms de fichiers de votre document comme des noms de fonctions, - l'analyseur ne le signalera pas comme une erreur (en supposant, bien - sûr, que votre DTD définisse des éléments pour les noms de fichiers et - de fonctions et qu'ils aient le droit d'apparaître aux mêmes - endroits).</para> - </note> - - <para>Il est probable que vos contributions au Projet de Documentation - consiste en documents marqués soit en HTML soit en DocBook, plutôt qu'en - modifications aux DTDs. Pour cette raison, cet ouvrage n'abordera pas la - façon d'écrire une DTD.</para> - </sect1> - - <sect1 id="sgml-primer-elements"> - <title>Eléments, marques et attributs</title> - - <para>Toutes les DTDs écrites en HTML ont des caractéristiques communes. - Ce n'est guère surprenant comme le montre inévitablement la philosophie - qui sous-tend SGML. Une des manifestations les plus visibles de cette - philosophie est la caractérisation en <emphasis>contenu</emphasis> et - <emphasis>éléments</emphasis>.</para> - - <para>Votre documentation (que ce soit une seule page Web ou un ouvrage - volumineux) est vue comme étant un contenu. Ce contenu est alors divisé - (et ensuite subdivisé) en éléments. L'objectif de l'ajout de marques est - de nommer et de définir le début et la fin de ces éléments pour - traitement ultérieur.</para> - - <para>Considérez par exemple un livre type. Au plus haut niveau, ce livre - lui-même est un élément. Cet élément “livre” contient - évidemment des chapitres, qui peuvent aussi être légitimement considérés - comme des éléments. Chaque chapitre contiendra à son tour des éléments, - tels que des paragraphes, des citations et de notes de bas de page. - Chaque paragraphe peut lui-même contenir encore des éléments, pour - identifier le texte parlé par exemple, ou les noms des personnages de - l'histoire.</para> - - <para>Vous pouvez si vous le voulez voir cela comme un - “morcelement” du contenu. A la racine, vous avez un morceau, - le livre. Un niveau en dessous, vous avez plus de morceaux, les - chapitres individuels. Ils sont à leur tour morcelés en pargraphes, - notes de bas de page, noms des personnages, et ainsi de suite.</para> - - <para>Remarquez que vous pouvez différencier les éléments sans utiliser - la terminologie SGML. C'est vraiment immédiat. Vous pouvez le faire avec - un surligneur et un livre imprimé, en utilisant des couleurs différentes - pour chaque type d'élément.</para> - - <para>Nous n'avons bien sûr pas de surligneur électronique, il nous faut - donc un autre moyen d'indiquer à quel élément appartient chaque morceau - du contenu. Dans les languages écrits avec SGML ,(HTML, DocBook, et - al.), cela se fait avec des <emphasis>marques</emphasis>.</para> - - <para>Une marque sert à dire où commence et où finit un élément. - <emphasis>La marque ne fait pas partie de l'élément lui-même</emphasis>. - Comme chaque DTD est habituellement écrite pour marquer des types - d'informations spécifiques, chacune reconnaîtra des éléments différents, - et aura donc des noms différents pour les marques.</para> - - <para>Pour un élément appelé <replaceable>nom-de-l'élément</replaceable>, - la marque de début sera normalement - <literal><<replaceable>nom-de-l'élément</replaceable>></literal>. - La marque de fin correspondante sera - <literal></<replaceable>nom-de-l'élément</replaceable>></literal>.</para> - - <example> - <title>Utiliser un élément (marques de début et de fin)</title> - - <para>HTML dispose d'un élément pour indiquer que le contenu inclus est - un paragraphe, appelé <literal>p</literal>. Cet élément a une marque - de début et une de fin.</para> - - <programlisting> -<![ CDATA [<p>C'est un paragraphe. Il commence avec la marque de début pour - l'élément 'p', et se terminera avec la marque de fin pour - l'élément 'p'</p> - -<p>C'est un autre paragraphe. Mais il est beaucoup plus - court.</p>]]></programlisting> - </example> - - <para>Tous les éléments n'ont pas besoin d'une marque de fin. Certains - n'ont pas de contenu. En HTML, par exemple, vous pouvez indiquer que - vous voulez avoir une ligne horizontal dans votre document. Cette ligne - n'a bien sûr aucun contenu, vous n'avez donc besoin que de la marque de - début pour cet élément.</para> - - <example> - <title>Utiliser un élément (marque de début uniquement)</title> - - <para>HTML dispose d'un élément pour inclure une ligne horizontale, - appelé <literal>hr</literal>. C'est un élément sans contenu, il n'a - donc qu'une marque de début.</para> - - <programlisting> -<![ CDATA [<p>C'est un paragraphe.</p> - -<hr> - -<p>C'est un autre paragraphe. Une ligne horizontale le sépare - du précédent.</p>]]></programlisting> - </example> - - <para>Si ce n'était pas encore clair, les éléments peuvent contenir - d'autres éléments. Dans l'exemple du livre plus haut, ce livre contenait - tous les chapitres, qui à leur tour contenaient tous les paragraphes, et - ainsi de suite.</para> - - <example> - <title>Eléments dans des éléments ; <sgmltag>em</sgmltag></title> - - <programlisting> -<![ CDATA [<p>C'est un <em>paragraphe</em> simple où certains - <em>mots</em> ont été <em>mis en valeur</em>.</p>]]></programlisting> - </example> - - <para>La DTD définira les règles qui disent quels éléments peuvent être - inclus dans quels autres éléments, et ce qu'ils peuvent précisement - contenir.</para> - - <important> - <para>Les gens confondent souvent marques et éléments comme si c'étaient - des termes interchangeables. Ce n'est pas le cas.</para> - - <para>Un élément est une partie de la structure d'un document. Un - élément a un début et une fin. Les marques définissent où commence et - où finit le document.</para> - - <para>Quand le présent document (ou quelqu'un d'autre qui connait le - SGML) parle de la marque “the <p> tag”, cela se - rapporte au texte composé des trois caractères - <literal><</literal>, <literal>p</literal> - et <literal>></literal>. Mais la phrase “l'élément - <p>” désigne tout l'élément.</para> - - <para>Cette distinction <emphasis>est</emphasis> très subtile. Mais - gardez la à l'esprit.</para> - </important> - - <para>Les éléments peuvent avoir des attributs. Un attribut a un nom et - une valeur, et sert à donner des informations supplémentaires - concernant l'élément. Ce peuvent être des informations qui précisent - comment l'élément doit être formaté, ou un identifiant unique pour cette - occurrence de l'élément, ou autre chose encore.</para> - - <para>Les attributs d'un élément sont donnés <emphasis>dans</emphasis> la - marque de début de l'élément et ont la forme - <literal><replaceable>nom-de-l'attribut</replaceable>="<replaceable>valeur-de-l'attribut</replaceable>"</literal>.</para> - - <para>Dans les versions récentes d'HTML, l'élément <sgmltag>p</sgmltag> a - un attribut appelé <literal>align</literal>, qui suggère un alignement - (justification) du paragraphe au programme affichant l'HTML.</para> - - <para>L'attribut <literal>align</literal> peut prendre l'une des quatre - valeurs prédéfinies, <literal>left</literal>, <literal>center</literal>, - <literal>right</literal> et <literal>justify</literal>. Si l'attribut - n'est pas précise, la valeur par défaut est - <literal>left</literal>.</para> - - <example> - <title>Utiliser un élément avec un attribut</title> - - <programlisting> -<![ CDATA [<p align="left">L'attribut align est superflus pour ce paragraphe, - puisque 'left' est la valeur par défaut.</p> - -<p align="center">Ce paragraphe sera peut-être centré.</p>]]></programlisting> - </example> - - <para>Certains attributs ne prennent que des valeurs prédéfinies, comme - <literal>left</literal> ou <literal>justify</literal>. D'autres peuvent - prendre les valeurs que vous voulez. Si vous avez besoin de quotes - (<literal>"</literal>) dans un attribut, mettez la valeur de l'attribut - entre simples quotes.</para> - - <example> - <title>Simples quotes dans un attribut</title> - - <programlisting> -<![ CDATA [<p align='right'>Je suis à droite !</p>]]></programlisting> - </example> - - <para>Vous n'avez pas toujours besoin de mettre la valeur de l'attribut - entre simples quotes. Les régles à ce sujet sont cependant subtiles, et - il est beaucoup plus simple de <emphasis>toujours</emphasis> mettre - entre simples quotes les valeurs des attributs.</para> - - <sect2> - <title>A faire…</title> - - <para>Pour tester les exemples donnés dans ce document, vous devrez - installer des logiciels sur votre système et vérifiez qu'une variable - d'environnement est correctement définie.</para> - - <procedure> - <step> - <para>Téléchargez et installez <filename>textproc/docproj</filename> - du catalogue des logiciels portés de FreeBSD. C'est un - <emphasis>méta-port</emphasis> qui doit télécharger et installer - tous les programmes et fichiers utilisés par le Projet de - Documentation.</para> - </step> - - <step> - <para>Ajoutez les lignes pour définir - <envar>SGML_CATALOG_FILES</envar> à vos procédures - d'initialisation de l'interpréteur de commandes.</para> - - <example id="sgml-primer-envars"> - <title><filename>.profile</filename>, pour les utilisateurs de - &man.sh.1; et &man.bash.1;</title> - - <programlisting> -SGML_ROOT=/usr/local/share/sgml -SGML_CATALOG_FILES=${SGML_ROOT}/jade/catalog -SGML_CATALOG_FILES=${SGML_ROOT}/iso8879/catalog:$SGML_CATALOG_FILES -SGML_CATALOG_FILES=${SGML_ROOT}/html/catalog:$SGML_CATALOG_FILES -SGML_CATALOG_FILES=${SGML_ROOT}/docbook/catalog:$SGML_CATALOG_FILES -export SGML_CATALOG_FILES</programlisting> - </example> - - <example> - <title><filename>.login</filename>, pour les utilisateurs de - &man.csh.1; et &man.tcsh.1;</title> - - <programlisting> -setenv SGML_ROOT /usr/local/share/sgml -setenv SGML_CATALOG_FILES ${SGML_ROOT}/jade/catalog -setenv SGML_CATALOG_FILES ${SGML_ROOT}/iso8879/catalog:$SGML_CATALOG_FILES -setenv SGML_CATALOG_FILES ${SGML_ROOT}/html/catalog:$SGML_CATALOG_FILES -setenv SGML_CATALOG_FILES ${SGML_ROOT}/docbook/catalog:$SGML_CATALOG_FILES</programlisting> - </example> - - <para>Déconnectez-vous et reconnectez-vous ensuite, ou exécutez ces - commandes pour définir la variable d'environnement.</para> - </step> - - <step> - <para>Créez un fichier <filename>exemple.sgml</filename>, où vous - mettrez :</para> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 - Transitional//EN"> - -<html> - <head> - <title>Exemple de fichier HTML</title> - </head> - - <body> - <p>C'est un paragraphe avec du texte.</p> - - <p>C'est encore un paragraphe avec du texte.</p> - - - <p align="right">Ce paragraphe sera peut-être justifié à - droite.</p> - </body> -</html>]]></programlisting> - </step> - - <step> - <para>Essayez de le valider avec un analyseur syntaxique - SGML.</para> - - <para><link linkend="sgml-primer-validating">L'analyseur - syntaxique</link> &man.nsgmls.1; fait partie de - <filename>textproc/docproj</filename>. &man.nsgmls.1; lit - normalement un document marqué en utilisant une DTD SGML et génère - l'<foreignphrase>Element Structure Information Set - (ESIS)</foreignphrase> - Informations sur la - Structuration en Eléments - mais cela ne nous concerne - pas pour le moment.</para> - - <para>Néanmoins, avec le paramètre <option>-s</option>, - &man.nsgmls.1; ne génère rien mais affiche simplement les messages - d'erreurs éventuels. C'est utile pour vérifier si votre document - est correct ou non.</para> - - <para>Utilisez &man.nsgmls.1; pour vérifier si votre document est - valide :</para> - - <screen>&prompt.user; <userinput>nsgmls -s example.sgml</userinput></screen> - - <para>Vous constaterez que &man.nsgmls.1; n'affiche rien. Cela - signifie qu'il a validé votre document.</para> - </step> - - <step> - <para>Voyez ce qui ce passe si vous oubliez un élément requis. - Supprimez les marques <sgmltag>title</sgmltag> et - <sgmltag>/title</sgmltag> et relancer la validation.</para> - - <screen>&prompt.user; <userinput>nsgmls -s example.sgml</userinput> -nsgmls:example.sgml:5:4:E: character data is not allowed here -nsgmls:example.sgml:6:8:E: end tag for "HEAD" which is not finished</screen> - - <para>Les messages d'erreur de &man.nsgmls.1; sont structurés en - colonnes séparés par des deux-points ou des - points-virgules.</para> - - <informaltable frame="none"> - <tgroup cols="2"> - <thead> - <row> - <entry>Colonne</entry> - <entry>Signification</entry> - </row> - </thead> - - <tbody> - <row> - <entry>1</entry> - <entry>Nom du programme qui a généré l'erreur. Ce sera - toujours <literal>nsgmls</literal>.</entry> - </row> - - <row> - <entry>2</entry> - <entry>Nom du fichier où se trouve l'erreur.</entry> - </row> - - <row> - <entry>3</entry> - <entry>Numéro de la ligne où se trouve l'erreur.</entry> - </row> - - <row> - <entry>4</entry> - <entry>Numéro de la colonne où se trouve l'erreur.</entry> - </row> - - <row> - <entry>5</entry> - <entry>Une lettre donnant le type de message d'erreur. - <literal>I</literal> pour un message d'information, - <literal>W</literal> pour un message d'avertissement, - <literal>E</literal> pour un message d'erreur et - <literal>X</literal> pour les références croisées. (Ce - n'est cependant pas toujours la cinquième colonne. - <command>nsgmls -sv</command> affiche - <literal>nsgmls:I: SP version - "1.3"</literal> - selon la version installée. - Comme vous pouvez le constater, c'est un message - d'information.) Vous voyez donc que nous avons dans notre - exemple des messages d'erreurs.</entry> - </row> - - <row> - <entry>6</entry> - <entry>Le texte du message d'erreur.</entry> - </row> - </tbody> - </tgroup> - </informaltable> - - <para><ulink - url="http://www.cs.duke.edu/~dsb/kgv-faq/errors.html">Vous - aurez plus d'informations sur les erreurs de - &man.nsgmls.1;</ulink> dans la <ulink - url="http://www.cs.duke.edu/~dsb/kgv-faq/">Unofficial 'Kindler, - Gentler HTML Validator' FAQ</ulink>.</para> - - <para>Ne pas mettre les marques <sgmltag>title</sgmltag> a généré - 2 erreurs différentes.</para> - - <para>La première erreur indique que l'analyseur SGML a rencontré un - contenu (ici, des caractères, au lieu d'une marque de début - d'élément) alors qu'il attendait autre chose. Dans le cas présent, - l'analyseur attendait une marque de début pour un élément valide - à l'intérieur de <sgmltag>head</sgmltag> - (<sgmltag>title</sgmltag> par exemple).</para> - - <para>La deuxième erreur est due au fait que les éléments - <sgmltag>head</sgmltag> doivent contenir un élément - <sgmltag>title</sgmltag>. &man.nsgmls.1; considère alors que - l'élément n'est pas complet. La marque de fin indique donc que - l'élément se termine alors qu'il n'est pas correctement - renseigné.</para> - </step> - - <step> - <para>Remettez l'élément <literal>title</literal> en place.</para> - </step> - </procedure> - </sect2> - </sect1> - - <sect1 id="sgml-primer-doctype-declaration"> - <title>La déclaration DOCTYPE</title> - - <para>Au début de chaque document que vous rédigez, vous devez préciser le - nom de la DTD à laquelle le document se conforme. Cela pour que les - analyseurs syntaxiques SGML la connaissent et puissent valider le - document.</para> - - <para>Cette information est habituellement donnée sur une seule ligne, - dans la déclaration DOCTYPE.</para> - - <para>Voici une déclaration typique pour un document conforme à la version - 4.0 de la DTD HTML :</para> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN">]]></programlisting> - - <para>Cette ligne a plusieurs composants distincts :</para> - - <variablelist> - <varlistentry> - <term><literal><!</literal></term> - - <listitem> - <para>C'est l'<emphasis>indicateur</emphasis> qui dit que c'est une - déclaration SGML. Cette ligne définit le type de document.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>DOCTYPE</literal></term> - - <listitem> - <para>Précise que c'est la déclaration SGML du type de - document.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>html</literal></term> - - <listitem> - <para>Définit le premier <link - linkend="sgml-primer-elements">élément</link> qui apparaîtra - dans le document.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>PUBLIC "-//W3C//DTD HTML 4.0//EN"</literal></term> - - <listitem> - <para>Donne le <foreignphrase>Formal Public Identifier - (FPI)</foreignphrase> - Identifiant Public - Officiel - de la DTD à laquelle le document se - conforme.</para> - - <para><literal>PUBLIC</literal> n'appartient pas au FPI, mais - indique au processeur SGML comment trouver la DTD référencée par - le FPI. Les autres façons de dire à l'analyseur SGML comment - trouver la DTD sont données <link - linkend="sgml-primer-fpi-alternatives">plus loin</link>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><literal>></literal></term> - - <listitem> - <para>Retour au document.</para> - </listitem> - </varlistentry> - </variablelist> - - <sect2> - <title><foreignphrase>Formal Public Identifiers - (FPIs)</foreignphrase> - Identifiants Publics - Officiels</title> - - <note> - <para>Vous n'avez pas besoin de connaître ce qui suit, mais ce n'est - n'est pas inutile, et cela peut vous aider à résoudre des problèmes, - si votre processeur SGML ne trouve pas la DTD que vous - utilisez.</para> - </note> - - <para>Les FPIs doivent respecter une syntaxe précise. La - voici :</para> - - <programlisting> -"<replaceable>Propriétaire</replaceable>//<replaceable>Mot-Clé</replaceable> <replaceable>Description</replaceable>//<replaceable>Langue</replaceable>"</programlisting> - - <variablelist> - <varlistentry> - <term><replaceable>Propriétaire</replaceable></term> - - <listitem> - <para>Indique qui détient le FPI.</para> - - <para>Si la chaîne de caractères commence par “ISO”, - c'est un FPI ISO. Par exemple, le FPI <literal>"ISO - 8879:1986//ENTITIES Greek Symbols//EN"</literal> donne - <literal>ISO 8879:1986</literal> comme propriétaire du jeu - d'entités pour les lettres grecques. ISO 8879:1986 est le - numéro ISO du standard SGML.</para> - - <para>Sinon, cette chaîne sera de la forme - <literal>-//<replaceable>Propriétaire</replaceable></literal> ou - <literal>+//<replaceable>Propriétaire</replaceable></literal> - (remarquez que la seule différence est le <literal>+</literal> - ou <literal>-</literal> du début).</para> - - <para>Si la chaîne commence par un <literal>-</literal>, c'est que - le propriétaire n'est pas enregistré, il l'est si elle commence - par un <literal>+</literal>.</para> - - <para>L'ISO 9070:1991 définit comment sont générés les noms - enregistrés ; ils peuvent dériver du numéro d'une - publication ISO, d'un code ISBN ou d'un code d'organisation - affecté selon l'ISO 6523. De plus, il pourrait y avoir une - autorité d'enregistrement pour l'affectation de ces noms. Le - conseil ISO a délégué cela à l'<foreignphrase>American National - Standards Institute (ANSI)</foreignphrase> - Institut - National Américain des Standards.</para> - - <para>Comme le Projet FreeBSD n'est pas enregistré, la chaîne - utilisée est <literal>-//FreeBSD</literal>. Comme vous pouvez - vous en rendre compte, le W3C n'est pas non plus un propriétaire - enregistré.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><replaceable>Mot-Clé</replaceable></term> - - <listitem> - <para>Il y a plusieurs mots-clés qui définissent le type - d'information dans le fichier. Les mots-clés les plus courants - sont : <literal>DTD</literal>, <literal>ELEMENT</literal>, - <literal>ENTITIES</literal> et <literal>TEXT</literal>. - <literal>DTD</literal> ne sert que pour les DTD, - <literal>ELEMENT</literal> sert habituellement pour les extraits - de DTD qui ne contiennent que des entités ou des déclarations - d'éléments. <literal>TEXT</literal> sert pour le contenu SGML - (texte et marques).</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><replaceable>Description</replaceable></term> - - <listitem> - <para>La description que vous souhaitez donner du contenu du - fichier. Cela peut inclure des numéros de version et n'importe - quel texte court qui ait un sens et soit unique au système - SGML.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><replaceable>Langue</replaceable></term> - - <listitem> - <para>C'est une code ISO de deux caractères qui identifie la - langue utilisée dans le fichier. Pour l'anglais, c'est - <literal>EN</literal>.</para> - </listitem> - </varlistentry> - </variablelist> - - <sect3> - <title>Fichiers <filename>catalog</filename></title> - - <para>Si vous avez utilisé la syntaxe décrite plus haut et essayé - d'utiliser un processeur SGML pour traiter votre document, il aura - besoin de convertir le FPI en un nom de fichier sur votre ordinateur - qui décrive la DTD.</para> - - <para>Vous pouvez pour cela vous servir d'un fichier catalogue - (habituellement appelé <filename>catalog</filename>). Il contient - des lignes qui donnent les correspondances entre FPIs et noms de - fichiers. Par exemple, s'il y a la ligne :</para> - - <programlisting> -PUBLIC "-//W3C//DTD HTML 4.0//EN" "4.0/strict.dtd"</programlisting> - - <para>le processeur SGML cherchera la DTD dans le fichier - <filename>strict.dtd</filename> du sous-répertoire - <filename>4.0</filename> où se trouve le fichier - <filename>catalog</filename> qui comporte cette ligne.</para> - - <para>Jettez un oeil au fichier - <filename>/usr/local/share/sgml/html/catalog</filename>. C'est le - fichier catalogue pour les DTDs HTML qui ont été installées par le - logiciel porté <filename>textproc/docproj</filename>.</para> - </sect3> - - <sect3> - <title><envar>SGML_CATALOG_FILES</envar></title> - - <para>Pour trouver un fichier <filename>catalog</filename>, votre - processeur SGML doit savoir où chercher. La plupart d'entre eux ont - des paramètres de leur ligne de commande pour donner le chemin - d'accès à un ou plusieurs catalogues.</para> - - <para>Vous pouvez par ailleurs définir - <envar>SGML_CATALOG_FILES</envar> pour désigner ces fichiers. Cette - variable d'environnement doit contenir une liste de fichiers - catalogues (donnés par leurs chemins d'accès complets) séparés par - des points-virgules.</para> - - <para>Habituellement, vous incluerez les fichiers - suivants :</para> - - <itemizedlist> - <listitem> - <para><filename>/usr/local/share/sgml/docbook/catalog</filename></para> - </listitem> - - <listitem> - <para><filename>/usr/local/share/sgml/html/catalog</filename></para> - </listitem> - - <listitem> - <para><filename>/usr/local/share/sgml/iso8879/catalog</filename></para> - </listitem> - - <listitem> - <para><filename>/usr/local/share/sgml/jade/catalog</filename></para> - </listitem> - </itemizedlist> - -<!-- - <para>Vous devriez <link linkend="sgml-primer-envars">déjà l'avoir - fait</link>.</para> ---> - </sect3> - </sect2> - - <sect2 id="sgml-primer-fpi-alternatives"> - <title>Alternatives aux FPIs</title> - - <para>Au lieu d'utiliser un FPI pour préciser la DTD utilisée (et donc - le fichier qui contient la DTD), il est possible de donner - explicitement le nom du fichier.</para> - - <para>La syntaxe pour le faire est légèrement différente :</para> - - <programlisting> -<![ CDATA [<!DOCTYPE html SYSTEM "/path/to/file.dtd">]]></programlisting> - - <para>Le mot-clé <literal>SYSTEM</literal> indique que le processeur - SGML doit localiser le fichier d'une façon qui dépend du système. Cela - signifie habituellement (mais pas toujours) que la DTD sera définie - par un nom de fichier.</para> - - <para>Il est préférable d'utiliser des FPIs pour des raisons de - portabilité. Vous ne voulez pas livrer un exemplaire de la DTD avec - votre document, et si vous avez utilisé l'identifiant - <literal>SYSTEM</literal>, il faudra que chacun ait ses DTDs aux mêmes - endroits.</para> - </sect2> - </sect1> - - <sect1 id="sgml-primer-sgml-escape"> - <title>Revenir au SGML</title> - - <para>On a dit plus haut dans cette introduction que le SGML n'était - utilisé que pour écrire les DTDs. Ce n'est pas tout à fait vrai. Il y a - des éléments de la syntaxe SGML que vous voudrez pouvoir utiliser dans - vos documents. Par exemple, vous pouvez y inclure des commentaires, qui - seront ignorés par les analyseurs. Les commentaires sont inclus en - utilisant une syntaxe SGML. D'autres utilisations du SGML dans les - documents seront mentionnées plus loin.</para> - - <para>Il vous faut évidemment un moyen d'indiquer au processeur SGML que - ce qui va suivre n'est pas constitué d'éléments du document, mais est du - SGML que le processeur doit prendre en compte.</para> - - <para>Ces sections sont marqués avec <literal><! ... ></literal> - dans votre document. Tout ce qui se trouve entre ces délimiteurs est du - code SGML comme on en trouve dans les DTDs.</para> - - <para>Comme vous venez peut-être de vous en rendre compte, la <link - linkend="sgml-primer-doctype-declaration">déclaration DOCTYPE</link> - est un exemple de syntaxe SGML que vous devez inclure dans votre - document…</para> - </sect1> - - <sect1> - <title>Commentaires</title> - &sgml.todo; - - <para>Les commentaires suivent une syntaxe SGML et ne sont normalement - autorisés que dans une DTD. Cependant comme la - <xref linkend="sgml-primer-sgml-escape"> le montre, il est possible - d'inclure du SGML dans vos documents.</para> - - <para>Les délimiteurs pour les commentaires SGML sont constitués de la - chaîne de caractères “<literal>--</literal>”. Une première - occurence ouvre le commentaire, et la seconde le ferme.</para> - - <example> - <title>Commentaire SGML générique</title> - - <programlisting> -<!-- commentaire de test --></programlisting> - - <programlisting><![ CDATA [ -<!-- C'est le texte du commentaire --> - -<!-- C'est un autre commentaire --> - -<!-- Voici une façon de mettre un commentaire - sur plusieurs lignes --> - -<!-- Voici une autre façon -- - -- de le faire -->]]></programlisting> - </example> - - <![ %output.print; [ - <important> - <title>Utilisez 2 tirets</title> - - <para>Vous aurez un problème avec les versions PostScript et PDF de ce - document. Les exemples précédents n'auront probablement qu'un simple - tiret, <literal>-</literal> après <literal><!</literal> et avant - <literal>></literal>.</para> - - <para>Il <emphasis>faut</emphasis> utiliser deux <literal>-</literal>, - et <emphasis>non</emphasis> un seul. Les versions PostScript et PDF - ont converti les deux <literal>-</literal> de l'original en un seul - <emphasis>double tiret</emphasis> plus professionnel, et déformé - l'exemple au passage.</para> - - <para>Les versions HTML, texte et RTF de ce document ne sont pas - sujettes à ce problème.</para> - </important> - ]]> - - <para>Si vous avez déjà utilisé HTML auparavant, on vous a peut-être - donné des règles différentes pour les commentaires. En particulier, vous - pensez peut-être qu'ils commencent par <literal><!--</literal> et - ne se terminent qu'avec <literal>--></literal>.</para> - - <para>Ce n'est <emphasis>pas</emphasis> le cas. Les analyseurs syntaxiques - de nombreux navigateurs sont défectueux et acceptent cette syntaxe. Ceux - qu'utilisent le Projet de Documentation sont plus rigoureux et - rejetteront les documents qui comportent cette erreur.</para> - - <example> - <title>Commentaires SGML erronnés</title> - - <programlisting><![ CDATA [ -<!-- C'est en commentaire -- - - CE N'EST PAS EN COMMENTAIRE! - - -- retour au commentaire -->]]></programlisting> - - <para>L'analyseur SGML traitera cela comme s'il trouvait :</para> - - <programlisting> -<!CE N'EST PAS EN COMMENTAIRE></programlisting> - - <para>Ce qui n'est pas du SGML valide et donnera des messages d'erreur - source de confusion.</para> - - <programlisting> -<![ CDATA [<!--------------- C'est un très mauvaise idée --------------->]]></programlisting> - - <para>Comme l'exemple le suggère, ne mettez <emphasis>pas</emphasis> de - commentaires de ce type.</para> - - <programlisting> -<![ CDATA [<!--===================================================-->]]></programlisting> - - <para>C'est une (légèrement) meilleure idée, mais c'est toute de même - une source de confusion potentielle pour les débutants en SGML.</para> - </example> - - <sect2> - <title>A faire…</title> - - <procedure> - <step> - <para>Ajoutez des commentaires à <filename>exemple.sgml</filename> - et validez vos modifications avec &man.nsgmls.1;</para> - </step> - - <step> - <para>Ajoutez des commentaires incorrects à - <filename>exemple.sgml</filename>, pour voir quels messages - d'erreur produit alors &man.nsgmls.1;.</para> - </step> - </procedure> - </sect2> - </sect1> - - <sect1> - <title>Entités</title> - - <para>Les entités fournissent un mécanisme pour désigner des parties d'un - contenu. Lorsque l'analyseur SGML traite votre document, il remplace les - entités qu'il rencontre par le contenu de ces entités.</para> - - <para>C'est un bon moyen pour avoir du texte réutilisable et facile à - modifier. C'est aussi le seul moyen d'inclure, en utilisant SGML, un - fichier marqué dans un autre.</para> - - <para>Il y a deux sortes d'entités SGML qui s'utilisent dans des - situations différentes : les <emphasis>entités générales</emphasis> - et les <emphasis>entités paramètres</emphasis>.</para> - - <sect2 id="sgml-primer-general-entities"> - <title>Entités Générales</title> - - <para>Vous ne pouvez pas employer les entités générales dans un contexte - SGML (bien que ce soit là que vous les définissiez). Elles ne peuvent - être utilisées que dans votre document. Comparez cela au cas des - <link linkend="sgml-primer-parameter-entities">entités - paramètres</link>.</para> - - <para>Chaque entité générale a un nom. Quand vous voulez y faire - référence (et donc inclure le texte qu'elle contient dans votre - document), vous mettez - <literal>&<replaceable>nom-de-l'entité</replaceable>;</literal>. - Supposons par exemple que vous ayez une entité appelée - <literal>version.courante</literal> qui contienne le numéro de version - courante de votre produit. Vous pourriez écrire :</para> - - <programlisting> -<![ CDATA [<para>La version courante de notre produit est la - &version.courante;.</para>]]></programlisting> - - <para>Quand le numéro de version change, il vous suffit de modifier la - définition de l'entité générale et de recompiler votre - document.</para> - - <para>Vous pouvez aussi vous servir d'entités générales pour représenter - des caractères que vous ne pouvez pas inclure autrement dans un - document SGML. < et &, par exemple, ne doivent normalement pas - apparaître dans un document SGML. Quand l'analyseur SGML rencontre un - symbole <, il suppose qu'il précède une marque (de début ou de - fin), et quand il rencontre un symbole &, il suppose que le texte - qui le suit est le nom d'une entité.</para> - - <para>Heureusement, il y a deux entités générales, &lt; et - &amp; pour le cas où vous auriez besoin d'inclure l'un ou l'autre - de ces symboles.</para> - - <para>Une entité générale ne peut être définie que dans un contexte - SGML. On le fait habituellement immédiatement après la déclaration - DOCTYPE.</para> - - <example> - <title>Définition d'entités générales</title> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [ -<!ENTITY version.courante "3.0-RELEASE"> -<!ENTITY derniere.version "2.2.7-RELEASE"> -]>]]></programlisting> - - <para>Remarquez que la déclaration DOCTYPE est suivie d'un crochet - ouvrant à la fin de la première ligne. Les deux entités sont - définies aux deux lignes suivantes, avant le crochet fermant. La - déclaration DOCTYPE se termine ensuite.</para> - - <para>Les crochets sont nécessaires pour dire que nous ajoutons un - complément à la DTD mentionnée par la déclaration DOCTYPE.</para> - </example> - </sect2> - - <sect2 id="sgml-primer-parameter-entities"> - <title>Entités paramètres</title> - - <para>Comme les <link linkend="sgml-primer-general-entities">entités - générales</link>, les entités paramètres servent à nommer des - parties réutilisables du texte. Cependant, alors que les entités - générales peuvent être utilisées dans le corps du document, les - entités paramètres ne peuvent être employées que dans un - <link linkend="sgml-primer-sgml-escape">contexte SGML</link>.</para> - - <para>Les entités paramètres sont définies de la même manière que les - entités générales. Sinon qu'au lieu de vous servir de - <literal>&<replaceable>inomd-de-l'entité</replaceable>;</literal> - pour y faire référence, vous utiliserez - <literal>%<replaceable>nom-de-l'entité</replaceable>;</literal><footnote> - <para>Les entités <emphasis>P</emphasis>aramètres employent le - symbole <emphasis>P</emphasis>ourcent.</para> - </footnote>. Leur définition comporte aussi un <literal>%</literal> - entre le mot-clé <literal>ENTITY</literal> et le nom de - l'entité.</para> - - <example> - <title>Définition d'entités paramètres</title> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [ -<!ENTITY % param.du "du"> -<!ENTITY % param.texte "text"> -<!ENTITY % param.encore "encore %param.du more %param.texte"> - -<!-- %param.encore contient maintenant "encore du texte" --> -]>]]></programlisting> - </example> - - <para>Cela ne paraît peut être pas très utile. On verra pourtant que ça - l'est.</para> - </sect2> - - <sect2> - <title>A faire…</title> - - <procedure> - <step> - <para>Définissez un entité générale dans - <filename>exemple.sgml</filename>.</para> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" [ -<!ENTITY version "1.1"> -]> - -<html> - <head> - <title>Exemple de fichier HTML</title> - </head> - - <!-- Vous pourriez aussi mettre des commentaires ici --> - - <body> - <p>C'est un paragraphe avec du texte.</p> - - <p>C'est encore un paragraphe avec du texte.</p> - - <p align="right">Ce paragraphe sera peut-être justifié à - droite</p> - - <p>La version courante de ce document est : &version;</p> - </body> -</html>]]></programlisting> - </step> - - <step> - <para>Validez le document avec &man.nsgmls.1;</para> - </step> - - <step> - <para>Chargez <filename>exemple.sgml</filename> avec votre - navigateur (vous devrez peut-être le recopier dans - <filename>exemple.html</filename> pour que votre navigateur le - reconnaisse comme un document HTML).</para> - - <para>A moins que votre navigateur ne soit très évolué, il ne - remplacera pas la référence <literal>&version;</literal> - à l'entité par le numéro de version. Les analyseurs de la plupart - des navigateurs sont élémentaires et ne gèrent pas correctement - le SGML<footnote><para>C'est tout à fait dommage. Imaginez les - problèmes et bricolages (comme les <foreignphrase>Server Side - Includes</foreignphrase>) que cela - éviterait.</para></footnote>.</para> - </step> - - <step> - <para>La solution est de <emphasis>normaliser</emphasis> votre - document avec un outil de normalisation du SGML. Ce type d'outil - lit un document SGML valide et le transforme en un autre document - SGML tout aussi valide. En particulier, il y remplace les - références aux entités par leur contenu.</para> - - <para>Vous pouvez le faire avec &man.sgmlnorm.1;.</para> - - <screen>&prompt.user; <userinput>sgmlnorm exemple.sgml > exemple.html</userinput></screen> - - <para><filename>exemple.html</filename> doit maintenant contenir une - version normalisée (i.e., où les références aux entités ont été - remplacées par leur contenu) de votre document, prête à être - affichée par votre navigateur.</para> - </step> - - <step> - <para>Si vous jetez un oeil au résultat de &man.sgmlnorm.1;, vous - verrez qu'il ne comporte pas de déclaration DOCTYPE au début. Pour - qu'elle y soit, utilisez l'option - <option>-d</option> :</para> - - <screen>&prompt.user; <userinput>sgmlnorm -d exemple.sgml > exemple.html</userinput></screen> - </step> - </procedure> - </sect2> - </sect1> - - <sect1> - <title>Utiliser les entités pour inclure des fichiers</title> - - <para>Les entités (<link - linkend="sgml-primer-general-entities">générales</link> et <link - linkend="sgml-primer-parameter-entities">paramètres</link>) sont - particulièrement utiles pour inclure un fichier dans un autre.</para> - - <sect2 id="sgml-primer-include-using-gen-entities"> - <title>Utiliser les entités générales pour inclure des fichiers</title> - - <para>Supposons que le contenu d'un livre SGML soit découpé en fichiers, - à raison d'un fichier par chapitre, appelés - <filename>chaptitre1.sgml</filename>, - <filename>chapitre2.sgml</filename>, et ainsi de suite, et que le - fichier <filename>livre.sgml</filename> inclue ces chapitres.</para> - - <para>Pour que vos entités aient pour valeur le contenu de ces fichiers, - vous les déclarerez avec le mot-clé <literal>SYSTEM</literal>. Cela - indique à l'analyseur SGML qu'il doit utiliser le contenu du fichier - mentionné comme valeur de l'entité.</para> - - <example> - <title>Utiliser les entités générales pour inclure des - fichiers</title> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [ -<!ENTITY chapitre.1 SYSTEM "chapitre1.sgml"> -<!ENTITY chapitre.2 SYSTEM "chapitre2.sgml"> -<!ENTITY chapitre.3 SYSTEM "chapitre3.sgml"> -<!-- Et ainsi de suite --> -]> - -<html> - <!-- Utilisation des entités pour inclure les chapitres --> - - &chapitre.1; - &chapitre.2; - &chapitre.3; -</html>]]></programlisting> - </example> - - <warning> - <para>Quand vous vous servez d'entités générales pour inclure d'autres - fichiers dans un document, les fichiers inclus - (<filename>chapitre1.sgml</filename>, - <filename>chapitre2.sgml</filename>, et ainsi de suite) ne doivent - <emphasis>pas</emphasis> commencer par une déclaration DOCTYPE. Ce - serait une erreur de syntaxe.</para> - </warning> - </sect2> - - <sect2> - <title>Utiliser les entités paramètres pour inclure des fichiers</title> - - <para>Rappelez-vous que les entités paramètres ne peuvent être utilisées - que dans un contexte SGML. Quand aurez-vous besoin d'inclure un - fichier dans un contexte SGML ?</para> - - <para>Vous pouvez vous en servir pour être sûr de pouvoir réutiliser vos - entités générales.</para> - - <para>Supposons que votre document comporte de nombreux chapitres, et - que vous réutilisiez ces chapitres dans deux livres différents, chacun - organisant ces chapitres de façon différente.</para> - - <para>Vous pourriez donner la liste des entités en tête de chaque livre, - mais cela pourrait rapidement devenit fastidieux à gérer.</para> - - <para>Mettez, au lieu de cela, les définitions des entités générales - dans un fichier, et utilisez une entité paramètre pour inclure ce - fichier dans votre document.</para> - - <example> - <title>Utiliser les entités paramètres pour inclure des - fichiers</title> - - <para>Mettez d'abord les définitions de vos entités dans un fichier - séparé, appelé <filename>chapitres.ent</filename>. Voici ce qu'il - contiendra :</para> - - <programlisting> -<![ CDATA [<!ENTITY chapitre.1 SYSTEM "chapitre1.sgml"> -<!ENTITY chapitre.2 SYSTEM "chapitre2.sgml"> -<!ENTITY chapitre.3 SYSTEM "chapitre3.sgml">]]></programlisting> - - <para>Créez maintenant une entité paramètre qui fasse référence au - contenu de ce fichier. Utilisez ensuite cette entité pour inclure - le fichier dans votre document, vous pourrez alors y utiliser les - entités générales. Ce que vous faites de la même façon que - précédemment :</para> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [ -<!-- - Définissez une entité paramètre pour inclure le fichier - des entités générales pour les chapitres ---> -<!ENTITY % chapitres SYSTEM "chapitres.ent"> - -<!-- Utilisez maintenant l'entité générale pour inclure ce fichier --> -%chapitres; -]> - -<html> - &chapitre.1; - &chapitre.2; - &chapitre.3; -</html>]]></programlisting> - </example> - </sect2> - - <sect2> - <title>A faire…</title> - - <sect3> - <title>Utiliser les entités générales pour inclure des fichiers</title> - - <procedure> - <step> - <para>Créez trois fichiers, <filename>para1.sgml</filename>, - <filename>para2.sgml</filename> et - <filename>para3.sgml</filename>.</para> - - <para>Mettez-y quelque chose qui ressemble à ceci :</para> - - <programlisting> -<![ CDATA [<p>C'est le premier paragraphe.</p>]]></programlisting> - </step> - - <step> - <para>Modifiez <filename>exemple.sgml</filename> de la façon - suivante :</para> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [ -<!ENTITY version "1.1"> -<!ENTITY para1 SYSTEM "para1.sgml"> -<!ENTITY para2 SYSTEM "para2.sgml"> -<!ENTITY para3 SYSTEM "para3.sgml"> -]> - -<html> - <head> - <title>Exemple de fichier HTML</title> - </head> - - <body> - <p>La version courante de ce document est : &version;</p> - - ¶1; - ¶2; - ¶3; - </body> -</html>]]></programlisting> - </step> - - <step> - <para>Générez <filename>exemple.html</filename> en normalisant - <filename>exemple.sgml</filename>.</para> - - <screen>&prompt.user; <userinput>sgmlnorm -d exemple.sgml > exemple.html</userinput></screen> - </step> - - <step> - <para>Affichez <filename>exemple.html</filename> avec votre - navigateur Web et vérifiez que les fichiers - <filename>para<replaceable>n</replaceable>.sgml</filename> ont - bien été inclus dans <filename>exemple.html</filename>.</para> - </step> - </procedure> - </sect3> - - <sect3> - <title>Utiliser les entités paramètres pour inclure des - fichiers</title> - - <note> - <para>Vous devez d'abord avoir mis en pratique l'exemple - précédent.</para> - </note> - - <procedure> - <step> - <para>Modifiez comme ceci - <filename>exemple.sgml</filename> :</para> - - <programlisting> -<![ CDATA [<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [ -<!ENTITY % entites SYSTEM "entites.sgml"> %entites; -]> - -<html> - <head> - <title>Exemple de fichier HTML</title> - </head> - - <body> - <p>La version courant de ce document est : &version;</p> - - ¶1; - ¶2; - ¶3; - </body> -</html>]]></programlisting> - </step> - - <step> - <para>Créez un nouveau fichier, <filename>entites.sgml</filename>, - qui contienne :</para> - - <programlisting> -<![ CDATA [<!ENTITY version "1.1"> -<!ENTITY para1 SYSTEM "para1.sgml"> -<!ENTITY para2 SYSTEM "para2.sgml"> -<!ENTITY para3 SYSTEM "para3.sgml">]]></programlisting> - </step> - - <step> - <para>Générez <filename>exemple.html</filename> en normalisant - <filename>exemple.sgml</filename>.</para> - - <screen>&prompt.user; <userinput>sgmlnorm -d exemple.sgml > exemple.html</userinput></screen> - </step> - - <step> - <para>Affichez <filename>exemple.html</filename> avec votre - navigateur Web et vérifiez que les fichiers - <filename>para<replaceable>n</replaceable>.sgml</filename> ont - bien été inclus dans <filename>example.html</filename>.</para> - </step> - </procedure> - </sect3> - </sect2> - </sect1> - - <sect1 id="sgml-primer-marked-sections"> - <title>Sections marquées</title> - - <para>SGML fournit un mécanisme pour définir quelles parties d'un document - doivent être traitées de façon particulière. On appelle cela des - “sections marquées”.</para> - - <example> - <title>Structure d'une section marquée</title> - - <programlisting> -<![ <replaceable>MOT-CLE</replaceable> [ - Contenu de la section marquée -]]></programlisting> - </example> - - <para>Comme vous pouviez vous y attendre, une section marquée est une - fonctionnalité SGML et commence donc par <literal><!</literal>.</para> - - <para>Le premier crochet ouvrant délimite la section marquée.</para> - - <para>Le <replaceable>MOT-CLE</replaceable> définit comment cette section - marquée doit être traitée par l'analyseur.</para> - - <para>Le second crochet ouvrant indique que le contenu de la section - marquée commence là.</para> - - <para>La section marquée se termine par deux crochets fermants, puis un - <literal>></literal> pour indiquer que l'on quitte le contexte SGML - et que l'on revient au document.</para> - - <sect2> - <title>Mots-clés pour les sections marquées</title> - - <sect3> - <title><literal>CDATA</literal>, <literal>RCDATA</literal></title> - - <para>Ces deux mots-clés définissent des sections marquées comme - <emphasis>modèle de contenu</emphasis> et vous permettent de - modifier sa valeur par défaut.</para> - - <para>Quand un analyseur SGML traite un docuemnt, il mémorise ce que - l'on appelle le “modèle de contenu”.</para> - - <para>En bref, le modèle de contenu décrit ce que l'analyseur doit - s'attendre à trouver comme contenu, et ce qu'il doit en faire quand - il le rencontre.</para> - - <para>Les deux modèles de contenu que vous trouverez certainement les - plus utiles sont <literal>CDATA</literal> et - <literal>RCDATA</literal>.</para> - - <para><literal>CDATA</literal> signifie - “<foreignphrase>Character - Data</foreignphrase>” - données caractères. Si - l'analyseur est à l'intérieur de ce modèle de contenu, il s'attend - à trouver des caractères, et uniquement des caractères. Les - symboles < et & perdent alors leur signification particulière - et sont traités comme de simples caractères.</para> - - <para><literal>RCDATA</literal> signifie “Références à des - entités et données caractères”. Si l'analyseur est à - l'intérieur de ce modèle de contenu, il s'attend à trouver des - caractères <emphasis>et</emphasis> des entités. < perd sa - signification particulière, mais & est toujours compris comme le - début d'une entité générale.</para> - - <para>C'est particulièrement utile si vous incluez du texte qui - contient de nombreux caractères < et &. Vous pourriez bien - sûr contrôler que dans votre texte tous les < sont écrits - &lt; et tous les & &amp;, il peut être plus facile - de marquer la section comme ne contenant que des - “CDATA”. Quand SGML rencontre l'instruction - correspondante, il ignorera les symboles < et & qui - apparaîtront dans le contenu.</para> - - <!-- The nesting of CDATA within the next example is disgusting --> - - <example> - <title>Utiliser une section marquée CDATA</title> - - <programlisting> -<para>Voici un exemple de la façon dont vous pourriez inclure - un texte comportant de nombreux &lt; et &amp;. L'exemple - lui-même est en HTML. Le texte qui l'encadre (<para> et - <programlisting>) est du DocBook.</para> - -<programlisting> - <![ CDATA [ <![ CDATA [ - <p>Cet exemple vous montre quelques éléments de HTML. Comme les - caractères < et > y sont si fréquemment utilisés, il est plus - facile de marquer tout l'exemple comme CDATA plutôt que de se - servir des entités à la place de ces caractères dans tout le - texte.</p> - - <ul> - <li>C'est un élément de liste</li> - <li>C'est un second élément de liste</li> - <li>C'est un troisième élément de liste</li> - </ul> - - <p>C'est la fin de l'exemple.</p>]]> - ]]> -</programlisting></programlisting> - - <para>Si vous consultez le source de ce document, vous verrez qu'il - utilise constamment cette technique.</para> - </example> - </sect3> - - <sect3> - <title><literal>INCLUDE</literal> et <literal>IGNORE</literal></title> - - <para>Si le mot-clé est <literal>INCLUDE</literal>, alors le contenu - de la section marquée sera pris en compte. Si le mot-clé est - <literal>IGNORE</literal>, alors la section marquée sera ignorée. Il - n'apparaîtra pas dans les sorties.</para> - - <example> - <title>Utiliser <literal>INCLUDE</literal> et - <literal>IGNORE</literal> dans les sections marquées</title> - - <programlisting> -<![ INCLUDE [ - Ce texte sera traité et inclus. -]]> - -<![ IGNORE [ - Ce texte ne sera pas traité ou inclus. -]]></programlisting> - </example> - - <para>En soi, cela ne sert pas à grand-chose. Si vous vouliez - supprimer du texte de votre document, vous auriez pu l'enlever ou le - mettre en commentaires.</para> - - <para>Cela devient plus utile quand vous comprenez que vous pouvez - vous servir des <link - linkend="sgml-primer-parameter-entities">entités paramètres</link> - pour contrôler ces sections. Rappelez-vous que les entités - paramètres ne peuvent être utilisées que dans un contexte SGML, et - une section marquée <emphasis>est</emphasis> un contexte SGML.</para> - - <para>Si par exemple, vous générez une version imprimée et une version - électronique de votre document, vous pourriez vouloir inclure dans - la version électronique un contenu supplémentaire qui ne devra pas - apparaître dans la version imprimée.</para> - - <para>Créez une entité paramètre et donnez lui comme contenu - <literal>INCLUDE</literal>. Rédigez votre document en utilisant des - sections marquées pour délimiter le contenu qui ne doit apparaître - que dans la version électronique. Dans ces sections marquées, - servez-vous de l'entité paramètre au lieu du mot-clé.</para> - - <para>Lorsque vous voulez générer la version électronique, changez la - valeur de l'entité paramètre en <literal>IGNORE</literal> et - retraitez le document.</para> - - <example> - <title>Utiliser une entité paramètre pour contrôler une section - marquée</title> - - <programlisting> -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [ -<!ENTITY % version.electronique "INCLUDE"> -]]> - -... - -<![ %version.electronique [ - Ce texte ne doit apparaître que dans - la version électronique du document. -]]></programlisting> - - <para>Pour générer la version imprimée, changez la définition de - l'entité en :</para> - - <programlisting> -<!ENTiTY % version.electronique "IGNORE"></programlisting> - - <para>A la seconde passe sur le document, les sections marquées qui - utilisent <literal>%version.electronique</literal> comme mot-clé - seront ignorées.</para> - </example> - </sect3> - </sect2> - - <sect2> - <title>A faire…</title> - - <procedure> - <step> - <para>Créez un nouveau fichier, <filename>section.sgml</filename>, - qui contienne :</para> - - <programlisting> -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" [ -<!ENTITY % text.output "INCLUDE"> -]> - -<html> - <head> - <title>Exemple d'utilisation des sections marquées</title> - </head> - - <body> - <p>Ce paragraphe <![ CDATA [contient de nombreux - caractères < (< < < < <) il est donc - plus facile de l'inclure dans une section marquée - CDATA ]]></p> - - <![ IGNORE [ - <p>Ce paragraphe n'apparaîtra jamais dans les - sorties.</p> - ]]> - - <![ <![ CDATA [%sortie.texte]]> [ - <p>Ce paragraphe apparaîtra peut-être dans les - sorties.</p> - - <p>Cela dépend de l'entité paramètre - <![CDATA[%sortie.texte]]>.</p> - ]]> - </body> -</html></programlisting> - </step> - - <step> - <para>Normalisez le fichier avec &man.sgmlnorm.1; et examinez le - résultat. Notez quels paragraphes ont été conservés et quels - paragraphes ont été supprimés, et ce qu'est devenu le contenu des - sections marquées CDATA.</para> - </step> - - <step> - <para>Modifiez la définition de l'entité - <literal>sortie.texte</literal> de <literal>INCLUDE</literal> en - <literal>IGNORE</literal>. Normalisez de nouveau le fichier et - regardez ce qui a changé dans le résultat.</para> - </step> - </procedure> - </sect2> - </sect1> - - <sect1> - <title>Conclusion</title> - - <para>Ici se termine cette introduction à SGML. Pour des raisons de place - et de complexité, de nombreux points ont été survolés (voire omis). - Les sections qui précédent décrivent néanmoins suffisamment d'éléments - du SGML pour vous permettre de comprendre comment est organisée la - documentation du FDP.</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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/fr_FR.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml deleted file mode 100644 index 3506d81960..0000000000 --- a/fr_FR.ISO8859-1/books/fdp-primer/stylesheets/chapter.sgml +++ /dev/null @@ -1,72 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $Id: chapter.sgml,v 1.1 2000-06-12 15:46:47 gioria Exp $ ---> - -<chapter id="stylesheets"> - - <title>* Feuilles de style</title> - - <para>SGML ne décrit pas comment un document doit être affiché ou imprimé. - A cet effet, différents langages ont été conçus pour définir des feuilles - de style, dont DynaText, Panorama, SPICE, - JSSS, FOSI, CSS, et DSSSL.</para> - - <para>Pour DocBook, nous utilisons des feuilles de style écrites en DSSSL. - Pour le HTML, nous utilisons CSS.</para> - - <sect1> - <title>* DSSSL</title> - - <para>Le Projet de Documentation utilise une version un minimum - personnalisée des feuilles de style DocBook modulaires de Norm - Walsh.</para> - - <para>Vous les trouverez dans - <filename>textproc/dsssl-docbook-modular</filename>.</para> - </sect1> - - <sect1> - <title>* CSS</title> - - <para></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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/fr_FR.ISO8859-1/books/fdp-primer/the-faq/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/the-faq/chapter.sgml deleted file mode 100644 index 1fe894630f..0000000000 --- a/fr_FR.ISO8859-1/books/fdp-primer/the-faq/chapter.sgml +++ /dev/null @@ -1,49 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $Id: chapter.sgml,v 1.1 2000-06-12 15:46:49 gioria Exp $ ---> - -<chapter id="the-faq"> - <title>* La Foire Aux Questions</title> - - <para></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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/fr_FR.ISO8859-1/books/fdp-primer/the-handbook/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/the-handbook/chapter.sgml deleted file mode 100644 index 8af35251fe..0000000000 --- a/fr_FR.ISO8859-1/books/fdp-primer/the-handbook/chapter.sgml +++ /dev/null @@ -1,282 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $Id: chapter.sgml,v 1.1 2000-06-12 15:46:54 gioria Exp $ ---> - -<chapter id="the-handbook"> - <title>* Le Manuel de Référence</title> - - <sect1> - <title>Organisation logique</title> - - <para>Le Manuel de Référence est rédigé en conformité avec la DTD DocBook - étendue de FreeBSD.</para> - - <para>Le Manuel de Référence est un <sgmltag>book</sgmltag> DocBook. Il - est ensuite divisé en <sgmltag>part</sgmltag>s, qui contiennent - elles-mêmes plusieurs <sgmltag>chapter</sgmltag>s. Les - <sgmltag>chapter</sgmltag>s sont eux-mêmes composés de sections - (<sgmltag>sect1</sgmltag>) et sous-sections - (<sgmltag>sect2</sgmltag>, <sgmltag>sect3</sgmltag>) et ainsi de - suite.</para> - </sect1> - - <sect1> - <title>Organisation physique</title> - - <para>Le Manuel de Référence (et ses traductions) sont dans le - sous-répertoire - <filename>doc/<replaceable>langue</replaceable>/handbook</filename> - des archives CVS principales. <replaceable>langue</replaceable> est le - code ISO pour la langue, <literal>en</literal>, pour l'Anglais, - <literal>ja</literal> pour le Japonais, et ainsi de suite.</para> - - <para>Il y a un certain nombre de fichiers et répertoires dans le - répertoire <filename>handbook</filename>.</para> - - <note> - <para>L'organisation du Manuel de Référence sera peut-être modifiée avec - le temps, et le présent document peut ne pas être en phase avec ces - changements. Si vous avez des questions sur la façon dont le Manuel de - Référence est organisé, contactez s'il vous plaît le Projet de - Documentation de FreeBSD, <email>doc@FreeBSD.ORG</email>.</para> - </note> - - <sect2> - <title><filename>Makefile</filename></title> - - <para>Le <filename>Makefile</filename> décrit les règles utilisées pour - convertir le Manuel de Référence à partir du source (DocBook) dans - plusieurs formats cibles (dont HTML, PostScript, et texte).</para> - - <para>Le <filename>Makefile</filename> est décrit plus en détail à la - <xref linkend="the-handbook-converting">.</para> - </sect2> - - <sect2> - <title><filename>handbook.sgml</filename></title> - - <para>C'est la racine du Manuel de Référence. Il contient la - <link linkend="sgml-primer-doctype-declaration">déclaration - DOCTYPE</link> du Manuel, ainsi que les éléments qui décrivent sa - structure.</para> - - <para><filename>handbook.sgml</filename> utilise des <link - linkend="sgml-primer-parameter-entities">entités paramètres</link> - pour charger les fichiers d'extensions <filename>.ent</filename>. Ces - fichiers (décrits plus loin) définissent à leur tour des - <link linkend="sgml-primer-general-entities">entités générales</link> - qui sont elles-mêmes employées dans le reste du Manuel.</para> - </sect2> - - <sect2> - <title><filename><replaceable>répertoire</replaceable>/chapter.sgml</filename></title> - - <para>Chaque chapitre du manuel est composé d'un fichier - <filename>chapter.sgml</filename> dans un sous-répertoire séparé pour - chaque chapitre. Chaque répertoire prend le nom de l'attribut - <literal>id</literal> de l'élément <sgmltag>chapter</sgmltag>.</para> - - <para>Si par exemple, un des chapitres contient :</para> - - <programlisting><![ CDATA [ -<chapter id="kernelconfiguration"> -... -</chapter>]]></programlisting> - - <para>il s'appelera alors <filename>chapter.sgml</filename> dans le - répertoire <filename>kernelconfiguration</filename>. Habituellement, - il y aura un seul fichier pour tout le chapitre.</para> - - <para>A la génération de la version HTML du Manuel, on obtiendra un - <filename>kernelconfiguration.html</filename>. C'est dû à la valeur - du <literal>id</literal>, et non au nom du répertoire.</para> - - <para>Dans les versions précédentes du Manuel, ces fichiers étaient dans - le même répertoire que <filename>handbook.sgml</filename>, avec le - même nom que l'attribut <literal>id</literal> de l'élément - <sgmltag>chapter</sgmltag> du fichier. Ils ont été déplacés dans des - répertoires séparés en prévision des évolutions à venir du Manuel. Il - sera en particulier bientôt possible d'inclure des images dans chaque - chapitre. Il est donc plus logique que celles-ci soient rangées dans - un répertoire où se trouve aussi le texte du chapitre plutôt que de - mettre le texte de chaque chapitre, et donc toutes les images dans un - même répertoire. Il y aurait fatalement des conflits de nom, alors - qu'il est plus facile de travailler avec plusieurs répertoires - contenant quelques fichiers qu'avec un seul répertoire dans lequel il - y a beaucoup de fichiers.</para> - - <para>Un bref coup d'oeil montre qu'il y a de nombreux répertoires avec - chacun un fichier <filename>chapter.sgml</filename> dont - <filename>basics/chapter.sgml</filename>, - <filename>introduction/chapter.sgml</filename> et - <filename>printing/chapter.sgml</filename>.</para> - - <important> - <para>Les noms des chapitres et/ou répertoires ne doivent pas faire - réference à leur place dans le Manuel. Cet ordre peut changer quand - le contenu du Manuel est réorganisé ; ce type de réorganisation - ne devrait (normalement) pas entraîner de modification des noms des - fichiers (à moins que des chapitres entiers ne changent de niveau - dans la hiérarchie).</para> - </important> - - <para>Chaque fichier <filename>chapter.sgml</filename> n'est pas un - document SGML intégral. Ils n'ont en particulier pas de déclaration - DOCTYPE en tête du fichier.</para> - - <para>C'est dommage pour deux raisons :</para> - - <itemizedlist> - <listitem> - <para>Il n'est pas possible de les traiter comme des fichiers SGML - et de les convertir en HTML, RTF, PS et autres formats de la même - manière que le Manuel. Cela vous <emphasis>oblige</emphasis> à - recompiler tout le Manuel chaque fois que vous voulez vérifier les - effets d'une modification d'un seul chapitre.</para> - </listitem> - - <listitem> - <para>Le <literal>sgml-mode</literal> d'Emacs ne peut pas s'en - servir pour déterminer quelle DTD utiliser, ce qui fait perdre les - bénéfices de fonctionnalités utiles du - <literal>sgml-mode</literal> (complétion des éléments, validation - automatique, et ainsi de suite).</para> - </listitem> - </itemizedlist> - </sect2> - </sect1> - - <sect1> - <title>Guide de style</title> - - <para>Respectez s'il vous plaît les conventions de style ci-dessous pour - garder aux sources du Manuel une consistance malgré les nombreuses - personnes qui interviennent dessus.</para> - - <sect2> - <title>Majuscules et minuscules</title> - - <para>Les marques doivent être en minuscules - <literal><para></literal> et <emphasis>non</emphasis> - <literal><PARA></literal>.</para> - - <para>Le texte dans les contextes SGML est normalement en majuscules, - <literal><!ENTITY…></literal> ou - <literal><!DOCTYPE…></literal> et - <emphasis>non</emphasis> <literal><!entity…></literal> - ou <literal><!doctype…></literal>.</para> - </sect2> - - <sect2> - <title>Indentation</title> - - <para>Chaque fichier est indenté à partir de la colonne 0, - <emphasis>quel que soit</emphasis> le niveau d'indentation dans le - fichier où il est inclus.</para> - - <para>Chaque marque de début augmente l'indentation de 2 blancs et - chaque marque de fin la décrémente d'autant. Le contenu des éléments - doit être indenté de 2 blancs s'il court sur plusieurs lignes.</para> - - <para>A titre d'exemple, voici à quoi ressemble le source de cette - section :</para> - - <programlisting> -<![ CDATA [+--- C'est la colonne 0 - -<chapter> - <title>...</title> - - <sect1> - <title>...</title> - - <sect2> - <title>Indentation</title> - - <para>Chaque fichier est indenté à partir de la colonne 0, - <emphasis>quel que soit</emphasis> le niveau d'indentation dans le - fichier où il est inclus.</para> - - <para>Chaque marque de début augmente l'indentation de 2 blancs et - chaque marque de fin la décrémente d'autant. Le contenu des éléments - doit être indenté de 2 blancs s'il court sur plusieurs lignes.</para> - - ... - </sect2> - </sect1> -</chapter>]]></programlisting> - - <para>Si vous vous servez d'<application>Emacs</application> ou - <application>Xemacs</application> pour éditer les fichiers, le - <literal>sgml-mode</literal> doit être chargé automatiquement, et les - variables Emacs locales en fin de chaque fichier doivent mettre ces - indentations en pratique.</para> - </sect2> - - <sect2> - <title>Modifications de présentation des sources</title> - - <para>Quand vous intégrez des modifications, <emphasis>ne faites pas en - même temps de modification de contenu et de présentation des - sources</emphasis>.</para> - - <para>Cela pour que les équipes de traductions du Manuel puissent - rapidement voir les modifications de contenu que vous avez intégrées, - sans avoir à se demander si une ligne a changé de contenu ou - simplement de présentation.</para> - - <para>Si vous avez par exemple ajouté deux phrases à un paragraphe, de - sorte que les lignes du paragraphe débordent maintenant des 80 - colonnes, intégrez d'abord la modification avec les lignes trop - longues. Puis corrigez ensuite ce problème, en précisant qu'il ne - s'agit que d'une modification de présentation, dont les équipes de - traduction n'ont pas à se soucier.</para> - </sect2> - </sect1> - - <sect1 id="the-handbook-converting"> - <title>* Conversion du Manuel dans d'autres formats</title> - - <para></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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/fr_FR.ISO8859-1/books/fdp-primer/the-website/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/the-website/chapter.sgml deleted file mode 100644 index 90517e2677..0000000000 --- a/fr_FR.ISO8859-1/books/fdp-primer/the-website/chapter.sgml +++ /dev/null @@ -1,49 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $Id: chapter.sgml,v 1.1 2000-06-12 15:46:59 gioria Exp $ ---> - -<chapter id="the-website"> - <title>* Le site Web</title> - - <para></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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/fr_FR.ISO8859-1/books/fdp-primer/tools/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/tools/chapter.sgml deleted file mode 100644 index 378957ec2b..0000000000 --- a/fr_FR.ISO8859-1/books/fdp-primer/tools/chapter.sgml +++ /dev/null @@ -1,301 +0,0 @@ -<!-- Copyright (c) 1998, 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML, HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $Id: chapter.sgml,v 1.1 2000-06-12 15:47:01 gioria Exp $ - Original revision: 1.6 ---> - -<chapter id="tools"> - <title>Outils</title> - - <para>Le FDP utilise un certain nombre de logiciels pour faciliter la - gestion de la documentation de FreeBSD, la convertir en différents - formats, et ainsi de suite. Vous devrez vous-même vous servir de ces - outils, si vous travaillez à la documentation de FreeBSD.</para> - - <para>Tous ces outils existent sous forme de logiciels portés ou - pré-compilés pour FreeBSD, ce qui vous simplifie beaucoup la tâche de leur - installation.</para> - - <para>Vous devrez les installer avant de mettre en pratique les exemples - donnés dans les chapitres suivants. Ces chapitres vous expliquent comment - vous servir de ces outils.</para> - - <important> - <title>Utilisez <filename>textproc/docproj</filename> si possible</title> - - <para>Vous pouvez gagner beaucoup de temps si vous les installez avec - <filename>textproc/docproj</filename>. C'est un - <emphasis>méta-port</emphasis> qui ne contient pas lui-même de - logiciels. Au lieu de cela, il dépend de l'installation correcte de - divers autres logiciels portés. Son installation - <emphasis>devrait</emphasis> télécharger et installer automatiquement - tous les paquetages listés dans ce chapitre dont vous aurez besoin, - s'ils n'existent pas déjà sur votre système.</para> - - <para>L'un des paquetages dont vous aurez peut-être besoin est le jeu de - macro-instructions JadeTeX. Celui-ci, à son tour, a besoin que TeX soit - installé. TeX est un paquetage volumineux, dont vous n'aurez besoin que - si vous voulez générer les versions PostScript et PDF.</para> - - <para>Pour économiser du temps et de l'espace disque, vous pouvez préciser - si vous voulez ou non installer JadeTeX (et donc TeX). Faites - soit :</para> - - <informalexample> -<screen>&prompt.root; <userinput>make JADETEX=yes install</userinput></screen> - </informalexample> - - <para>ou :</para> - - <informalexample> -<screen>&prompt.root; <userinput>make JADETEX=no install</userinput></screen> - </informalexample> - - <para>selon le cas.</para> - </important> - - <sect1> - <title>Outils indispensables</title> - - <sect2> - <title>Logiciels</title> - - <para>Vous aurez besoin de ces programmes avant de pouvoir utilement - travailler sur la documentation de FreeBSD. Ils font tous partie de - <filename>textproc/docproj</filename>.</para> - - <variablelist> - <varlistentry> - <term><application>SP</application> - (<filename>textproc/sp</filename>)</term> - - <listitem> - <para>Une série d'applications, dont un analyseur syntaxique SGML - et un outil de normalisation du source SGML.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><application>Jade</application> - (<filename>textproc/jade</filename>)</term> - - <listitem> - <para>Une implémentation des DSSSL. Cela sert à convertir des - documents marqués vers d'autres formats, dont HTML et - TeX.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><application>Tidy</application> - (<filename>www/tidy</filename>)</term> - - <listitem> - <para>Un formateur HTML, qui sert à remettre en forme le code HTML - généré automatiquement pour qu'il soit plus lisible.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><application>Lynx</application> - (<filename>www/lynx-current</filename>)</term> - - <listitem> - <para>Navigateur WWW en mode texte, &man.lynx.1; peut aussi - convertir des fichiers HTML en fichiers texte.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - - <sect2> - <title>DTDs et Entités</title> - - <para>Ce sont les DTDs et jeux d'entités utilisés par le FDP. Il faut - les installer avant de pouvoir travailler à la documentation.</para> - - <variablelist> - <varlistentry> - <term>DTD HTML (<filename>textproc/html</filename>)</term> - - <listitem> - <para>HTML est le langage principal du <foreignphrase>World Wide - Web</foreignphrase>, il est utilisé constamment par le site - Web de FreeBSD.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>DTD LinuxDoc - (<filename>textproc/linuxdoc</filename>)</term> - - <listitem> - <para>Une partie de la documentation de FreeBSD est marquée avec - LinuxDoc. Le FDP migre activement de LinuxDoc à DocBook.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>DTD DocBook - (<filename>textproc/docbook</filename>)</term> - - <listitem> - <para>DocBook est conçu pour le marquage de documentation - technique et le FDP est en cours de migration de LinuxDoc à - DocBook. A la date de rédaction de cette documentation, celle-ci - et le Manuel de Référence de FreeBSD sont au format - DocBook.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Entités ISO 8879 - (<filename>textproc/iso8879</filename>)</term> - - <listitem> - <para>19 de jeux de caractères ISO 8879:1986 utilisés par de - nombreuses DTDs. Cela comprend des symboles mathématiques - nommés, les caractères “latins” supplémentaires - (accents, signes diacritiques et ainsi de suite) et les lettres - grecques.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - - <sect2> - <title>Feuilles de style</title> - - <para>Les feuilles de style sont utilisées pour convertir et formater - la documentation pour l'affichage à l'écran, l'impression, et ainsi de - suite.</para> - - <variablelist> - <varlistentry> - <term>Les <foreignphrase>Modular DocBook Stylesheets</foreignphrase> - (<filename>textproc/dsssl-docbook-modular</filename>)</term> - - <listitem> - <para>Les <foreignphrase>Modular DocBook - Stylesheets</foreignphrase> sont utilisées pour convertir la - documentation marqué en DocBook aux autres formats, comme HTML - ou RTF.</para> - </listitem> - </varlistentry> - </variablelist> - </sect2> - </sect1> - - <sect1> - <title>Outils facultatifs</title> - - <para>Il n'est pas obligatoire d'installer les outils qui suivent. Si vous - le faites cependant, vous trouverez peut-être plus facile de travailler - à la documentation et ils vous donneront plus de possibilité de choix du - format de sortie.</para> - - <sect2> - <title>Logiciels</title> - - <variablelist> - <varlistentry> - <term><application>JadeTeX</application> et - <application>teTeX</application> - (<filename>print/jadetex</filename> et - <filename>print/teTeX</filename>)</term> - - <listitem> - <para><application>Jade</application> et - <application>teTeX</application> servent à convertir les - documents DocBook en DVI, Postscript et PDF. Il faut pour cela - les macro-instructions - <application>JadeTeX</application>.</para> - - <para>Si vous n'avez pas l'intention de convertir votre - documentation à l'un de ces formats (i.e., HTML, texte et RTF - vous suffisent), il n'est pas nécessaire d'installer - <application>JadeTeX</application> et - <application>teTeX</application>. Cela vous fera gagner du temps - et de l'espace disque, <application>teTeX</application>, en - effet occupe plus de 30 Mo.</para> - - <important> - <para>Si vous choisissez d'installer - <application>JadeTeX</application> et - <application>teTeX</application>, vous devrez configurer - <application>teTeX</application> après avoir installé - <application>JadeTeX</application>. - <filename>print/jadetex/pkg/MESSAGE</filename> vous donnera - des instructions détaillées sur la façon de procéder.</para> - </important> - </listitem> - </varlistentry> - - <varlistentry> - <term><application>Emacs</application> ou - <application>xemacs</application> - (<filename>editors/emacs</filename> ou - <filename>editors/xemacs</filename>)</term> - - <listitem> - <para>Ces deux éditeurs ont un mode spécialisé pour travailler sur - des documents marqués conformément à une DTD SGML. Cela vous - permet d'avoir moins de choses à saisir et limite la possibilité - d'erreurs.</para> - - <para>Vous n'êtes pas obligé de les utiliser, n'importe quel - éditeur peut servir avec des documents marqués. Mais vous - trouverez peut-être qu'ils vous permettent d'être plus - efficace.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Si quelqu'un a d'autres outils utiles pour manipuler des documents - SGML, merci de transmettre l'information à Nik Clayton - (nik@freebsd.org), de façon à ce qu'il les ajoute à cette - liste.</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: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/fr_FR.ISO8859-1/books/fdp-primer/translations/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/translations/chapter.sgml deleted file mode 100644 index ed8537589c..0000000000 --- a/fr_FR.ISO8859-1/books/fdp-primer/translations/chapter.sgml +++ /dev/null @@ -1,497 +0,0 @@ -<!-- Copyright (c) 1999 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $Id: chapter.sgml,v 1.1 2000-06-12 15:47:06 gioria Exp $ ---> - -<chapter id="translations"> - <title>Traductions</title> - - <para>Ceci est la Foire aux Questions pour les gens qui traduisent la - documentation de FreeBSD (FAQ, Manuel de Référence, guides, pages de - manuel et autres) en différentes langues.</para> - - <para>Elle est <emphasis>très</emphasis> largement basée sur la FAQ du - Projet Allemand de Documentation de FreeBSD, rédigée à l'origine par - Frank Grnder <email>elwood@mc5sys.in-berlin.de</email> et traduite en - Anglais par Bernd Warken <email>bwarken@mayn.de</email>.</para> - - <para>Nik Clayton <email>nik@FreeBSD.org</email> maintient cette FAQ.</para> - - <qandaset> - <qandaentry> - <question> - <para>Pourquoi une FAQ ?</para> - </question> - - <answer> - <para>De plus en plus de gens s'adressent à la &a.doc; et se proposent - de traduire en d'autres langues la documentation de FreeBSD. Le but - de cette FAQ est de répondre à leurs questions de façon à ce qu'ils - puissent commencer le plus rapidement possible à traduire la - documentation.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Que signfient <phrase>i18n</phrase> et - <phrase>l10n</phrase> ?</para> - </question> - - <answer> - <para><phrase>i18n</phrase> veut dire - <phrase>internationalisation</phrase> et <phrase>l10n</phrase> - <phrase>localisation</phrase>. Ce ne sont que des abréviations - commodes.</para> - - <para><phrase>i18n</phrase> se lit “i” suivi de 18 - lettres, suivies d'un “n”. De la même façon, - <phrase>l10n</phrase> se lit “l” suivi de 10 lettres, - suivies d'un “n”.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Y-a-t-il une liste de diffusion pour les - traducteurs ?</para> - </question> - - <answer> - <para>Oui, <email>freebsd-translate@ngo.org.uk</email>. Inscrivez-vous - en envoyant un message à - <email>freebsd-translate-request@ngo.org.uk</email> avec le mot - <literal>subscribe</literal> dans le texte du message.</para> - - <para>Vous recevrez une réponse vous demandant de confirmer votre - inscription (de la même façon que pour les listes de FreeBSD sur - <hostid role="domainname">FreeBSD.org</hostid>).</para> - - <para>La langue de base sur la liste est l'Anglais, mais les messages - en d'autres langues sont acceptés. La liste n'est pas modérée, mais - vous devez vous y être inscrit avant d'y adresser des - messages.</para> - - <para>La liste est archivée, mais il n'est pas actuellement possible - d'y faire des recherches. Vous aurez en retour des explications sur - la façon d'accéder aux archives en envoyant le message - <literal>help</literal> à - <email>majordomo@ngo.org.uk</email>.</para> - - <para>Il est prévue que la liste de diffusion soit transférée sur - <hostid role="domainname">FreeBSD.org</hostid> et devienne donc - <emphasis>officielle</emphasis> dans un avenir proche.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>A-t-on besoin de nouveaux traducteurs ?</para> - </question> - - <answer> - <para>Oui. Plus il y a de gens qui travaillent aux traductions, plus - vite elles sont réalisées, et synchronisées avec les modifications - de la version anglaise.</para> - - <para>Il n'est pas nécessaire que vous soyez traducteur professionnel - pour pouvoir contribuer.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Quelle langue faut-il que je connaisse ?</para> - </question> - - <answer> - <para>Dans l'idéal, il faudrait que vous ayez une bonne connaissance - de l'anglais écrit et bien sûr, il faut que vous pratiquiez - couramment la langue dans laquelle vous traduisez.</para> - - <para>L'anglais n'est pas strictement indispensable. Vous pourriez par - exemple effectuez une traduction en Hongrois, à partir de la - traduction espagnole de la FAQ.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Quels logiciels faut-il que je connaisse ?</para> - </question> - - <answer> - <para>Il est fortement recommandé que vous teniez à jour une copie - locale des archives CVS de FreeBSD (au moins de la documentation), - soit à l'aide de <application>CTM</application>, soit en utilisant - <application>CVSup</application>. Le chapitre “Se synchroniser - avec la version <literal>-current</literal> de FreeBSD” du - Manuel de Référence vous explique comment utiliser ces - logiciels.</para> - - <para>Il faudra que vous soyiez à l'aise avec - <application>CVS</application>. Cela vous permettra de suivre les - modifications apportées entre les différentes versions des - fichiers qui constituent la documentation.</para> - - <para>[A Faire -- écrire un mode d'emploi qui explique comment - utiliser <application>CVSup</application> pour ne récupérer que la - documentation, et voir ce qui a évolué entre deux versions - données]</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Comment savoir qui d'autre traduit la documentation dans la - même langue ?</para> - </question> - - <answer> - <para>La <ulink - url="http://www.freebsd.org/docproj/translations.html">page des - traductions du Projet de Documentation</ulink> liste les traductions - en cours déjà connues. S'il y a déjà d'autres personnes qui - travaillent à la traduction de documentation dans votre langue, s'il - vous plaît, ne faites pas le même travail qu'eux en double. Au lieu - de cela, prenez contact avec eux, pour savoir comment vous pouvez - les aider.</para> - - <para>S'il la page n'indique personne qui travaille dans votre langue, - envoyez un message à la &a.doc; au cas où quelqu'un aurait déjà - envisagé de commencer une traduction, mais que ne ce soit pas encore - signalé.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Il n'y a personne d'autre qui traduise dans ma langue. Que - faire ?</para> - </question> - - <answer> - <para>Félicitations, vous venez juste de lancer le “Projet de - Documentation <replaceable>dans-votre-langue</replaceable> de - FreeBSD. Bien venu à bord.</para> - - <para>Commencez par vous assurer que vous avez bien du temps - disponible. Comme vous êtes pour le moment le seul volontaire pour - la traduction dans votre langue, il sera de votre responsabilité - de publier votre travail et de coordonner celui d'autres personnes - qui voudraient y collaborer.</para> - - <para>Envoyez un courrier électronique à la &a.doc; pour annoncer que - vous allez traduire la documentation de façon à ce que la pages des - traductions du Projet de Documentation puisse être tenue à - jour.</para> - - <para>Il faudra vous inscrire à la liste de diffusion - <email>freebsd-translate@ngo.org.uk</email> (comme expliqué plus - haut).</para> - - <para>S'il y a déjà dans votre pays quelqu'un qui maintienne un site - miroir de FreeBSD, vous devriez le contacter et voir s'il peut vous - fournir un hébergement pour votre projet et, si possible, une - adresse de courrier électronique et la possibilité de mettre en - place une liste de diffusion.</para> - - <para>Choisissez ensuite une documentation et commencez la traduction. - Il vaut mieux commencer par quelque chose de pas trop - volumineux—soit la FAQ, soit l'un des guides.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>J'ai traduit une documentation, à qui dois-je - l'envoyer ?</para> - </question> - - <answer> - <para>Cela dépend. Si vous travaillez déjà au sein d'une équipe de - traduction (comme l'équipe Japonaise ou l'équipe Allemande), elle - aura ses propres procédures pour gérer la documentation soumise, qui - seront décrites dans ses pages Web.</para> - - <para>Si vous êtes la seule personne à travailler dans une langue - donnée (ou si vous êtes responsable d'un projet de traduction et - voulez soumettre votre travail au Projet FreeBSD), vous devez alors - l'envoyer au Projet FreeBSD (voir la question suivante).</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Je suis la seule personne à traduire dans cette langue, comment - soumettre mes traductions ?</para> - - <para>ou</para> - - <para>Nous sommes une équipe de traduction et voulons soumettre les - traductions de nos membres ?</para> - </question> - - <answer> - <para>Commencez par vérifier que vos traductions sont correctement - structurées. C'est-à-dire qu'elles doivent s'intégrer à - l'arborescence des documentations existantes et compiler sans - problèmes.</para> - - <para>La documentation de FreeBSD est actuellement archivée dans les - répertoires en dessous de <filename>doc/</filename>. Les - sous-répertoires de celui-ci prennent le nom codifiant la langue - dans laquelle les documentations sont écrites, selon la norme - ISO639 (<filename>/usr/share/misc/iso639</filename>, pour les - versions de FreeBSD postérieures au 20 Janvier 1999).</para> - - <para>S'il ya a différentes codifications pour votre langue - (le Chinois,par exemple), il y aura au niveau en-dessous plusieurs - sous-répertoires, un pour chacun des formats de codage que vous - aurez fournis.</para> - - <para>Vous aurez enfin des sous-répertoires pour chaque - document.</para> - - <para>Une éventuelle traduction en Suédois ressemblerait par exemple - à ce qui suit :</para> - - <programlisting> doc/ - sv/ - Makefile - FAQ/ - Makefile - *.sgml</programlisting> - - <para><literal>sv</literal> est le code ISO639 pour le Suédois. - Remarquez les deux <filename>Makefile</filename>s, qui servent à - compiler la documentation. Il n'y a qu'une seule façon de coder le - Suédois, il n'y a donc pas de niveau intermédiaire entre - les répertoires <filename>sv</filename> et - <filename>FAQ</filename><footnote><para>Cette organisation va - radicalement changer très bientôt. Suivez ce qui ce dit sur la - &a.doc; pour plus d'information.</para></footnote>.</para> - - <para>Utilisez &man.tar.1; et &man.gzip.1; pour compresser votre - documentation, et envoyez-la au projet.</para> - - <screen>&prompt.user; <userinput>cd doc</userinput> -&prompt.user; <userinput>tar cf swedish-docs.tar sv</userinput> -&prompt.user; <userinput>gzip -9 swedish-docs.tar</userinput></screen> - - <para>Mettez <filename>swedish-docs.tar.gz</filename> quelque part. Si - vous ne disposez pas d'espace sur le Web (votre fournisseur d'accès - n'en met peut-être pas à votre disposition), vous pouvez envoyer un - courrier électronique à &a.nik;, pour vous mettre d'accord sur une - date pour les lui envoyer par courrier.</para> - - <para>De quelque façon que vous procédiez, il faudra que vous utilisez - &man.send-pr.1; pour envoyer un rapport signalant que vous avez - soumis de la documentation. Il serait très utile que d'autres - puissent relire votre traduction d'abord, parce qu'il y a peu de - chances que la personne qui l'intégrera connaisse bien votre - langue.</para> - - <para>Quelqu'un (probablement le Responsbale du Projet de - Documentation, &a.nik; actuellement), récupérera votre traduction et - s'assurera qu'elle compile. En particulier, les points suivants - seront examinés :</para> - - <orderedlist> - <listitem> - <para>Tous vos fichiers utilisent-ils de chaînes RCS (comme - “ID”).</para> - </listitem> - - <listitem> - <para><command>make all</command> fonctionne-t-il correctement - dans le répertoire <filename>sv</filename>.</para> - </listitem> - - <listitem> - <para><command>make install</command> fonctionne-t-il - correctement.</para> - </listitem> - </orderedlist> - - <para>S'il y a des problèmes, la personne qui examine votre soumission - vous en fera part pour que vous essayiez de les régler.</para> - - <para>S'il n'y a pas de problèmes, votre traduction sera intégrée - aussi vite que possible.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Puis-je inclure dans mon texte des considérations propres à la - langue ou au pays ?</para> - </question> - - <answer> - <para>Nous préférerions que vous ne le fassiez pas.</para> - - <para>Supposons par exemple que vous traduisiez le Manuel de Référence - en Coréen et que vous vouliez inclure une section sur les revendeurs - en Corée dans votre Manuel.</para> - - <para>Il n'y a pas vraiment de raison pour que cette information - ne soit pas aussi présente dans la version anglaise (ou allemande, - espagnole, …). Il se peut qu'un anglophone ait besoin d'un - exemplaire de FreeBSD alors qu'il se trouve en Corée. Cela permet - aussi de mettre en avant la pénétration de FreeBSD dans le monde - entier, ce qui n'est pas une mauvaise chose.</para> - - <para>Si vous avez des informations propres à un pays donné, - soumettez-les d'abord sous forme de modifications à la version - anglaise du Manuel de Référence (avec &man.send-pr.1;) et - traduisez-les ensuite dans votre langue dans le Manuel de - Référence dans cette langue.</para> - - <para>Merci.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Comment faut-il coder les caractères propres à une - langue ?</para> - - <para>Dans les documentations, les caractères Non-ASCII doivent - apparaître sous forme d'entités SGML.</para> - - <para>Brièvement, celles-ci sont constituées d'une perluette (&), - du nom de l'entité, et d'un point-virgule (;).</para> - - <para>Les noms des entités sont définis par la norme ISO8879, que vous - trouverez dans le catalogue des logiciels portés, sous - <filename>textproc/iso8879</filename>.</para> - - <para>Voici quelques examples :</para> - - <segmentedlist> - <seglistitem> - <seg>&eacute;</seg> - <seg>é</seg> - <seg>“e” accent aigu minuscule</seg> - </seglistitem> - - <seglistitem> - <seg>&Eacute;</seg> - <seg>É</seg> - <seg>“e” accent aigu majuscule</seg> - </seglistitem> - - <seglistitem> - <seg>&uuml;</seg> - <seg>ü</seg> - <seg>“u” tréma minuscule</seg> - </seglistitem> - </segmentedlist> - - <para>Après installation du logiciel porté “iso8879”, le - fichier <filename>/usr/local/share/sgml/iso8879</filename> en donne - la liste complète.</para> - </question> - </qandaentry> - - <qandaentry> - <question> - <para>Comment doit-on s'adresser au lecteur ?</para> - </question> - - <answer> - <para>Dans les documents anglais, le - “<foreignphrase>you</foreignphrase>” est employé, il n'y - a qu'une seule forme, à l'inverse d'autres langues.</para> - - <para>Si vous traduisez dans une langue qui dispose de plusieurs - formes, utilisez celle que l'on emploie habituellement dans les - documentations techniques. En cas de doute, servez-vous d'une forme - de politesse courante.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Y'a-t-il des informations supplémentaires à inclure dans les - traductions ?</para> - </question> - - <answer> - <para>Oui.</para> - - <para>Les en-têtes de la version anglaise du document ressembleront à - ceci :</para> - - <programlisting><![ CDATA [<!-- - The FreeBSD Documentation Project - - $Id: chapter.sgml,v 1.11 1999/06/20 21:18:57 billf Exp $ --->]]></programlisting> - - <para>La forme exacte peut changer, mais elles comporteront toujours - la ligne “Id” et la phrase <literal>The FreeBSD - Documentation Project</literal>.</para> - - <para>Vos traductions doivent comporter leur propre ligne - “Id” et <literal>FreeBSD Documentation Project</literal> - doit être remplacé par <literal>The FreeBSD - <replaceable>Langue</replaceable> Documentation - Project</literal>.</para> - - <para>Vous devrez aussi ajouter une troisième ligne qui donne la - version anglaise d'origine sur laquelle est basée la - traduction.</para> - - <para>Donc, la version espagnole du présent fichier commencerait - par :</para> - - <programlisting><![ CDATA [<!-- - The FreeBSD Spanish Documentation Project - - $Id: chapter.sgml,v 1.3 1999/06/24 19:12:32 jesusr Exp $ - Original revision: 1.11 --->]]></programlisting> - </answer> - </qandaentry> - </qandaset> -</chapter> - -<!-- - Local Variables: - mode: sgml - sgml-declaration: "../chapter.decl" - sgml-indent-data: t - sgml-omittag: nil - sgml-always-quote-attributes: t - sgml-parent-document: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/fr_FR.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml b/fr_FR.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml deleted file mode 100644 index 1deacf9502..0000000000 --- a/fr_FR.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml +++ /dev/null @@ -1,149 +0,0 @@ -<!-- Copyright (c) 1998 Nik Clayton, All rights reserved. - - Redistribution and use in source (SGML DocBook) and 'compiled' forms - (SGML HTML, PDF, PostScript, RTF and so forth) with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code (SGML DocBook) must retain the above - copyright notice, this list of conditions and the following - disclaimer as the first lines of this file unmodified. - - 2. Redistributions in compiled form (transformed to other DTDs, - converted to PDF, PostScript, RTF and other formats) must reproduce - the above copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - $Id: chapter.sgml,v 1.1 2000-06-12 15:47:08 gioria Exp $ ---> - -<chapter id="writing-style"> - <title> Style</title> - - <para>Pour conserver une certaine cohérence entre le travail des nombreux - rédacteurs de la documentation de FreeBSD, on a défini quelques règles à - suivre.</para> - - <variablelist> - <varlistentry> - <term>N'utilisez pas de formes contractées</term> - - <listitem> - <para>N'utilisez pas de formes contractées. Utilisez toujours les mots - entiers. “<foreignphrase>Don't use - contractions</foreignphrase>” n'est pas - correct<footnote><para>N.d.T.: Ceci s'applique bien sûr aux textes - rédigés en anglais.</para></footnote>.</para> - - <para>Ne pas contracter donne au texte un ton plus formel, est plus - précis, et facilite la tâche des traducteurs.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>Utilisez la virgule dans les énumérations</term> - - <listitem> - <para>Dans une énumération au sein d'un paragraphe, séparez avec des - virgules les éléments les uns des autres. Mettez aussi un virgule et - la conjonction “et” avant le dernier élément.</para> - - <para>Examinez par exemple la phrase suivante :</para> - - <blockquote> - <para>C'est une liste d'un, deux et trois éléments.</para> - </blockquote> - - <para>Est-ce une liste de trois éléments, “un”, - “deux”, et “trois”, ou une liste de deux - éléments, “un” et “deux et - trois” ?</para> - - <para>Il vaut mieux être explicite et ajouter la dernière - virgule :</para> - - <blockquote> - <para>C'est une liste d'un, deux, et trois éléments.</para> - </blockquote> - </listitem> - </varlistentry> - - <varlistentry> - <term>Evitez les redondances</term> - - <listitem> - <para>Evitez les redondances. En particulier, “la - commande”, “le fichier”, et “man - commande” sont probablement redondants.</para> - - <para>Voici deux exemples pour ce qui concerne les commandes. Il est - préférable d'utiliser le second.</para> - - <informalexample> - <para>Utilisez la commande <command>cvsup</command> pour mettre à - jour vos sources.</para> - </informalexample> - - <informalexample> - <para>Utilisez <command>cvsup</command> pour mettre à jour vos - sources.</para> - </informalexample> - - <para>Voici deux exemples pour ce qui concerne les noms de fichiers. - Il est préférable d'utiliser le second.</para> - - <informalexample> - <para>… dans le fichier - <filename>/etc/rc.local</filename>…</para> - </informalexample> - - <informalexample> - <para>… dans - <filename>/etc/rc.local</filename>…</para> - </informalexample> - - <para>Voici enfin deux exemples pour les références aux pages de - manuel. Il est préférable d'utiliser le second (il emploie - <sgmltag>citerefentry</sgmltag>).</para> - - <informalexample> - <para>Voyez <command>man csh</command> pour plus - d'information.</para> - </informalexample> - - <informalexample> - <para>Voyez &man.csh.1;</para> - </informalexample> - </listitem> - </varlistentry> - </variablelist> - - <para>Pour des détails sur le style, consultez les <ulink - url="http://www.columbia.edu/acis/bartleby/strunk/"><foreignphrase>Eléments - de Style</foreignphrase></ulink>, de William Strunk.</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: ("../book.sgml" "part" "chapter") - End: ---> - diff --git a/fr_FR.ISO8859-1/books/handbook/Makefile b/fr_FR.ISO8859-1/books/handbook/Makefile deleted file mode 100644 index 6da260134c..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/Makefile +++ /dev/null @@ -1,67 +0,0 @@ -# -# 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.ISO8859-1/books/handbook/advanced-networking/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/advanced-networking/chapter.sgml deleted file mode 100644 index bf6d6c53b5..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/advanced-networking/chapter.sgml +++ /dev/null @@ -1,1124 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/backups/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/backups/chapter.sgml deleted file mode 100644 index 707735ab65..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/backups/chapter.sgml +++ /dev/null @@ -1,774 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/basics/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/basics/chapter.sgml deleted file mode 100644 index e725f90411..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/basics/chapter.sgml +++ /dev/null @@ -1,163 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/bibliography/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/bibliography/chapter.sgml deleted file mode 100644 index 857b440c61..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/bibliography/chapter.sgml +++ /dev/null @@ -1,498 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/book.sgml b/fr_FR.ISO8859-1/books/handbook/book.sgml deleted file mode 100644 index 85843bfdc6..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/book.sgml +++ /dev/null @@ -1,142 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/chapter.decl b/fr_FR.ISO8859-1/books/handbook/chapter.decl deleted file mode 100644 index ce0a7ed16a..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/chapter.decl +++ /dev/null @@ -1 +0,0 @@ -<!DOCTYPE chapter PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN"> diff --git a/fr_FR.ISO8859-1/books/handbook/chapters.ent b/fr_FR.ISO8859-1/books/handbook/chapters.ent deleted file mode 100644 index d983d5ef52..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/chapters.ent +++ /dev/null @@ -1,53 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/contrib/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/contrib/chapter.sgml deleted file mode 100644 index 217bf94071..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/contrib/chapter.sgml +++ /dev/null @@ -1,5888 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/cutting-edge/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.sgml deleted file mode 100644 index f5a65e8559..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.sgml +++ /dev/null @@ -1,2628 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/disks/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/disks/chapter.sgml deleted file mode 100755 index fb90e9cfa1..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/disks/chapter.sgml +++ /dev/null @@ -1,191 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/eresources/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/eresources/chapter.sgml deleted file mode 100644 index 4fc16d23e4..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/eresources/chapter.sgml +++ /dev/null @@ -1,1357 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/hw/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/hw/chapter.sgml deleted file mode 100644 index 8d226e1099..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/hw/chapter.sgml +++ /dev/null @@ -1,5780 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/in-progress.sgml b/fr_FR.ISO8859-1/books/handbook/in-progress.sgml deleted file mode 100644 index 45248c01c8..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/in-progress.sgml +++ /dev/null @@ -1,9 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: N/A ---> - -<para>** Traduction en Cours **</para> diff --git a/fr_FR.ISO8859-1/books/handbook/install/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/install/chapter.sgml deleted file mode 100644 index d1e6009af8..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/install/chapter.sgml +++ /dev/null @@ -1,1298 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/internals/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/internals/chapter.sgml deleted file mode 100644 index 1f05f5a3b5..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/internals/chapter.sgml +++ /dev/null @@ -1,2141 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/introduction/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/introduction/chapter.sgml deleted file mode 100644 index c18577aa65..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/introduction/chapter.sgml +++ /dev/null @@ -1,727 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/kernelconfig/chapter.sgml deleted file mode 100755 index 8a93fa5956..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/kernelconfig/chapter.sgml +++ /dev/null @@ -1,1876 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/kerneldebug/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/kerneldebug/chapter.sgml deleted file mode 100644 index b8c33414c3..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/kerneldebug/chapter.sgml +++ /dev/null @@ -1,682 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/kernelopts/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/kernelopts/chapter.sgml deleted file mode 100644 index 7837338269..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/kernelopts/chapter.sgml +++ /dev/null @@ -1,200 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/l10n/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/l10n/chapter.sgml deleted file mode 100644 index f7e8c9fae2..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/l10n/chapter.sgml +++ /dev/null @@ -1,376 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/linuxemu/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.sgml deleted file mode 100644 index 45a5234038..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.sgml +++ /dev/null @@ -1,973 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/mail/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/mail/chapter.sgml deleted file mode 100644 index c6e37f3993..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/mail/chapter.sgml +++ /dev/null @@ -1,653 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/mailing-lists.ent b/fr_FR.ISO8859-1/books/handbook/mailing-lists.ent deleted file mode 100644 index 40523ef292..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/mailing-lists.ent +++ /dev/null @@ -1,113 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $Id: mailing-lists.ent,v 1.2 2000-05-26 05:47:48 gioria Exp $ - 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.committers "liste de diffusion pour les <foreignphrase>committers</foreignphrase> de FreeBSD - <email>cvs-committers@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.ISO8859-1/books/handbook/mirrors/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/mirrors/chapter.sgml deleted file mode 100644 index 69568d4228..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/mirrors/chapter.sgml +++ /dev/null @@ -1,1420 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/pgpkeys/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/pgpkeys/chapter.sgml deleted file mode 100644 index 17f0f41fc8..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/pgpkeys/chapter.sgml +++ /dev/null @@ -1,627 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/policies/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/policies/chapter.sgml deleted file mode 100644 index 17781d440a..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/policies/chapter.sgml +++ /dev/null @@ -1,404 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/ports/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/ports/chapter.sgml deleted file mode 100644 index 461ba197cb..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/ports/chapter.sgml +++ /dev/null @@ -1,5197 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml deleted file mode 100644 index 4ca6f4bf84..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml +++ /dev/null @@ -1,2783 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/printing/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/printing/chapter.sgml deleted file mode 100755 index 0767427ef8..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/printing/chapter.sgml +++ /dev/null @@ -1,5375 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/quotas/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/quotas/chapter.sgml deleted file mode 100755 index 4ace312374..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/quotas/chapter.sgml +++ /dev/null @@ -1,284 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/security/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/security/chapter.sgml deleted file mode 100755 index 3198d08340..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/security/chapter.sgml +++ /dev/null @@ -1,1894 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/serialcomms/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/serialcomms/chapter.sgml deleted file mode 100644 index 0c6273abe8..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/serialcomms/chapter.sgml +++ /dev/null @@ -1,2351 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/staff/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/staff/chapter.sgml deleted file mode 100644 index 1a68a2c364..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/staff/chapter.sgml +++ /dev/null @@ -1,859 +0,0 @@ -<!-- - 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.ISO8859-1/books/handbook/todo.sgml b/fr_FR.ISO8859-1/books/handbook/todo.sgml deleted file mode 100644 index e471e64082..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/todo.sgml +++ /dev/null @@ -1,9 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - $FreeBSD$ - Original revision: n.nn ---> - -<para>*** A Traduire ***</para> diff --git a/fr_FR.ISO8859-1/books/handbook/x11/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/x11/chapter.sgml deleted file mode 100644 index 9f8d633ade..0000000000 --- a/fr_FR.ISO8859-1/books/handbook/x11/chapter.sgml +++ /dev/null @@ -1,29 +0,0 @@ -<!-- - 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.ISO8859-1/share/sgml/abstract.ent b/fr_FR.ISO8859-1/share/sgml/abstract.ent deleted file mode 100644 index 8ebec98cff..0000000000 --- a/fr_FR.ISO8859-1/share/sgml/abstract.ent +++ /dev/null @@ -1,15 +0,0 @@ -<!-- - 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.ISO8859-1/share/sgml/artheader.ent b/fr_FR.ISO8859-1/share/sgml/artheader.ent deleted file mode 100644 index 90b7b739ca..0000000000 --- a/fr_FR.ISO8859-1/share/sgml/artheader.ent +++ /dev/null @@ -1,14 +0,0 @@ -<!-- - 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.ISO8859-1/share/sgml/bookinfo.ent b/fr_FR.ISO8859-1/share/sgml/bookinfo.ent deleted file mode 100644 index fcd691b83d..0000000000 --- a/fr_FR.ISO8859-1/share/sgml/bookinfo.ent +++ /dev/null @@ -1,16 +0,0 @@ -<!-- - 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.ISO8859-1/share/sgml/copyright.sgml b/fr_FR.ISO8859-1/share/sgml/copyright.sgml deleted file mode 100644 index 70b2222f34..0000000000 --- a/fr_FR.ISO8859-1/share/sgml/copyright.sgml +++ /dev/null @@ -1,13 +0,0 @@ -<!-- - 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.ISO8859-1/share/sgml/disclaimer.sgml b/fr_FR.ISO8859-1/share/sgml/disclaimer.sgml deleted file mode 100644 index 3946a1c2c0..0000000000 --- a/fr_FR.ISO8859-1/share/sgml/disclaimer.sgml +++ /dev/null @@ -1,19 +0,0 @@ -<!-- - 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.ISO8859-1/share/sgml/freebsd.dsl b/fr_FR.ISO8859-1/share/sgml/freebsd.dsl deleted file mode 100644 index 3f957ed651..0000000000 --- a/fr_FR.ISO8859-1/share/sgml/freebsd.dsl +++ /dev/null @@ -1,37 +0,0 @@ -<!-- $FreeBSD$ --> - -<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ -<!ENTITY freebsd.dsl SYSTEM "../../../share/sgml/freebsd.dsl" CDATA DSSSL> -]> - -<style-sheet> - <style-specification use="docbook"> - <style-specification-body> - - <![ %output.html; [ - <!-- Fix a problem with the French localisation. This should really - be a patch to the dsssl-docbook-modular port, but this gets it - more widely available sooner. A patch will be applied to the - port as well, and then this can be removed. --> - (define (gentext-fr-nav-prev prev) - (make sequence (literal "Pr\U-00E9;c\U-00E9;dent"))) - - (define ($email-footer$) - (make sequence - (literal "For questions about FreeBSD, e-mail <") - (make element gi: "a" - attributes: (list (list "href" "mailto:questions@FreeBSD.org")) - (literal "questions@FreeBSD.org")) - (literal ">.") - (make empty-element gi: "br") - (literal "For questions about this documentation, e-mail <") - (make element gi: "a" - attributes: (list (list "href" "mailto:doc@FreeBSD.org")) - (literal "doc@FreeBSD.org")) - (literal ">."))) - ]]> - </style-specification-body> - </style-specification> - - <external-specification id="docbook" document="freebsd.dsl"> -</style-sheet> diff --git a/fr_FR.ISO8859-1/share/sgml/legalnotice.sgml b/fr_FR.ISO8859-1/share/sgml/legalnotice.sgml deleted file mode 100644 index f3ad36c2e0..0000000000 --- a/fr_FR.ISO8859-1/share/sgml/legalnotice.sgml +++ /dev/null @@ -1,14 +0,0 @@ -<!-- - 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.ISO8859-1/share/sgml/license.sgml b/fr_FR.ISO8859-1/share/sgml/license.sgml deleted file mode 100644 index 494968772d..0000000000 --- a/fr_FR.ISO8859-1/share/sgml/license.sgml +++ /dev/null @@ -1,27 +0,0 @@ -<!-- - 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.ISO8859-1/share/sgml/translators.ent b/fr_FR.ISO8859-1/share/sgml/translators.ent deleted file mode 100644 index ef6851599a..0000000000 --- a/fr_FR.ISO8859-1/share/sgml/translators.ent +++ /dev/null @@ -1,63 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD French Documentation Project - - Noms et adresses de courrier électronique des membres de l'équipe de - traduction francaise - - $Id: translators.ent,v 1.2 2000-05-26 05:46:53 gioria Exp $ - 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>"> -<!ENTITY a.vovan "Luc Vo Van - <email>thelemmings@hotmail.com</email>"> -<!ENTITY a.boucey "Michel Boucey - <email>MBoucey@wanadoo.fr</email>"> -<!ENTITY a.guillain "Guillain - <email>Guillain@lycosmail.com</email>"> -<!ENTITY a.seyrat "Thomas Seyrat - <email>thomas.seyrat@ulp.u-strasbg.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>"> -<!ENTITY trans.a.vovan - "<para><emphasis>Version française de &a.vovan;.</emphasis></para>"> -<!ENTITY trans.a.boucey - "<para><emphasis>Version française de &a.boucey;.</emphasis></para>"> -<!ENTITY trans.a.guillain - "<para><emphasis>Version française de &a.guillain;.</emphasis></para>"> -<!ENTITY trans.a.seyrat - "<para><emphasis>Version française de &a.seyrat;.</emphasis></para>"> -
\ No newline at end of file diff --git a/fr_FR.ISO8859-1/share/sgml/urls.ent b/fr_FR.ISO8859-1/share/sgml/urls.ent deleted file mode 100644 index 012a4072c7..0000000000 --- a/fr_FR.ISO8859-1/share/sgml/urls.ent +++ /dev/null @@ -1,22 +0,0 @@ -<!-- - 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/"> diff --git a/ja_JP.eucJP/articles/contributing/article.sgml b/ja_JP.eucJP/articles/contributing/article.sgml deleted file mode 100644 index 5de797fce4..0000000000 --- a/ja_JP.eucJP/articles/contributing/article.sgml +++ /dev/null @@ -1,6040 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD Japanese Documentation Project - - Original revision: 1.173 - $FreeBSD: doc/ja_JP.eucJP/books/handbook/contrib/chapter.sgml,v 1.32 2000/03/07 23:57:18 kuriyama Exp $ ---> - -<chapter id="contrib"> - <title>FreeBSD ¤Ø¤Î¹×¸¥</title> - - <para><emphasis>¸¶ºî: &a.jkh;.</emphasis></para> - - <para><emphasis>Ìõ: &a.jp.iwasaki;, 1997 ǯ 4 ·î 27 Æü.</emphasis></para> - - <para>¤¢¤Ê¤¿¤â²¿¤« FreeBSD ¤Î¤¿¤á¤Ë¹×¸¥¤·¤¿¤¯¤Ê¤ê¤Þ¤·¤¿¤«? - ÁÇÀ²¤é¤·¤¤! »ä¤¿¤Á¤Ï¾ï¤Ë»Ù±ç¤ò¼õ¤±¤ëÍѰդ¬¤¢¤ê¤Þ¤¹¤·, FreeBSD - ¤ÏÀ¸¤»Ä¤ë¤¿¤á¤Ë¥æ¡¼ - ¥¶¥Ù¡¼¥¹¤Î¹×¸¥¤Ë<emphasis>Íê¤ë</emphasis>¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Î°ì¤Ä¤Ç¤¹. - ¤¢¤Ê¤¿¤Î¹×¸¥¤Ï ´¶¼Õ¤µ¤ì¤ë¤À¤±¤Ç¤Ï¤Ê¤¯, FreeBSD - ¤¬À®Ä¹¤·Â³¤±¤ë¤¿¤á¤Ë¶Ë¤á¤Æ½ÅÍפʤâ¤Î¤Ê ¤Î¤Ç¤¹!</para> - - <para>°ìÉô¤Î¿Í㤬¸À¤Ã¤Æ¤¤¤ë¤Î¤È¤ÏµÕ¤Ë, - ¹×¸¥¤ò¼õ¤±ÉÕ¤±¤Æ¤â¤é¤¦¤¿¤á¤ËÏÓÍø ¤¤Î¥×¥í¥°¥é¥Þ¡¼¤Ë¤Ê¤ë¤È¤« - FreeBSD ¥³¥¢¥Á¡¼¥à¤Î¿Í¤È¿ÆÍ§¤Ë¤Ê¤ëɬÍפϤ¢ ¤ê¤Þ¤»¤ó. FreeBSD - ¥×¥í¥¸¥§¥¯¥È¤Î³«È¯¤Ï, ¿¤¯¤Î¤½¤·¤Æ±×¡¹Áý²Ã¤¹¤ëÀ¤³¦Ãæ - ¤Î¹×¸¥¼Ôã¤Ë¤è¤Ã¤Æ¤Ê¤µ¤ì¤Æ¤ª¤ê, Èà¤é¤ÎǯÎð, - ÀìÌçµ»½ÑʬÌî¤Ï¿´ô¤ËÅϤê¤Þ ¤¹. - ¤½¤·¤Æ¼ê¤Î¶õ¤¤¤Æ¤¤¤ë¿Í¤è¤ê¤â - À®¤µ¤ì¤ë¤Ù¤»Å»ö¤ÎÊý¤¬¾ï¤Ë¿¤¤¤Î¤Ç¤¹.</para> - - <para>FreeBSD - ¥×¥í¥¸¥§¥¯¥È¤¬¥«¡¼¥Í¥ë¤ä»¶ºß¤·¤Æ¤¤¤ë¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤è¤ê¤â, - ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à´Ä¶ (¤È, ¤½¤Î¥¤¥ó¥¹¥È¡¼¥ë) - ¤ËÂФ·¤ÆÀÕǤ¤ò»ý¤Ä ¤è¤¦¤Ë¤Ê¤Ã¤¿¤¿¤á, - »ä¤¿¤Á¤Î<filename>TODO</filename>¥ê¥¹¥È¤Ï¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó, - ¥Ù¡¼¥¿¥Æ ¥¹¥È, - ¹âÅÙ¤ËÀìÌç²½¤µ¤ì¤¿¥¿¥¤¥×¤Î¥«¡¼¥Í¥ë³«È¯¤Î¹¥Îã¤ò¾Ò²ð¤¹¤ë¤Ê¤ÉÈó¾ï¤Ë - ¹¤¤ÈϰϤΥ¿¥¹¥¯¤ËÅϤê¤Þ¤¹. ¤¢¤Ê¤¿¤Îµ»Ç½¥ì¥Ù¥ë¤Ë´Ø¤ï¤é¤º, - ¥×¥í¥¸¥§¥¯¥È ¤ò»Ù±ç¤Ç¤¤ë¤³¤È¤¬É¬¤º²¿¤«¤¢¤ê¤Þ¤¹!</para> - - <para>FreeBSD - ´ØÏ¢¤Î»ö¶È¤Ë½¾»ö¤·¤Æ¤¤¤ë¾¦¶ÈÃÄÂΤ¬»ä¤¿¤Á¤Ë¥³¥ó¥¿¥¯¥È¤¹¤ë¤³¤È - ¤â´¿·Þ¤·¤Þ¤¹. ¤¢¤Ê¤¿¤ÎÀ½Éʤò (FreeBSD ¾å¤Ç) ưºî¤µ¤»¤ë¤Ë¤Ï, - ÆÃÊ̤ʳÈÄ¥ ¤¬É¬ÍפǤϤ¢¤ê¤Þ¤»¤ó¤«? - ¤¢¤Þ¤ê¤Ë¤âÉ÷ÊѤï¤ê¤ÊÍ×µá¤Ç¤Ê¤±¤ì¤Ð, ¤½¤ì¤ò¼õ¤± - Æþ¤ì¤ëÍѰդ¬»ä¤¿¤Á¤Ë¤¢¤ë¤È¤ï¤«¤ë¤Ï¤º¤Ç¤¹. - ÉղòÁÃͤΤ¢¤ëÀ½ÉʤǤ¹¤«? »ä¤¿¤Á¤ËÃΤ餻¤Æ¤¯¤À¤µ¤¤! ¿ʬ»ä¤¿¤Á¤Ï, - ¤¢¤ë Ì̤ˤª¤¤¤Æ¶¦Æ±¤·¤Æºî¶È¤ò¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¤Ç¤·¤ç¤¦. - ¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢³¦ ¤Ï, - ¥½¥Õ¥È¥¦¥§¥¢¤¬¤½¤Î¥é¥¤¥Õ¥µ¥¤¥¯¥ë¤òÄ̤·¤Æ¤É¤Î¤è¤¦¤Ë³«È¯¤µ¤ì, - Çä¤é¤ì, Êݼ餵¤ì¤Æ¤¤¤¯¤«¤Ë¤Ä¤¤¤Æ, ´û¸¤Î²¾Àâ¤ËÄ©À路¤Æ¤¤¤Þ¤¹. - ¾¯¤Ê¤¯¤È¤â¤â¤¦°ì - ÅÙ¹Íθ¤·¤Æ¤ß¤ë¤³¤È¤ò»ä¤¿¤Á¤Ï¶¯¤¯¤ª¾©¤á¤·¤Þ¤¹.</para> - - <sect1 id="contrib-what"> - <title>²¿¤¬É¬Í×?</title> - - <para>¼¡¤Î¥¿¥¹¥¯¤È¥µ¥Ö¥×¥í¥¸¥§¥¯¥È¤Î¥ê¥¹¥È¤Ï, ¥³¥¢¥Á¡¼¥à¤Î¿§¡¹¤Ê - <filename>TODO</filename> ¥ê - ¥¹¥È¤ÈºÇ¶á2¥ö·î¤Ç½¸¤á¤¿¥æ¡¼¥¶¥ê¥¯¥¨¥¹¥È¤ò¹ç¤ï¤»¤¿¤â¤Î¤Ç¤¹. - ²Äǽ¤Ê¤È¤³ ¤í¤Ç¤Ï, ¶ÛµÞÅ٤ˤè¤Ã¤Æ¥¿¥¹¥¯¤¬¥é¥ó¥¯¤Å¤±¤µ¤ì¤Æ¤¤¤Þ¤¹. - ¤â¤·¤³¤³¤Ë¤¢¤ë¥¿ ¥¹¥¯¤Î¼Â¹Ô¤Ë¶½Ì£¤¬¤¢¤ë¤Î¤Ç¤·¤¿¤é, - ¥³¡¼¥Ç¥£¥Í¡¼¥¿¤Î̾Á°¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¥á¡¼ ¥ë¤òÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤. - ¤â¤·¥³¡¼¥Ç¥£¥Í¡¼¥¿¤¬·è¤Þ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð, ¤¢¤Ê¤¿¤¬¥Ü - ¥é¥ó¥Æ¥£¥¢¤·¤Æ¤ß¤Þ¤»¤ó¤«?</para> - - <sect2> - <title>Í¥ÀèÅ٤ι⤤¥¿¥¹¥¯</title> - - <para>¼¡¤Î¥¿¥¹¥¯¤ÏÄ̾ï, ¤Ò¤É¤¯²õ¤ì¤Æ¤¤¤ë¤È¤«, - ¤È¤Æ¤âɬÍפȤµ¤ì¤Æ¤¤¤ë²¿¤«¤ò ɽ¤·¤Æ¤¤¤ë¤¿¤á, - µÞ̳¤È¹Í¤¨¤é¤ì¤Æ¤¤¤Þ¤¹:</para> - - <orderedlist> - <listitem> - <para>Âè3¥¹¥Æ¡¼¥¸¡¦¥Ö¡¼¥ÈÌäÂê. Á´ÂÎ¥³¡¼¥Ç¥£¥Í¡¼¥·¥ç¥ó: - &a.hackers;</para> - - <itemizedlist> - <listitem> - <para>Âè3¥¹¥Æ¡¼¥¸¤¬¥Ç¥£¥¹¥¯¤Î BIOS - ¥¸¥ª¥á¥È¥ê¤ÎÀµ³Î¤Ê¥Þ¥Ã¥Ô¥ó¥°¤òÄó¶¡ ¤Ç¤¤ë¤è¤¦¤Ë WinNT - ¥³¥ó¥Ñ¥Á¥Ö¥ë¤Ê¥É¥é¥¤¥Ö¤ÎÄÉÀפò¤ª¤³¤Ê¤¦.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÌäÂê. Á´ÂÎ¥³¡¼¥Ç¥£¥Í¡¼¥·¥ç¥ó: - &a.fs;</para> - - <itemizedlist> - <listitem> - <para>nullfs ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥³¡¼¥É¤Î¥¯¥ê¡¼¥ó¥¢¥Ã¥×¤È - ¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó. ¥³¡¼¥Ç¥£¥Í¡¼¥¿: &a.eivind;</para> - </listitem> - - <listitem> - <para>union ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î½¤Àµ. ¥³¡¼¥Ç¥£¥Í¡¼¥¿: - &a.dg;</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Int13 vm86 ¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ð¤Î¼ÂÁõ. ¥³¡¼¥Ç¥£¥Í¡¼¥¿: - &a.hackers;</para> - </listitem> - - <listitem> - <para>New bus ¥¢¡¼¥¥Æ¥¯¥Á¥ã¥«¡¼¥Í¥ë. ¥³¡¼¥Ç¥£¥Í¡¼¥¿: - &a.newbus;</para> - - <itemizedlist> - <listitem> - <para>¤¹¤Ù¤Æ¤Î¸½Â¸ ISA ¥É¥é¥¤¥Ð¤Î - ¿·¤·¤¤¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Ø¤Î°Ü¿¢.</para> - </listitem> - - <listitem> - <para>¤¹¤Ù¤Æ¤Î³ä¤ê¹þ¤ß½èÍý¥³¡¼¥É¤ò - ŬÀڤʥХ¹¥É¥é¥¤¥Ð¤Ë°Üư.</para> - </listitem> - - <listitem> - <para>PCI ¥µ¥Ö¥·¥¹¥Æ¥à¤Î - ¿·¤·¤¤¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Ø¤Î°Ü¿¢. ¥³¡¼¥Ç¥£¥Í¡¼¥¿: - &a.dfr;</para> - </listitem> - - <listitem> - <para>¥ê¥à¡¼¥Ð¥Ö¥ë¥Ç¥Ð¥¤¥¹¤òÀµ¤·¤¯°·¤¦ÊýË¡¤ò¸«¤¤½Ð¤·, - PC-Card ¤ä CardBus ¤ò¼ÂÁõ¤¹¤ë¤¿¤á¤ÎÅÚÂæ¤Ë¤¹¤ë.</para> - </listitem> - - <listitem> - <para>¥×¥í¡¼¥Ö¡¦¥¢¥¿¥Ã¥Á¤ÎÍ¥Àè½ç°Ì¤ÎÌäÂê¤ò - °ì²ó¤Ç¤¹¤Ã¤¤ê¤È²ò·è¤¹¤ë.</para> - </listitem> - - <listitem> - <para>¤½¤Î¾»Ä¤ê¤Î¥Ð¥¹¤ò¤¹¤Ù¤Æ¿·¤·¤¤ - ¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Ø¤È°Ü¹Ô¤¹¤ë.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>¥«¡¼¥Í¥ë¤Î½ôÌäÂê. Á´ÂÎ¥³¡¼¥Ç¥£¥Í¡¼¥·¥ç¥ó: - &a.hackers;</para> - </listitem> - - <listitem> - <para>¤è¤êÀѶËŪ¤Ë¥»¥¥å¥ê¥Æ¥£´ðÈפÎÀ°È÷¤ò¿Ê¤á¤ë. - Á´ÂÎ¥³¡¼¥Ç¥£¥Í¡¼¥·¥ç¥ó: &a.security;</para> - - <itemizedlist> - <listitem> - <para>Tripwire(TM) ¤Î¤è¤¦¤Ê¤â¤Î¤ò¥«¡¼¥Í¥ëÆâ¤Î - ¥ê¥â¡¼¥È¡¦¥í¡¼¥«¥ëξÉôʬ¤ËÈ÷¤¨¤ë. - ¤³¤ì¤òÀµ¤·¤¯¼Â¸½¤¹¤ë¾å¤Ç, °Å¹æµ»½Ñ¤Ë´Ø¤¹¤ëÌäÂ꤬ - ¤¤¤í¤¤¤í¤È¾å¤¬¤Ã¤Æ¤¤¤Þ¤¹. - ¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¥³¡¼¥Ç¥£¥Í¡¼¥¿¤ËÏ¢Íí¤ò¼è¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤. - ¥³¡¼¥Ç¥£¥Í¡¼¥¿: &a.eivind;</para> - </listitem> - - <listitem> - <para>¥«¡¼¥Í¥ë¤Ç (UID ¤ò) 0 ¤ÈÈæ³Ó¤·¤Æ¤¤¤ëÉôʬ¤ò - ¤¹¤Ù¤Æ <literal>suser()</literal> ¤ò»È¤¦¤è¤¦¤Ë¤¹¤ë. - ¸½ºß, ÌóȾʬ¤Î²Õ½ê¤¬»È¤Ã¤Æ¤¤¤Þ¤¹. - ¥³¡¼¥Ç¥£¥Í¡¼¥¿: &a.eivind;</para> - </listitem> - - <listitem> - <para>¥»¥¥å¥¢¥ì¥Ù¥ë¤ò¤¤¤¯¤Ä¤«¤ÎÉôʬ¤Ëʬ¤±¤ë. - ¤³¤ì¤Ë¤è¤Ã¤Æ´ÉÍý¼Ô¤Ï, Êü´þ¤·¤Æ¤â¹½¤ï¤Ê¤¤ - ¸¢¸Â¤Ë¤Ä¤¤¤Æ¤ÏÊü´þ¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹. - ÅöÁ³¤Ê¤¬¤é, Á´ÂÎ¥»¥¥å¥¢¥ì¥Ù¥ë¤ò¥»¥Ã¥È¤·¤¿¤È¤¤Î - ¸ú²Ì¤Ï¸½ºß¤Î¤Þ¤Þ¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó. - ¥³¡¼¥Ç¥£¥Í¡¼¥¿: &a.eivind;</para> - </listitem> - - <listitem> - <para>BPF ¤ËÂФ·¤Æ “µö²Ä¤µ¤ì¤¿¥×¥í¥°¥é¥à” - ¤Î¥ê¥¹¥È¤ò¥¢¥Ã¥×¥í¡¼¥É¤Ç¤¤ë¤è¤¦¤Ë¤·¤Æ¡¢ BPF ¤¬¤½¤ì°Ê³°¤Î - ¥×¥í¥°¥é¥à¤ò¼õ¤±Æþ¤ì¤ë¤Î¤ò¿©¤¤»ß¤á¤ë. - ¤³¤ì¤Ë¤è¤Ã¤Æ, BPF ¤òÎ㤨¤Ð DHCP ¤Ë»È¤¦¤È, ¥¢¥¿¥Ã¥«¡¼¤Ë - ¥í¡¼¥«¥ë¥Í¥Ã¥È¥ï¡¼¥¯¤ò¤³¤Ã¤½¤êõ¤é¤ì¤ë¤³¤È¤â¤Ê¤¯¤Ê¤ë - ¤Ç¤·¤ç¤¦.</para> - </listitem> - - <listitem> - <para>¥»¥¥å¥ê¥Æ¥£¥Á¥§¥Ã¥«¥¹¥¯¥ê¥×¥È¤ò¹¹¿·¤¹¤ë. - ²¿¤Ï¤È¤â¤¢¤ì, ¾¤Î BSD ÇÉÀ¸¥·¥¹¥Æ¥à¤Ë¤¢¤ë¥Á¥§¥Ã¥¯¤Ï - ¤¹¤Ù¤Æ¼è¤ê¹þ¤à. ¤µ¤é¤Ë, ¥·¥¹¥Æ¥à¤¬¥»¥¥å¥¢¥ì¥Ù¥ë¤ò - ¹â¤¯¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï, ´ØÏ¢²Õ½ê¤Ë¤Ä¤¤¤ÆÅ¬Àڤʥե饰¤ò - ÀßÄꤷ¤Æ¤¤¤ë¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¤è¤¦¤Ë¤¹¤ë. - ¥³¡¼¥Ç¥£¥Í¡¼¥¿: &a.eivind;</para> - </listitem> - - <listitem> - <para>¥«¡¼¥Í¥ë¤Ëǧ¾Úµ¡¹½¤òÀߤ±, ǧ¾Ú¥Ý¥ê¥·¡¼¤ò - Ê£¿ô¥µ¥Ý¡¼¥È¤¹¤ë. ¤½¤Î°ìÉô¤Ï <literal>suser()</literal> - ¤ò½¤Àµ¤¹¤ë¤³¤È¤Ç²Äǽ¤Ç¤·¤ç¤¦. - ¥³¡¼¥Ç¥£¥Í¡¼¥¿: &a.eivind;</para> - </listitem> - - <listitem> - <para>NFS ¥ì¥¤¥ä¤Ë¥³¡¼¥É¤òÄɲä·, NFS ¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Î - ³°¤Ë½Ð¤ë¤è¤¦¤Ê <literal>chdir("..")</literal> ¤Ï - ¤Ç¤¤Ê¤¤¤è¤¦¤Ë¤¹¤ë. Î㤨¤Ð, <filename>/usr</filename> - ¤¬ UFS ¤Ç <filename>/usr/src</filename> ¤¬ NFS - ¥¨¥¯¥¹¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¤È¤·¤Þ¤¹. ¸½ºß¤Ç¤Ï, - <filename>/usr/src</filename> ¤Ø¤Î NFS ¥Õ¥¡¥¤¥ë - ¥Ï¥ó¥É¥ë¤ò»È¤Ã¤Æ <filename>/usr</filename> ¤Ë - ¥¢¥¯¥»¥¹¤Ç¤¤Æ¤·¤Þ¤¦²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹.</para> - </listitem> - </itemizedlist> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Í¥ÀèÅÙ¤¬¤µ¤Û¤É¹â¤¯¤Ê¤¤¥¿¥¹¥¯</title> - - <para>¼¡¤Î¥¿¥¹¥¯¤Ï¤ä¤Ã¤Æ¤ª¤¯¤Ù¤¤Ç¤Ï¤¢¤ê¤Þ¤¹¤¬, - ÆÃ¤Ë¤µ¤·Ç÷¤Ã¤Æ¤¤¤ë¤ï¤±¤Ç ¤Ï¤¢¤ê¤Þ¤»¤ó:</para> - - <orderedlist> - <listitem> - <para>´°Á´¤Ê KLD ¥Ù¡¼¥¹¤Î¥É¥é¥¤¥Ð¤Î¥µ¥Ý¡¼¥È / - ¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥Þ¥Í¡¼ ¥¸¥ã.</para> - - <itemizedlist> - <listitem> - <para>²º¤ä¤«¤ÊÊýË¡¤Ç¥Ï¡¼¥É¥¦¥§¥¢¤ò¸¡ÃΤ¹¤ë - ¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥Þ¥Í¡¼¥¸¥ã ¤ÎºîÀ® - (Âè3¥¹¥Æ¡¼¥¸¡¦¥Ö¡¼¥È¤ÎÃæ¤Ë?). ¥Ï¡¼¥É¥¦¥§¥¢¤¬É¬ÍפȤ¹¤ë - KLD ¤À¤±¤ò »Ä¤¹Åù.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>PCMCIA/PCCARD. ¥³¡¼¥Ç¥£¥Í¡¼¥¿: &a.msmith; ¤È &a.imp;</para> - - <itemizedlist> - <listitem> - <para>¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó!</para> - </listitem> - - <listitem> - <para>pcic ¥É¥é¥¤¥Ð¤Î¿®ÍêÀ¤Î¤¢¤ëÁàºî (¥Æ¥¹¥ÈÍ×).</para> - </listitem> - - <listitem> - <para><filename>sio.c</filename> - ¤Î¥ê¥³¥°¥Ê¥¤¥¶¤È¥Ï¥ó¥É¥é (¤Û¤Ü´°Î»).</para> - </listitem> - - <listitem> - <para><filename>ed.c</filename> ¤Î¥ê¥³¥°¥Ê¥¤¥¶¤È¥Ï¥ó¥É¥é - (¤Û¤Ü´°Î»).</para> - </listitem> - - <listitem> - <para><filename>ep.c</filename> ¤Î¥ê¥³¥°¥Ê¥¤¥¶¤È¥Ï¥ó¥É¥é - (¤Û¤Ü´°Î»).</para> - </listitem> - - <listitem> - <para>User-mode ¤Î¥ê¥³¥°¥Ê¥¤¥¶¤È¥Ï¥ó¥É¥é - (ÉôʬŪ¤Ë´°Î»).</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para>Àè¿ÊŪ¤Ê¥Ñ¥ï¡¼¥Þ¥Í¡¼¥¸¥á¥ó¥È. ¥³¡¼¥Ç¥£¥Í¡¼¥¿: &a.nate; - ¤È &a.phk;</para> - - <itemizedlist> - <listitem> - <para>APM ¥µ¥Ö¥É¥é¥¤¥Ð (¤Û¤Ü´°Î»).</para> - </listitem> - - <listitem> - <para>IDE/ATA ¥Ç¥£¥¹¥¯¥µ¥Ö¥É¥é¥¤¥Ð (ÉôʬŪ¤Ë´°Î»).</para> - </listitem> - - <listitem> - <para>syscons/pcvt ¥µ¥Ö¥É¥é¥¤¥Ð.</para> - </listitem> - - <listitem> - <para>PCMCIA/PCCARD ¥É¥é¥¤¥Ð·²¤È¤ÎÅý¹ç (¥µ¥¹¥Ú¥ó¥É / - ¥ì¥¸¥å¡¼¥à).</para> - </listitem> - </itemizedlist> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>Í¥ÀèÅÙ¤ÎÄ㤤¥¿¥¹¥¯</title> - - <para>¼¡¤Î¥¿¥¹¥¯¤ÏÁ´¤¯¤Î¤¢¤é±£¤·, - ¤Þ¤¿¤Ïï¤â¤¹¤°¤Ë¤ª¤³¤Ê¤¤¤½¤¦¤â¤Ê¤¤Åê»ñ - ¤Î¤è¤¦¤Ê»Å»ö¤òɽ¤·¤Þ¤¹:</para> - - <para>ºÇ½é¤Î N ¹àÌÜ¤Ï Terry Lambert - <email>terry@lambert.org</email> ¤«¤é¤Î¤â¤Î¤Ç¤¹.</para> - - <orderedlist> - <listitem> - <para>¥Í¥Ã¥È¥ï¡¼¥¯¥«¡¼¥É¤È°ì½ï¤ËÄ󶡤µ¤ì¤ë ODI - ¥«¡¼¥É¥É¥é¥¤¥Ð¤ò»ÈÍÑ¤Ç ¤¤ë¤è¤¦¤Ë¤¹¤ë, NetWare ¥µ¡¼¥Ð - (¥×¥í¥Æ¥¯¥È¥â¡¼¥É¤Î ODI ¥É¥é¥¤¥Ð) ¥í¡¼ ¥À¤È¥µ¥Ö¥µ¡¼¥Ó¥¹. - NDIS ¥É¥é¥¤¥Ð¤È NetWare ¤Î SCSI ¥É¥é¥¤¥Ð¤Ë¤Ä¤¤¤Æ¤âƱ - ÍÍ.</para> - </listitem> - - <listitem> - <para>Á°¤Î¥ê¥Ó¥¸¥ç¥ó¤Î FreeBSD ¥Þ¥·¥ó¤Ç¤Ï¤Ê¤¯, Linux - ¥Þ¥·¥ó¤Çưºî¤¹¤ë ¡Ö¥¢¥Ã¥×¥°¥ì¡¼¥É - ¥·¥¹¥Æ¥à¡×¥ª¥×¥·¥ç¥ó.</para> - </listitem> - - <listitem> - <para>¥«¡¼¥Í¥ë¤Î¥Þ¥ë¥Á¥¹¥ì¥Ã¥É²½ - (¥«¡¼¥Í¥ë¤Î¥×¥ê¥¨¥ó¥×¥·¥ç¥ó¤¬É¬Í×).</para> - </listitem> - - <listitem> - <para>¥«¡¼¥Í¥ë¤Î¥×¥ê¥¨¥ó¥×¥·¥ç¥óÉÕ¤ÂоΥޥë¥Á¥×¥í¥»¥Ã¥·¥ó¥° - (¥«¡¼¥Í¥ë ¤Î¥×¥ê¥¨¥ó¥×¥·¥ç¥ó¤¬É¬Í×).</para> - </listitem> - - <listitem> - <para>¥Ý¡¼¥¿¥Ö¥ë¥³¥ó¥Ô¥å¡¼¥¿¤Î¥µ¥Ý¡¼¥È¤Ë¤ª¤±¤ë¶¨Ä´¤Î»î¤ß. - ¤³¤ì¤Ï PCMCIA - ¥Ö¥ê¥Ã¥¸¥ó¥°µ¬Â§¤ÈÅŸ»´ÉÍý¥¤¥Ù¥ó¥È½èÍý¤ÎÊѹ¹¤Ë¤è¤ê, ¤¤¤¯ - ¤é¤«¤Ï½èÍý¤Ç¤¤Þ¤¹. ¤·¤«¤·, - Æâ¢¥Ç¥£¥¹¥×¥ì¥¤¤È³°Éô¥Ç¥£¥¹¥×¥ì¥¤¤Î¸¡½Ð, ¤³¤Î 2 - ¼ïÎà¤Î¥Ç¥£¥¹¥×¥ì¥¤¤¬¤¢¤ë¤È¤¤¤¦»ö¼Â¤Ë´ð¤Å¤¯ - °Û¤Ê¤ë²òÁüÅÙ¤ÎÁªÂò, ¥Þ¥·¥ó¤¬¥É¥Ã¥¯¤Ë¤¢¤ë¾ì¹ç¤Ë¤Ï - ¥Ç¥£¥¹¥¯¤Î¥â¡¼¥¿Ää»ß¤òËɻߤ¹¤ë¤³¤È, ¥Þ¥·¥ó¤Î - ¥Ö¡¼¥ÈǽÎϤ˱ƶÁ¤òÍ¿¤¨¤º¤Ë¥É¥Ã¥¯¥Ù¡¼¥¹¤Î¥«¡¼¥É¤Î¾ÃÌǤò - ²Äǽ¤Ë¤¹¤ë¤³¤È (PCMCIA ¤ÈƱ¤¸ÌäÂê) - ¤Ê¤É¤ÎÌäÂ꤬¤¢¤ê¤Þ¤¹.</para> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>¤â¤Ã¤È´Êñ¤Ê¥¿¥¹¥¯</title> - - <para>¾å¤Î¥»¥¯¥·¥ç¥ó¤Çµó¤²¤¿¥¿¥¹¥¯¤ÏËÄÂç¤Ê»þ´Ö¤ÎÅê»ñ¤Þ¤¿¤Ï - FreeBSD ¤Î¥«¡¼¥Í¥ë¤Ë´Ø¤¹¤ë¿¼¤¤Ã챤òɬÍפȤ·¤Þ¤¹ - (¤â¤·¤¯¤Ï¤½¤Î¤É¤Á¤é¤â). ¤·¤«¤·¤Ê¤¬¤é, - "½µËö¥Ï¥Ã¥«¡¼"¤ä¥×¥í¥°¥é¥ß¥ó¥°¤Î¥¹¥¥ë¤ò»ý - ¤¿¤Ê¤¤¿Í¡¹¤ËŬ¤·¤¿Î©Çɤʥ¿¥¹¥¯¤â¿ô¿¤¯¤¢¤ê¤Þ¤¹.</para> - - <orderedlist> - <listitem> - <para>FreeBSD-current ¤ò±¿ÍѤ·¤Æ¤ª¤ê, - ¾õÂÖ¤ÎÎɤ¤¥¤¥ó¥¿¡¼¥Í¥Ã¥ÈÀܳ¤¬¤¢ ¤ë¤Ê¤é¤Ð, <hostid - role="fqdn">current.FreeBSD.org</hostid> - ¤È¤¤¤¦°ìÆü¤Ë°ì²ó¥Õ¥ë¥ê¥ê¡¼¥¹¤ò¹Ô¤Ã¤Æ¤¤¤ë ¥Þ¥·¥ó¤¬¤¢¤ê¤Þ¤¹ - — »þ¤ª¤êºÇ¿·¤Î¥ê¥ê¡¼¥¹¤ò¤½¤³¤«¤é¥¤¥ó¥¹¥È¡¼¥ë¤·, ¤½¤Î - ²áÄø¤Ç²¿¤«ÌäÂ꤬¤¢¤ë¤Ê¤éÊó¹ð¤·¤Æ²¼¤µ¤¤.</para> - </listitem> - - <listitem> - <para>freebsd-bugs - ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤òÆÉ¤ó¤Ç¤¯¤À¤µ¤¤. ¤½¤³¤Ç¤Ï¤¢¤Ê¤¿¤¬·ú - ÀßŪ¤Ê¥³¥á¥ó¥È¤òÉÕ¤±¤¿¤ê¥Æ¥¹¥È¤Ç¤¤ë¥Ñ¥Ã¥Á¤¬ - Ä󶡤µ¤ì¤Æ¤¤¤ë¤è¤¦¤ÊÌäÂ꤬¤¢¤ë ¤«¤â¤·¤ì¤Þ¤»¤ó. - ¤â¤·¤¯¤Ï¤½¤ì¤é¤ÎÌäÂê¤Î°ì¤Ä¤ò¤¢¤Ê¤¿¼«¿È¤Ç½¤Àµ¤¹¤ë¤³¤È¤µ¤¨ - ¤Ç¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó.</para> - </listitem> - - <listitem> - <para>Äê´üŪ¤Ë FAQ ¤È¥Ï¥ó¥É¥Ö¥Ã¥¯¤òÄ̤·¤ÆÆÉ¤ó¤Ç¤ß¤Æ¤¯¤À¤µ¤¤. - ¤â¤·¤Þ¤º¤¤ÀâÌÀ¤ä¸Å¤¤»öÊÁ¤ä´°Á´¤Ë´Ö°ã¤Ã¤Æ¤¤¤ë¤³¤È¤Ê¤É¤¬ - ¤¢¤ì¤Ð²æ¡¹¤Ë ¤·¤é¤»¤Æ²¼¤µ¤¤. - ¤µ¤é¤ËÎɤ¤¤Î¤Ï²æ¡¹¤Ë½¤Àµ°Æ¤òÁ÷¤ë¤³¤È¤Ç¤¹ (SGML - ¤Ï³Ø¤Ö¤Î¤Ë¤½¤ì¤Û¤ÉÆñ¤·¤¯¤¢¤ê¤Þ¤»¤ó¤¬, - ¥×¥ì¥¤¥ó¥Æ¥¥¹¥È¤Ç¤âÌäÂê¤Ï ¤¢¤ê¤Þ¤»¤ó).</para> - </listitem> - - <listitem> - <para>(¤â¤·¤Þ¤À¤Ê¤¤¤Ê¤é¤Ð) FreeBSD - ¤Î¥É¥¥å¥á¥ó¥È¤ò¼«Ê¬¤ÎÊì¹ñ¸ì¤ËËÝÌõ - ¤¹¤ë¤Î¤ò¼êÅÁ¤Ã¤Æ¤¯¤À¤µ¤¤ — - ºî¶È¤·¤Æ¤¤¤ë¿Í¤¬¤¤¤ë¤«¤É¤¦¤« &a.doc; ¤Ë¥á¡¼¥ë¤ò - Á÷¤Ã¤ÆÊ¹¤¯¤À¤±¤Ç¤¹. ¤È¤Ï¤¤¤Ã¤Æ¤â, - ¤½¤¦¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤¢¤Ê¤¿¤¬Á´¤Æ¤Î FreeBSD - ¥É¥¥å¥á¥ó¥È¤ÎËÝÌõ¤Ë·È¤ï¤ë¤è¤¦¤Ë - ¤Ê¤ë¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤Ê¤¤¤Ç¤¹¤«¤é ¤Í — ¼ÂºÝ, - ¤â¤Ã¤È¤âËÝÌõ¤¬É¬ÍפȤµ¤ì¤Æ¤¤¤ë¥É¥¥å¥á¥ó¥È¤Ï¥¤¥ó¥¹¥È¡¼¥ëÊý - Ë¡¤Ç¤¹.</para> - </listitem> - - <listitem> - <para>¤¿¤Þ¤Ë(¤â¤·¤¯¤ÏÄê´üŪ¤Ë) freebsd-questions - ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤ä - <literal>comp.unix.bsd.freebsd.misc</literal> - ¤òÆÉ¤ó¤Ç¤¯¤À¤µ¤¤. ¤³¤ì¤Ï, ¤¢¤Ê¤¿¤Î»ý¤Ã¤Æ¤¤ - ¤ëÀìÌçÃ챤ò¶¦Í¤·¤¿¤ê狼¤¬Êú¤¨¤Æ¤¤¤ëÌäÂê¤ò - ²ò·è¤¹¤ë¤Î¤ËÈó¾ï¤Ë͸ú¤Ê ¤â¤Î¤Ë¤Ê¤êÆÀ¤ë¤³¤È¤Ç¤¹. - »þ¤Ë¤Ï¤¢¤Ê¤¿¼«¿È¤Ç¿·¤·¤¤¤³¤È¤ò³Ø¤Ö¤³¤È¤µ¤¨ - ¤Ç¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó. - ¤³¤ì¤é¤Î¥Õ¥©¡¼¥é¥à¤Ï¤ä¤ë¤Ù¤¤³¤È¤Î¥¢¥¤¥Ç¥£¥¢ - ¤Î¸»¤Ë¤â¤Ê¤êÆÀ¤ë¤Î¤Ç¤¹.</para> - </listitem> - - <listitem> - <para>-current ¤ËÀµ¤·¤¯Åö¤Æ¤é¤ì¤ë¤¬¤·¤Ð¤é¤¯·Ð¤Ã¤Æ¤â(Ä̾ï¤Ï - 2, 3 ½µ´Ö) -stable - ¤Ë¼è¤ê¹þ¤Þ¤ì¤Æ¤Ê¤¤¤è¤¦¤Ê¥Ð¥°¥Õ¥£¥Ã¥¯¥¹¤¬¤¢¤ë¤Ê¤é¤Ð - ¥³¥ß¥Ã¥¿¡¼¤Ë ÃúÇ«¤Ë»×¤¤½Ð¤µ¤»¤Æ¤¯¤À¤µ¤¤.</para> - </listitem> - - <listitem> - <para>´ó£¥½¥Õ¥È¥¦¥§¥¢¤ò¥½¡¼¥¹¥Ä¥ê¡¼¤Î - <filename>src/contrib</filename> - ¤Ë°Üư¤µ¤»¤Æ¤¯¤À¤µ¤¤.</para> - </listitem> - - <listitem> - <para><filename>src/contrib</filename> - °Ê²¼¤Î¥³¡¼¥É¤¬ºÇ¿·¤Î¤â¤Î¤Ç¤¢¤ë¤«³Îǧ¤·¤Æ¤¯¤À¤µ¤¤.</para> - </listitem> - - <listitem> - <para>2000 ǯÌäÂê¤Ë´Ø¤¹¤ë¥Ð¥°¤òõ¤·¤Æ¤¯¤À¤µ¤¤(¤½¤·¤Æ, - ¸«¤Ä¤±¤¿¤é½¤Àµ¤·¤Æ¤¯¤À¤µ¤¤!).</para> - </listitem> - - <listitem> - <para>¥½¡¼¥¹¥Ä¥ê¡¼Á´ÂÎ(¤â¤·¤¯¤Ï¤½¤Î°ìÉô)¤ò, - ·Ù¹ð¤ò¾ÜºÙ¤ËÊó¹ð¤¹¤ë¤è¤¦¤Ë¤·¤Æ¹½ÃÛ¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤. - ¤½¤·¤Æ·Ù¹ð¤¬½Ð¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤.</para> - </listitem> - - <listitem> - <para>ports ¤Ç, gets() ¤ò»È¤Ã¤Æ¤¤¤ë¤È¤« malloc.h - ¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤¤¤ë - ¤Ê¤É¤È¤¤¤Ã¤¿·Ù¹ð¤¬½Ð¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤.</para> - </listitem> - - <listitem> - <para>¤â¤·¤Ê¤ó¤é¤«¤Î ports ¤Ë´Ø¤ï¤Ã¤Æ¤¤¤ë¤Ê¤é, - ¤¢¤Ê¤¿¤Î¥Ñ¥Ã¥Á¤òºî¼Ô¤Ë ¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤ - (¼¡¤Î¥Ð¡¼¥¸¥ç¥ó¤¬½Ð¤¿»þ¤Ë¤¢¤Ê¤¿¤¬³Ú¤Ë¤Ê¤ê¤Þ¤¹).</para> - </listitem> - - <listitem> - <para>¤³¤Î¥ê¥¹¥È¤ËÄɲ乤륿¥¹¥¯¤òÄ󰯤·¤Æ²¼¤µ¤¤!</para> - </listitem> - </orderedlist> - </sect2> - - <sect2> - <title>¾ã³²Êó¹ð(PR; Problem Report)¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤ª¤±¤ëºî¶È</title> - - <para><ulink url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi"> - FreeBSD ¾ã³²Êó¹ð¥ê¥¹¥È</ulink>¤Ç¤Ï, ¸½ºßÌäÂê¤È¤Ê¤Ã¤Æ¤¤¤ëÊó¹ð¤È, - FreeBSD ¤ÎÍøÍѼԤˤè¤Ã¤ÆÄó½Ð¤µ¤ì¤¿²þÎɤÎÍ×˾¤Ë´Ø¤¹¤ë - Á´¤Æ¤Î¥ê¥¹¥È¤ò¸ø³«¤·¤Æ¤¤¤Þ¤¹. - open ¾õÂ֤ξ㳲¾ðÊó¤ò¸«¤Æ, ¶½Ì£¤ò°ú¤¯ÆâÍÆ¤«¤É¤¦¤«³Î¤«¤á¤Æ²¼¤µ¤¤. - ËÜÅö¤ËÊ£»¨¤Ê¤â¤Î¤â´Þ¤Þ¤ì¤Æ¤¤¤ë¤Ç¤·¤ç¤¦¤·, - Î㤨¤Ð, ¾ã³²Êó¹ð¤ËÂФ¹¤ë½¤Àµ¤¬¤Á¤ã¤ó¤È¤·¤¿¤â¤Î¤Ç¤¢¤ë¤«¤É¤¦¤« - ñ¤Ë¥Á¥§¥Ã¥¯¤¹¤ë¤À¤±¤Î¤È¤Æ¤â´Êñ¤Êºî¶È¤â¤¢¤ë¤Ç¤·¤ç¤¦.</para> - - <para>¤Þ¤º, ¤Þ¤Àï¤Ë¤â³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Ê¤¤¾ã³²Êó¹ð¤«¤éºî¶È¤ò - »Ï¤á¤Æ²¼¤µ¤¤. ¤â¤·, 狼¾¤Î¿Í¤Ë³ä¤êÅö¤Æ¤¬·è¤Þ¤Ã¤Æ¤¤¤ë¤±¤ì¤É¤â - ¼«Ê¬¤¬ºî¶È²Äǽ¤À, ¤È¤¤¤¦¤â¤Î¤¬¤¢¤ì¤Ð, ºî¶È¤¬¤Ç¤¤ë¤«¤É¤¦¤«— - ´û¤Ë¥Æ¥¹¥ÈÍѥѥåÁ¤¬ÍѰդµ¤ì¤Æ¤¤¤ë¤Î¤«¤É¤¦¤«, ¤¢¤ë¤¤¤Ï - ¤½¤ÎÌäÂê¤Ë¤Ä¤¤¤Æ¤¢¤Ê¤¿¤¬¹Í¤¨¤Æ¤¤¤ë, - ¤è¤ê¿Ê¤ó¤À¹Í¤¨¤Ë´Ø¤·¤ÆµÄÏÀ¤¬¤Ç¤¤ë¤«¤É¤¦¤«, - ³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¿Í¤ËÅŻҥ᡼¥ë¤ÇÌ䤤¹ç¤ï¤»¤Æ²¼¤µ¤¤. - </para> - - </sect2> - </sect1> - - <sect1 id="contrib-how"> - <title>¹×¸¥¤Î»ÅÊý</title> - - <para>°ìÈÌŪ¤Ë, ¥·¥¹¥Æ¥à¤Ø¤Î¹×¸¥¤Ï¼¡¤Î 6 - ¤Ä¤Î¥«¥Æ¥´¥ê¤Î1¤Ä°Ê¾å¤ËʬÎव¤ì¤Þ¤¹:</para> - - <sect2 id="contrib-general"> - <title>¥Ð¥°Êó¹ð¤È°ìÈÌŪ¤ÊÏÀɾ</title> - - <para>Êó¹ð¤¹¤ë¤Ù¤¥Ð¥°¤¬¤¢¤Ã¤¿¤ê, Ä󰯤·¤¿¤¤¤³¤È¤¬¤¢¤ì¤Ð:</para> - - <para><emphasis>°ìÈÌŪ¤Ê</emphasis> - µ»½ÑŪ´Ø¿´»ö¤Ë´Ø¤¹¤ë¥¢¥¤¥Ç¥¢¤äÄó°Æ¤Ï &a.hackers; - ¤Ø¥á¡¼¥ë¤·¤Æ¤¯¤À¤µ¤¤. ƱÍͤË, ¤³¤Î¤è¤¦¤Ê»öÊÁ¤Ë¶½Ì£¤Î¤¢¤ë - (¤½¤·¤Æ<emphasis>ËÄÂç¤Ê</emphasis>¥á¡¼¥ë! ¤ËÂѤ¨¤é¤ì¤ë) ¿Í¤Ï, - &a.majordomo; ¤Ø¥á¡¼¥ë¤òÁ÷¤Ã¤Æ hackers - ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë»²²Ã¤¹¤ë¤ÈÎɤ¤¤Ç¤·¤ç¤¦. ¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï - <link linkend="eresources-mail">¥á¡¼¥ê¥ó¥°¥ê¥¹¥È</link> - ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤.</para> - - <para>¥Ð¥°¤òȯ¸«¤·¤¿¤êÊѹ¹¤òÁ÷ÉÕ¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¾ì¹ç¤Ï - &man.send-pr.1; ¥×¥í¥°¥é¥à¤« <ulink - url="http://www.FreeBSD.org/send-pr.html">WEB ¥Ù¡¼¥¹¤Î - send-pr</ulink> ¤ò»ÈÍѤ·¤ÆÊó¹ð¤·¤Æ¤¯¤À¤µ¤¤. - ¥Ð¥°¥ì¥Ý¡¼¥È¤Î³Æ¹àÌܤòËä¤á¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤. 65KB - ¤òͤ¨¤ë¤Î¤Ç¤Ê¤±¤ì¤Ð, ¥ì¥Ý¡¼¥ÈÃæ¤ËľÀÜ - ¥Ñ¥Ã¥Á¤òÆþ¤ì¤Æ¤¯¤À¤µ¤Ã¤Æ·ë¹½¤Ç¤¹. - ¤½¤Î¾ì¹ç, ¥«¥Ã¥È¡õ¥Ú¡¼¥¹¥È¤Ï<emphasis>¤·¤Ê¤¤¤Ç</emphasis> - ¤¯¤À¤µ¤¤. ¥«¥Ã¥È¡õ¥Ú¡¼¥¹¥È¤Ç¤Ï¥¿¥Ö¤¬¥¹¥Ú¡¼¥¹¤ËŸ³«¤µ¤ì¤Æ - ¥Ñ¥Ã¥Á¤¬»È¤¤Êª¤Ë¤Ê¤é¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹. - 20KB ¤òͤ¨¤ë¾ì¹ç¤Ï, - ¤½¤ì¤é¤ò compress ¤·¤Æ &man.uuencode.1; - ¤¹¤ë¤³¤È¤â¸¡Æ¤¤·¤Æ¤¯¤À¤µ¤¤. ¤È¤Æ¤âÂ礤¯¤Ê¤ë¾ì¹ç¤Ï <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming/"> - ftp.FreeBSD.org:/pub/FreeBSD/incoming/</ulink> - ¤òÍøÍѤ·¤Æ¤¯¤À¤µ¤¤. - </para> - - <para>¥ì¥Ý¡¼¥È¤¬¥Õ¥¡¥¤¥ê¥ó¥°¤µ¤ì¤ì¤Ð, ¥Ð¥°Êó¹ð¤Î³Îǧ¤È - ¥È¥é¥Ã¥¥ó¥°ÈÖ¹æ¤ò¥á¡¼¥ë¤Ç¼õ¤±¼è¤ë¤Ï¤º¤Ç¤¹. - ¤³¤Î¥È¥é¥Ã¥¥ó¥°ÈÖ¹æ¤ò³Ð¤¨¤Æ¤ª¤, ÌäÂê¤Ë´Ø¤¹¤ë¾ÜºÙ¾ðÊó¤ò - <email>bug-followup@FreeBSD.org</email> ¤Ë - ¥á¡¼¥ë¤ÇÁ÷¤Ã¤Æ¹¹¿·¤Ç¤¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤. Î㤨¤Ð - <literal>"Re: kern/3377"</literal> ¤Î¤è¤¦¤Ë, - ¤³¤ÎÈÖ¹æ¤ò¥µ¥Ö¥¸¥§¥¯¥È¹Ô¤Ë»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤. - ¤¹¤Ù¤Æ¤Î¥Ð¥°¥ì¥Ý¡¼¥È¤ÎÄɲþðÊó¤Ï, - ¤³¤ÎÊýË¡¤ÇÁ÷ÉÕ¤µ¤ì¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó.</para> - - <para>¤â¤·¥¿¥¤¥à¥ê¤Ë (¤¢¤Ê¤¿¤ÎÅŻҥ᡼¥ëÀܳ·ÁÂ֤ˤâ¤è¤ê¤Þ¤¹¤¬, - 3Æü¤«¤é 1½µ´Ö) ³Îǧ¤ò¼õ¤±¤È¤ì¤Ê¤¤¤È¤«, ²¿¤é¤«¤ÎÍýͳ¤Ç - &man.send-pr.1; ¥³¥Þ¥ó¥É¤¬ »ÈÍѤǤ¤Ê¤¤¾ì¹ç¤Ë¤Ï, &a.bugs; - ¤Ø¥á¡¼¥ë¤òÁ÷¤ê, 狼Âå¤ê¤Ë¥Ð¥°Êó¹ð¤ò - Á÷ÉÕ¤·¤Æ¤â¤é¤¦¤è¤¦¤¿¤º¤Í¤Æ¤¯¤À¤µ¤¤.</para> - </sect2> - - <sect2> - <title>ʸ½ñ¤ÎÊѹ¹</title> - - <para>ʸ½ñ¤ÎÊѹ¹¤Ï &a.doc; ¤¬´ÆÆÄ¤·¤Æ¤¤¤Þ¤¹. <link - linkend="contrib-general">¥Ð¥°Êó¹ð¤È°ìÈÌŪ¤ÊÏÀɾ</link> - ¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë <command>send-pr</command> - ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ, Ä󰯤äÊѹ¹ - (¤É¤ó¤Êº³ºÙ¤Ê¤â¤Î¤Ç¤â´¿·Þ¤·¤Þ¤¹!) ¤òÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤.</para> - </sect2> - - <sect2> - <title>¸½Â¸¤Î¥½¡¼¥¹¥³¡¼¥É¤ÎÊѹ¹</title> - - <para>¸½Â¸¤Î¥½¡¼¥¹¥³¡¼¥É¤Ø¤ÎÄɲäޤ¿¤ÏÊѹ¹¤Ï, - ¤¤¤¯¤é¤«¥È¥ê¥Ã¥¡¼¤Ê»Å»ö¤Ç ¤¢¤ê, core ¤Î FreeBSD - ³«È¯¤Î¸½¾õ¤Ë¤¢¤Ê¤¿¤¬¤É¤ì¤À¤±Ä̤¸¤Æ¤¤¤ë¤«¤ËÂç ¤¤¯°Í¸¤·¤Þ¤¹. - “FreeBSD-current”¤È¤·¤ÆÃΤé¤ì¤ë FreeBSD ¤ÎÆÃÊÌ¤Ê - ·Ñ³Ū¥ê¥ê¡¼¥¹¤¬¤¢¤ê¤Þ¤¹. FreeBSD-current - ¤Ï³«È¯¼Ô¤ÎÀѶËŪ¤Ê³èư¤Î ÊØµ¹¤Î¤¿¤á¤Ë, - ¿§¡¹¤ÊÊýË¡¤ÇÍøÍѲÄǽ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹. FreeBSD-current - ¤ÎÆþ¼ê¤È»ÈÍÑÊýË¡¤Ë¤Ä¤¤¤Æ¤Î¾Ü¤·¤¤¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï <link - linkend="current">ºÇ¿·¤Î FreeBSD ¤òÄɤ¤¤«¤±¤ë</link> - ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤.</para> - - <para>ÉÔ¹¬¤Ë¤·¤Æ¸Å¤¤¥½¡¼¥¹¤ò¤â¤È¤Ë»Å»ö¤ò¤¹¤ë¤³¤È¤Ï, - »þ¡¹¤¢¤Ê¤¿¤ÎÊѹ¹¤¬»þ ÂåÃÙ¤ì, ¤Þ¤¿¤Ï FreeBSD - ¤Ø¤Î´Êñ¤ÊºÆÅý¹ç¤Ë¹ç¤ï¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤ò°Õ Ì£¤·¤Þ¤¹. - ¥·¥¹¥Æ¥à¤Î¸½¾õ¤Ë´Ø¤¹¤ëµÄÏÀ¤¬¤ª¤³¤Ê¤ï¤ì¤Æ¤¤¤ë &a.announce; ¤È - &a.current; ¤Ø»²²Ã¤¹¤ë¤³¤È¤Ç, - ¤³¤Î²ÄǽÀ¤òºÇ¾®¸Â¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹.</para> - - <para>´°Á´¤ÊºÇ¿·¤Î¥½¡¼¥¹¤òÊѹ¹¤Î¥Ù¡¼¥¹¤Ë¤Ç¤¤ë¤³¤È¤¬ - ³Î¼Â¤Ë¤Ê¤Ã¤¿¤È²¾Äꤷ ¤Æ, ¼¡¤Î¥¹¥Æ¥Ã¥×¤Ï FreeBSD - ¤ÎÊݼéôÅö¼Ô¤ØÁ÷¤ëº¹Ê¬¥Õ¥¡¥¤¥ë¤ÎÀ¸À®¤Ç¤¹. ¤³¤ì¤Ï &man.diff.1; - ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¤ª¤³¤Ê¤¤¤Þ¤¹¤¬, “context - diff”·Á¼°¤¬¹¥¤Þ¤ì¤ë¤è¤¦¤Ç¤¹. Î㤨¤Ð:</para> - - <screen>&prompt.user; <userinput>diff -c oldfile newfile</userinput></screen> - - <para>¤Þ¤¿¤Ï</para> - - <screen>&prompt.user; <userinput>diff -c -r olddir newdir</userinput></screen> - - <para>¤³¤ì¤Ç»ØÄꤵ¤ì¤¿¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Ç¥£¥ì¥¯¥È¥ê³¬ÁØ¤Ë - ÂФ¹¤ë¥³¥ó¥Æ ¥¥¹¥È·Á¼°¤Îº¹Ê¬¤¬À¸À®¤µ¤ì¤Þ¤¹. ¾Ü¤·¤¤ÀâÌÀ¤Ï - &man.diff.1; ¤Î¥Þ ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤.</para> - - <para>º¹Ê¬¥Õ¥¡¥¤¥ë (&man.patch.1; ¥³¥Þ¥ó¥É¤Ç¥Æ¥¹¥È¤Ç¤¤Þ¤¹) - ¤òºî¤Ã¤¿¤é, ¤½¤ì¤é¤ò FreeBSD - ¤Ë´Þ¤á¤Æ¤â¤é¤¦¤è¤¦¥á¡¼¥ë¤ÇÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤. <link - linkend="contrib-general">¥Ð¥°Êó¹ð¤È°ìÈÌŪ¤ÊÏÀɾ</link> - ¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ë &man.send-pr.1; - ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤. º¹Ê¬¥Õ¥¡¥¤¥ë¤À¤±¤ò &a.hackers; - ¤ØÁ÷¤Ã¤Æ¤Ï¤¤¤±¤Þ¤»¤ó. ÅÓÊý¤Ë¤¯¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹! - »ä¤¿¤Á¤Ï¿˻¤Ê¤Î¤Ç, ¤¢¤Ê¤¿¤ÎÄ󰯤ËÂçÊÑ´¶¼Õ¤·¤Þ¤¹ - (¤³¤ì¤Ï¥Ü¥é¥ó¥Æ¥£¥¢¤Î¥×¥í¥¸¥§¥¯¥È¤Ç¤¹!). - ¤¹¤°¤Ë¼è¤ê¤«¤«¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¤¬, ½èÍý¤µ¤ì¤ë¤Þ¤Ç¤Ï ¤Á¤ã¤ó¤È - pr ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë»Ä¤Ã¤Æ¤¤¤Þ¤¹.</para> - - <para>¤¢¤Ê¤¿¤¬¤½¤¦¤·¤¿Êý¤¬¤¤¤¤¤È»×¤¦¾ì¹ç (Î㤨¤Ð, - ¥Õ¥¡¥¤¥ë¤ÎÄɲÃ, ºï½ü¤Þ¤¿¤Ï̾¾ÎÊѹ¹¤Ê¤É), Êѹ¹¤ò - <command>tar</command> ¥Õ¥¡¥¤¥ë¤Ë¤Þ¤È¤á, &man.uuencode.1; - ¥×¥í¥°¥é¥à¤Ë¤«¤±¤Æ¤¯¤À¤µ¤¤. shar - ¥¢¡¼¥«¥¤¥Ö¤â´¿·Þ¤·¤Þ¤¹.</para> - - <para>Î㤨¤Ð¤¢¤Ê¤¿¤¬¤½¤ì¼«¿È¤Î¤µ¤é¤Ê¤ëÇÛÉÛ¤ò´ÉÍý¤¹¤ë - ¥³¥Ô¡¼¥é¥¤¥ÈÌäÂê¤òÎÉ ¤¯Ê¬¤«¤Ã¤Æ¤¤¤Ê¤¤¤È¤«, - ñ¤Ë¸·¤·¤¤¥ì¥Ó¥å¡¼¤ò¤ª¤³¤Ê¤Ã¤Æ¤ª¤é¤º, ¥ê¥ê¡¼¥¹ - ¤¹¤ë½àÈ÷¤¬¤Ç¤¤Æ¤¤¤Ê¤¤¤Ê¤É, - ¤¢¤Ê¤¿¤ÎÊѹ¹¤¬ÀøºßŪ¤ËÉÔ°ÂÄê¤ÊÀ¼Á¤ò¤â ¤Ä¤â¤Î¤Ç¤¢¤ë¾ì¹ç, - &man.send-pr.1; ¤ÇÁ÷ÉÕ¤¹¤ë¤è¤ê¤à¤·¤í &a.core; - ¤ØÄ¾ÀÜÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤. ¥³¥¢¥Á¡¼¥à¥á¡¼¥ê¥ó¥°¥ê¥¹¥È°¸¤Î¥á¡¼¥ë¤Ï, - Æü¡¹¤Î»Å»ö¤Î¤Û¤È¤ó¤É¤ò FreeBSD ¤Ç¤ª¤³¤Ê¤Ã¤Æ¤¤¤ë¿Í¤¿¤Á¤Î, - ¤è¤ê¾®¤µ¤Ê¥°¥ë¡¼ ¥×¤ËÆÏ¤¤Þ¤¹. - ¤³¤Î¥°¥ë¡¼¥×¤â¤Þ¤¿<emphasis>¤È¤Æ¤âË»¤·¤¤</emphasis> - ¤³¤È¤ËÃí°Õ¤· ¤Æ, ËÜÅö¤ËɬÍפʾì¹ç¤Ë¥³¥¢¥Á¡¼¥à¤ÎÈà¤é¤Ë¥á¡¼¥ë¤ò - Á÷¤ë¤À¤±¤Ë¤·¤Æ¤¯¤À¤µ¤¤.</para> - - <para>¥³¡¼¥Ç¥£¥ó¥°¥¹¥¿¥¤¥ë¤Ë´Ø¤¹¤ë¾ðÊó¤Ï <command>man 9 - intro</command> ¤ª¤è¤Ó <command>man 9 style</command> - ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤. ¥³¡¼¥É¤òÄó½Ð¤¹¤ëÁ°¤Ë¤Ï, - ¾¯¤Ê¤¯¤È¤â¤³¤Î¾ðÊó¤ò°Õ¼±¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤ë¤è¤¦¤ª´ê¤¤¤·¤Þ¤¹. - </para> - </sect2> - - <sect2> - <title>¿·¤¿¤Ê¥³¡¼¥É¤ä¥á¥¸¥ã¡¼¤ÊÉղòÁÃͤι⤤¥Ñ¥Ã¥±¡¼¥¸</title> - - <para>½ÅÍפÊÂ礤¤»Å»ö¤Î´ó£¤ä, ½ÅÍפʿ·¤·¤¤¥Õ¥£¡¼¥Á¥ã¡¼¤ò - FreeBSD ¤ËÄɲ乤뵩¤Ê¾ì¹ç¤Ë¤Ï, Êѹ¹ÅÀ¤ò tar/uuencode - ¤·¤¿¥Õ¥¡¥¤¥ë¤Ë¤·¤ÆÁ÷¤ë¤«, ¤½¤ì¤é¤ò»ä¤¿¤Á¤Î ftp ¥µ¥¤¥È <ulink - url="ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming/"> - ftp://ftp.FreeBSD.org/pub/FreeBSD/incoming/</ulink> - ¤Ø¥¢¥Ã¥×¥í¡¼¥É¤¹ ¤ë¤³¤È¤Î¤É¤Á¤é¤«¤¬Ä̾ïɬÍפˤʤê¤Þ¤¹.</para> - - <para>ÂçÎ̤Υ³¡¼¥É¤òȼ¤Ã¤¿»Å»ö¤Î¾ì¹ç, - ¥³¥Ô¡¼¥é¥¤¥È¤Î¿À·Ð²áÉÒ¤ÊÌäÂ꤬¾ï¤Ë½Ð¤Æ¤¤Þ¤¹. FreeBSD - ¤Ë´Þ¤á¤ë¥³¡¼¥É¤Î¥³¥Ô¡¼¥é¥¤¥È¤È¤·¤Æ¼õ¤±Æþ¤ì¤ë¤³¤È¤¬¤Ç¤¤ë¤Î¤Ï, - °Ê²¼¤ÎÆó¤Ä¤Ç¤¹:</para> - - <orderedlist> - <listitem> - <para>BSD ¥³¥Ô¡¼¥é¥¤¥È. - ¤³¤Î¥³¥Ô¡¼¥é¥¤¥È¤Ï“¸¢Íø¤ËÇû¤é¤ì¤Ê¤¤”À³Ê - ¤È¾¦ÍÑ´ë¶È¤Ë¤È¤Ã¤Æ°ìÈÌŪ¤ÊÌ¥ÎϤò¤â¤Ä¤¿¤á¤ËºÇ¤â¹¥¤Þ¤ì¤Þ¤¹. - FreeBSD ¥×¥í¥¸¥§¥¯¥È¤Ï¾¦ÍÑÍøÍѤòÁˤó¤À¤ê¤»¤º, ²¿¤«¤ò - FreeBSD - ¤ØÅê»ñ¤¹¤ëµ¤¤Ë¤Ê¤Ã¤¿¾¦¶È´Ø·¸¼Ô¤Ë¤è¤ë»²²Ã¤òÀѶËŪ¤Ë¾©Îå - ¤·¤Þ¤¹.</para> - </listitem> - - <listitem> - <para>GNU°ìÈ̸øÍ»ÈÍѵöÂú, ¤Þ¤¿¤Ï“GPL”. - ¤³¤Î¥é¥¤¥»¥ó¥¹¤Ï¥³¡¼¥É - ¤ò¾¦ÍÑÌÜŪ¤Ë»ÈÍѤ¹¤ë¾ì¹ç¤Ë;ʬ¤ÊÅØÎϤ¬µá¤á¤é¤ì¤ë¤¿¤á, - »ä¤¿¤Á¤Ë¤¢¤Þ¤êɾȽ¤¬Îɤ¤¤È¤¤¤¦¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó. ¤·¤«¤·, - »ä¤¿¤Á¤Ï´û¤Ë GPL ²¼¤Î¹âÉʼÁ¤Ê¥³¡¼¥É (¥³¥ó¥Ñ¥¤¥é, - ¥¢¥»¥ó¥Ö¥é, ¥Æ¥¥¹¥È¥Õ¥©¡¼¥Þ¥Ã¥¿Åù) ¤ÎÄ󶡤ò¼õ¤±¤Æ¤ª¤ê, - »ä¤¿¤Á¤Ï¸½ºß¤½¤ì¤òɬÍפȤ·¤Æ¤¤¤Þ¤¹. ¤½¤Î¤¿¤á, - ¤³¤Î¥é¥¤¥»¥ó¥¹¤Ë¤è¤ë¿·¤¿¤Ê¹×¸¥¤òµñÀ䤹 - ¤ë¤È¤¤¤¦¤Î¤Ï¶ò¤«¤Ê¤³¤È¤Ç¤·¤ç¤¦. GPL - ²¼¤Î¥³¡¼¥É¤Ï¥½¡¼¥¹¥Ä¥ê¡¼ ¤ÎÊ̤ÎÉôʬ, ¸½ºß¤Î¤È¤³¤í - <filename>/sys/gnu</filename> ¤« - <filename>/usr/src/gnu</filename> ¤ËÆþ¤Ã¤Æ¤¤¤Þ¤¹. - ¤½¤Î¤¿¤á, GPL ¤¬ÌäÂê¤È¤Ê¤ë¤è¤¦¤Ê¿Í¤Ï, - ï¤Ç¤â´Êñ¤Ë¤½¤ì¤È¤ï¤«¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹.</para> - </listitem> - </orderedlist> - - <para>¤³¤ì°Ê³°¤Î¥¿¥¤¥×¤Î¥³¥Ô¡¼¥é¥¤¥È¤Ë¤è¤ë´ó£¤Ï, FreeBSD - ¤Ø´Þ¤á¤ë¤³¤È¤ò¹Íθ¤¹¤ëÁ°¤Ë, - Ãí°Õ¿¼¤¤¥ì¥Ó¥å¡¼¤ò¼õ¤±¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó. ºî¼Ô¤¬ÆÈ¼« - ¤Î¥Á¥ã¥Í¥ë¤òÄ̤·¤ÆÇÛÉÛ¤·¤Æ¤ª¤ê, - ¤½¤Î¤è¤¦¤ÊÊѹ¹¤ò¤ª¤³¤Ê¤¦¤³¤È¤ò¾ï¤Ë¾©Î夷¤Æ¤¤¤ë¾ì¹ç¤Ç¤â, - ÆÃ¤Ë¸ÂÄêŪ¤Ê¾¦ÍѤΥ³¥Ô¡¼¥é¥¤¥È¤¬Å¬ÍѤµ¤ì¤ë´ó - £¤Ï°ìÈ̤˵ñÈݤµ¤ì¤Þ¤¹.</para> - - <para>¤¢¤Ê¤¿¤ÎºîÉÊ¤Ë “BSD-¥¹¥¿¥¤¥ë” - ¤Î¥³¥Ô¡¼¥é¥¤¥È¤òÉÕ¤±¤ë¤Ë¤Ï, Êݸ¤¿ - ¤¤¥½¡¼¥¹¥³¡¼¥É¥Õ¥¡¥¤¥ë¤¹¤Ù¤Æ¤Î°ìÈֺǽé¤Ë - °Ê²¼¤Î¥Æ¥¥¹¥È¤òÆþ¤ì¤Æ, <literal>%%</literal> - ¤Î´Ö¤òŬÀڤʾðÊó¤ËÃÖ¤´¹¤¨¤¯¤À¤µ¤¤.</para> - - <programlisting> -Copyright (c) %%ŬÀÚ¤Êǯ%% - %%¤¢¤Ê¤¿¤Î̾Á°%%, %%¤¢¤Ê¤¿¤Î½£%% %%Í¹ÊØÈÖ¹æ%%. - All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer as - the first lines of this file unmodified. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY %%¤¢¤Ê¤¿¤Î̾Á°%% ``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 %%¤¢¤Ê¤¿¤Î̾Á°%% 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 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - $Id$</programlisting> - - <para>ÊØµ¹¤ò¤Ï¤«¤ë¤¿¤á, - ¤³¤Î¥Æ¥¥¹¥È¤Î¥³¥Ô¡¼¤Ï¼¡¤Î¾ì½ê¤ËÃÖ¤¤¤Æ¤¢¤ê¤Þ¤¹. - <filename>/usr/share/examples/etc/bsd-style-copyright</filename>. - </para> - - <para>(ÌõÃí: °Ê²¼¤Ï¿ÀÅÄÉÒ¹»á¤è¤ê´ó£¤µ¤ì¤¿ bsd-style-copyright - ¤ÎÆüËܸìÌõ¤Ç¤¹. - ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë´Þ¤á¤ë¤â¤Î¤Ï¸¶Ê¸¤ÎÊý¤Ç¤¢¤ë¤³¤È¤ËÃí°Õ¤·¤Æ - ¤´ÍøÍѤ¯¤À¤µ¤¤. ¤Þ¤¿, ¸¶Ê¸¤È¤Î´Ö¤Ë¼ñ»Ý¤Îº¹°Û¤¬À¸¤¸¤¿¾ì¹ç, - ¸¶Ê¸¤ÎÆâÍÆ¤¬ FreeBSD ¥×¥í¥¸¥§¥¯¥È¤Î - °Õ»×¤Ç¤¢¤ë¤â¤Î¤È¤·¤Þ¤¹.)</para> - - <programlisting> -Copyright (C) [ǯ] - [¤¢¤Ê¤¿¤Î̾Á°] All rights reserved. - -¥½¡¼¥¹¤È¥Ð¥¤¥Ê¥ê·Á¼°¤ÎºÆÇÛÉÛ¤ª¤è¤Ó»ÈÍѤÏ, Êѹ¹¤ÎÍ̵¤Ë¤«¤«¤ï¤é¤º°Ê²¼¤Î -¾ò·ï¤òËþ¤¿¤¹¾ì¹ç¤Ë¸Â¤êµö²Ä¤µ¤ì¤ë: -1. ¥½¡¼¥¹¥³¡¼¥É¤ÎºÆÇÛÉÛ¤Ï, ¾åµ¤ÎÃøºî¸¢É½¼¨¡¦¤³¤Î¾ò·ï¤Î¥ê¥¹¥È¡¦²¼µ¤Î - ÈÝǧÀ¼ÌÀʸ¤òÊÝ»ý¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤. - -2. ¥Ð¥¤¥Ê¥ê·Á¼°¤ÎºÆÇÛÉÛ¤Ï, ¾åµ¤ÎÃøºî¸¢É½¼¨¡¦¤³¤Î¾ò·ï¤Î¥ê¥¹¥È¡¦²¼µ¤Î - ÈÝǧÀ¼ÌÀʸ¤ò, ÇÛÉÛʪ¤È¶¦¤ËÄ󶡤µ¤ì¤ëʸ½ñ¤ª¤è¤Ó/¤Þ¤¿¤Ï¾¤Î»ñÎÁ¤ÎÃæ¤Ë - ´Þ¤á¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤. - -(ÌõÃí:¤³¤³¤«¤é¡ÖÈÝǧÀ¼ÌÀʸ¡×¤Ç¤¹) - -¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ï[¤¢¤Ê¤¿¤Î̾Á°]¤ª¤è¤Ó¹×¸¥¼Ô¤Ë¤è¤Ã¤Æ ``¤¢¤ë¤¬¤Þ¤Þ¤Î¾õÂÖ'' -¤ÇÄ󶡤µ¤ì, ¾¦ÉÊÀ¤ÈÆÃÄê¤ÎÌÜŪ¤ËÂФ¹¤ëŬ¹çÀ¤Ë¤Ä¤¤¤Æ¤Î°ÅÌÛ¤ÎÊݾڤËα¤Þ -¤é¤º, ¤¤¤«¤Ê¤ëÌÀ¼¨¤ª¤è¤Ó°ÅÌÛ¤ÎÊݾڤòǧ¤á¤Ê¤¤. [¤¢¤Ê¤¿¤Î̾Á°]¤ª¤è¤Ó¹×¸¥ -¼Ô¤Ï, ¤¢¤é¤æ¤ëľÀÜŪ¡¦´ÖÀÜŪ¡¦¶öȯŪ¡¦ÆÃ¼ìŪ¡¦Åµ·¿Åª¡¦É¬Á³Åª¤Ê»³² (Âå -ÂØÀ½Éʤޤ¿¤ÏÂåÂØ¥µ¡¼¥Ó¥¹¤Î³ÍÆÀÈñ; ¸úÍÑ¡¦¥Ç¡¼¥¿¡¦Íø±×¤ÎÁÓ¼º; ¤Þ¤¿¤Ï¶È̳ -ÃæÃǤò´Þ¤ß, ¤Þ¤¿¤½¤ì¤À¤±¤Ëα¤Þ¤é¤Ê¤¤Â»³²) ¤ËÂФ·¤Æ, ¤¿¤È¤¨¤É¤Î¤è¤¦¤Ë¤· -¤ÆÀ¸¤¸¤¿¤È¤·¤Æ¤â, ¤½¤·¤Æ¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤Î»ÈÍѤˤè¤Ã¤Æ¤É¤Î¤è¤¦¤Ë¤Ç¤¢¤ì -À¸¤¸¤ë, ·ÀÌó¾å¤Ç¤¢¤í¤¦¤È, ¸·Ì©¤ÊÀÕǤÆâ¤Ç¤¢¤í¤¦¤È, ¤¢¤ë¤¤¤ÏÉÔÀµ¹Ô°Ù (²á -¼º¤ä¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤ò´Þ¤à) ¤Ë¤ª¤±¤ë¾ì¹ç¤Ç¤¢¤í¤¦¤È¤â, ¤¤¤«¤Ê¤ëÀÕǤÏÀ¾å¤â, -¤¿¤È¤¨¤½¤Î¤è¤¦¤Ê»³²¤Î²ÄǽÀ¤¬Í½¸«¤µ¤ì¤Æ¤¤¤¿¤È¤·¤Æ¤â, °ìÀÚ¤ÎÀÕǤ¤ò»ý¤¿ -¤Ê¤¤. - -ËÝÌõ: ¿ÀÅÄÉÒ¹ -¸æ¶¨ÎÏ (¸Þ½½²»½ç¡¦·É¾Îά): - ÃÓÅĸ¦Æó, ÆâÀî ´î¾Ï, ƣ¼ ±Ñ¼£, ¤à¤é¤¿¤·¤å¤¦¤¤¤Á¤í¤¦ - ÌÝÌî ²í°ì, ²£ÅÄ¡÷±§Å﵆ - </programlisting> - </sect2> - - <sect2> - <title>¶âÁ¬, ¥Ï¡¼¥É¥¦¥§¥¢¤Þ¤¿¤Ï¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥¯¥»¥¹</title> - - <para>FreeBSD ¥×¥í¥¸¥§¥¯¥È¤ÎÌÜŪ¤ò¿Ê¤á¤ë¤¿¤á¤Î´óÉÕ¤ä, - »ä¤¿¤Á¤ÈƱ¤¸¤è¤¦¤Ê ¥Ü¥é¥ó¥Æ¥£¥¢¤ÎºÙ¤¯Ä¹¤¤! ÅØÎϤò, - »ä¤¿¤Á¤Ï¾ï¤Ë´î¤ó¤Ç¼õ¤±Æþ¤ì¤Æ¤¤¤Þ¤¹. - ¤Þ¤¿°ìÈÌŪ¤Ë»ä¤¿¤Á¤Ï¼«Ê¬Ã£¤Ç - ¼þÊÕµ¡´ï¤òÇ㤦»ñ¶â¤¬ÉÔ¤·¤Æ¤¤¤ë¤¿¤á, - ¼þÊÕµ¡´ï¤Î¥µ¥Ý¡¼¥È¤ò½¼¼Â¤µ¤»¤ë¤Î¤Ë - ¥Ï¡¼¥É¥¦¥§¥¢¤Î´óÉդϤȤƤâ½ÅÍפǤ¹.</para> - - <sect3 id="donations"> - <title>»ñ¶â¤Î´óÉÕ</title> - - <para>FreeBSD ¥×¥í¥¸¥§¥¯¥È¤Ï501(C3) (Èó±ÄÍø) ´ë¶È¤Ç¤Ï¤Ê¤¤¤¿¤á, - ¤¤¤«¤Ê¤ë´óÉÕ¤ËÂФ·¤Æ¤âÆÃÊ̤ÊÀǶâ¤ÎÍ¥¶øÁ¼ÃÖ¤òÄ󶡤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó. - ¤³¤Î¤è¤¦¤Ê ´óÉÕ¤Ï¥×¥í¥¸¥§¥¯¥È¤òÂåɽ¤·¤Æ FreeBSD, Inc. - ¤Ë¤è¤ê´¶¼Õ¤ò¤â¤Ã¤Æ¼õ¤±Æþ¤ì¤é¤ì¤ë¤Ç¤·¤ç¤¦.</para> - - <para>FreeBSD, Inc. ¤Ï FreeBSD - ¥×¥í¥¸¥§¥¯¥È¤Î¿ä¿Ê¤È¥×¥í¥¸¥§¥¯¥È¤Ë´ë¶È¤È¤· - ¤Æ¤ÎºÇ¾®¸Â¤ÎÂκۤò»ý¤¿¤»¤ë¤³¤È¤òÌÜŪ¤È¤·¤Æ, 1995ǯ¤Î½é¤á¤Ë - &a.jkh; ¤È &a.dg; ¤Ë¤è¤êÀßΩ¤µ¤ì¤Þ¤·¤¿. - ´óÉÕ¤µ¤ì¤¿¤¹¤Ù¤Æ¤Î»ñ¶â¤Ï (ºÇ½ªÅª¤Ë FreeBSD, - Inc.¤Ë¤è¤ê¤â¤¿¤é¤µ¤ì¤ë¤Ç¤¢¤í¤¦¤¹¤Ù¤Æ¤ÎÍø±×¤âƱÍͤË) - ¥×¥í¥¸¥§¥¯¥È¤ÎÌÜɸ¤ò¿ä¿Ê¤¹¤ë¤¿¤á¤À¤±¤Ë»È¤ï¤ì¤ë¤Ç¤·¤ç¤¦.</para> - - <para>»Ùʧ¤¤Àè¤ò FreeBSD, Inc. ¤È¤·¤¿¾®ÀÚ¼ê¤ò, - ¼¡¤Î½»½êµ¤ÉÕ¤±¤ÇÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤:</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>[¸½ºß »ä½ñÈ¢¤¬³«Àߤµ¤ì¤ë¤Þ¤Ç°ì»þŪ¤Ë Walnut Creek CDROM - ¤Î½»½ê¤ò»ÈÍÑ]</para> - - <para>ÅÅ¿®¿¶Âؤϼ¡¤Î½ê¤Þ¤ÇľÀÜÁ÷¤ì¤ë¤Ç¤·¤ç¤¦:</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>Routing #: 121-000-358</otheraddr> - <otheraddr>Account #: 01411-07441 (FreeBSD, Inc.)</otheraddr> - </address> - - <para>´óÉդ˴ؤ¹¤ë¤³¤È¤ÏÁ´¤ÆÅŻҥ᡼¥ë¤â¤·¤¯¤Ï¾åµ FreeBSD, - Inc. ¤Î½»½ê°¸¤Î͹À¯¾Ê¥á¡¼¥ë¤Ë¤Æ &a.jkh - ¤Þ¤Ç¤ªÁ÷¤ê¤¯¤À¤µ¤ë¤è¤¦¤ª´ê¤¤¤·¤Þ¤¹.</para> - - <para>¤â¤· <link linkend="donors">´ó£¼Ô¥®¥ã¥é¥ê¡¼</link> - ¤ÎÀá¤Çƿ̾¤ò´õ˾¤µ¤ì¤ëÊý¤Ï, ´óÉդκݤˤ½¤Î»Ý¤ªÅÁ¤¨¤¯¤À¤µ¤¤. - Thanks!</para> - </sect3> - - <sect3> - <title>¥Ï¡¼¥É¥¦¥§¥¢¤Î´ó£</title> - - <para>FreeBSD ¥×¥í¥¸¥§¥¯¥È¤Ï, - ¼¡¤Î3¤Ä¤Î¥«¥Æ¥´¥ê¤Î¤É¤ó¤Ê¥Ï¡¼¥É¥¦¥§¥¢¤Î´ó£¤â, - ´î¤ó¤Ç¼õ¤±ÉÕ¤±¤Þ¤¹:</para> - - <itemizedlist> - <listitem> - <para>¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö, - ¥á¥â¥ê¤Þ¤¿¤Ï´°Á´¤Ê¥·¥¹¥Æ¥à¤È¤¤¤Ã¤¿°ìÈÌÍÑÅӤΥϡ¼¥É¥¦¥§¥¢¤Ï, - <emphasis>»ñ¶â¤Î´óÉÕ</emphasis>¤ÎÀá¤Ë¤¢¤ë - FreeBSD, Inc. ¤Î½»½ê¤Þ¤ÇÁ÷¤Ã ¤Æ¤¯¤À¤µ¤¤.</para> - </listitem> - - <listitem> - <para>¿Ê¹ÔÃæ¤Î¼õ¤±Æþ¤ì¥Æ¥¹¥È¤Î¤¿¤á¤Î - ¥Ï¡¼¥É¥¦¥§¥¢¤¬É¬ÍפȤµ¤ì¤Æ¤¤¤Þ ¤¹. - ¿·¤¿¤Ê¥ê¥ê¡¼¥¹Ëè¤ËŬÀڤʵչԥƥ¹¥È¤¬¤Ç¤¤ë¤è¤¦¤Ë, - »ä¤¿¤Á¤Ï¸½ºß, FreeBSD - ¤¬¥µ¥Ý¡¼¥È¤¹¤ë¤¹¤Ù¤Æ¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î - ¥Æ¥¹¥È¥é¥Ü¤òÀßÃÖ¤·¤è¤¦ ¤È¤·¤Æ¤¤¤Þ¤¹. »ä¤¿¤Á¤Ë¤Ï¤Þ¤À, - ¤¿¤¯¤µ¤ó¤Î½ÅÍפÊÉôÉÊ (¥Í¥Ã¥È¥ï¡¼¥¯¥«¡¼¥É, - ¥Þ¥¶¡¼¥Ü¡¼¥É¤Ê¤É) ¤¬ÉÔ¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç, - ¤³¤Î¤è¤¦¤Ê´ó£¤ò¤·¤¿¤¤¤È»×¤Ã¤Æ ¤¤¤ë¤Ê¤é¤Ð, &a.dg; - ¤Ø¥³¥ó¥¿¥¯¥È¤·¤Æ¤É¤ÎÉôÉʤ¬¤Þ¤ÀɬÍפȤµ¤ì¤Æ¤¤¤ë¤« - ¤Î¾ðÊó¤òÆÀ¤Æ¤¯¤À¤µ¤¤.</para> - </listitem> - - <listitem> - <para>¸½ºß FreeBSD ¤Ë¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ï¡¼¥É¥¦¥§¥¢¤Ç, - ¥µ¥Ý¡¼¥È¤ËÄɲä·¤ÆÍߤ·¤¤¤â¤Î. - »ä¤¿¤Á¤¬¿·¤·¤¤¥Ï¡¼¥É¥¦¥§¥¢¤ò¼õ¤±¤È¤ëÁ°¤Ë¤½¤Î¥¿¥¹¥¯¤ò - °ú¤¼õ¤±¤Æ¤¯¤ì¤ë³«È¯¼Ô¤òõ¤¹É¬Íפ¬¤¢¤ë¤¿¤á, - ¤½¤ÎÉôÉʤòÁ÷¤ëÁ°¤Ë &a.core; - ¤Ë¥³¥ó¥¿¥¯¥È¤ò¼è¤Ã¤Æ¤¯¤À¤µ¤¤.</para> - </listitem> - </itemizedlist> - </sect3> - - <sect3> - <title>¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥¯¥»¥¹¤Î´óÉÕ</title> - - <para>»ä¤¿¤Á¤Ï¾ï¤Ë FTP, WWW ¤ä <command>cvsup</command> - ¤Î¿·¤·¤¤¥ß¥é¡¼¥µ¥¤¥È¤òÊ罸¤·¤Æ¤¤¤Þ¤¹. - ¥ß¥é¡¼¥µ¥¤¥È¤Ë¤Ê¤ê¤¿¤¤¾ì¹ç¤Ë¤Ï the FreeBSD project - administrators <email>hubs@FreeBSD.org</email> - ¤Ë¥³¥ó¥¿¥¯¥È¤ò¼è¤Ã¤Æ, ¾Ü¤·¤¤¾ðÊó¤ò¼ê¤ËÆþ¤ì¤Æ¤¯¤À¤µ¤¤.</para> - </sect3> - </sect2> - </sect1> - - <sect1 id="donors"> - <title>´ó£¼Ô¥®¥ã¥é¥ê¡¼</title> - - <para>FreeBSD ¥×¥í¥¸¥§¥¯¥È¤Ï¼¡¤Î´ó£¼Ô¤Ë²¸µÁ¤ò¼õ¤±¤Æ¤ª¤ê, - ¤³¤³¤Ë¸øÉ½¤·¤Æ´¶¼Õ¤Î°Õ¤òɽ¤·¤¿¤¤¤È»×¤¤¤Þ¤¹.</para> - - <itemizedlist> - <listitem> - <para><emphasis> - ¥»¥ó¥È¥é¥ë¥µ¡¼¥Ð¥×¥í¥¸¥§¥¯¥È¤Ø¤Î´ó£¼Ô:</emphasis></para> - - <para>¼¡¤Ëµó¤²¤ë¸Ä¿Í¤ª¤è¤Ó´ë¶È¤«¤é¤Ï, - ¥»¥ó¥È¥é¥ë¥µ¡¼¥Ð¥Þ¥·¥ó¤Î¤¿¤á¤Î ÉôÉʤδó£¤ò夤¤Æ¤ª¤ê, - ¤½¤ì¤Ë¤è¤Ã¤Æ <hostid - role="fqdn">freefall.FreeBSD.org</hostid> - ¤ò¥ê¥×¥ì¡¼¥¹¤·¤Æ¿·¤¿¤Ë FreeBSD - ¥×¥í¥¸¥§¥¯¥È¤Î¥»¥ó¥È¥é¥ë¥µ¡¼¥Ð¥Þ¥·¥ó¤ò - ¹½ÃÛ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤·¤¿:</para> - - <itemizedlist> - <listitem> - <para>&a.mbarkah - ¤ÈÈà¤Î½ê°¤¹¤ë <ulink - url="http://www.hemi.com/">Hemisphere Online</ulink> - ¤Ï, <emphasis>Pentium Pro (P6) 200Mhz CPU</emphasis> - ¤ò´ó£¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para> - </listitem> - - <listitem> - <para><ulink url="http://www.asacomputers.com/">ASA - Computers</ulink> ¤Ï, <emphasis>Tyan 1662 - ¥Þ¥¶¡¼¥Ü¡¼¥É</emphasis> - ¤ò´ó£¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para> - </listitem> - - <listitem> - <para><ulink url="http://www.via.net/">ViaNet - Communications</ulink> ¤Î Joe McGuckin - <email>joe@via.net</email> ¤Ï, <emphasis>Kingston - ¥¤¡¼¥µ¥Í¥Ã¥È¥³¥ó¥È¥í¡¼¥é</emphasis> - ¤ò´ó£¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para> - </listitem> - - <listitem> - <para>Jack O'Neill - <email>jack@diamond.xtalwind.net</email> ¤Ï, - <emphasis>NCR 53C875 SCSI ¥³¥ó¥È¥í¡¼¥é¥«¡¼¥É</emphasis> - ¤ò´ó£¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para> - </listitem> - - <listitem> - <para><ulink url="http://www.Alameda.net/">Alameda - Networks</ulink> ¤Î Ulf Zimmermann - <email>ulf@Alameda.net</email> ¤Ï, <emphasis>128MB - ¤Î¥á¥â¥ê</emphasis>, ¤½¤·¤Æ <emphasis>4 GB - ¤Î¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ö¤È¶©ÂÎ</emphasis> - ¤ò´ó£¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para><emphasis>ľÀÜŪ¤Ê»ñ¶âÄó¶¡:</emphasis></para> - - <para>¼¡¤Ëµó¤²¤ë¸Ä¿Í¤ª¤è¤Ó´ë¶È¤«¤é¤Ï FreeBSD - ¥×¥í¥¸¥§¥¯¥È¤ËÂФ¹¤ëľÀÜŪ¤Ê - »ñ¶âÄ󶡤ò夤¤Æ¤ª¤ê¤Þ¤¹:</para> - - <itemizedlist> - <listitem> - <para>Annelise Anderson - <email>ANDRSN@HOOVER.STANFORD.EDU</email></para> - </listitem> - - <listitem> - <para>&a.dillon</para> - </listitem> - - <listitem> - <para><ulink url="http://www.bluemountain.com/">Blue Mountain - Arts</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://www.epilogue.com/"> - Epilogue Technology Corporation</ulink></para> - </listitem> - - <listitem> - <para>&a.sef</para> - </listitem> - - <listitem> - <para><ulink url="http://www.gta.com/">Global Technology - Associates, Inc</ulink></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>&a.chuckr</para> - </listitem> - - <listitem> - <para><ulink url="http://www.imagescape.com/"> - Imaginary Landscape, LLC.</ulink> - ¤Î Kenneth P. Stox - <email>ken@stox.sa.enteract.com</email></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> - ¤Ï, ¤µ¤Þ¤¶¤Þ¤Ê¼ïÎà¤Î FreeBSD CD ¤ÎÈÎÇäÍø±×¤Î°ìÉô¤ò - ´óÉÕ¤·¤Æ¤¯¤ì¤Þ¤·¤¿.</para> - </listitem> - - <listitem> - <para><ulink url="http://www.mmjp.or.jp/fuki/"> - Éù½ÐÈÇ</ulink> ¤Ï, <emphasis>¤Ï¤¸¤á¤Æ¤Î FreeBSD - </emphasis> ¤ÎÇä¤ê¾å¤²¤Î°ìÉô¤ò FreeBSD ¥×¥í¥¸¥§¥¯¥ÈµÚ¤Ó - XFree86 ¥×¥í¥¸¥§¥¯¥È¤Ø´óÉÕ¤·¤Æ¤¯¤ì¤Þ¤·¤¿.</para> - </listitem> - - <listitem> - <para><ulink url="http://www.ascii.co.jp/">¥¢¥¹¥¡¼</ulink> - ¤Ï FreeBSD ´ØÏ¢¤Î½ñÀÒ¤ÎÇä¤ê¾å¤²¤Î°ìÉô¤ò FreeBSD - ¥×¥í¥¸¥§¥¯¥ÈµÚ¤Ó FreeBSD ͧ¤Î²ñ¤Ø´óÉÕ¤·¤Æ¤¯¤ì¤Þ¤·¤¿. - </para> - </listitem> - - <listitem> - <para><ulink url="http://www.yokogawa.co.jp/"> - ²£²ÏÅŵ¡³ô¼°²ñ¼Ò</ulink> ¤«¤é¤Ï 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> - - <listitem> - <para><ulink url="http://www.siemens.de/">Siemens AG</ulink> - via <ulink url="mailto:andre.albsmeier@mchp.siemens.de">Andre - Albsmeier</ulink></para> - </listitem> - - <listitem> - <para><ulink url="mailto:ras@interaccess.com">Chris Silva</ulink> - </para> - </listitem> - - </itemizedlist> - </listitem> - - <listitem> - <para><emphasis>¥Ï¡¼¥É¥¦¥§¥¢¤Î´ó£¼Ô:</emphasis></para> - - <para>¼¡¤Ëµó¤²¤ë¸Ä¿Í¤ª¤è¤Ó´ë¶È¤«¤é¤Ï, - ¥Æ¥¹¥È¤ä¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Î³«È¯ / ¥µ¥Ý¡¼¥È - ¤Î¤¿¤á¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Î´ó£¤ò夤¤Æ¤ª¤ê¤Þ¤¹:</para> - - <itemizedlist> - <listitem> - <para>Walnut Creek CDROM ¤Ï, - ¥Í¥Ã¥È¥ï¡¼¥¯¤Ø¤Î¥¢¥¯¥»¥¹¤ª¤è¤Ó - ¾¤Î¥Ï¡¼¥É¥¦¥§¥¢¥ê¥½¡¼¥¹¤Î´ó£¤Ï¤¤¤¦¤Þ¤Ç¤â¤Ê¤¯, - ³«È¯¤Ë»È¤¦¤¿¤á¤Î Pentium P5-90 ¤È 486/DX2-66 EISA/VL - ¤Î¥·¥¹¥Æ¥à¿ôÂæ¤òÄ󶡤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para> - </listitem> - - <listitem> - <para>TRW Financial Sysytems ¼Ò¤Ï, PC 130Âæ, 68 GB - ¤Î¥Õ¥¡¥¤¥ë¥µ¡¼¥Ð 3Âæ, 12¤Î¥¤¡¼¥µ¥Í¥Ã¥È, - ¥Ç¥£¥¹¥¯¥ì¥¹¥³¡¼¥É¤Î¥Ç¥Ð¥Ã¥°¤ò¤ª¤³¤Ê¤¦¤¿¤á¤Î ¥ë¡¼¥¿ - 2ÂæµÚ¤Ó ATM ¥¹¥¤¥Ã¥Á¤òÄ󶡤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿. ¤Þ¤¿, - Èà¤é¤Ï 2, 3¿Í¤Î FreeBSD ¥Ï¥Ã¥«¡¼¤ò¸Û¤Ã¤Æ, FreeBSD - ¤ËÀìǰ¤µ¤»¤Æ¤¯¤À¤µ¤Ã¤Æ¤ª¤ê¤Þ¤¹. - ¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹!</para> - </listitem> - - <listitem> - <para>Dermot McDonnell ¤Ï, Åì¼Ç XM3401B CD-ROM ¥É¥é¥¤¥Ö¤ò - ´ó£¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿. ¤½¤Î CD-ROM ¥É¥é¥¤¥Ö¤Ï¸½ºß - freefall ¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤Þ¤¹.</para> - </listitem> - - <listitem> - <para>&a.chuck; ¤Ï, ¼Â¸³ÍѤΥեí¥Ã¥Ô¡¼¥Æ¡¼¥×¥¹¥È¥ê¡¼¥Þ¤ò - ´óÉÕ¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para> - </listitem> - - <listitem> - <para>Larry Altneu <email>larry@ALR.COM</email> ¤È - &a.wilko;¤Ï, <devicename>wt</devicename> - ¥É¥é¥¤¥Ð¤ò²þÎɤ¹¤ë¤¿¤á¤Ë Wangtek ¤È Archive ¤Î QIC-02 - ¥Æ¡¼¥×¥É¥é¥¤¥Ö¤òÄ󶡤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para> - </listitem> - - <listitem> - <para>Ernst Winter <email>ewinter@lobo.muc.de</email> ¤Ï, - ¤³¤Î¥×¥í¥¸¥§¥¯¥È¤Ø 2.88 MB - ¤Î¥Õ¥í¥Ã¥Ô¡¼¥É¥é¥¤¥Ö¤òÄ󶡤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿. - ¤¦¤Þ¤¯¤¤¤±¤Ð, - ¤³¤ì¤Ç¥Õ¥í¥Ã¥Ô¡¼¥Ç¥£¥¹¥¯¥É¥é¥¤¥Ð¤ò½ñ¤Ä¾¤¹¤¿¤á¤Î - ¥×¥ì¥Ã¥·¥ã¡¼¤¬Áý¤¨¤ë¤Ç¤·¤ç¤¦. <!-- smiley -->;-)</para> - </listitem> - - <listitem> - <para><ulink url="http://www.tekram.com/">Tekram - Technologies</ulink> ¤Ï NCR ¥É¥é¥¤¥Ð¤ä AMD - ¥É¥é¥¤¥Ð¤È¼«¼Ò¤Î¥«¡¼¥É¤ÎµÕ¹Ô¥Æ¥¹¥È¤Î¤¿¤á FAST/ULTRA - SCSI ¥Û¥¹¥È¥¢¥À¥×¥¿ DC-390, DC-390U, DC-390F ¤ò - ³Æ£±ËçÄ󶡤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿. ¤Þ¤¿, ¥Õ¥ê¡¼¤Ê OS - ¤Î¤¿¤á¤Î¥É¥é¥¤¥Ð¤Î ¥½¡¼¥¹¤ò¼«¼Ò¤Î FTP ¥µ¡¼¥Ð <ulink - url="ftp://ftp.tekram.com/scsi/FreeBSD/"> - ftp://ftp.tekram.com/scsi/FreeBSD/</ulink> - ¤Ç¸ø³«¤µ¤ì¤Æ¤¤¤ë¤³¤È¤â¾Î»¿¤ËÃͤ¹¤ë¤Ç¤·¤ç¤¦.</para> - </listitem> - - <listitem> - <para>Larry M. Augustin - ¤Ï Symbios Sym8751S SCSI - ¥«¡¼¥É¤ò´ó£¤·¤Æ¤¯¤À¤µ¤Ã¤¿¤À¤±¤Ç¤Ê¤¯, Ultra-2 ¤ä LVD - ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¼¡´ü¥Á¥Ã¥× Sym53c895 ¤Î¤â¤Î¤ò´Þ¤à - ¥Ç¡¼¥¿¥Ö¥Ã¥¯¤Î¥»¥Ã¥È¤È, ºÇ¿·¤Î Symbios SCSI - ¥Á¥Ã¥×¤¬»ý¤ÄÀè¿ÊŪµ¡Ç½¤ò°ÂÁ´¤Ë»È¤¦ÊýË¡¤Ë¤Ä¤¤¤Æ½ñ¤«¤ì¤¿ - ºÇ¿·¤Î¥×¥í¥°¥é¥ß¥ó¥°¥Þ¥Ë¥å¥¢¥ë¤â´ó£¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿. - ËÜÅö¤Ë¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹!</para> - </listitem> - - <listitem> - <para>Christoph Kukulies <email>kuku@FreeBSD.org</email> - ¤Ï, IDE CD-ROM ¥É¥é¥¤¥Ð³«È¯ÍѤΠFX120 12 ÇÜ® Mitsumi - CD-ROM ¥É¥é¥¤¥Ö¤òÄ󶡤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿.</para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para><emphasis>ÆÃÉ®¤¹¤Ù¤´ó£¼Ô:</emphasis></para> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.cdrom.com/">Walnut Creek - CDROM</ulink> ¤Ï, - ¸À¤¤É½¤»¤Ê¤¤¤Û¤É¿¤¯¤Î´óÉÕ¤ò¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿ (¾ÜºÙ¤Ï - <link linkend="history">FreeBSD ¾®»Ë</link>¤ò»²¾È). - ÆÃ¤Ë, »ä¤¿¤Á¤Î¤â¤È¤â¤È¤Î¥×¥é¥¤¥Þ¥ê³«È¯¥Þ¥·¥ó¤Ç¤¢¤ë - <hostid role="fqdn">freefall.FreeBSD.org</hostid>, - ¥Æ¥¹¥È¤ª¤è¤Ó¥Ó¥ë¥É¥Þ¥·¥ó¤Ç¤¢¤ë <hostid - role="fqdn">thud.FreeBSD.org</hostid> - ¤Ç»ÈÍѤ·¤Æ¤¤¤ë¥Ï¡¼¥É¥¦¥§¥¢¤ËÂФ·´¶¼Õ¤·¤¿¤¤¤È»×¤¤¤Þ¤¹. - ¤Þ¤¿Èà¤é¤Ë¤Ï, ¿ôǯ¤Ë¤ï¤¿¤ë¿§¡¹¤Ê¹×¸¥¼Ô¤Ø¤Î»ñ¶âÄ󶡤ä, - ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Ø¤Î T1 ¥³¥Í¥¯¥·¥ç¥ó¤Î̵À©¸Â»ÈÍѤòÄ󶡤·¤Æ - 夤¤¿²¸µÁ¤¬¤¢¤ê¤Þ¤¹.</para> - </listitem> - - <listitem> - <para><ulink - url="http://www.interface-business.de/">interface - business GmbH, Dresden</ulink> ¤Ï, &a.joerg; - ¤òº¬µ¤¤è¤¯¥µ¥Ý¡¼¥È¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤·¤¿. Èà¤ÏËÜ¿¦¤è¤ê - FreeBSD ¤Î»Å»ö¤ò¹¥¤ß¤¬¤Á¤Ç¤¢¤ê, Èà¸Ä¿Í¤ÎÀܳ¤¬¤¢¤Þ¤ê¤Ë - ÃÙ¤¯¤Ê¤Ã¤¿¤êÅÓÀڤ줿¤ê¤·¤Æ»Å»ö¤Ë¤Ê¤é¤Ê¤¤»þ¤Ïɬ¤º - interface business ¤Î (Èó¾ï¤Ë¹â²Á¤Ê) EUnet - ¥¤¥ó¥¿¡¼¥Í¥Ã¥ÈÀܳ¤ËÍê¤Ã¤¿¤â¤Î¤Ç¤¹...</para> - </listitem> - - <listitem> - <para><ulink url="http://www.bsdi.com/">Berkeley Software - Design, Inc.</ulink> ¤Ï, Ʊ¼Ò¤Î DOS - ¥¨¥ß¥å¥ì¡¼¥¿¤Î¥³¡¼¥É¤ò - BSD ¥³¥ß¥å¥Ë¥Æ¥£Á´ÂΤËÂФ·¤ÆÄ󶡤·¤Æ¤¯¤ì¤Þ¤·¤¿. ¤³¤Î¥³¡¼¥É¤Ï, - <emphasis>doscmd</emphasis> - ¥³¥Þ¥ó¥É¤ËÍøÍѤµ¤ì¤Æ¤¤¤Þ¤¹.</para> - </listitem> - </itemizedlist> - </listitem> - </itemizedlist> - </sect1> - - <sect1 id="contrib-corealumni"> - <title>¥³¥¢¥Á¡¼¥à¤Î´¶ÈÀ¸</title> - - <para>¼¡¤Ëµó¤²¤ë¿Í¡¹¤Ï()¤Çµ¤·¤¿´ü´Ö, FreeBSD - ¥³¥¢¥Á¡¼¥à¤Î¥á¥ó¥Ð¡¼¤Ç¤·¤¿. FreeBSD - ¥×¥í¥¸¥§¥¯¥È¤Ë¤ª¤±¤ëÈà¤é¤ÎÅØÎϤ˴¶¼Õ¤Î°Õ¤òɽ¤·¤Þ¤¹. - </para> - - <para><emphasis>¤À¤¤¤¿¤¤¤ÎǯÂå½ç:</emphasis></para> - - <itemizedlist> - <listitem> - <para>&a.guido (1995 - 1999)</para> - </listitem> - - <listitem> - <para>&a.dyson (1993 - 1998)</para> - </listitem> - - <listitem> - <para>&a.nate (1992 - 1996)</para> - </listitem> - - <listitem> - <para>&a.rgrimes (1992 - 1995)</para> - </listitem> - - <listitem> - <para>Andreas Schulz (1992 - 1995)</para> - </listitem> - - <listitem> - <para>&a.csgr (1993 - 1995)</para> - </listitem> - - <listitem> - <para>&a.paul (1992 - 1995)</para> - </listitem> - - <listitem> - <para>&a.smace (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-derived"> - <title>BSD ÇÉÀ¸¥½¥Õ¥È¥¦¥§¥¢¤Ø¤Î¥³¥ó¥È¥ê¥Ó¥å¡¼¥¿</title> - - <para>¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤ÏºÇ½é¤Ï William F. Jolitz ¤Î 386BSD release - 0.1 ¤«¤éÇÉÀ¸¤·¤Þ¤·¤¿¤¬, ¥ª¥ê¥¸¥Ê¥ë¤Î 386BSD - ¤Ë¸ÇͤΥ³¡¼¥É¤Ï¤Û¤È¤ó¤É»Ä¤Ã¤Æ¤¤¤Þ¤»¤ó. - ¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ï´ðËÜŪ¤Ë¤Ï¥«¥ê¥Õ¥©¥ë¥Ë¥¢Âç³Ø ¥Ð¡¼¥¯¥ì¥¤¹»¤Î - Computer Science Research Group (CSRG) ¤È¤½¤Î¶¦Æ±¸¦µæ¼Ô - ¤¿¤Á¤Ë¤è¤ë 4.4BSD-Lite ¥ê¥ê¡¼¥¹¤«¤éºÆ¼ÂÁõ¤µ¤ì¤Þ¤·¤¿.</para> - - <para>¤Þ¤¿, NetBSD ¤ä OpenBSD ¤Î°ìÉô¤â FreeBSD - ¤Ë¼è¤ê¹þ¤Þ¤ì¤Æ¤¤¤Þ¤¹. ¤·¤¿¤¬¤Ã¤Æ»ä¤¿¤Á¤Ï NetBSD ¤È OpenBSD - ¤Ø¹×¸¥¤·¤¿¿Í¡¹¤¹¤Ù¤Æ¤Ë´¶¼Õ¤·¤Þ¤¹.</para> - </sect1> - - <sect1 id="contrib-additional"> - <title>¤½¤Î¾¤Î FreeBSD ¤Ø¤Î¥³¥ó¥È¥ê¥Ó¥å¡¼¥¿</title> - - <para>(̾Á°¤Ç¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Ë):</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@mutex.org</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>Adam Strohl <email>troll@digitalspark.net</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>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>Alex Perel <email>veers@disturbed.net</email></para> - </listitem> - - <listitem> - <para>Alex Varju <email>varju@webct.com</email></para> - </listitem> - - <listitem> - <para>Alexander B. Povolotsky <email>tarkhil@mgt.msk.ru</email></para> - </listitem> - - <listitem> - <para>Alexander Langer <email>alex@cichlids.com</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>anders@fix.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 Boothman <email>andrew@cream.org</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>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>arci <email>vega@sophia.inria.fr</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>Arindum Mukerji <email>rmukerji@execpc.com</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 Wilcox <email>bob@obiwan.uucp</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 Faulkner <email>faulkner@mpd.tandem.com</email></para> - </listitem> - - <listitem> - <para>Boyd R. Faulkner <email>faulkner@asgard.bga.com</email></para> - </listitem> - - <listitem> - <para>Brad Hendrickse <email>bradh@uunet.co.za</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 Fosdick <email>bfoz@glue.umd.edu</email></para> - </listitem> - - <listitem> - <para>Brandon Gillespie <email>brandon@roguetrader.com</email></para> - </listitem> - - <listitem> - <para>&a.wlloyd</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.runet.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 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@scientech.com</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 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>Cliff Rowley <email>dozprompt@onsea.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>Dai Ishijima <email>ishijima@tri.pref.osaka.jp</email></para> - </listitem> - - <listitem> - <para>Daisuke Watanabe <email>NU7D-WTNB@asahi-net.or.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 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>der Mouse <email>mouse@Collatz.McRCIM.McGill.EDU</email></para> - </listitem> - - <listitem> - <para>Derek Inksetter <email>derek@saidev.com</email></para> - </listitem> - - <listitem> - <para>DI. Christian Gusenbauer - <email>cg@scotty.edvz.uni-linz.ac.at</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>Dominik Brettnacher <email>domi@saargate.de</email></para> - </listitem> - - <listitem> - <para>Dominik Rother <email>dr@domix.de</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>Doug@gorean.org</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 Chuang <email>edwardc@firebird.org.tw</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>Ege Rekk <email>aagero@aage.priv.no</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>Espen Skoglund <email>esk@ira.uka.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>Eugeny Kuzakov <email>CoreDumped@lab321.ru</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 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>Frank Volf <email>volf@oasis.IAEhv.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>G. Adam Stanislav<email>adam@whizkidtech.net</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>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>Giles Lean <email>giles@nemeton.com.au</email></para> - </listitem> - - <listitem> - <para>Ginga Kawaguti - <email>ginga@amalthea.phys.s.u-tokyo.ac.jp</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>Gordon Greeff <email>gvg@uunet.co.za</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>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>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>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>HONDA Yasuhiro - <email>honda@kashio.info.mie-u.ac.jp</email></para> - </listitem> - - <listitem> - <para>Horance Chou - <email>horance@freedom.ie.cycu.edu.tw</email></para> - </listitem> - - <listitem> - <para>Horihiro Kumagai <email>kuma@jp.FreeBSD.org</email></para> - </listitem> - - <listitem> - <para>HOSOBUCHI Noriyuki <email>hoso@buchi.tama.or.jp</email></para> - </listitem> - - <listitem> - <para>HOTARU-YA <email>hotaru@tail.net</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>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>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>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>IWASHITA Yoji <email>shuna@pop16.odn.ne.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 Burkholder <email>jake@checker.org</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 da Silva <email>jds@cs.umd.edu</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>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 Brown <email>jabrown@caida.org</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@noc.dfn.d</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 Prior <email>unknown</email></para> - </listitem> - - <listitem> - <para>Jeremy Shaffner <email>jeremy@external.org</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 Bloom <email>bloom@acm.org</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 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>jsutton@bbcon.com.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 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>Jose Marques <email>jose@nobody.org</email></para> - </listitem> - - <listitem> - <para>Josef Grosch - <email>jgrosch@superior.mooseriver.com</email></para> - </listitem> - - <listitem> - <para>Joseph Stein <email>joes@wstein.com</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>&a.jhs</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>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 Tsuguru <email>tkato@prontomail.ne.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>Kelly Yancey <email>kbyanc@posi.net</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 Lo<email>kevlo@hello.com.tw</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>Kiril Mitev <email>kiril@ideaglobal.com</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>Kris Dow <email>kris@vilnya.demon.co.uk</email></para> - </listitem> - - <listitem> - <para>KUNISHIMA Takeo <email>kunishi@c.oka-pu.ac.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>Larry Altneu <email>larry@ALR.COM</email></para> - </listitem> - - <listitem> - <para>Lars Köller - <email>Lars.Koeller@Uni-Bielefeld.DE</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>Lowell Gilbert <email>lowell@world.std.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>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>MANTANI Nobutaka <email>nobutaka@nobutaka.com</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>Marc van Woerkom <email>van.woerkom@netcologne.de</email></para> - </listitem> - - <listitem> - <para>Marcin Cieslak <email>saper@system.pl</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>Markus Holmberg <email>saska@acc.umu.se</email></para> - </listitem> - - <listitem> - <para>Martin Birgmeier</para> - </listitem> - - <listitem> - <para>Martin Blapp <email>blapp@attic.ch</email></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 Minkus <email>diskiller@cnbinc.com</email></para> - </listitem> - - <listitem> - <para>Martin Renters <email>martin@tdc.on.ca</email></para> - </listitem> - - <listitem> - <para>Martti Kuparinen - <email>martti.kuparinen@ericsson.com</email></para> - </listitem> - - <listitem> - <para>Mas.TAKEMURA <email>unknown</email></para> - </listitem> - - <listitem> - <para>Masachika ISHIZUKA - <email>ishizuka@isis.min.ntt.jp</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@ARGV.AC</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 Stein <email>matt@bdd.net</email></para> - </listitem> - - <listitem> - <para>Matthew West <email>mwest@uct.ac.za</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>Maxim V. Sobolev <email>sobomax@altavista.net</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 Sardo <email>jaeger16@yahoo.com</email></para> - </listitem> - - <listitem> - <para>Michael Searle <email>searle@longacre.demon.co.uk</email></para> - </listitem> - - <listitem> - <para>Michael Vasilenko <email>acid@stu.cn.ua</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>MIHIRA Sanpei Yoshiro <email>sanpei@sanpei.org</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>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>Mitsuru Yoshida <email>mitsuru@riken.go.jp</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>MOROHOSHI Akihiko <email>moro@race.u-tokyo.ac.jp</email></para> - </listitem> - - <listitem> - <para>Mostyn Lewis <email>mostyn@mrl.com</email></para> - </listitem> - - <listitem> - <para>Motomichi Matsuzaki <email>mzaki@e-mail.ne.jp</email></para> - </listitem> - - <listitem> - <para>Motoyuki Kasahara <email>m-kasahr@sra.co.jp</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>Nadav Eiron <email>nadav@barcode.co.il</email></para> - </listitem> - - <listitem> - <para>NAGAO Tadaaki <email>nagao@cs.titech.ac.jp</email></para> - </listitem> - - <listitem> - <para>NAKAJI Hiroyuki - <email>nakaji@tutrp.tut.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>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 Ahlstrom <email>nrahlstr@winternet.com</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>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 Johnson <email>freebsd@spatula.net</email></para> - </listitem> - - <listitem> - <para>&a.nsayer;</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>NIIMI Satoshi <email>sa2c@and.or.jp</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>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>frf@xocolatl.com</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>No Name <email>ZW6T-KND@j.asahi-net.or.jp</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>NOKUBI Hirotaka <email>h-nokubi@yyy.or.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>Oh Junseon <email>hollywar@mail.holywar.net</email></para> - </listitem> - - <listitem> - <para>Olaf Wagner <email>wagner@luthien.in-berlin.de</email></para> - </listitem> - - <listitem> - <para>Oleg Semyonov <email>os@altavista.net</email></para> - </listitem> - - <listitem> - <para>Oleg Sharoiko <email>os@rsu.ru</email></para> - </listitem> - - <listitem> - <para>Oleg V. Volkov <email>rover@lglobus.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 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 M. Lambert <email>plambert@plambert.net</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 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>Priit Järv <email>priit@cc.ttu.ee</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>Riccardo Veraldi <email>veraldi@cs.unibo.it</email></para> - </listitem> - - <listitem> - <para>Rich Wood <email>rich@FreeBSD.org.uk</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 Kiss <email>richard@homemail.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 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>Roman Shterenzon <email>roman@xpert.com</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 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>Sakai Hiroaki <email>sakai@miya.ee.kagu.sut.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>Samuele Zannoli <email>zannoli@cs.unibo.it</email></para> - </listitem> - - <listitem> - <para>Sander Janssen <email>janssen@rendo.dekooi.nl</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>SANETO Takanori <email>sanewo@strg.sony.co.jp</email></para> - </listitem> - - <listitem> - <para>SASAKI Shunsuke <email>ele@pop17.odn.ne.jp</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>SAWADA Mizuki <email>miz@qb3.so-net.ne.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 Mitchel <email>scott@uk.FreeBSD.org</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>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 Kosyakov <email>ks@itp.ac.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>Shigio Yamaguchi <email>shigio@tamacom.com</email></para> - </listitem> - - <listitem> - <para>Shinya Esu <email>esu@yk.rim.or.jp</email></para> - </listitem> - - <listitem> - <para>Shuichi Tanaka <email>stanaka@bb.mbn.or.jp</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 Coltrin <email>spcoltri@unm.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>Sugimoto Sadahiro <email>ixtl@komaba.utmc.or.jp</email></para> - </listitem> - - <listitem> - <para>SUGIMURA Takashi <email>sugimura@jp.FreeBSD.org</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>SURANYI Peter - <email>suranyip@jks.is.tsukuba.ac.jp</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>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>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>mellon@isc.org</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 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 A. Stephens <email>tas@stephens.org</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>Timothy Jensen <email>toast@blackened.com</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 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>Tony Maher <email>tonym@angis.org.au</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>Trevor Johnson <email>trevor@jpj.net</email></para> - </listitem> - - <listitem> - <para>Udo Schweigert <email>ust@cert.siemens.de</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>URATA Shuichiro <email>s-urata@nmit.tmg.nec.co.jp</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>Valentin Nechayev <email>netch@lucky.net</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>Wiljo Heinen <email>wiljo@freeside.ki.open.de</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>Yasuhiro Fukama <email>yasuf@big.or.jp</email></para> - </listitem> - - <listitem> - <para>Yasuhito FUTATSUKI <email>futatuki@fureai.or.jp</email></para> - </listitem> - - <listitem> - <para>Yen-Shuo Su <email>yssu@CCCA.NCTU.edu.tw</email></para> - </listitem> - - <listitem> - <para>Yin-Jieh Chen <email>yinjieh@Crazyman.Dorm13.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>Yoichi Asai <email>yatt@msc.biglobe.ne.jp</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>Yusuke Nawano <email>azuki@azkey.org</email></para> - </listitem> - - <listitem> - <para>Yuu Yashiki <email>s974123@cc.matsuyama-u.ac.jp</email></para> - </listitem> - - <listitem> - <para>Yuuichi Narahara <email>aconitum@po.teleway.ne.jp</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> - </itemizedlist> - </sect1> - - <sect1 id="contrib-386bsd"> - <title>386BSD ¥Ñ¥Ã¥Á¥¥Ã¥È¤Ø¤Î¥Ñ¥Ã¥ÁÄó¶¡¼Ô</title> - - <para>(̾Á°¤Ç¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç):</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>Rod Taylor <email>rod@idiotswitch.org</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>Yuuki SAWADA <email>mami@whale.cc.muroran-it.ac.jp</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-always-quote-attributes: t - sgml-parent-document: ("../book.sgml" "part" "chapter") - End: ---> diff --git a/ja_JP.eucJP/man/man1/gtar.1 b/ja_JP.eucJP/man/man1/gtar.1 deleted file mode 100644 index db4b9ee959..0000000000 --- a/ja_JP.eucJP/man/man1/gtar.1 +++ /dev/null @@ -1,499 +0,0 @@ -.\" Copyright (c) 1991, 1992, 1993 Free Software Foundation -*- nroff -*- -.\" See /usr/src/gnu/COPYING for conditions of redistribution -.\" -.\" Written by John F. Woods <jfw@jfwhome.funhouse.com> -.\" Updated by Robert Eckardt <roberte@mep.ruhr-uni-bochum.de> -.\" -.\" %FreeBSD: src/gnu/usr.bin/tar/tar.1,v 1.18.2.3 1999/08/29 14:35:20 peter Exp % -.\" -.\" jpman %Id: tar.1,v 1.2 1997/06/24 07:09:44 bobson Stab % -.Dd 25 August 1997 -.Os FreeBSD -.Dt TAR 1 -.Sh ̾¾Î -.Nm tar -.Nd -¥Æ¡¼¥×¥¢¡¼¥«¥¤¥Ð; "tar" ¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤ÎÁàºî -.Sh ½ñ¼° -.Nm tar -.Op [-] Ns Ar bundled-options Ar Args -.Op Ar gnu-style-flags -.Oo -.Ar filenames | Fl C Ar directory-name -.Oc ... -.Sh ²òÀâ -.Nm -¤Ï¡¢Îò»ËŪ¤ÊÍýͳ¤Ë¤è¤ê -.Dq tape archiver -¤ò¾Êά¤·¤ÆÌ¾ÉÕ¤±¤é¤ì¤Þ¤·¤¿¡£ -.Nm -¥×¥í¥°¥é¥à¤Ï¡¢ -.Ar tarfile -¤È¸Æ¤Ð¤ì¤ë -.Dq tar -¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¡¢¥¢¡¼¥«¥¤¥Ö¤Ë¥Õ¥¡¥¤¥ë¤òÄɲä·¤¿¤ê¡¢ -¤Þ¤¿¥¢¡¼¥«¥¤¥Ö¤«¤é¥Õ¥¡¥¤¥ë¤òÃê½Ð¤·¤¿¤ê¤·¤Þ¤¹¡£ -tarfile ¤ÏÄ̾Gµ¤¥Æ¡¼¥×¤ò»Ø¤·¤Þ¤¹¤¬¡¢¥Õ¥í¥Ã¥Ô¥Ç¥£¥¹¥±¥Ã¥È¤ä -Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤â¹½¤¤¤Þ¤»¤ó¡£ -.Pp -Ä̾ -.Nm -¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÎºÇ½é¤Î°ú¿ô¤Ï¡¢µ¡Ç½Ê¸»ú¤ª¤è¤Óµ¡Ç½Êѹ¹Ê¸»ú¤«¤é¤Ê¤ëñ¸ì¤Ç¤¢¤ê¡¢ -¤½¤ÎÁ°¤Ë ¥À¥Ã¥·¥å (-) ¤òÉÕ¤±¤Æ¤âÉÕ¤±¤Ê¤¯¤Æ¤â¤¤¤¤¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ -ñ¸ì¤Ë¤Ï¡¢¼¡¤Îµ¡Ç½Ê¸»ú¤Î¤¦¤ÁÃúÅÙ 1 ¤Ä¤ò´Þ¤ó¤Ç¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹: -.Cm A , -.Cm c , -.Cm d , -.Cm r , -.Cm t , -.Cm u , -.Cm x , -¤³¤ì¤é¤Ï¤½¤ì¤¾¤ì¡¢ -Äɲà (append)¡¢ºîÀ® (create)¡¢º¹Ê¬ (difference)¡¢ÃÖ´¹ (replace)¡¢ -¥ê¥¹¥Èɽ¼¨ (table of contents)¡¢¹¹¿· (update)¡¢Ãê½Ð (extract) -¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹ (²¼µ¤Ë¾ÜºÙ¤¬¤¢¤ê¤Þ¤¹)¡£ -¤³¤ì¤é¤Î¾¤Ë¡¢°Ê²¼¤Ë¾ÜºÙ¤ò½Ò¤Ù¤ëµ¡Ç½Êѹ¹Ê¸»ú¤ò¡¢¥³¥Þ¥ó¥Éñ¸ì¤Ë -´Þ¤á¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤½¤ì¤é¤Î¤¤¤¯¤Ä¤«¤Ï¡¢¥³¥Þ¥ó¥Éñ¸ìÆâ¤ÈƱ¤¸½ç¤Ç -¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤òÍ׵ᤷ¤Þ¤¹ (»ÈÍÑÎã¤ÎÀá¤ò»²¾È)¡£ -µ¡Ç½Ê¸»ú¤Èµ¡Ç½Êѹ¹Ê¸»ú¤Ï¡¢GNU ·Á¼°¤Î°ú¿ô¤Ç»ØÄꤹ¤ë¤³¤È¤â¤Ç¤¤Þ¤¹ -(2 ¤Ä¤Î¥À¥Ã¥·¥å¤òºÇ½é¤ËÉÕ¤±¡¢1 ¤Ä¤Î¥³¥Þ¥ó¥Éñ¸ì¤´¤È¤Ëµ¡Ç½Ê¸»ú¤« -µ¡Ç½Êѹ¹Ê¸»ú¤ò 1 ¤Ä¤À¤±»ØÄꤹ¤ë)¡£ -¥¢¡¼¥«¥¤¥Ö¤Ø¤ÎÄɲᢥ¢¡¼¥«¥¤¥Ö¤«¤é¤ÎÃê½Ð¡¢¤½¤·¤Æ¥ê¥¹¥Èɽ¼¨¤Î¤¿¤á¤Ë -¥³¥Þ¥ó¥É¥é¥¤¥ó»ØÄꤹ¤ë¥Õ¥¡¥¤¥ë̾¤Ë¤Ï¡¢ -¥·¥§¥ë¤Î¥Ñ¥¿¡¼¥ó¥Þ¥Ã¥Áʸ»úÎó¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ -.Sh µ¡Ç½ -°Ê²¼¤Îµ¡Ç½¤Î¤¤¤º¤ì¤« 1 ¤Ä¤À¤±¤òɬ¤º»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ -.Pp -.Bl -tag -width "--concatenate" -compact -.It Fl A -.It Fl -catenate -.It Fl "-concatenate" -»ØÄꤵ¤ì¤¿ (tar ¥¢¡¼¥«¥¤¥Ö·Á¼°¤Î) ¥Õ¥¡¥¤¥ë¤ò tar ¥¢¡¼¥«¥¤¥Ö¤ÎËöÈø -¤ËÄɲä·¤Þ¤¹¡£(Äɲ乤ëÁ°¤Î¸Å¤¤ end-of-archive ¥Ö¥í¥Ã¥¯¤Ïºï½ü¤µ -¤ì¤Þ¤¹¡£) -¤³¤ì¤Ï¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤¬¥¢¡¼¥«¥¤¥Ö¤ÎÃæ¤Î 1 ¥Õ¥¡¥¤¥ë¤È¤Ê¤ë¤Î¤Ç -¤Ï¤Ê¤¯¡¢»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ò¡¢ºÇ½é¤Ë»ØÄê -¤·¤¿¥¢¡¼¥«¥¤¥Ö¤ËÄɲ乤ë¤È¤¤¤¦¸ú²Ì¤ò»ý¤Á¤Þ¤¹¡£ -.Em Ãí: -¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï tarfile ¤òºÆ½ñ¤¹þ¤ß¤¹¤ëɬÍפ¬¤¢¤ë¤¿¤á¡¢1/4 -¥¤¥ó¥Á¥«¡¼¥È¥ê¥Ã¥¸¥Æ¡¼¥×¤Ç¤Ïưºî¤·¤Þ¤»¤ó¡£ -.It Fl c -.It Fl -create -¿·¤·¤¤¥¢¡¼¥«¥¤¥Ö¤òºîÀ®¤·¤Æ (¤â¤·¤¯¤Ï¸Å¤¤ÆâÍÆ¤òÀÚ¤ê¼Î¤Æ¤Æ)¡¢»ØÄê -¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò¥¢¡¼¥«¥¤¥Ö¤Ë½ñ¤¹þ¤ß¤Þ¤¹¡£ -.It Fl d -.It Fl -diff -.It Fl -compare -¥¢¡¼¥«¥¤¥Ö¤ÎÃæ¤Î¥Õ¥¡¥¤¥ë¤È¡¢¤½¤ì¤ËÁêÅö¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Î -¥Õ¥¡¥¤¥ë¤È¤Î°ã¤¤¤òÄ´ºº¤·¤Þ¤¹¡£ -.It Fl -delete -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò¥¢¡¼¥«¥¤¥Ö¤«¤éºï½ü¤·¤Þ¤¹¡£(1/4 ¥¤¥ó¥Á¥Æ¡¼¥× -¤Ç¤Ïưºî¤·¤Þ¤»¤ó¡£) -.It Fl r -.It Fl -append -¥¢¡¼¥«¥¤¥Ö¤ÎËöÈø¤Ë¥Õ¥¡¥¤¥ë¤òÄɲä·¤Þ¤¹¡£(1/4 ¥¤¥ó¥Á¥Æ¡¼¥×¤Ç¤Ï -ưºî¤·¤Þ¤»¤ó¡£) -.It Fl t -.It Fl -list -¥¢¡¼¥«¥¤¥ÖÆâÍÆ¤Î¥ê¥¹¥Èɽ¼¨¤ò¤·¤Þ¤¹¡£¤â¤·°ú¿ô¤È¤·¤Æ¥Õ¥¡¥¤¥ë̾¤¬ -»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢¤½¤Î¥Õ¥¡¥¤¥ë¤À¤±¤¬¥ê¥¹¥Èɽ¼¨¤µ¤ì¤Þ¤¹¡£¤½¤¦¤Ç¤Ê¤± -¤ì¤Ð¡¢¥¢¡¼¥«¥¤¥Ö¤Ë´Þ¤Þ¤ì¤ë¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¥ê¥¹¥È¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ -.It Fl u -.It Fl -update -»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤Î¤¦¤Á¡¢¥¢¡¼¥«¥¤¥ÖÆâ¤Î¥Õ¥¡¥¤¥ë¤è¤ê¤â¥Ç¥£¥¹¥¯¾å¤Î -¥Õ¥¡¥¤¥ë¤ÎÊѹ¹»þ¹ï¤¬¿·¤·¤¤¤â¤Î¤À¤±¤òÄɲä·¤Þ¤¹¡£1/4 ¥¤¥ó¥Á¥Æ¡¼¥× -¤Ç¤Ïưºî¤·¤Þ¤»¤ó¡£ -.It Fl x -.It Fl -extract -.It Fl -get -¥¢¡¼¥«¥¤¥Ö¤«¤é¥Õ¥¡¥¤¥ë¤òÃê½Ð¤·¤Þ¤¹¡£²Äǽ¤Ê¤é¤Ð¡¢½êͼԡ¢ -Êѹ¹»þ¹ï¡¢¥Õ¥¡¥¤¥ë°À¤Ï¥ê¥¹¥È¥¢¤µ¤ì¤Þ¤¹¡£¤â¤· -.Ar file -°ú¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥¢¡¼¥«¥¤¥ÖÆâ¤ÎÁ´¥Õ¥¡¥¤¥ë¤¬Ãê½Ð¤µ¤ì¤Þ¤¹¡£ -¤â¤· -.Ar filename -°ú¿ô¤¬¥Æ¡¼¥×¾å¤Î¥Ç¥£¥ì¥¯¥È¥ê̾¤Ë¥Þ¥Ã¥Á¤·¤Æ¤¤¤ì¤Ð¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤È -¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë¤¬Ãê½Ð¤µ¤ì¤Þ¤¹¡£(¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î -¤¹¤Ù¤Æ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ä¤¤¤Æ¤âƱÍͤËÃê½Ð¤µ¤ì¤Þ¤¹¡£) -¤â¤·¥¢¡¼¥«¥¤¥ÖÆâ¤Ë¡¢ÁêÅö¤¹¤ëƱ¤¸¥Õ¥¡¥¤¥ë¤¬Ê£¿ô´Þ¤Þ¤ì¤Æ¤¤¤ì¤Ð (¾åµ¤Î -.Fl -append -¥³¥Þ¥ó¥É¤ò»²¾È)¡¢ºÇ¸å¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤â¤Î¤¬Â¾¤Î¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤ò -¾å½ñ¤¤¹¤ë·Á¤ÇÃê½Ð¤µ¤ì¤Þ¤¹¡£ -.Sh ¥ª¥×¥·¥ç¥ó -.Nm -¤Î¾¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ÁȤ߹ç¤ï¤»¤Æ»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ -1 ʸ»ú¥ª¥×¥·¥ç¥ó¤Ï¡¢¥³¥Þ¥ó¥Éñ¸ì¤ÎÃæ¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ -°ú¿ô¤òÍ¿¤¨¤ë¤Ù¤¥ª¥×¥·¥ç¥ó¤Î¾ì¹ç¡¢¥ª¥×¥·¥ç¥ó¤Ë³¤±¤Æ°ú¿ô¤ò»ØÄꤷ -¤Þ¤¹¡£1 ʸ»ú¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ì¤Ð¡¢¤³¤ì¤Ë³¤¯¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤ò -»ÈÍѤ·¤Þ¤¹ (°Ê²¼¤Î -.Sx »ÈÍÑÎã -¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£) -.Pp -.Bl -tag -width "--preserve-permissions" -compact -.It Fl -help -.Nm -¤Î¤¹¤Ù¤Æ¤Î¥³¥Þ¥ó¥É¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ°ìÍ÷¤È²òÀâ¤òɽ¼¨¤·¤Þ¤¹¡£ -.It Fl -atime-preserve -¥Æ¡¼¥×¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¡¢¥Õ¥¡¥¤¥ë¤Î¥¢¥¯¥»¥¹»þ¹ï¤ò¥ê¥¹¥È¥¢¤·¤Þ¤¹¡£ -(inode ¤ÎÊѹ¹»þ¹ï¤¬Êѹ¹¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤!) -.It Fl b -.It Fl -block-size Ar number -ÆÉ¤ß½ñ¤¤¹¤ë¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤ò -.Ar number -* 512-byte ¥Ö¥í¥Ã¥¯ ¤ËÀßÄꤷ¤Þ¤¹¡£ -.It Fl B -.It Fl -read-full-blocks -û¤¤ÆÉ¤ß¤À¤·¥Ö¥í¥Ã¥¯¤ò¡¢´°Á´¤Ê¥Ö¥í¥Ã¥¯¤ËºÆÁȤßΩ¤Æ¤·¤Þ¤¹¡£ -(4.2BSD ¥Ñ¥¤¥×¤ÎÆÉ¤ß¹þ¤ßÍÑ¡£) -.It Fl C Ar directory -.It Fl -directory Ar directory -»Ä¤ê¤Î°ú¿ô¤ò½èÍý¤¹¤ëÁ°¤Ë -.Ar directory -¤Ø°Üư¤·¤Þ¤¹¡£ -.It Fl -checkpoint -¥¢¡¼¥«¥¤¥Ö¤òÆÉ¤ß½ñ¤¤¹¤ë´Ö¤ËÆÉ¤ß½ñ¤¤·¤¿¥Ð¥Ã¥Õ¥¡¤Î¿ô¤òɽ¼¨¤·¤Þ¤¹¡£ -.It Fl f Ar [hostname:]file -.It Fl -file Ar [hostname:]file -»ØÄꤵ¤ì¤¿ -.Ar file -(¥Ç¥Õ¥©¥ë¥È¤Ï /dev/rsa0) ¤òÆÉ¤ß½ñ¤¤·¤Þ¤¹¡£ -¤â¤· -.Ar hostname -¤¬»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ -.Nm -¤Ï -.Xr rmt 8 -¤ò»È¤Ã¤Æ¡¢¥ê¥â¡¼¥È¥Þ¥·¥ó¾å¤Î -.Ar file -¤òÆÉ¤ß½ñ¤¤·¤Þ¤¹¡£"-" ¤Ï¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¤¬¡¢ -¤³¤ì¤Ïɸ½àÆþÎϤ«¤éÆÉ¤ß½Ð¤·¤¿¤ê¡¢É¸½à½ÐÎϤؽñ¤½Ð¤·¤¿¤ê¤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ -.It Fl -force-local -¥³¥í¥ó¤¬¤¢¤ë»þ¤Ç¤µ¤¨¡¢¥¢¡¼¥«¥¤¥Ö¥Õ¥¡¥¤¥ë¤Ï¥í¡¼¥«¥ë¤Î¤â¤Î¤È¤·¤Þ¤¹¡£ -.It Fl F Ar file -.It Fl -info-script Ar file -.It Fl -new-volume-script Ar file -¤½¤ì¤¾¤ì¤Î¥¢¡¼¥«¥¤¥Ö¤¬½ª¤ë¤È¡¢¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤·¤Þ¤¹ (°ÅÌۤΠ-.Fl M -»ØÄ꤬¹Ô¤Ê¤ï¤ì¤Þ¤¹¡£) -.It Fl -fast-read -¥ï¥¤¥ë¥É¥«¡¼¥É¤Ç»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤¹¤Ù¤Æ¤ÎÃê½Ð¥¿¡¼¥²¥Ã¥È¤¬ -¥¢¡¼¥«¥¤¥ÖÆâ¤Ë¸«¤Ä¤«¤Ã¤¿¤é¡¢¤½¤Î»þÅÀ¤Ç½ªÎ»¤·¤Þ¤¹¡£ -.It Fl G -.It Fl -incremental -¸Å¤¤ GNU-format ¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤òºîÀ®/¥ê¥¹¥È/ -Ãê½Ð¤·¤Þ¤¹¡£ -.It Fl g Ar file -.It Fl -listed-incremental Ar file -¿·¤·¤¤ GNU-format ¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤òºîÀ®/¥ê¥¹¥È/ -Ãê½Ð¤·¤Þ¤¹¡£ -.It Fl h -.It Fl -dereference -¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò¥·¥ó¥Ü¥ê¥Ã¥¯¤Î¤Þ¤Þ½ñ¤¹þ¤ß¤Þ¤»¤ó¡£¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤¬ -»Ø¤·¤Æ¤¤¤ë¥Ç¡¼¥¿¤ò½ñ¤¹þ¤ß¤Þ¤¹¡£ -.It Fl i -.It Fl -ignore-zeros -¥¢¡¼¥«¥¤¥Ö¤ÎÃæ¤Î¥¼¥í¥Ö¥í¥Ã¥¯ (Ä̾End-Of-File ¤ò°ÕÌ£¤¹¤ë) ¤ò̵»ë¤·¤Þ¤¹¡£ -.It Fl -ignore-failed-read -¥Õ¥¡¥¤¥ë¤¬ÆÉ¤á¤Ê¤¯¤Æ¤â¡¢Èó 0 ¤Î¥¹¥Æ¡¼¥¿¥¹¤Ç exit ¤·¤Þ¤»¤ó¡£ -.It Fl k -.It Fl -keep-old-files -¥Ç¥£¥¹¥¯¾å¤Ë´û¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤òÊÝ»ý¤·¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢¥¢¡¼¥«¥¤¥Ö¤«¤é -Ãê½Ð¤¹¤ë¥Õ¥¡¥¤¥ë¤Ï¡¢¥Ç¥£¥¹¥¯¾å¤Î¥Õ¥¡¥¤¥ë¤Ø¾å½ñ¤¤·¤Þ¤»¤ó¡£ -.It Fl K Ar file -.It Fl -starting-file Ar file -¥¢¡¼¥«¥¤¥Ö¤ÎÃæ¤Î -.Ar file -¤«¤é (Ãê½Ð¡¢¥ê¥¹¥È¤Ê¤É¤ò) »Ï¤á¤Þ¤¹¡£ -.It Fl l -.It Fl -one-file-system -¤¢¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÆâ¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤À¤±¤Ç¥¢¡¼¥«¥¤¥Ö¤òºîÀ®¤·¤Þ¤¹¡£ -(¾¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ø¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò¸Ù¤®¤Þ¤»¤ó¡£) -.It Fl L Ar number -.It Fl -tape-length Ar number -.Ar number -* 1024 ¥Ð¥¤¥È½ñ¤¹þ¤ó¤À¸å¤Ç¥Æ¡¼¥×¤Î¸ò´¹¤òÍ׵ᤷ¤Þ¤¹¡£ -.It Fl m -.It Fl -modification-time -¥Õ¥¡¥¤¥ë¤ÎÊѹ¹»þ¹ï¤òÃê½Ð¤·¤Þ¤»¤ó¡£ -.It Fl M -.It Fl -multi-volume -¥Þ¥ë¥Á¥Ü¥ê¥å¡¼¥à¥¢¡¼¥«¥¤¥Ö¤òºîÀ®/¥ê¥¹¥È/Ãê½Ð¤·¤Þ¤¹¡£ -.It Fl n -.It Fl -norecurse -ºîÀ®»þ¤ËºÆµ¢Åª¤Ë¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤òÁöºº¤·¤Þ¤»¤ó¡£ -.It Fl -volno-file Ar file -¥Ü¥ê¥å¡¼¥àÈÖ¹æÉÕ¤¤Î¥Õ¥¡¥¤¥ë̾¤Ç¤¹¡£ -.It Fl N Ar date -.It Fl -after-date Ar date -.It Fl -newer Ar date -ºîÀ®»þ´Ö¤¬ -.Ar date -¤è¤ê¿·¤·¤¤¥Õ¥¡¥¤¥ë¤À¤±¤òÃê½Ð¤·¤Þ¤¹¡£ -.It Fl -newer-mtime Ar date -Êѹ¹»þ´Ö¤¬ -.Ar date -¤è¤ê¿·¤·¤¤¥Õ¥¡¥¤¥ë¤À¤±¤òÃê½Ð¤·¤Þ¤¹¡£ -.It Fl o -.It Fl -old-archive -.It Fl -portability -POSIX ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤Ï¤Ê¤¯¡¢V7 ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥¢¡¼¥«¥¤¥Ö¤òºîÀ®¤·¤Þ¤¹¡£ -.It Fl O -.It Fl -to-stdout -¥Õ¥¡¥¤¥ë¤òɸ½à½ÐÎϤËÃê½Ð¤·¤Þ¤¹¡£ -.It Fl p -.It Fl -same-permissions -.It Fl -preserve-permissions -Êݸî¾ðÊó¤ò´°Á´¤ËÃê½Ð¤·¤Þ¤¹¡£ -.It Fl -preserve -.Fl p s -¤Î»ØÄê¤ÈƱ¤¸¸ú²Ì¤ò»ý¤Á¤Þ¤¹¡£ -.It Fl P -.It Fl -absolute-paths -¥Õ¥¡¥¤¥ë̾¤«¤éÀèÆ¬¤Î `/' ¤ò¤È¤ê¤Þ¤»¤ó¡£ -.It Fl R -.It Fl -record-number -¥á¥Ã¥»¡¼¥¸Ãæ¤Ë¥¢¡¼¥«¥¤¥ÖÆâ¤Î¥ì¥³¡¼¥ÉÈÖ¹æ¤òËä¤á¹þ¤ßɽ¼¨¤·¤Þ¤¹¡£ -.It Fl -remove-files -¥¢¡¼¥«¥¤¥Ö¤ËÄɲä·¤¿¥Õ¥¡¥¤¥ë¤ò¡¢Äɲøå¤Ëºï½ü¤·¤Þ¤¹¡£ -.It Fl s -.It Fl -same-order -.It Fl -preserve-order -¥¢¡¼¥«¥¤¥ÖÆâ¤«¤éÃê½Ð¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¡¢»ØÄꤵ¤ì¤¿½ç¤Î¤Þ¤Þ¤Ë¤·¤Þ¤¹¡£ -.It Fl -show-omitted-dirs -¥¢¡¼¥«¥¤¥ÖºîÀ®Ãæ¤Ë½ü³°¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¼¨¤·¤Þ¤¹¡£ -.It Fl S -.It Fl -sparse -¡Ö¾¯¤Ê¤¤¡×¥Õ¥¡¥¤¥ë¤ò¸úΨŪ¤Ë°·¤¦¤è¤¦¤Ë¤·¤Þ¤¹¡£ -.It Fl T Ar file -.It Fl -files-from Ar file -.Ar file -¤«¤éÃê½Ð¤â¤·¤¯¤ÏºîÀ®¤¹¤ë¥Õ¥¡¥¤¥ë̾¤òÆÀ¤Þ¤¹¡£(1 ¹Ô 1 ¥Õ¥¡¥¤¥ë̾¡£) -.It Fl -null -null ¤Ç½ª¤ï¤Ã¤Æ¤¤¤ë̾Á°¤ò¹Íθ¤·¡¢ -.Fl T -¤Î¿¶Éñ¤òÊѹ¹¤·¤Þ¤¹¡£ -¤³¤ì¤Ï -.Fl C -»ØÄê¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£ -.It Fl -totals -.Fl -create -¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿Áí¥Ð¥¤¥È¿ô¤òɽ¼¨¤·¤Þ¤¹¡£ -.It Fl v -.It Fl -verbose -.Fl -create -¤Ç¥¢¡¼¥«¥¤¥Ö¤Ë½ñ¤¯¥Õ¥¡¥¤¥ë¤ä -.Fl -extract -¤Ç¥¢¡¼¥«¥¤¥Ö¤«¤é -¼è¤ê½Ð¤¹¥Õ¥¡¥¤¥ë̾¤ò¥ê¥¹¥Èɽ¼¨¤·¤Þ¤¹¡£ -¥Õ¥¡¥¤¥ë¤ÎÊݸî¾ðÊó¤ò¥Õ¥¡¥¤¥ë̾¤È¤È¤â¤Ëɽ¼¨¤µ¤»¤ë¤Ë¤Ï¡¢ -.Fl -list -¤ò»È¤¤¤Þ¤¹¡£ -.It Fl V Ar volume-name -.It Fl -label Ar volume-name -»ØÄꤵ¤ì¤¿ -.Ar volume-name -¤ò»ý¤Ã¤¿¥¢¡¼¥«¥¤¥Ö¤òºîÀ®¤·¤Þ¤¹¡£ -.It Fl -version -.Nm -¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨¤·¤Þ¤¹¡£ -.It Fl w -.It Fl -interactive -.It Fl -confirmation -¤¹¤Ù¤Æ¤Îưºî¤ËÂФ·¤Æ¡¢³Îǧ¤òµá¤á¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ -.It Fl W -.It Fl -verify -¥¢¡¼¥«¥¤¥Ö¤ò½ñ¤¹þ¤ó¤À¸å¡¢¥Ù¥ê¥Õ¥¡¥¤¤ò»î¤ß¤Þ¤¹¡£ -.It Fl -exclude Ar pattern -.Ar pattern -¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Õ¥¡¥¤¥ë¤ò½ü³°¤·¤Þ¤¹¡£ -(Ãê½Ð¤·¤Þ¤»¤ó¡£Äɲä·¤Þ¤»¤ó¡£¥ê¥¹¥Èɽ¼¨¤·¤Þ¤»¤ó¡£) -.It Fl X Ar file -.It Fl -exclude-from Ar file -.Ar file -¤Ë°ìÍ÷¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ò½ü³°¤·¤Þ¤¹¡£ -.It Fl y -.It Fl -bzip2 -.It Fl -bunzip2 -¥¢¡¼¥«¥¤¥Ö¤ò -.Xr bzip2 1 -¤Ç¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¤Þ¤¹¡£ -.It Fl Z -.It Fl -compress -.It Fl -uncompress -¥¢¡¼¥«¥¤¥Ö¤ò -.Xr compress 1 -¤Ç¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¤Þ¤¹¡£ -.It Fl z -.It Fl -gzip -.It Fl -gunzip -¥¢¡¼¥«¥¤¥Ö¤ò -.Xr gzip 1 -¤Ç¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¤Þ¤¹¡£ -.It Fl -use-compress-program Ar program -¥¢¡¼¥«¥¤¥Ö¤ò -.Ar program -¤Ç¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¤Þ¤¹¡£ -(¤³¤ì¤Ï¡¢ -.Fl d -¤¬»ØÄꤵ¤ì¤¿¤È¤¤Ï ``decompress'' ¤ò°ÕÌ£¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£) -.It Fl -block-compress -¥Æ¡¼¥×¤â¤·¤¯¤Ï¥Õ¥í¥Ã¥Ô¤Î¤¿¤á¤Ë¡¢°µ½Ì¥×¥í¥°¥é¥à¤Î½ÐÎϤò¥Ö¥í¥Ã¥¯ -²½¤·¤Þ¤¹¡£(¤½¤¦¤·¤Ê¤¤¤È¡¢¥Ö¥í¥Ã¥¯Ä¹¤¬¤ª¤«¤·¤¯¤Ê¤ê¡¢¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï -¤½¤Î¥Ö¥í¥Ã¥¯¤òµñÀ䤹¤ë¤Ç¤·¤ç¤¦¡£) -.It Fl [0-7][lmh] -¥Æ¡¼¥×¥É¥é¥¤¥Ö¤ÈÌ©ÅÙ¤ò»ØÄꤷ¤Þ¤¹¡£ -.It Fl -unlink -¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ëÁ°¤Ë¡¢¤¤¤Ã¤¿¤óºï½ü¤·¤Þ¤¹¡£ -.El -.Sh »ÈÍÑÎã -"bert" ¤È "ernie" ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò´Þ¤à¡¢ -¥Ö¥í¥Ã¥¯¥µ¥¤¥º¤¬ 20 ¥Ö¥í¥Ã¥¯¤Î¥¢¡¼¥«¥¤¥Ö¤ò¡¢ -¥Æ¡¼¥×¥É¥é¥¤¥Ö /dev/rsa0 ¤Ëºî¤ë¤Ë¤Ï¡¢ -.Pp -.Dl tar cfb /dev/rsa0 20 bert ernie -.Pp -¤â¤·¤¯¤Ï -.Pp -.Dl tar\ --create\ --file\ /dev/rsa0\ --block-size\ 20\ bert\ ernie -.Pp -¤ÈÆþÎϤ·¤Þ¤¹¡£ -.Fl f -¤ª¤è¤Ó -.Fl b -¥Õ¥é¥°¤ÏξÊý¤È¤â°ú¿ô¤òɬÍפȤ·¤Æ¤¤¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ -¤³¤Î°ú¿ô¤Ï¡¢¥³¥Þ¥ó¥Éñ¸ì¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤Î¤ÈƱ¤¸½ç½ø¤Ç¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é -¼èÆÀ¤µ¤ì¤Þ¤¹¡£ -.Pp -/dev/rsa0 ¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥Ç¥Ð¥¤¥¹¤Ç¤¢¤ê¡¢20 ¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥Ö¥í¥Ã¥¯ -¥µ¥¤¥º¤Ç¤¹¤Î¤Ç¡¢¾åµ¤ÎÎã¤Ï¼¡¤Î¤è¤¦¤Ëñ½ã²½¤Ç¤¤Þ¤¹¡£ -.Pp -.Dl tar c bert ernie -.Pp -"backup.tar" ¤È¤¤¤¦¥¢¡¼¥«¥¤¥Ö¤«¤é¡¢¤¹¤Ù¤Æ¤Î C ¥½¡¼¥¹µÚ¤Ó¥Ø¥Ã¥À¤ò -Ãê½Ð¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¥¿¥¤¥×¤·¤Þ¤¹¡£ -.Pp -.Dl tar xf backup.tar '*.[ch]' -.Pp -¥·¥§¥ë¤¬¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Õ¥¡¥¤¥ë̾¤ËŸ³«¤·¤Ê¤¤¤è¤¦¡¢¥Ñ¥¿¡¼¥ó¤ò -¥¯¥©¡¼¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£(ÅöÁ³¡¢ -¥·¥§¥ë¤Ï¥¢¡¼¥«¥¤¥ÖÆâ¤Î¥Õ¥¡¥¤¥ë°ìÍ÷¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£) -.Pp -¥Õ¥¡¥¤¥ë¤ò³¬Áع½Â¤¤´¤È¥³¥Ô¡¼¤¹¤ë¤Ë¤Ï¡¢¤³¤Î¤è¤¦¤Ë¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤: -.Bd -literal -tar cf - -C srcdir . | tar xpf - -C destdir -.Ed -.Pp -¥Ç¥£¥¹¥±¥Ã¥È¤Ë¡¢gzip ¤ò»È¤Ã¤¿°µ½Ì¥¢¡¼¥«¥¤¥Ö¤òºîÀ®¤¹¤ë¤Ë¤Ï¡¢¼¡¤Î -¤è¤¦¤Ê¥³¥Þ¥ó¥É¥é¥¤¥ó¤ò»È¤¦¤È¤¤¤¤¤Ç¤·¤ç¤¦¡£ -.Pp -.Dl tar --block-compress -z -c -v -f /dev/rfd1a -b 36 tar/ -.Pp -¤Þ¤È¤á»ØÄê¥Õ¥é¥°¤È -- ¥¹¥¿¥¤¥ë¤Î¥Õ¥é¥°¤òº®ºß¤µ¤»¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤ -¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¼¡¤Î¤è¤¦¤Ë¥¿¥¤¥×¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤ï¤±¤Ç -¤Ï¤Ê¤¯¡¢¾åµ¤Î¤è¤¦¤Ê½ñ¤Êý¤Ç 1 ʸ»ú¥Õ¥é¥°¤ò»È¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ -.Pp -.Dl tar --block-compress --gzip --verbose --file /dev/rfd1a --block-size 20 tar/ -.Pp -¾å¤Î¤è¤¦¤Ë¤·¤ÆºîÀ®¤·¤¿¥Ç¥£¥¹¥¯¤ÎÆâÍÆ¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¥ê¥¹¥È -ɽ¼¨¤Ç¤¤Þ¤¹¡£ -.Pp -.Dl tar tvfbz /dev/rfd1a 36 -.Pp -2 ¤Ä¤Î tar ¥¢¡¼¥«¥¤¥Ö¤ò 1 ¤Ä¤Î¥¢¡¼¥«¥¤¥Ö¤Ë¤Þ¤È¤á¤ë¤Ë¤Ï¡¢ -.Pp -.Dl tar Af archive1.tar archive2.tar -.Pp -¤ò»È¤¤¤Þ¤¹¡£¤³¤¦¤¹¤ë¤È¡¢archive2.tar ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤¬ -archive1.tar ¤ÎËöÈø¤ËÄɲ䵤ì¤Þ¤¹¡£(ñ½ã¤Ë -.Pp -.Dl cat archive2.tar >> archive1.tar -.Pp -¤È¥¿¥¤¥×¤·¤Æ¤â¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¤Ê¤¼¤Ê¤é¡¢ -tar ¥¢¡¼¥«¥¤¥Ö¤ÎËöÈø¤Ë¤Ï end-of-file ¥Ö¥í¥Ã¥¯¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£) -.Pp -srcdir ¥Ç¥£¥ì¥¯¥È¥ê¤«¤é 1997 ǯ 2 ·î 9 Æü 13:00 °Ê¹ß¤ËÊѹ¹¤ò¤µ¤ì¤¿ -Á´¤Æ¤Î¥Õ¥¡¥¤¥ë¤ò¥¢¡¼¥«¥¤¥Ö¤¹¤ë¤¿¤á¤Ë¤Ï¡¢°Ê²¼¤Î·Á¼°¤ò»È¤Ã¤Æ²¼¤µ¤¤¡£ -.Dl tar\ -c\ -f\ backup.tar\ --newer-mtime\ 'Feb\ 9\ 13:15\ 1997'\ srcdir/ -.Pp -¾¤Î»þ´Ö»ØÄê·Á¼°¤È¤·¤Æ¤Ï¡¢'02/09/97 13:15', -\&'1997-02-09 13:15', '13:15 9 Feb 1997', '9 Feb 1997 13:15', -\&'Feb. 9, 1997 1:15pm', '09-Feb', '3 weeks ago', 'May first Sunday' -¤¬¤¢¤ê¤Þ¤¹¡£ -Àµ¤·¤¤¥¿¥¤¥à¥¾¡¼¥ó¤ò»ØÄꤹ¤ë¤¿¤á¤Ë¤Ï¡¢ -`13:15 CEST' ¤ä `13:15+200' ¤ò»ÈÍѤ·¤Æ²¼¤µ¤¤¡£ - -.Sh ´Ä¶ÊÑ¿ô -.Nm -¥×¥í¥°¥é¥à¤Ï¡¢°Ê²¼¤Î´Ä¶ÊÑ¿ô¤ò»²¾È¤·¤Þ¤¹¡£ -.Bl -tag -width "POSIXLY_CORRECT" -.It POSIXLY_CORRECT -Ä̾ -.Nm -¤Ï¥Õ¥¡¥¤¥ë»ØÄê¤ÎÃæ¤Ëº®¤¶¤Ã¤¿¥Õ¥é¥°¤ò½èÍý¤·¤Þ¤¹¡£ -¤³¤Î´Ä¶ÊÑ¿ô¤òÀßÄꤹ¤ë¤È¡¢ -.Nm -¤ÏºÇ½é¤Î¥Õ¥é¥°°Ê³°¤Î°ú¿ô¤ò¸«¤Ä¤±¤ë -¤È¤½¤ì°Ê¹ß¤Î°ú¿ô¤ËÂФ·¤Æ¥Õ¥é¥°½èÍý¤ò¹Ô¤Ê¤ï¤Ê¤¤¤È¤¤¤¦¡¢POSIX »ÅÍÍ -¤Ë¹ç¤ï¤»¤¿Æ°ºî¤ò¹Ô¤Ê¤¦¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ -.It SHELL -¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¥â¡¼¥É¤Ë¤ª¤¤¤Æ¡¢¥µ¥Ö¥·¥§¥ë¤Îµ¯Æ°¤¬Í׵ᤵ¤ì¤¿¤È¤¡¢ -SHELL ÊÑ¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð¤½¤ì¤¬¡¢ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð -"/bin/sh" ¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£ -.It TAPE -tar ¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥Æ¡¼¥×¥É¥é¥¤¥Ö¤òÊѹ¹¤·¤Þ¤¹¡£(¤³¤ì¤Ï¡¢¤µ¤é¤Ë -.Fl f -¥Õ¥é¥°¤Ë¤è¤Ã¤ÆÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£) -.El -.Sh ´ØÏ¢¥Õ¥¡¥¤¥ë -.Bl -tag -width "/dev/rsa0" -.It Pa /dev/rsa0 -¥Ç¥Õ¥©¥ë¥È¤Î¥Æ¡¼¥×¥É¥é¥¤¥Ö -.El -.\" This next request is for sections 1, 6, 7 & 8 only -.\" (command return values (to shell) and fprintf/stderr type diagnostics) -.\" .Sh ¿ÇÃÇ -.Sh ´ØÏ¢¹àÌÜ -.Xr bzip2 1 , -.Xr compress 1 , -.Xr gzip 1 , -.Xr pax 1 , -.Xr ft 8 , -.Xr rmt 8 -.\" .Sh µ¬³Ê -.Sh Îò»Ë -.Nm -¥Õ¥©¡¼¥Þ¥Ã¥È¤ÏΩÇɤÊÎò»Ë¤ò»ý¤Ã¤Æ¤¤¤Æ¡¢Sixth Edition UNIX ¤Ë -¸¶ÅÀ¤¬¤¢¤ê¤Þ¤¹¡£ -¤³¤Î -.Nm -¤Î¼ÂÁõ¤Ï GNU ¼ÂÁõ¤Ç¤¢¤ê¡¢John Gilmore ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿ -¥Ñ¥Ö¥ê¥Ã¥¯¥É¥á¥¤¥ó tar ¤¬¸µ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ -.Sh ºî¼Ô -¼¡¤Î¿Í¤ò´Þ¤à¡¢ÂçÊÑ¿¤¯¤Î¿Í¡¹¡£[¥½¡¼¥¹¤ÎÃæ¤Î ChangeLog ¥Õ¥¡¥¤¥ë¤Ëµ -½Ò¤µ¤ì¤Æ¤¤¤ë¿Í¡¹] -.An John Gilmore -(¥ª¥ê¥¸¥Ê¥ë¤Î¥Ñ¥Ö¥ê¥Ã¥¯¥É¥á¥¤¥óÈǤκî¼Ô), -.An Jay Fenlason -(ºÇ½é¤Î GNU ºî¼Ô), -.An Joy Kendall , -.An Jim Kingdon , -.An David J. MacKenzie , -.An Michael I Bushnell , -.An Noah Friedman -¤½¤·¤Æ -¥Ð¥°¥Õ¥£¥Ã¥¯¥¹¤äÄɲäò¹×¸¥¤·¤Æ¤¯¤ì¤¿Ìµ¿ô¤Î¿Í¡¹¡£ - -¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï NetBSD 1.0 release ¤«¤é¡¢ -.Bx Free -¥°¥ë¡¼¥×¤¬ -¼è¤ê¹þ¤ó¤À¤â¤Î¤Ç¤¹¡£ -.Sh ¥Ð¥° -ÆÃħŪ¤Ê -.Fl C -¥ª¥×¥·¥ç¥ó¤Îưºî¤Ï¡¢ÅÁÅýŪ¤Ê tar ¥×¥í¥°¥é¥à¤Î¤½¤ì¤È¤Ï°Û¤Ê¤ë¤Î¤Ç¡¢ -¤¢¤Þ¤êÍê¤ê¤Ë¤Ï¤Ç¤¤Þ¤»¤ó¡£ -.Pp -.Fl A -¥³¥Þ¥ó¥É¤ÇǤ°Õ¤Î¿ô¤Î tar ¥¢¡¼¥«¥¤¥Ö¤ò·ë¹ç¤Ç¤¤ì¤Ð¤¤¤¤¤Î¤Ç¤¹¤¬¡¢ -¤½¤ì¤Ï¤Ç¤¤Þ¤»¤ó¡£¤³¤ì¤ò¤ä¤í¤¦¤È¤·¤Æ¤â¡¢ 2 ¤ÄÌܰʹߤΥ¢¡¼¥«¥¤¥Ö¤Î -end-of-archive ¥Ö¥í¥Ã¥¯¤¬ºï½ü¤µ¤ì¤º¤Ë»Ä¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ diff --git a/ja_JP.eucJP/man/man8/man8.i386/apm.8 b/ja_JP.eucJP/man/man8/man8.i386/apm.8 deleted file mode 100644 index c64cfc242b..0000000000 --- a/ja_JP.eucJP/man/man8/man8.i386/apm.8 +++ /dev/null @@ -1,131 +0,0 @@ -.\" LP (Laptop Package) -.\" -.\" Copyright (c) 1994 by Tatsumi Hosokawa <hosokawa@jp.FreeBSD.org> -.\" -.\" This software may be used, modified, copied, and distributed, in -.\" both source and binary form provided that the above copyright and -.\" these terms are retained. Under no circumstances is the author -.\" responsible for the proper functioning of this software, nor does -.\" the author assume any responsibility for damages incurred with its -.\" use. -.\" -.\" Original Revision: 1.10 -.\" jpman %Id: apm.8,v 1.4 1997/07/26 21:52:01 horikawa Stab % -.Dd November 1, 1994 -.Dt APM 8 -.Os -.Sh ̾¾Î -.Nm apm, zzz -.Nd APM BIOS ¤ÎÀ©¸æ¤ò¹Ô¤¤¡¢¤½¤Î¾ðÊó¤òɽ¼¨¤¹¤ë -.Sh ½ñ¼° -.Nm apm -.Op Fl ablstzZ -.Op Fl d Ar 1|0 -.Op Fl r Ar delta -.Pp -.Nm zzz -.Sh ²òÀâ -.Nm apm -¤Ï¡¢ Intel / Microsoft APM (Advanced Power Management) BIOS ¤òÀ©¸æ¤·¡¢ -¥é¥Ã¥×¥È¥Ã¥× PC ¾å¤Î APM ¤Î¸½ºß¤Î¾õÂÖ¤òɽ¼¨¤·¤Þ¤¹¡£ -.Nm zzz -¤Ï¡¢ APM À©¸æ¤Ë¤è¤Ã¤Æ¡¢¥·¥¹¥Æ¥à¤ò¥µ¥¹¥Ú¥ó¥É¤·¤Þ¤¹¡£ -.Pp -°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤¬ -.Nm apm -¤ÇÍøÍѲÄǽ¤Ç¤¹ -( -.Nm zzz -¤Ë¤Ï¡¢¥ª¥×¥·¥ç¥ó¤Ï¤¢¤ê¤Þ¤»¤ó)¡£ -¥ª¥×¥·¥ç¥ó¤¬Í¿¤¨¤é¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ -.Nm apm -¤Ï¡¢¸½ºß¤Î APM ¤Î¾õÂÖ¤ä¾ðÊó¤ò¾éĹ¥â¡¼¥É¤Çɽ¼¨¤·¤Þ¤¹¡£ -Ê£¿ô¤Îɽ¼¨¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢ -¤³¤³¤Ë¼¨¤¹½çÈÖ¤ÇÃͤò 1 ¹Ô¤Ë 1 ¤Ä¤º¤Äɽ¼¨¤·¤Þ¤¹¡£ -.Bl -tag -width indent -.It Fl a -¸½ºß¤Î AC ÅŸ»¤Î¾õÂÖ¤òÀ°¿ôÃͤÇɽ¼¨¤·¤Þ¤¹¡£ -0, 1¤¬¤½¤ì¤¾¤ì -.Dq ³°¤ì¤Æ¤¤¤ë (off-line) -¾õÂÖ¤È -.Dq ¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ë (on-line) -¾õÂÖ¤ò¤¢¤é¤ï¤·¤Þ¤¹¡£ -.It Fl b -À°¿ôÃͤǡ¢¸½ºß¤Î¥Ð¥Ã¥Æ¥ê¾õÂÖ¤òɽ¼¨¤·¤Þ¤¹¡£ -0, 1, 2, 3¤È¤¤¤¦ÃͤϤ½¤ì¤¾¤ì¡¢ -.Dq Îɹ¥ (high) -¾õÂÖ¡¢ -.Dq Äã¥Ð¥Ã¥Æ¥ê (low) -¾õÂÖ¡¢ -.Dq ´í¸± (critical) -¾õÂÖ¡¢ -.Dq ½¼ÅÅ (charging) -¾õÂÖ¤ò¤¢¤é¤ï¤·¤Þ¤¹¡£ -.It Fl d -Ä̾ï¤Î¥µ¥¹¥Ú¥ó¥É¤È¥Ç¥£¥¹¥×¥ì¥¤¤Î¥µ¥¹¥Ú¥ó¥É¤òÊ̤˰·¤ï¤Ê¤¤/Ê̤˰·¤¦¤ò¡¢ -¤½¤ì¤¾¤ì -.Ar 1 -¤È -.Ar 0 -¤ÇÀ©¸æ¤·¤Þ¤¹¡£ -¤³¤Î°ú¿ô¤Ï Libretto 30CT ¤ä 50CT ¤ò´Þ¤à -¿¼ï¤Î¥é¥Ã¥×¥È¥Ã¥×¤Çưºî¤·¤Ê¤¤¤è¤¦¤Ç¤¹¡£ -.It Fl l -¸½ºß¤Î¥Ð¥Ã¥Æ¥ê¤Î»Ä¤ê³ä¹ç¤òɽ¼¨¤·¤Þ¤¹¡£ -¤â¤·¡¢¤¢¤Ê¤¿¤Î¥é¥Ã¥×¥È¥Ã¥×¤¬¤³¤Îµ¡Ç½¤òÄ󶡤·¤Æ¤¤¤Ê¤¤»þ¤Ë¤Ï¡¢ -255 ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ -.It Fl r -¥é¥Ã¥×¥È¥Ã¥×¤¬¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¡¢ -¥ì¥¸¥å¡¼¥à¥¦¥§¥¤¥¯¥¢¥Ã¥×¥¿¥¤¥Þ¤ò͸ú¤Ë¤·¤Þ¤¹¡£ -¤³¤ì¤Ë¤è¤ê¥é¥Ã¥×¥È¥Ã¥×¤¬¥µ¥¹¥Ú¥ó¥É¤µ¤ì¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢ -¥é¥Ã¥×¥È¥Ã¥×¤¬¥µ¥¹¥Ú¥ó¥É¤µ¤ì -¥µ¥¹¥Ú¥ó¥É¤«¤é¤Î¥ì¥¸¥å¡¼¥à¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢ -.Ar delta -Éøå¤Ë¥é¥Ã¥×¥È¥Ã¥×¤¬¥ì¥¸¥å¡¼¥à¤·¤Þ¤¹ -(¥µ¥¹¥Ú¥ó¥É¤·¤¿»þ¹ï¤òµ¯ÅÀ¤È¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ -ËÜ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤¿»þ´Ö¤òµ¯ÅÀ¤È¤·¤Þ¤¹)¡£ -.It Fl s -APM ¥µ¥Ý¡¼¥È¾õÂÖ¤òÀ°¿ôÃͤÇɽ¼¨¤·¤Þ¤¹¡£0, 1 ¤È¤¤¤¦ÃͤϤ½¤ì¤¾¤ì¡¢ -.Dq ÍøÍÑÉÔ²Ä (disabled) -¾õÂÖ -.Dq ÍøÍѲÄǽ (enabled) -¾õÂÖ -¤ò¤¢¤é¤ï¤·¤Þ¤¹¡£ -.It Fl t -»Ä¤ê¤Î¥Ð¥Ã¥Æ¥ê»þ´Ö¤òͽ¬¤·¤Æ¡¢ÉÃñ°Ì¤Çɽ¼¨¤·¤Þ¤¹¡£ -ʬ¤«¤é¤Ê¤¤¾ì¹ç¤Ë¤Ï -1 ¤òɽ¼¨¤·¤Þ¤¹¡£ -.It Fl Z -¥¹¥¿¥ó¥Ð¥¤¥â¡¼¥É¤Ë°Ü¹Ô¤·¤Þ¤¹¡£ -Ëܥ⡼¥É¤Ç¤Ï¥Õ¥ë¥Ñ¥ï¡¼¥â¡¼¥É̤Ëþ¡¢¥µ¥¹¥Ú¥ó¥É¥â¡¼¥É°Ê¾å¤ÎÅÅÎϾÃÈñ¤È¤Ê¤ê¤Þ¤¹¡£ -¥¿¥¤¥Þ¤â¤·¤¯¤Ï¥ê¥ó¥°¥¤¥ó¥¸¥±¡¼¥¿¥¤¥Ù¥ó¥È¤Ë¤è¤ê¡¢ -¤³¤Î¾õÂÖ¤«¤é¥ì¥¸¥å¡¼¥à¤¹¤ëµ¡Ç½¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥é¥Ã¥×¥È¥Ã¥×¤¬¤¢¤ê¤Þ¤¹¡£ -apm ¤Î½ÐÎϤˤè¤ê¡¢¥é¥Ã¥×¥È¥Ã¥×¤¬²¿¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤È¼çÄ¥¤·¤Æ¤¤¤ë¤«¤¬Ê¬¤«¤ê¤Þ¤¹¡£ -.It Fl z -¥·¥¹¥Æ¥à¤ò¥µ¥¹¥Ú¥ó¥É¤·¤Þ¤¹¡£¤³¤ì¤Ï¡¢ -.Nm zzz -¤ÈÅù²Á¤Ç¤¹¡£ -.El -.Sh ¥Ð¥° -¤¤¤¯¤Ä¤«¤Î APM ¼ÂÁõ¤Ç¤Ï¡¢ -.Nm apm -¤¬É¬ÍפȤ¹¤ë¥Ñ¥é¥á¡¼¥¿¤¬Ä󶡤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ -¤½¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Ë±÷¤¤¤Æ¤Ï¡¢ -.Nm apm -¤Ï¡¢¤½¤ì¤é¤òÃΤé¤Ê¤¤¤Èɽ¼¨¤·¤Þ¤¹¡£ -.Pp -¤¤¤¯¤Ä¤«¤Î APM ¼ÂÁõ¤Ç¤Ï¡¢ÅŸ»¥¹¥¤¥Ã¥Á¤ò²¡¤·¤¿¤³¤È¤ä¥«¥Ð¡¼¤¬ -ÊĤá¤é¤ì¤¿¤³¤È¤Ê¤É¤Î¥¤¥Ù¥ó¥È¤ò°·¤¦¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£ -¤½¤Î¤è¤¦¤Ê¼ÂÁõ¤Ë±÷¤¤¤Æ¤Ï¡¢ -¥·¥¹¥Æ¥à¤Ï -.Nm apm -¤« -.Nm zzz -.Ar ¤À¤±¤ò -¤Ä¤«¤Ã¤Æ¥µ¥¹¥Ú¥ó¥É¤¹¤ë -.Ar ¤Ù¤ -¤Ç¤¹¡£ -.Sh ´ØÏ¢¹àÌÜ -.Xr apm 4 , -.Xr apmconf 8 -.Sh ºî¼Ô -.An Tatsumi Hosokawa Aq hosokawa@jp.FreeBSD.org diff --git a/ja_JP.eucJP/man/man8/man8.i386/apmd.8 b/ja_JP.eucJP/man/man8/man8.i386/apmd.8 deleted file mode 100644 index 5e184d7c63..0000000000 --- a/ja_JP.eucJP/man/man8/man8.i386/apmd.8 +++ /dev/null @@ -1,296 +0,0 @@ -.\" Copyright (c) 1999 Mitsuru IWASAKI <iwasaki@FreeBSD.org> -.\" Copyright (c) 1999 KOIE Hidetaka <koie@suri.co.jp> -.\" Copyright (c) 1999 Yoshihiko SARUMARU Aq <mistral@imasy.or.jp> -.\" Copyright (c) 1999 Norihiro Kumagai <kuma@nk.rim.or.jp> -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 THE REGENTS OR CONTRIBUTORS 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 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)apmd.8 1.1 (FreeBSD) 6/28/99 -.\" %FreeBSD: src/usr.sbin/apmd/apmd.8,v 1.2.2.4 1999/10/30 19:43:42 mpp Exp % -.\" -.\" jpman %Id: apmd.8,v 1.3 1999/09/15 14:27:48 yt-kage Stab % -.\" -.Dd June 28, 1999 -.Dt APMD 8 -.Os -.Sh ̾¾Î -.Nm apmd -.Nd Advanced Power Management ´Æ»ë¥Ç¡¼¥â¥ó -.Sh ½ñ¼° -.Nm apmd -.Op Fl d -.Op Fl f file -.Op Fl v -.Sh ²òÀâ -.Nm apmd -¤Ï¡¢»ØÄꤷ¤¿ Advanced Power Management -.Pq APM -¥¤¥Ù¥ó¥È¤ò´Æ»ë¤·¡¢ -¤¤¤º¤ì¤«¤Î¥¤¥Ù¥ó¥È¤¬È¯À¸¤·¤¿¾ì¹ç¡¢ -Âбþ¤¹¤ë¥³¥Þ¥ó¥É¥·¡¼¥±¥ó¥¹¤ò¼Â¹Ô¤·¤Þ¤¹¡£ -ÀßÄê¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿¥¤¥Ù¥ó¥È¤Î¤ß¤¬ -.Nm -¤ØÄÌÃΤµ¤ì¡¢¤½¤ì°Ê³°¤Î¥¤¥Ù¥ó¥È¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£ -APM BIOS ¤Ë¤è¤Ã¤ÆÈ¯¹Ô¤µ¤ì¤¿ -¥¤¥Ù¥ó¥È¤ËÂФ·¤Æ¡¢ -.Nm -¤ÏÀßÄê¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿¥³¥Þ¥ó¥É¥·¡¼¥±¥ó¥¹¤ò¼Â¹Ô¤·¤Þ¤¹¡£ -.Nm -¤ò¥µ¥¹¥Ú¥ó¥É/¥¹¥¿¥ó¥Ð¥¤¤ò´Æ»ë¤¹¤ë¤è¤¦¤Ë¤·¤Æµ¯Æ°¤¹¤ë¤È¡¢ -¥«¡¼¥Í¥ë¤Ï¤½¤ì¤é¤ÎÍ׵ᥤ¥Ù¥ó¥È¤ËÂФ¹¤ë -½èÍý¤ò¹Ô¤¤¤Þ¤»¤ó¡£¤½¤Î¤¿¤á¤½¤ì¤é¤Î¥¤¥Ù¥ó¥ÈȯÀ¸»þ¤Ë -½èÍý¤ò¤µ¤»¤¿¤¤¾ì¹ç¤Ï¡¢Å¬Àڤʥ³¥Þ¥ó¥É¤Þ¤¿¤ÏÁȤ߹þ¤ß´Ø¿ô¤ò -ÌÀ¼¨Åª¤ËÀßÄê¥Õ¥¡¥¤¥ë¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ -.Pp -.Nm -¤Ï°Ê²¼¤Î¼Â¹Ô»þ¥ª¥×¥·¥ç¥ó¤òÍý²ò¤·¤Þ¤¹¡£ -.Bl -tag -width -f_file -.It Fl d -¥Ç¥Ð¥Ã¥°¥â¡¼¥É¤Çµ¯Æ°¤·¤Þ¤¹¡£ -¥Ç¡¼¥â¥ó¥â¡¼¥É¤Ç¤Ï¤Ê¤¯¥Õ¥©¥¢¥°¥é¥¦¥ó¥É¤Çưºî¤·¤Þ¤¹¡£ -.It Fl f Ar file -¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¥Õ¥¡¥¤¥ë -.Pa /etc/apmd.conf -¤ÎÂå¤ê¤Ë»ÈÍѤ¹¤ë¡¢Ê̤ÎÀßÄê¥Õ¥¡¥¤¥ë -.Ar file -¤ò»ØÄꤷ¤Þ¤¹¡£ -.It Fl v -¾éĹ¥â¡¼¥É¤Çưºî¤·¤Þ¤¹¡£ -.El -.Pp -.Nm -¤Ïµ¯Æ°»þ¤ËÀßÄê¥Õ¥¡¥¤¥ë -.Po -¥Ç¥Õ¥©¥ë¥È¤Ï -.Pa /etc/apmd.conf -.Pc -¤òÆÉ¤ß¹þ¤ß¡¢ -´Æ»ë¤¹¤Ù¤¥¤¥Ù¥ó¥È¤ò APM ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ØÄÌÃΤ·¤Þ¤¹¡£ -½ªÎ»»þ¤Ë¤Ï APM ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï¥¤¥Ù¥ó¥È¤Î´Æ»ë¤ò¼«Æ°Åª¤Ë²ò½ü¤·¤Þ¤¹¡£ -.Pp -.Nm -¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë SIGHUP ¤ò¼õ¿®¤¹¤ë¤È¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ßľ¤·¤Æ¡¢ -ÀßÄê¤ÎÊѹ¹ÆâÍÆ¤ò APM ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ËÄÌÃΤ·¤Þ¤¹¡£ -.Pp -.Nm -¤Ï¡¢¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë -.Pa /dev/apmctl -¤ò·Ðͳ¤·¤Æ¡¢¥¤¥Ù¥ó¥È¤Î¼õ¤±¼è¤ê¤ä APM ¥·¥¹¥Æ¥àÀ©¸æÍѤΠ-.Xr ioctl 2 -Í×µá¤òȯ¹Ô¤·¤Þ¤¹¡£¤³¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤ÏÇÓ¾À©¸æ¤µ¤ì¤Æ¥ª¡¼¥×¥ó¤µ¤ì¤ë¤¿¤á¡¢ -.Nm -¥×¥í¥»¥¹¤ÏƱ»þ¤Ë 1 ¤Ä¤Î¤ßµ¯Æ°²Äǽ¤Ç¤¹¡£ -.Pp -.Nm -¤¬ APM ¥¤¥Ù¥ó¥È¤ò¼õ¤±¼è¤ë¤È¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤Ç»ØÄꤵ¤ì¤¿ -¥¤¥Ù¥ó¥È¤ËÂбþ¤¹¤ë¥³¥Þ¥ó¥É¥ê¥¹¥È¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë -»Ò¥×¥í¥»¥¹¤òÀ¸À®¤·¡¢ºÆ¤Ó APM ¥¤¥Ù¥ó¥È¤ÎÂÔ¤Á¾õÂ֤ˤʤê¤Þ¤¹¡£ -À¸À®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢ -»ØÄꤵ¤ì¤¿¥³¥Þ¥ó¥É¤ò 1 ¤Ä¤º¤ÄÎóµó¤µ¤ì¤¿½çÈ֤˼¹Ԥ·¤Þ¤¹¡£ -.Pp -.Nm -¤¬ SUSPEND/STANDBY Í×µá¤ËÂФ¹¤ë¥³¥Þ¥ó¥É¥ê¥¹¥È¤ò½èÍý¤·¤Æ¤¤¤ë´Ö¡¢ -¥«¡¼¥Í¥ëÆâ¤Î APM ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ï¡¢APM BIOS ¤ËÂФ·¤Æ -ËèÉà 1 ²ó°Ê¾åÄÌÃΤòȯ¹Ô¤·Â³¤±¤Þ¤¹¡£ -¤³¤ì¤Ë¤è¤Ã¤Æ BIOS ¤Ï¡¢¥³¥Þ¥ó¥É½èÍýÃæ¤Ç¤¢¤êÍ׵᤬ -¤Þ¤À´°·ë¤·¤Æ¤¤¤Ê¤¤¤³¤È¤òǧ¼±¤·¤Þ¤¹¡£ -.Pp -.Nm -¥Ç¡¼¥â¥ó¤Ï¥Õ¥¡¥¤¥ë -.Pa /var/run/apmd.pid -¤òºîÀ®¤·¡¢¥×¥í¥»¥¹ ID ¤òµÏ¿¤·¤Þ¤¹¡£¤³¤ì¤Ï -.Nm -¤ò kill ¤ä¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤Þ¤»¤ë¤¿¤á¤Ë»È¤¨¤Þ¤¹¡£ -.Sh ÀßÄê¥Õ¥¡¥¤¥ë -.Nm -¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Î¹½Â¤¤ÏÈó¾ï¤Ë¥·¥ó¥×¥ë¤Ç¤¹¡£Î㤨¤Ð¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ -.Pp -.Bd -literal -apm_event SUSPENDREQ { - exec "sync && sync && sync"; - exec "sleep 1"; - exec "zzz"; -} -.Ed -.Pp -¤³¤ÎÎã¤Ç¤Ï¡¢APM ¥¤¥Ù¥ó¥È -.Ql SUSPENDREQ -(¥Ç¥£¥¹¥×¥ì¥¤¤òÊĤ¸¤¿»þ¤Ê¤É¤ËȯÀ¸¤·¤Þ¤¹) ¤ò -.Nm -¤¬¼õ¤±¼è¤ë¤È¡¢ -.Ql sync -¥³¥Þ¥ó¥É¤ò 3 ²ó¼Â¹Ô¤·¡¢¾¯¤·ÂԤ俤¢¤È¤Ë -.Nm zzz ( Ns Nm apm Fl z ) -¤ò¼Â¹Ô¤·¤Æ¥·¥¹¥Æ¥à¤ò¥µ¥¹¥Ú¥ó¥É¤µ¤»¤Þ¤¹¡£ -.Pp -.Bl -bullet -.It -apm_event ¥¡¼¥ï¡¼¥É -.Bd -ragged -offset indent -.Ql apm_event -¤Ï¥¡¼¥ï¡¼¥É¤Ç¤¢¤ê¡¢¥¤¥Ù¥ó¥È¤´¤È¤ÎÀßÄê¤Î³«»Ï¤ò»Ø¼¨¤·¤Þ¤¹¡£ -.Ed -.It -APM ¥¤¥Ù¥ó¥È -.Bd -ragged -offset indent -Ê£¿ô¤Î¥¤¥Ù¥ó¥È¤ËÂФ·¤ÆÆ±¤¸½èÍý¤ò¼Â¹Ô¤·¤¿¤¤¾ì¹ç¤Ï¡¢¤½¤ì¤é¤Î¥¤¥Ù¥ó¥È̾¤ò -¥³¥ó¥Þ¤Ç¶èÀڤäƻØÄꤷ¤Þ¤¹¡£Í¸ú¤Ê¥¤¥Ù¥ó¥È̾¤Ï¼¡¤ÎÄ̤ê¤Ç¤¹¡£ -.Bl -item -.It -- -.Nm -¤¬µ¯Æ°¤µ¤ì¤Æ¤¤¤ë¤È¥«¡¼¥Í¥ë¤Ç¤Î½èÍý¤ò¹Ô¤ï¤Ê¤¯¤Ê¤ë¥¤¥Ù¥ó¥È: -.Pp -.Bl -tag -hang -width USERSUSPENDREQ -compact -offset indent -.It STANDBYREQ -.It USERSTANDBYREQ -.It SUSPENDREQ -¥³¥Þ¥ó¥É¥ê¥¹¥È¤Ë sync ¤ò´Þ¤á¤ë¤³¤È¤ò¤ª¤¹¤¹¤á¤·¤Þ¤¹ -.It USERSUSPENDREQ -¥³¥Þ¥ó¥É¥ê¥¹¥È¤Ë sync ¤ò´Þ¤á¤ë¤³¤È¤ò¤ª¤¹¤¹¤á¤·¤Þ¤¹ -.It BATTERYLOW -¥³¥Þ¥ó¥É¥ê¥¹¥È¤Ï zzz ¤Î¤ß¤ò¤ª¤¹¤¹¤á¤·¤Þ¤¹ -.El -.It -- ¥«¡¼¥Í¥ë¤Î½èÍý½ªÎ»¸å¤Ë -.Nm -¤ØÄÌÃΤµ¤ì¤ë¥¤¥Ù¥ó¥È: -.Pp -.Bl -tag -hang -width USERSUSPENDREQ -compact -offset indent -.It NORMRESUME -.It CRITRESUME -.It STANDBYRESUME -.It POWERSTATECHANGE -.It UPDATETIME -.It CAPABILITIESCHANGE -.El -.Pp -¾åµ°Ê³°¤Î¥¤¥Ù¥ó¥È¤Ï -.Nm -¤ØÄÌÃΤµ¤ì¤Þ¤»¤ó¡£ -.El -.Ed -.Bl -bullet -.It -¥³¥Þ¥ó¥É¥é¥¤¥óʸˡ -.Bd -ragged -offset indent -Á°½Ò¤ÎÎã¤Ç¤Ï¡¢ -.Ql exec -¤«¤é»Ï¤Þ¤ë 3 ¹Ô¤Ï¥¤¥Ù¥ó¥È¤ËÂФ¹¤ë¥³¥Þ¥ó¥É¤Ç¤¹¡£ -¤½¤ì¤¾¤ì¤Î¹Ô¤Ï¥»¥ß¥³¥í¥ó¤Ç½ªÎ»¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ -¥¤¥Ù¥ó¥È¤ËÂФ¹¤ë¥³¥Þ¥ó¥É¥ê¥¹¥È¤Ï -.Ql { -¤È -.Ql } -¤Ç°Ï¤ß¤Þ¤¹¡£ -.Nm -¤Ï¥À¥Ö¥ë¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¤Ç°Ï¤Þ¤ì¤¿¥³¥Þ¥ó¥É¤Î¼Â¹Ô¤Ë -.Xr system 3 -¤ÈƱÍÍ¤Ë -.Pa /bin/sh -¤ò»ÈÍѤ·¤Þ¤¹¡£³Æ¥³¥Þ¥ó¥É¤Ï¥³¥Þ¥ó¥É¥ê¥¹¥È¤ÎºÇ¸å¤ËÅþ㤹¤ë¤« 0 °Ê³°¤Î -½ªÎ»¥³¡¼¥É¤Ç½ª¤ï¤ë¤Þ¤Ç½çÈ֤˼¹Ԥµ¤ì¤Þ¤¹¡£ -.Nm -¤Ï¡¢¼ºÇÔ¤·¤¿¥³¥Þ¥ó¥É¤Î½ªÎ»¥³¡¼¥É¤ò¡¢ -.Xr syslog 3 -·Ðͳ¤ÇÊó¹ð¤·¤Þ¤¹¡£ -²Ã¤¨¤Æ APM BIOS ¤«¤é¤ÎÍ׵ᥤ¥Ù¥ó¥È¤ò¼è¤ê¾Ã¤·¤Þ¤¹¡£ -.Ed -.It -ÁȤ߹þ¤ß´Ø¿ô -.Bd -ragged -offset indent -¥³¥Þ¥ó¥É¹Ô¤ÎÂå¤ê¤Ë -.Nm -¤ÎÁȤ߹þ¤ß´Ø¿ô¤ò»ØÄê¤Ç¤¤Þ¤¹¡£ÁȤ߹þ¤ß´Ø¿ô¤Ï¥³¥Þ¥ó¥É¹Ô¤ÈƱÍÍ¤Ë -¥»¥ß¥³¥í¥ó¤Ç½ªÎ»¤·¤Þ¤¹¡£¼¡¤ÎÁȤ߹þ¤ß´Ø¿ô¤¬¸½ºß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ -.Bl -item -.It -- reject: -.Bd -ragged -offset indent -APM BIOS ¤«¤é¤ÎľÁ°¤ÎÍ×µá¤òµñÈݤ·¤Þ¤¹¡£¥Ç¥£¥¹¥×¥ì¥¤¤òÊĤ¸¤¿»þ¤ËȯÀ¸¤¹ -¤ë SUSPEND Í×µá¤òµñÈݤ·¤Æ¡¢Âå¤ê¤Ë STANDBY ¾õÂ֤ˤ·¤¿¤¤¾ì¹ç¤Ê¤É¤Ë»ÈÍѤ· -¤Þ¤¹¡£ -.Ed -.El -.El -.Sh »ÈÍÑÎã -ÀßÄê¥Õ¥¡¥¤¥ë¤Î¥µ¥ó¥×¥ë¤Ë¤Ï¡¢°Ê²¼¤Î¤â¤Î¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ -.Bd -literal -apm_event SUSPENDREQ { - exec "/etc/rc.suspend"; -} - -apm_event USERSUSPENDREQ { - exec "sync && sync && sync"; - exec "sleep 1"; - exec "apm -z"; -} - -apm_event NORMRESUME, STANDBYRESUME { - exec "/etc/rc.resume"; -} - -# resume event configuration for serial mouse users by -# reinitializing a moused(8) connected to a serial port. -# -#apm_event NORMRESUME { -# exec "kill -HUP `cat /var/run/moused.pid`"; -#} - -# suspend request event configuration for ATA HDD users: -# execute standby instead of suspend. -# -#apm_event SUSPENDREQ { -# reject; -# exec "sync && sync && sync"; -# exec "sleep 1"; -# exec "apm -Z"; -#} -.Ed -.Sh ´ØÏ¢¥Õ¥¡¥¤¥ë -.Bl -tag -width /etc/apmd.conf -compact -.It Pa /etc/apmd.conf -.It Pa /dev/apmctl -.It Pa /var/run/apmd.pid -.El -.Sh ´ØÏ¢¹àÌÜ -.Xr apm 4 , -.Xr apm 8 , -.Xr apmconf 8 -.Sh ºî¼Ô -.An Mitsuru IWASAKI Aq iwasaki@FreeBSD.org -.An KOIE Hidetaka Aq koie@suri.co.jp -.Pp -¤Þ¤¿¡¢ -.An Warner Losh Aq imp@FreeBSD.org , -.An Hiroshi Yamashita Aq bluemoon@msj.biglobe.ne.jp , -.An Yoshihiko SARUMARU Aq mistral@imasy.or.jp , -.An Norihiro Kumagai Aq kuma@nk.rim.or.jp , -.An NAKAGAWA Yoshihisa Aq nakagawa@jp.FreeBSD.org , -.An Nick Hilliard Aq nick@foobar.org -¤Ë¤è¤ë¹×¸¥¤¬¤¢¤ê¤Þ¤·¤¿¡£ -.Sh Îò»Ë -.Nm -¥³¥Þ¥ó¥É¤Ï -.Fx 3.3 -¤«¤éÅо줷¤Þ¤·¤¿¡£ diff --git a/ja_JP.eucJP/share/sgml/authors.ent b/ja_JP.eucJP/share/sgml/authors.ent deleted file mode 100644 index 6d5e64d297..0000000000 --- a/ja_JP.eucJP/share/sgml/authors.ent +++ /dev/null @@ -1,466 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD Japanese Documentation Project - - Original revision: 1.79 - $FreeBSD: doc/ja_JP.eucJP/books/handbook/authors.ent,v 1.24 2000/02/27 03:47:19 motoyuki Exp $ - - Names and email address of contributing authors and CVS committers. - Entity names for committers should be the same as their login names on - freefall.FreeBSD.org. - - Use these entities when referencing people. - - Please keep this list in alphabetical order by entity names. ---> - -<!ENTITY a.abial "Andrzej Bialecki <email>abial@FreeBSD.org</email>"> - -<!ENTITY a.ache "Andrey A. Chernov <email>ache@FreeBSD.org</email>"> - -<!ENTITY a.adam "Adam David <email>adam@FreeBSD.org</email>"> - -<!ENTITY a.ade "Ade Lovett <email>ade@FreeBSD.org</email>"> - -<!ENTITY a.alc "Alan L. Cox <email>alc@FreeBSD.org</email>"> - -<!ENTITY a.alex "Alex Nash <email>alex@FreeBSD.org</email>"> - -<!ENTITY a.alfred "Alfred Perlstein <email>alfred@FreeBSD.org</email>"> - -<!ENTITY a.amurai "¼°æ ½ß <email>amurai@FreeBSD.org</email>"> - -<!ENTITY a.andreas "Andreas Klemm <email>andreas@FreeBSD.org</email>"> - -<!ENTITY a.andy "Andrey Zakhvatov <email>andy@FreeBSD.org</email>"> - -<!ENTITY a.archie "Archie Cobbs <email>archie@FreeBSD.org</email>"> - -<!ENTITY a.asami "Àõ¸« ¸ <email>asami@FreeBSD.org</email>"> - -<!ENTITY a.asmodai "Jeroen Ruigrok/Asmodai <email>asmodai@FreeBSD.org</email>"> - -<!ENTITY a.awebster "Andrew Webster <email>awebster@pubnix.net</email>"> - -<!ENTITY a.bde "Bruce Evans <email>bde@FreeBSD.org</email>"> - -<!ENTITY a.billf "Bill Fumerola <email>billf@FreeBSD.org</email>"> - -<!ENTITY a.bp "Boris Popov <email>bp@FreeBSD.org</email>"> - -<!ENTITY a.brandon "Brandon Gillespie <email>brandon@FreeBSD.org</email>"> - -<!ENTITY a.brian "Brian Somers <email>brian@FreeBSD.org</email>"> - -<!ENTITY a.bsd "Brian S. Dean <email>bsd@FreeBSD.org</email>"> - -<!ENTITY a.cawimm "Charles A. Wimmer <email>cawimm@FreeBSD.org</email>"> - -<!ENTITY a.cg "Cameron Grant <email>cg@FreeBSD.org</email>"> - -<!ENTITY a.charnier "Philippe Charnier <email>charnier@FreeBSD.org</email>"> - -<!ENTITY a.chris "Chris Costello <email>chris@FreeBSD.org</email>"> - -<!ENTITY a.chuck "Chuck Robey <email>chuckr@glue.umd.edu</email>"> - -<!ENTITY a.chuckr "Chuck Robey <email>chuckr@FreeBSD.org</email>"> - -<!ENTITY a.cpiazza "Chris Piazza <email>cpiazza@FreeBSD.org</email>"> - -<!ENTITY a.cracauer "Martin Cracauer <email>cracauer@FreeBSD.org</email>"> - -<!ENTITY a.csgr "Geoff Rehmet <email>csgr@FreeBSD.org</email>"> - -<!ENTITY a.cwt "Chris Timmons <email>cwt@FreeBSD.org</email>"> - -<!ENTITY a.dan "Dan Moschuk <email>dan@FreeBSD.org</email>"> - -<!ENTITY a.danny "Daniel O'Callaghan <email>danny@FreeBSD.org</email>"> - -<!ENTITY a.darrenr "Darren Reed <email>darrenr@FreeBSD.org</email>"> - -<!ENTITY a.davidn "David Nugent <email>davidn@blaze.net.au</email>"> - -<!ENTITY a.dbaker "Daniel Baker <email>dbaker@FreeBSD.org</email>"> - -<!ENTITY a.dburr "Donald Burr <email>dburr@FreeBSD.org</email>"> - -<!ENTITY a.dcs "Daniel C. Sobral <email>dcs@FreeBSD.org</email>"> - -<!ENTITY a.deischen "Daniel Eischen <email>deischen@FreeBSD.org</email>"> - -<!ENTITY a.des "Dag-Erling C. Smørgrav <email>des@FreeBSD.org</email>"> - -<!ENTITY a.dfr "Doug Rabson <email>dfr@FreeBSD.org</email>"> - -<!ENTITY a.dg "David Greenman <email>dg@FreeBSD.org</email>"> - -<!ENTITY a.dick "Richard Seaman Jr. <email>dick@FreeBSD.org</email>"> - -<!ENTITY a.dillon "Matthew Dillon <email>dillon@FreeBSD.org</email>"> - -<!ENTITY a.dima "Dima Ruban <email>dima@FreeBSD.org</email>"> - -<!ENTITY a.dirk "Dirk Frömberg <email>dirk@FreeBSD.org</email>"> - -<!ENTITY a.dirkvangulik "Dirk-Willem van Gulik <email>Dirk.vanGulik@jrc.it</email>"> - -<!ENTITY a.dt "Dmitrij Tejblum <email>dt@FreeBSD.org</email>"> - -<!ENTITY a.dufault "Peter Dufault <email>dufault@FreeBSD.org</email>"> - -<!ENTITY a.dwhite "Doug White <email>dwhite@FreeBSD.org</email>"> - -<!ENTITY a.dyson "John Dyson <email>dyson@FreeBSD.org</email>"> - -<!ENTITY a.eivind "Eivind Eklund <email>eivind@FreeBSD.org</email>"> - -<!ENTITY a.ejc "Eric J. Chet <email>ejc@FreeBSD.org</email>"> - -<!ENTITY a.erich "Eric L. Hernes <email>erich@FreeBSD.org</email>"> - -<!ENTITY a.faq "FAQ ÊݼéôÅö¼Ô <email>faq@FreeBSD.org</email>"> - -<!ENTITY a.fenner "Bill Fenner <email>fenner@FreeBSD.org</email>"> - -<!ENTITY a.flathill "Ê¿²¬ À¬°ìϯ <email>flathill@FreeBSD.org</email>"> - -<!ENTITY a.foxfair "Howard F. Hu <email>foxfair@FreeBSD.org</email>"> - -<!ENTITY a.fsmp "Steve Passe <email>fsmp@FreeBSD.org</email>"> - -<!ENTITY a.gallatin "Andrew Gallatin <email>gallatin@FreeBSD.org</email>"> - -<!ENTITY a.gclarkii "Gary Clark II <email>gclarkii@FreeBSD.org</email>"> - -<!ENTITY a.gehenna "Masahide MAEKAWA <email>gehenna@FreeBSD.org</email>"> - -<!ENTITY a.gena "Gennady B. Sorokopud <email>gena@NetVision.net.il</email>"> - -<!ENTITY a.ghelmer "Guy Helmer <email>ghelmer@cs.iastate.edu</email>"> - -<!ENTITY a.gibbs "Justin T. Gibbs <email>gibbs@FreeBSD.org</email>"> - -<!ENTITY a.gioria "Sebastien Gioria <email>gioria@FreeBSD.org</email>"> - -<!ENTITY a.gj "Gary Jennejohn <email>gj@FreeBSD.org</email>"> - -<!ENTITY a.gpalmer "Gary Palmer <email>gpalmer@FreeBSD.org</email>"> - -<!ENTITY a.graichen "Thomas Graichen <email>graichen@FreeBSD.org</email>"> - -<!ENTITY a.green "Brian F. Feldman <email>green@FreeBSD.org</email>"> - -<!ENTITY a.grog "Greg Lehey <email>grog@FreeBSD.org</email>"> - -<!ENTITY a.groudier "Gerard Roudier <email>groudier@club-internet.fr</email>"> - -<!ENTITY a.gryphon "Coranth Gryphon <email>gryphon@healer.com</email>"> - -<!ENTITY a.gsutter "Gregory Sutter <email>gsutter@FreeBSD.org</email>"> - -<!ENTITY a.guido "Guido van Rooij <email>guido@FreeBSD.org</email>"> - -<!ENTITY a.hanai "²Ö°æ ¹ÀÇ· <email>hanai@FreeBSD.org</email>"> - -<!ENTITY a.handy "Brian N. Handy <email>handy@sxt4.physics.montana.edu</email>"> - -<!ENTITY a.roger "Roger Hardiman <email>roger@freebsd.org</email>"> - -<!ENTITY a.helbig "Wolfgang Helbig <email>helbig@FreeBSD.org</email>"> - -<!ENTITY a.hm "Hellmuth Michaelis <email>hm@FreeBSD.org</email>"> - -<!ENTITY a.hoek "Tim Vanderhoek <email>hoek@FreeBSD.org</email>"> - -<!ENTITY a.hosokawa "ºÙÀî ã¸Ê <email>hosokawa@FreeBSD.org</email>"> - -<!ENTITY a.hsu "Jeffrey Hsu <email>hsu@FreeBSD.org</email>"> - -<!ENTITY a.imp "Warner Losh <email>imp@FreeBSD.org</email>"> - -<!ENTITY a.imura "Ryuichiro IMURA <email>imura@FreeBSD.org</email>"> - -<!ENTITY a.itojun "ÇëÌî (itojun) ½ã°ìϺ <email>itojun@itojun.org</email>"> - -<!ENTITY a.iwasaki "´äºê Ëþ <email>iwasaki@FreeBSD.org</email>"> - -<!ENTITY a.jasone "Jason Evans <email>jasone@FreeBSD.org</email>"> - -<!ENTITY a.jb "John Birrell <email>jb@cimlogic.com.au</email>"> - -<!ENTITY a.jdp "John Polstra <email>jdp@FreeBSD.org</email>"> - -<!ENTITY a.jedgar "Chris D. Faulhaber <email>jedgar@FreeBSD.org</email>"> - -<!ENTITY a.jehamby "Jake Hamby <email>jehamby@lightside.com</email>"> - -<!ENTITY a.jesusr "Jesus Rodriguez <email>jesusr@FreeBSD.org</email>"> - -<!ENTITY a.jfieber "John Fieber <email>jfieber@FreeBSD.org</email>"> - -<!ENTITY a.jfitz "James FitzGibbon <email>jfitz@FreeBSD.org</email>"> - -<!ENTITY a.jhay "John Hay <email>jhay@FreeBSD.org</email>"> - -<!ENTITY a.jhb "John Baldwin <email>jhb@FreeBSD.org</email>"> - -<!ENTITY a.jhs "Julian Stacey <email>jhs@FreeBSD.org</email>"> - -<!ENTITY a.jim "Jim Mock <email>jim@FreeBSD.org</email>"> - -<!ENTITY a.jkh "Jordan K. Hubbard <email>jkh@FreeBSD.org</email>"> - -<!ENTITY a.jkoshy "Joseph Koshy <email>jkoshy@FreeBSD.org</email>"> - -<!ENTITY a.jlemon "Jonathan Lemon <email>jlemon@FreeBSD.org</email>"> - -<!ENTITY a.jlind "John Lind <email>john@starfire.MN.ORG</email>"> - -<!ENTITY a.jlrobin "James L. Robinson <email>jlrobin@FreeBSD.org</email>"> - -<!ENTITY a.jmacd "Joshua Peck Macdonald <email>jmacd@FreeBSD.org</email>"> - -<!ENTITY a.jmas "Jose M. Alcaide <email>jmas@FreeBSD.org</email>"> - -<!ENTITY a.jmb "Jonathan M. Bresler <email>jmb@FreeBSD.org</email>"> - -<!ENTITY a.jmg "John-Mark Gurney <email>jmg@FreeBSD.org</email>"> - -<!ENTITY a.jmz "Jean-Marc Zucconi <email>jmz@FreeBSD.org</email>"> - -<!ENTITY a.joe "Josef Karthauser <email>joe@FreeBSD.org</email>"> - -<!ENTITY a.joerg "Jörg Wunsch <email>joerg@FreeBSD.org</email>"> - -<!ENTITY a.john "John Cavanaugh <email>john@FreeBSD.org</email>"> - -<!ENTITY a.jraynard "James Raynard <email>jraynard@FreeBSD.org</email>"> - -<!ENTITY a.jseger "Justin Seger <email>jseger@FreeBSD.org</email>"> - -<!ENTITY a.julian "Julian Elischer <email>julian@FreeBSD.org</email>"> - -<!ENTITY a.jvh "Johannes Helander <email>jvh@FreeBSD.org</email>"> - -<!ENTITY a.karl "Karl Strickland <email>karl@FreeBSD.org</email>"> - -<!ENTITY a.kato "²ÃÆ£ ¾æÅµ <email>kato@FreeBSD.org</email>"> - -<!ENTITY a.kelly "Sean Kelly <email>kelly@ad1440.net</email>"> - -<!ENTITY a.ken "Kenneth D. Merry <email>ken@FreeBSD.org</email>"> - -<!ENTITY a.kevlo "Kevin Lo <email>kevlo@FreeBSD.org</email>"> - -<!ENTITY a.kjc "Ĺ ·òÆóϯ <email>kjc@FreeBSD.org</email>"> - -<!ENTITY a.knu "Éð¼Ô ¾½µª <email>knu@FreeBSD.org</email>"> - -<!ENTITY a.kris "Kris Kennaway <email>kris@FreeBSD.org</email>"> - -<!ENTITY a.kuriyama "·ª»³ ½ß <email>kuriyama@FreeBSD.org</email>"> - -<!ENTITY a.lars "Lars Fredriksen <email>lars@FreeBSD.org</email>"> - -<!ENTITY a.lile "Larry Lile <email>lile@FreeBSD.org</email>"> - -<!ENTITY a.ljo "L Jonas Olsson <email>ljo@FreeBSD.org</email>"> - -<!ENTITY a.luoqi "Luoqi Chen <email>luoqi@FreeBSD.org</email>"> - -<!ENTITY a.marcel "Marcel Moolenaar <email>marcel@FreeBSD.org</email>"> - -<!ENTITY a.markm "Mark Murray <email>markm@FreeBSD.org</email>"> - -<!ENTITY a.martin "Martin Renters <email>martin@FreeBSD.org</email>"> - -<!ENTITY a.max "Ãæº¬ ²íʸ <email>max@FreeBSD.org</email>"> - -<!ENTITY a.mayo "Mark Mayo <email>mark@vmunix.com</email>"> - -<!ENTITY a.mbarkah "Ade Barkah <email>mbarkah@FreeBSD.org</email>"> - -<!ENTITY a.mckay "Stephen McKay <email>mckay@FreeBSD.org</email>"> - -<!ENTITY a.mckusick "Kirk McKusick <email>mckusick@FreeBSD.org</email>"> - -<!ENTITY a.md "Mark Dapoz <email>md@bsc.no</email>"> - -<!ENTITY a.mdodd "Matthew N. Dodd <email>winter@jurai.net</email>"> - -<!ENTITY a.mharo "Michael Haro <email>mharo@FreeBSD.org</email>"> - -<!ENTITY a.mjacob "Matthew Jacob <email>mjacob@FreeBSD.org</email>"> - -<!ENTITY a.mks "Mike Spengler <email>mks@FreeBSD.org</email>"> - -<!ENTITY a.motoyuki "º£Ìî ¸µÇ· <email>motoyuki@FreeBSD.org</email>"> - -<!ENTITY a.mph "Matthew Hunt <email>mph@FreeBSD.org</email>"> - -<!ENTITY a.mpp "Mike Pritchard <email>mpp@FreeBSD.org</email>"> - -<!ENTITY a.msmith "Michael Smith <email>msmith@FreeBSD.org</email>"> - -<!ENTITY a.mtaylor "Mark J. Taylor <email>mtaylor@FreeBSD.org</email>"> - -<!ENTITY a.nakai "Ãæ°æ ¹¬Çî <email>nakai@FreeBSD.org</email>"> - -<!ENTITY a.nate "Nate Williams <email>nate@FreeBSD.org</email>"> - -<!ENTITY a.nbm "Neil Blakey-Milner <email>nbm@FreeBSD.org</email>"> - -<!ENTITY a.nectar "Jacques Vidrine <email>nectar@FreeBSD.org</email>"> - -<!ENTITY a.newton "Mark Newton <email>newton@FreeBSD.org</email>"> - -<!ENTITY a.nhibma "Nick Hibma <email>n_hibma@FreeBSD.org</email>"> - -<!ENTITY a.nik "Nik Clayton <email>nik@FreeBSD.org</email>"> - -<!ENTITY a.nsayer "Nick Sayer <email>nsayer@FreeBSD.org</email>"> - -<!ENTITY a.nsj "Nate Johnson <email>nsj@FreeBSD.org</email>"> - -<!ENTITY a.nyan "Yoshihiro Takahashi <email>nyan@FreeBSD.org</email>"> - -<!ENTITY a.obrien "David O'Brien <email>obrien@FreeBSD.org</email>"> - -<!ENTITY a.olah "Andras Olah <email>olah@FreeBSD.org</email>"> - -<!ENTITY a.opsys "Chris Watson <email>opsys@open-systems.net</email>"> - -<!ENTITY a.patrick "Patrick S. Gardella <email>patrick@FreeBSD.org</email>"> - -<!ENTITY a.paul "Paul Richards <email>paul@FreeBSD.org</email>"> - -<!ENTITY a.pb "Pierre Beyssac <email>pb@fasterix.freenix.org</email>"> - -<!ENTITY a.pds "Peter da Silva <email>pds@FreeBSD.org</email>"> - -<!ENTITY a.peter "Peter Wemm <email>peter@FreeBSD.org</email>"> - -<!ENTITY a.phantom "Alexey Zelkin <email>phantom@FreeBSD.org</email>"> - -<!ENTITY a.phk "Poul-Henning Kamp <email>phk@FreeBSD.org</email>"> - -<!ENTITY a.pho "Peter Holm <email>pho@FreeBSD.org</email>"> - -<!ENTITY a.piero "Piero Serini <email>piero@strider.inet.it</email>"> - -<!ENTITY a.pjc "Peter Childs <email>pjchilds@imforei.apana.org.au</email>"> - -<!ENTITY a.proven "Chris Provenzano <email>proven@FreeBSD.org</email>"> - -<!ENTITY a.ps "Paul Saab <email>ps@FreeBSD.org</email>"> - -<!ENTITY a.pst "Paul Traina <email>pst@FreeBSD.org</email>"> - -<!ENTITY a.reg "Jeremy Lea <email>reg@FreeBSD.org</email>"> - -<!ENTITY a.rgrimes "Rodney Grimes <email>rgrimes@FreeBSD.org</email>"> - -<!ENTITY a.rhuff "Robert Huff <email>rhuff@cybercom.net</email>"> - -<!ENTITY a.ricardag "Ricardo AG <email>ricardag@ag.com.br</email>"> - -<!ENTITY a.rich "Rich Murphey <email>rich@FreeBSD.org</email>"> - -<!ENTITY a.rnordier "Robert Nordier <email>rnordier@FreeBSD.org</email>"> - -<!ENTITY a.roberto "Ollivier Robert <email>roberto@FreeBSD.org</email>"> - -<!ENTITY a.rse "Ralf S. Engelschall <email>rse@FreeBSD.org</email>"> - -<!ENTITY a.ru "Ruslan Ermilov <email>ru@FreeBSD.org</email>"> - -<!ENTITY a.rwatson "Robert Watson <email>rwatson@FreeBSD.org</email>"> - -<!ENTITY a.sada "º´ÅÄ ·û¼£ <email>sada@FreeBSD.org</email>"> - -<!ENTITY a.scrappy "Marc G. Fournier <email>scrappy@FreeBSD.org</email>"> - -<!ENTITY a.se "Stefan Esser <email>se@FreeBSD.org</email>"> - -<!ENTITY a.sef "Sean Eric Fagan <email>sef@FreeBSD.org</email>"> - -<!ENTITY a.sheldonh "Sheldon Hearn <email>sheldonh@FreeBSD.org</email>"> - -<!ENTITY a.shige "Ê¡Åç ÌÐÇ· <email>shige@FreeBSD.org</email>"> - -<!ENTITY a.shin "°æ¾å ÎÉ¿® <email>shin@FreeBSD.org</email>"> - -<!ENTITY a.simokawa "²¼Àî ±ÑÉÒ <email>simokawa@FreeBSD.org</email>"> - -<!ENTITY a.smace "Scott Mace <email>smace@FreeBSD.org</email>"> - -<!ENTITY a.smpatel "Sujal Patel <email>smpatel@FreeBSD.org</email>"> - -<!ENTITY a.sos "Søren Schmidt <email>sos@FreeBSD.org</email>"> - -<!ENTITY a.stark "Gene Stark <email>stark@FreeBSD.org</email>"> - -<!ENTITY a.stb "Stefan Bethke <email>stb@FreeBSD.org</email>"> - -<!ENTITY a.steve "Steve Price <email>steve@FreeBSD.org</email>"> - -<!ENTITY a.sumikawa "³ÑÀî ½¡¶á <email>sumikawa@FreeBSD.org</email>"> - -<!ENTITY a.swallace "Steven Wallace <email>swallace@FreeBSD.org</email>"> - -<!ENTITY a.tanimura "ë¼ Àµ¹ä <email>tanimura@FreeBSD.org</email>"> - -<!ENTITY a.taoka "ÅIJ¬ ÃÒ»Ö <email>taoka@FreeBSD.org</email>"> - -<!ENTITY a.tedm "Ted Mittelstaedt <email>tedm@FreeBSD.org</email>"> - -<!ENTITY a.tegge "Tor Egge <email>tegge@FreeBSD.org</email>"> - -<!ENTITY a.tg "Thomas Gellekum <email>tg@FreeBSD.org</email>"> - -<!ENTITY a.thepish "Peter Hawkins <email>thepish@FreeBSD.org</email>"> - -<!ENTITY a.tom "Tom Hukins <email>tom@FreeBSD.org</email>"> - -<!ENTITY a.torstenb "Torsten Blum <email>torstenb@FreeBSD.org</email>"> - -<!ENTITY a.truckman "Don “Truck” Lewis <email>truckman@FreeBSD.org</email>"> - -<!ENTITY a.ugen "Ugen J.S.Antsilevich <email>ugen@FreeBSD.org</email>"> - -<!ENTITY a.uhclem "Frank Durda IV <email>uhclem@FreeBSD.org</email>"> - -<!ENTITY a.ulf "Ulf Zimmermann <email>ulf@FreeBSD.org</email>"> - -<!ENTITY a.ume "ÇßËÜ È¥ <email>ume@FreeBSD.org</email>"> - -<!ENTITY a.unfurl "Bill Swingle <email>unfurl@FreeBSD.org</email>"> - -<!ENTITY a.vanilla "Vanilla I. Shu <email>vanilla@FreeBSD.org</email>"> - -<!ENTITY a.wes "Wes Peters <email>wes@FreeBSD.org</email>"> - -<!ENTITY a.whiteside "Don Whiteside <email>whiteside@acm.org</email>"> - -<!ENTITY a.wilko "Wilko Bulte <email>wilko@FreeBSD.org</email>"> - -<!ENTITY a.will "Will Andrews <email>will@FreeBSD.org</email>"> - -<!ENTITY a.wlloyd "Bill Lloyd <email>wlloyd@mpd.ca</email>"> - -<!ENTITY a.wollman "Garrett Wollman <email>wollman@FreeBSD.org</email>"> - -<!ENTITY a.wosch "Wolfram Schneider <email>wosch@FreeBSD.org</email>"> - -<!ENTITY a.wpaul "Bill Paul <email>wpaul@FreeBSD.org</email>"> - -<!ENTITY a.wsanchez "Wilfredo Sánchez <email>wsanchez@FreeBSD.org</email>"> - -<!ENTITY a.yokota "²£ÅÄ ÏÂδ <email>yokota@FreeBSD.org</email>"> - - -<!-- Mailing Lists --> -<!ENTITY a.www "FreeBSD Webmaster Mailing List <email>www@FreeBSD.org</email>"> - diff --git a/ja_JP.eucJP/share/sgml/jauthors.ent b/ja_JP.eucJP/share/sgml/jauthors.ent deleted file mode 100644 index 2d22de1cbc..0000000000 --- a/ja_JP.eucJP/share/sgml/jauthors.ent +++ /dev/null @@ -1,92 +0,0 @@ -<!-- - The FreeBSD Documentation Project - The FreeBSD Japanese Documentation Project - - Original revision: - $FreeBSD: doc/ja_JP.eucJP/books/handbook/jauthors.ent,v 1.4 1999/09/12 02:31:20 kuriyama Exp $ - - Names and email address of Japanese local contributing authors and - castle.jp.freebsd.org CVS committers. - Entity names for committers on castle should be the same as their login - names on castle.jp.FreeBSD.ORG. - - Use these entities when referencing people. - - Please keep this list in alphabetical order by entity names. ---> - -<!ENTITY a.jp.arimura "ͼ ¸÷À² <email>arimura@jp.FreeBSD.org</email>"> - -<!ENTITY a.jp.candy "¿ÀÅÄÉÒ¹ <email>candy@fct.kgc.co.jp</email>"> - -<!ENTITY a.jp.condle "¿¹ ľǷ <email>condle@mcu.or.jp</email>"> - -<!ENTITY a.jp.g92k0323 "¼íÌî ¹¨¼ù <email>g92k0323@cfi.waseda.ac.jp</email>"> - -<!ENTITY a.jp.graphite "ÀÐËÏ µª¹§ <email>graphite@jp.FreeBSD.org</email>"> - -<!ENTITY a.jp.hino "ÆüÌî ¹À»Ö <email>hino@ccm.cl.nec.co.jp</email>"> - -<!ENTITY a.jp.ikuo "ÃæÀî °êÉ× <email>ikuo@jp.FreeBSD.org</email>"> - -<!ENTITY a.jp.iwasaki "´äºê Ëþ <email>iwasaki@jp.FreeBSD.ORG</email>"> - -<!ENTITY a.jp.katsu "¾¡´ÖÅÄ ½ß <email>katsu@baum.kiyose.tokyo.jp</email>"> - -<!ENTITY a.jp.kimura "ÌÚ¼ À®È¼ <email>kimura@netlab.is.tsukuba.ac.jp</email>"> - -<!ENTITY a.jp.kiroh "¤Ï¤é¤À ¤¤í¤¦ <email>kiroh@jp.FreeBSD.org</email>"> - -<!ENTITY a.jp.kmiyakoda "ÅÔÅÄ¡¡¹îϺ <email>kmiyakoda@ctn.co.jp</email>"> - -<!ENTITY a.jp.masaki "¶ûÅÄ ¾»´õ <email>masaki@po.iijnet.or.jp</email>"> - -<!ENTITY a.jp.mihoko "ÅÄÃæ ÈþÊæ»Ò <email>Mihoko_Tanaka@yokogawa.co.jp</email>"> - -<!ENTITY a.jp.mita "»°ÅÄ µÈϺ <email>mita@jp.FreeBSD.ORG</email>"> - -<!ENTITY a.jp.miyasita "µÜ²¼·òÊå - <email>miyasita@hashilab.ee.ous.ac.jp</email>"> - -<!-- -<!ENTITY a.jp.motoyuki "º£Ìî ¸µÇ· <email>motoyuki@jp.FreeBSD.org</email>"> -authors.sgml ¤ËÆþ¤Ã¤Æ¤¤¤ë¤Î¤Ç¥³¥á¥ó¥È¥¢¥¦¥È ---> - -<!ENTITY a.jp.mrt "¤à¤é¤¿¤·¤å¤¦¤¤¤Á¤í¤¦ - <email>mrt@mickey.ai.kyutech.ac.jp</email>"> - -<!ENTITY a.jp.nakai "Ãæ°æ ¹¬Çî <email>nakai@mlab.t.u-tokyo.ac.jp</email>"> - -<!ENTITY a.jp.nao "ÉÍÅÄ Ä¾¼ù <email>nao@tom-yam.or.jp</email>"> - -<!ENTITY a.jp.saeki "º´Çì δ»Ê <email>saeki@jp.FreeBSD.org</email>"> - -<!ENTITY a.jp.shou "¹À¥ ¾»°ì <email>shou@kt.rim.or.jp</email>"> - -<!ENTITY a.jp.simokawa "²¼Àî ±ÑÉÒ <email>simokawa@jp.FreeBSD.org</email>"> - -<!ENTITY a.jp.sugimura "¿ù¼ µ®»Î <email>sugimura@jp.FreeBSD.org</email>"> - -<!ENTITY a.jp.tmaruya "´Ý»³ ¹ä»Ê <email>tmaruya@nnc.or.jp</email>"> - -<!ENTITY a.jp.tomo "ÅÏÊÕ ÃÒͺ <email>tomo@jp.FreeBSD.ORG</email>"> - -<!ENTITY a.jp.ts "ÉÚÅÄ ½ÅÀ® <email>ts@icu.ac.jp</email>"> - -<!ENTITY a.jp.y-koga "¤³¤¬¤è¤¦¤¤¤Á¤í¤¦ <email>y-koga@ccs.mt.nec.co.jp</email>"> - -<!ENTITY a.jp.yasu "ÎëÌÚ ¹¯½¤ <email>yasu@hike.te.chiba-u.ac.jp</email>"> - -<!ENTITY a.jp.yoshiaki "ÆâÀî ´î¾Ï <email>yoshiaki@kt.rim.or.jp</email>"> - -<!ENTITY a.jp.yuki "Á°ÅÄ ¹¬ÈÏ <email>yuki@jp.FreeBSD.org</email>"> - -<!-- - Names of FreeBSD mailing list in Japan. If we refer many mailing - lists in Japan, create jmailing-lists.ent file and store them in - it. ---> - -<!ENTITY a.jp.doc-jp "ÆüËܸì¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¥×¥í¥¸¥§¥¯¥È - <email>doc-jp@jp.FreeBSD.org</email>"> diff --git a/nl_NL.ISO8859-1/Makefile b/nl_NL.ISO8859-1/Makefile deleted file mode 100644 index f729ceb982..0000000000 --- a/nl_NL.ISO8859-1/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# $FreeBSD$ - -COMPAT_SYMLINK = nl - -DOC_PREFIX?= ${.CURDIR}/.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/nl_NL.ISO8859-1/share/sgml/bookinfo.ent b/nl_NL.ISO8859-1/share/sgml/bookinfo.ent deleted file mode 100644 index 8355c00c2d..0000000000 --- a/nl_NL.ISO8859-1/share/sgml/bookinfo.ent +++ /dev/null @@ -1,13 +0,0 @@ -<!-- - Referenties naar andere bestanden kunnen opgenomen worden binnen - een DocBook BookInfo element. - - Entiteitnamen nemen een vorm aan volgens "bookinfo.<element>", - waarbij <element> de naam is van het buitenste element in de - entiteit. Voorbeelden zijn "bookinfo.legalnotice", en - "bookinfo.preface". - - $FreeBSD$ ---> - -<!ENTITY bookinfo.legalnotice SYSTEM "legalnotice.sgml"> diff --git a/zh/FAQ/FAQ.sgml b/zh/FAQ/FAQ.sgml deleted file mode 100644 index 9bf088483a..0000000000 --- a/zh/FAQ/FAQ.sgml +++ /dev/null @@ -1,70 +0,0 @@ -<!-- $Id: FAQ.sgml,v 1.8 1999-11-12 08:34:11 vanilla Exp $ --> -<!-- The FreeBSD Documentation Project --> -<!-- Translate into Chinese by ijliao@dragon2.net --> -<!-- English Version: 1.103 --> - -<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN" [ -<!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"> -]> - -<article> - - <title>FreeBSD 2.X ±`¨£°Ýµª¶°</title> - <author> - <name>FreeBSD ¤å¥ópµe</name> - </author> - - <date>$Date: 1999-11-12 08:34:11 $</date> - - <abstract> - ³o¥÷¤å¥ó¬O FreeBSD 2.X ªº±`¨£°Ýµª¶°¡C°£«D¦³¯S§O¥[µù¡A§_«h³o¨Ç±ø¥Ø³£¾A - ¥Î©ó FreeBSD 2.0.5 ¤Î¥H«áªºª©¥»¡C¦pªG±ø¥Ø¤º®e¤¤¦³ <XXX> «h¬O©|¥¼ - §¹¦¨ªº³¡¥÷¡C¦pªG±z¹ï¨ó§U¥»pµeªº¶i¦æ¦³¿³½ìªº¸Ü¡A½Ð±H¤@«Ê¹q¤l¶l¥ó¨ì - FreeBSD ¤å¥ópµeªº mailing list <htmlurl - url="mailto:freebsd-doc@FreeBSD.org" name="<freebsd-doc@FreeBSD.org>">¡C - ±z¥i¥H±q <url url="http://www.FreeBSD.org/" - name="FreeBSD World Wide Web server"> ®³¨ì³o¥÷¤å¥óªº³Ì·sª©¥»¡C±z¤]¥i¥H - §Q¥Î HTTP ¨Ó¤U¸ü¥»¤å¥óªº <url url="FAQ.latin1" name="¯Â¤å¦rª©">¡A - <url url="FAQ.ps" name="postscript ª©">¡A - <url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/FAQ.pdf" name="PDF ª©">¡A - ©Î¬O <url url="FAQ-html.tar.gz" name="HTML ª©">¡A©Î¬O¸g¥Ñ - <url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/docs" name="FreeBSD FTP ¯¸"> - ¨Ó¤U¸ü gzip'd ªºª©¥»¡C±z©Î³\¤]·Q - <url url="http://www.FreeBSD.org/search/search.html" - name="¦b±`¨£°Ýµª¶°¤¤·j´M¸ê®Æ">¡C - - </abstract> - - <toc> - -&preface; -&install; -&hardware; -&troubleshoot; -&commercial; -&applications; -&kernelconfig; -&admin; -&x; -&network; -&serial; -&misc; -&hackers; -&acknowledgments; - -</article> - |