Copyright © 1995-2021 Groupe de Documentation FreeBSD
Copyright
Redistribution and use in source (XML DocBook) and 'compiled' forms (XML, HTML, PDF, PostScript, RTF and so forth) with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code (XML DocBook) must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified.
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 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.
FreeBSD is a registered trademark of the FreeBSD Foundation.
3Com and HomeConnect are registered trademarks of 3Com Corporation.
3ware is a registered trademark of 3ware Inc.
ARM is a registered trademark of ARM Limited.
Adaptec is a registered trademark of Adaptec, Inc.
Adobe, Acrobat, Acrobat Reader, Flash and PostScript are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.
Apple, AirPort, FireWire, iMac, iPhone, iPad, Mac, Macintosh, Mac OS, Quicktime, and TrueType are trademarks of Apple Inc., registered in the U.S. and other countries.
Android is a trademark of Google Inc.
Heidelberg, Helvetica, Palatino, and Times Roman are either registered trademarks or trademarks of Heidelberger Druckmaschinen AG in the U.S. and other countries.
IBM, AIX, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks of International Business Machines Corporation in the United States, other countries, or both.
IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical and Electronics Engineers, Inc. in the United States.
Intel, Celeron, Centrino, Core, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
Intuit and Quicken are registered trademarks and/or registered service marks of Intuit Inc., or one of its subsidiaries, in the United States and other countries.
Linux is a registered trademark of Linus Torvalds.
LSI Logic, AcceleRAID, eXtremeRAID, MegaRAID and Mylex are trademarks or registered trademarks of LSI Logic Corp.
Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
Motif, OSF/1, and UNIX are registered trademarks and IT DialTone and The Open Group are trademarks of The Open Group in the United States and other countries.
Oracle is a registered trademark of Oracle Corporation.
RealNetworks, RealPlayer, and RealAudio are the registered trademarks of RealNetworks, Inc.
Red Hat, RPM, are trademarks or registered trademarks of Red Hat, Inc. in the United States and other countries.
Sun, Sun Microsystems, Java, Java Virtual Machine, JDK, JRE, JSP, JVM, Netra, OpenJDK, Solaris, StarOffice, SunOS and VirtualBox are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.
MATLAB is a registered trademark of The MathWorks, Inc.
SpeedTouch is a trademark of Thomson.
VMware is a trademark of VMware, Inc.
Mathematica is a registered trademark of Wolfram Research, Inc.
XFree86 is a trademark of The XFree86 Project, Inc.
Ogg Vorbis and Xiph.Org are trademarks of Xiph.Org.
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the « ™ » or the « ® » symbol.
Bienvenue à FreeBSD! Ce manuel décrit l'installation et l'utilisation quotidienne de FreeBSD 12.1-RELEASE, et FreeBSD 11.3-RELEASE. Ce document est le résultat du travail toujours en cours de nombreuses personnes. Certaines sections peuvent ne pas être à jour. Les personnes qui sont intéressées pour aider à mettre à jour et à compléter ce document devraient envoyer un courrier électronique à la liste de diffusion du groupe de documentation de FreeBSD.
La
dernière version anglaise de ce document est disponible sur le
site Web de
FreeBSD. Les versions antérieures
peuvent être obtenues auprès de http://docs.FreeBSD.org/doc/
).
Il peut être aussi
téléchargé dans divers
formats et options de compression depuis le
serveur FTP
FreeBSD ou l'un des nombreux sites
miroirs. Des versions
imprimées peuvent être achetées
auprès
de FreeBSD Mall.
Des recherches dans le Manuel et les autres documents peuvent
être effectuées à partir de la
page de
recherches.
N.d.T.: Contactez Marc Fonvieille
<blackend@FreeBSD.org>
si vous voulez
collaborer à la traduction.
cron
root
scfb
à l'aide d'un fichierboot0
boot2
/etc/ttys
rmuser
chpass
interactif par le super-utilisateurchpass
interactif par un utilisateur ordinairedump
sur ssh
avec la variable RSH
positionnéemdconfig
pour monter
une image d'un système de fichiersmdconfig
mdmfs
mdconfig
mdmfs
src/
:Version française de Marc Fonvieille
<blackend@FreeBSD.org>
.
Le nouveau venu à FreeBSD constatera que la première section de ce livre guide l'utilisateur à travers le processus d'installation de FreeBSD, et présente progressivement les concepts et les conventions qui sont les fondements d'UNIX®. Travailler avec cette section demande un peu plus que le simple désire d'explorer, et la capacité d'assimiler de nouveaux concepts quand ils sont présentés.
Une fois que vous en êtes arrivé là, la seconde, bien plus grande, section du Manuel est une référence complète de tous les sujets qui intéressent les administrateurs systèmes de FreeBSD. Certains de ces chapitres peuvent vous recommander d'effectuer des lectures préliminaires, cela est noté dans le synopsis au début de chaque chapitre.
Pour une liste de sources d'informations complémentaires, veuillez consulter Annexe B, Bibliographie.
Cette seconde édition est le point culminant de plus de deux ans de travail pour les membres du Groupe de Documentation de FreeBSD. Ce qui suit présente les changements principaux de cette nouvelle édition:
Chapitre 11, Configuration et optimisation, le chapitre
« Configuration et optimisation », a
été augmenté avec des informations
nouvelles sur la gestion ACPI des ressources et de
l'énergie, sur l'utilitaire système
cron
, et sur d'autres d'options
supplémentaires d'optimisation du noyau.
Chapitre 14, Sécurité, le chapitre « Sécurité », a été augmenté avec de nouvelles informations sur les réseaux privés virtuels (VPNs), les listes de contrôle d'accès au système de fichiers (ACLs), et sur les avis de sécurité.
Chapitre 16, Mandatory Access Control ** Traduction en Cours **, « Le contrôle d'accès obligatoire » (MAC) est un nouveau chapitre ajouté avec cette édition. Il explique ce qu'est le MAC et comment ce mécanisme peut être utilisé pour sécuriser un système FreeBSD.
Chapitre 18, Stockage des données, le chapitre « Stockage des données », a bénéficié de l'ajout de nouvelles sections concernant les périphériques de stockage USB, les instantanés de systèmes de fichiers, les quotas d'utilisation des disques, les systèmes de fichiers réseaux et sauvegardés sur fichier, et le chiffrage de partitions.
Chapitre 22, Le gestionnaire de volume Vinum, « Vinum », est un nouveau chapitre apparaissant avec cette édition. Il décrit l'utilisation de Vinum, un gestionnaire de volume qui permet la création de disques logiques indépendants du périphérique, et l'utilisation de systèmes RAID-0, RAID-1 et RAID-5 logiciels.
Une section dépannage a été ajoutée au chapitre Chapitre 28, PPP et SLIP, PPP et SLIP.
Chapitre 29, Courrier électronique, le chapitre « Courrier électronique », bénéficie de nouvelles sections sur l'utilisation d'agents de transfert de courrier alternatifs, sur l'authentification SMTP, l'UUCP, fetchmail, procmail, et d'autres sujets avancés.
Chapitre 30, Serveurs réseau, le chapitre « Serveurs réseau », apparaît avec cette édition. Ce chapitre traite de la configuration du serveur HTTP Apache, de ftpd, et celle d'un serveur pour clients Microsoft® Windows® à l'aide de Samba. Certaines sections du chapitre Chapitre 32, Administration réseau avancée, « Administration réseau avancée » ont été déplacées vers ce nouveau chapitre.
Chapitre 32, Administration réseau avancée, le chapitre « Administration réseau avancée » a été complété avec des informations sur l'utilisation des périphériques Bluetooth® sous FreeBSD, la configuration de réseaux sans fil, et sur le mode de transfert réseau asynchrone (ATM).
Un glossaire a été ajouté pour centraliser les définitions des termes techniques employés tout au long de cet ouvrage.
La présentation des tableaux et des figures a été améliorée.
La seconde édition est le point culminant de deux ans de travail pour les membres du Groupe de Documentation de FreeBSD. Ce qui suit présente les changements principaux de cette nouvelle édition:
Un sommaire complet a été ajouté.
Toutes les figures ASCII ont été remplacées par des graphiques.
Un synopsis standard a été ajouté à chaque chapitre pour donner un rapide résumé des informations contenues par ce dernier et ce qu'est sensé connaître le lecteur.
Le contenu a été réorganisé de façon logique en trois parties: “Pour commencer”, “L'Administration Système”, et “Annexes”.
Le Chapitre 2, Installer FreeBSD (“Installer FreeBSD”) fut complètement réécrit avec de nombreuses photos d'écrans pour rendre le texte plus facile à comprendre pour les nouveaux utilisateurs.
Le Chapitre 3, Quelques bases d'UNIX (“Quelques bases d'UNIX®”) a été augmenté pour contenir des informations additionnelles sur les processus, daemons et signaux.
Le Chapitre 4, Installer des applications: les logiciels pré-compilés et les logiciels portés (“Installer des applications”) a été augmenté pour contenir des informations complémentaires sur la gestion des applications pré-compilées.
Le Chapitre 5, Le système X Window (“Le système X Window”) a complètement été réécrit en insistant sur l'utilisation de technologies modernes d'environnement de travail comme KDE et GNOME sous XFree86™ 4.X.
Le Chapitre 12, Processus de démarrage de FreeBSD (“Le processus de démarrage de FreeBSD”) a été augmenté.
Le Chapitre 18, Stockage des données (“Stockage des données”) fut réécrit à partir de ce qui était à l'origine deux chapitres séparés “Disques” et “Sauvegardes”. Nous pensons que le sujet est plus facile à appréhender quand il est présenté en un seul chapitre. Une section sur RAID (matériel et logiciel) fut également ajoutée.
Le Chapitre 27, Serial Communications ** Traduction en Cours ** (“Communications série”) a été complètement réorganisé et mis à jour pour FreeBSD 4.X/5.X.
Le Chapitre 28, PPP et SLIP (“PPP et SLIP”) a été sensiblement mis à jour.
Plusieurs nouvelles sections ont été ajouté au Chapitre 32, Administration réseau avancée (“Administration réseau avancée”).
Le Chapitre 29, Courrier électronique (“Courrier électronique”) fut augmenté pour inclure plus d'informations au sujet de la configuration de sendmail.
Le Chapitre 10, Compatibilité binaire avec Linux® (“Compatibilité Linux®”) a été augmenté pour inclure des informations sur l'installation d'Oracle® et SAP® R/3®.
Les nouveaux sujets suivants sont abordés dans cette seconde édition:
Configuration et optimisation (Chapitre 11, Configuration et optimisation).
Multimédia (Chapitre 7, Multimédia)
Ce livre est divisé en cinq parties logiquement distinctes. Le première section, Pour commencer, couvre l'installation et les bases de l'utilisation de FreeBSD. On s'attend à ce que le lecteur suive ces chapitres dans l'ordre, sautant éventuellement les chapitres traitant de sujets familiers. La seconde section Tâches courantes, couvre les fonctionnalités de FreeBSD fréquemment utilisées. Cette section, ainsi que toutes les sections suivantes, peuvent être lues dans n'importe quel ordre. Chaque chapitre débute avec un synopsis succinct qui décrit ce dont parle le chapitre et ce qu'on s'attend à ce que le lecteur sache déjà. Cela en vue de permettre au lecteur occasionnel de se rendre directement aux chapitres qui l'intéresse. La troisième section, Administration système, traite des sujets concernant l'administration. La quatrième section, Réseaux, couvre le domaine des réseaux et des serveurs. La cinquième section contient des annexes d'information de référence.
Présente FreeBSD à un nouvel utilisateur. Il décrit l'histoire du projet FreeBSD, ses objectifs, son mode de développement.
Guide un utilisateur à travers le processus d'installation. Quelques sujets d'installation avancée, comme l'installation avec une console série, sont aussi couverts.
Couvre les commandes et fonctionnalités de base du système d'exploitation FreeBSD. Si vous êtes familier avec Linux® ou un autre type d'UNIX® alors vous pouvez probablement passer ce chapitre.
Couvre l'installation de logiciels tiers avec l'innovant “Catalogue de logiciels portés” de FreeBSD et les logiciels pré-compilés.
Décrit le système X Window en général et l'utilisation d'X11 sur FreeBSD en particulier. Décrit également les environnements de travail comme KDE et GNOME.
Liste les applications de bureautique courantes, comme les navigateurs Web et les suites de bureautique, et décrit comment les installer sous FreeBSD.
Montre comment installer le support du son et de la vidéo pour votre système. Décrit également quelques applications audio et vidéo.
Explique pour quelles raisons vous devriez configurer un nouveau noyau et fournit des instructions détaillées pour la configuration, la compilation et l'installation d'un noyau sur mesures.
Décrit la gestion des imprimantes sous FreeBSD, y compris les informations sur les pages d'en-tête, la comptabilisation de l'usage et la configuration de base.
Décrit les caractéristiques de la compatibilité Linux® sous FreeBSD. Fournit également les instructions détaillées de l'installation de plusieurs applications Linux® populaires comme Oracle®, SAP® R/3® et Mathematica®.
Décrit les paramètres disponibles pour les administrateurs systèmes afin d' optimiser les performances d'un système FreeBSD. Décrit également les différents fichiers de configuration utilisés dans FreeBSD et où les trouver.
Décrit le processus de démarrage de FreeBSD et explique comment contrôler ce processus avec des options de configuration.
Décrit la création et la manipulation des comptes utilisateur. Traite également des limitations de ressources qui peuvent être appliquées aux utilisateurs et des autres tâches de gestion des comptes.
Décrit différents outils disponibles pour vous aider à sécuriser votre système FreeBSD, dont Kerberos, IPsec et OpenSSH.
Décrit l'organisation des environnements jail, et les améliorations apportées par ces environnements par rapport au support chroot traditionnel de FreeBSD.
Explique ce qu'est le contrôle d'accès mandataire (MAC) et comment ce mécanisme peut être utilisé pour sécuriser un système FreeBSD.
Décrit ce qu'est l'audit d'événements sous FreeBSD, comment cette fonctionnalité peut être installée, configurée et comment les audits peuvent être examinés et surveillés.
Décrit comment gérer les supports de stockage et les systèmes de fichiers avec FreeBSD. Cela inclut les disques physiques, les systèmes RAID, les supports optiques et bandes, les disques mémoires, et les systèmes de fichiers réseau.
Décrit ce qu'est le système GEOM sous FreeBSD et comment configurer les différents niveaux de RAID supportés.
Décrit comment utiliser Vinum, un gestionnaire de volume logique qui permet d'avoir des disques logiques indépendants du périphérique, et le RAID-0, RAID-1 et RAID-5 logiciel.
Décrit ce que les systèmes de virtualisation apportent, et comment ils peuvent être utilisés avec FreeBSD.
Décrit comment utiliser FreeBSD avec des langues autres que l'anglais. Couvre la localisation du système et des applications.
Explique les différences entre FreeBSD-STABLE, FreeBSD-CURRENT et les versions de publication;. Décrit quel type d'utilisateurs pourrait tirer profit de suivre un système de développement et présente le processus.
Explique comment connecter terminaux et modems à votre système FreeBSD aussi bien pour les connexions entrantes que sortantes.
Décrit comment utiliser PPP, SLIP ou PPP sur Ethernet pour se connecter à des systèmes distants à l'aide de FreeBSD.
Explique les différents composants d'un serveur de courrier et plonge dans la configuration de base du serveur de courrier le plus populaire: sendmail.
Fournit des instructions détaillées et des exemples de fichiers de configuration pour configurer votre machine FreeBSD comme serveur de fichiers, serveur de noms de domaine, serveur d'information réseau, ou comme serveur de synchronisation d'horloge.
Explique la philosophie des coupe-feux logiciels et fournit des informations détaillées sur la configuration des différents coupe-feux disponibles pour FreeBSD.
Décrit de nombreux sujets sur l'utilisation réseau, dont le partage d'une connexion Internet avec d'autres ordinateurs sur votre réseau local, routage, réseaux sans-fils, Bluetooth®, ATM, IPv6, et bien plus.
Enumère les différentes sources pour obtenir FreeBSD sur CDROM ou DVD, ainsi que les différents sites Internet qui vous permettent de télécharger et d'installer FreeBSD.
Cet ouvrage aborde de nombreux sujets cela peut vous laisser sur votre faim et à la recherche de plus de détails. La bibliographie énumère d'excellents ouvrages qui sont référencés dans le texte.
Décrit les nombreux forums disponibles pour les utilisateurs de FreeBSD pour poster des questions et engager des conversations techniques au sujet de FreeBSD.
Liste les clés PGP de nombreux développeurs FreeBSD.
Pour fournir un texte logique et facile à lire, plusieurs conventions sont respectées tout au long du livre.
Une police de caractères italique est utilisée pour les noms de fichiers, les URLs, le texte à mettre en valeur et la première utilisation de termes techniques.
Police de caractères à chasse fixe
Une police de caractères à
chasse fixe
est utilisée pour les messages d'erreurs, les commandes, les
variables d'environnement, les noms des logiciels portés,
les noms d'hôtes, les noms d'utilisateurs, les noms de
groupes, les noms de périphériques, les variables et
les morceaux de code source.
Des caractères gras sont utilisés pour les applications, les commandes et les touches.
Les touches sont représentées en gras
pour ressortir du texte. Les combinaisons de touches qui sont
sensées être tapées simultanément sont
représentées avec `+
' entre chaque touche,
comme par exemple:
Ctrl+Alt+Del
Indiquant que l'utilisateur devra appuyer simultanément sur les touches Ctrl, Alt, et Del.
Les touches qui sont sensées être tapées en séquence seront séparées par une virgule, par exemple:
Ctrl+X, Ctrl+S
Signifiera que l'on on attend à ce que l'utilisateur tape les touches Ctrl et X simultanément et ensuite tape Ctrl et S simultanément.
Les exemples commençant par E:\>
indiquent une commande MS-DOS®. Sauf indication contraire, on peut
exécuter ces commandes depuis une fenêtre “d'invite de
commande” dans un environnement Microsoft® Windows® moderne.
E:\>
tools\fdimage floppies\kern.flp A:
Les exemples commençant par #
indiquent que la
commande doit être lancée en tant que super-utilisateur sous
FreeBSD. Vous pouvez ouvrir une session en tant que
root
pour taper cette commande, ou ouvrir une
session sous votre compte normal et utiliser
su(1) pour obtenir les privilèges de
super-utilisateur.
#
dd if=kern.flp of=/dev/fd0
Les exemples commençant par %
indiquent une commande
qui devrait être lancée par un utilisateur normal. Sauf
indication contraire, la syntaxe de l'interpréteur de commandes
C-shell est utilisée pour configurer les variables d'environnement et
autres commandes de l'interpréteur.
%
top
L'ouvrage que vous avez en main représente les efforts de plusieurs centaines de personnes dans le monde. Qu'ils aient envoyé des corrections de fautes de frappe, ou soumis des chapitres entiers, toutes les contributions ont été utiles.
Plusieurs entreprises ont supporté le développement de ce document en payant des auteurs à travailler à plein temps dessus, en payant pour la publication etc... En particulier, BSDi (rachetée plus tard par Wind River Systems) a payé à temps plein des membres du Groupe de Documentation de FreeBSD à l'amélioration de ce livre menant ainsi à la publication de la première version imprimée en Mars 2000 (ISBN 1-57176-241-8). Wind River Systems a ensuite payé plusieurs auteurs supplémentaires pour apporter un certain nombre d'améliorations à l'infrastructure de publication et à l'ajout de chapitres. Ce travail a abouti à la publication de la deuxième édition imprimée en Novembre 2001 (ISBN 1-57176-303-1). En 2003-2004, FreeBSD Mall, Inc, a payé plusieurs auteurs pour travailler sur l'amélioration de ce manuel en vue de la publication de la troisième édition papier.
Cette partie du Manuel FreeBSD est destinée aux nouveaux venus à FreeBSD, utilisateurs et administrateurs. Ces chapitres:
Présenteront FreeBSD.
Guideront les lecteurs à travers le processus d'installation.
Enseigneront quelques bases et fondements d'UNIX®.
Montreront comment installer la profusion d'applications tierces disponibles pour FreeBSD.
Présenteront X, le système de fenêtrage d'UNIX®, et détailleront comment configurer un environnement de travail qui rendra les utilisateurs plus productifs.
Le nombre de références dans le texte a été limité au minimum afin que cette section du Manuel puisse être lue du début jusqu'à la fin avec le moins de changements de pages possibles.
Version française de Marc Fonvieille
<blackend@FreeBSD.org>
.
Merci de votre intérêt pour FreeBSD! Le chapitre suivant traite de divers aspects concernant le projet FreeBSD, comme son histoire, ses objectifs, son mode de développement, et d'autres.
Après la lecture de ce chapitre, vous connaîtrez:
Comment FreeBSD est lié aux autres systèmes d'exploitation.
L'histoire du Projet FreeBSD.
Les objectifs du Projet FreeBSD.
Les bases du mode de développement open-source de FreeBSD.
Et bien sûr: l'origine du nom “FreeBSD”.
FreeBSD est une système d'exploitation basé sur 4.4BSD-Lite2 pour les ordinateurs à base d'architecture Intel (x86 et Itanium®), AMD64, les ordinateurs DEC Alpha™, et Sun UltraSPARC®. Le portage pour d'autres architectures est également en cours. Pour connaître l'histoire du projet, lisez Un court historique de FreeBSD. Pour avoir une description de la version la plus récente, allez à la section A propos de cette version. Si vous voulez contribuer d'une façon ou d'une autre au projet FreeBSD (code, matériel, dons), voyez s'il vous plaît à la section Contribuer à FreeBSD.
FreeBSD dispose de nombreuses caractéristiques remarquables. Parmi lesquelles:
Multi-tâche préemptif avec ajustement dynamique des priorités pour garantir un partage équilibré et fluide de l'ordinateur entre les applications et les utilisateurs et cela même sous les charges les plus importantes.
Accès multi-utilisateurs qui permet à de nombreuses personnes d'utiliser en même temps un système FreeBSD à des fins très différentes. Cela signifie, par exemple, que des périphériques tels que les imprimantes ou les lecteurs de bandes peuvent être partagés entre tous les utilisateurs sur le système ou sur le réseau et que des limitations d'utilisation des ressources peuvent être appliquées à des utilisateurs ou groupes d'utilisateurs, protégeant ainsi les ressources systèmes critiques d'une sur-utilisation.
Réseau TCP/IP complet dont le support de standards industriels comme SCTP, DHCP, NFS, NIS, PPP, SLIP, IPsec, et IPv6. Cela signifie que votre machine FreeBSD peut coopérer facilement avec d'autres systèmes ou être utilisée comme serveur d'entreprise, fournissant des fonctions essentielles comme NFS (accès aux fichiers en réseau) et le service de courrier électronique, ou encore 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é).
La protection de la mémoire garantit que les applications (ou les utilisateurs) ne peuvent interférer entre eux. Une application qui plante n'affectera en rien les autres.
FreeBSD est un système d'exploitation 32-bits (64-bits sur l'architecture Alpha, Itanium®, AMD64, et UltraSPARC®) et a été conçu comme tel dès le début.
Le Système X Window (X11R7), standard industriel, fournit une interface graphique à l'utilisateur (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.
Compatibilité binaire avec de nombreux programmes compilés pour Linux, SCO, SVR4, BSDI et NetBSD.
Des milliers d'applications prêtes à l'emploi sont disponibles grâce au catalogue des logiciels portés (ports) et au catalogue des logiciels pré-compilés (packages). Pourquoi chercher sur l'Internet alors que tout est là?.
Des milliers d'applications faciles à porter 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 la plupart des applications exigent peu, sinon aucune modification, pour les compiler.
Mémoire virtuelle à la demande et “cache unifié pour les disques et la mémoire virtuelle” cela permet de répondre aux besoins des applications gourmandes en mémoire tout en garantissant le temps de réponse aux autres utilisateurs.
Support du traitement symétrique multiprocesseurs (SMP).
Des outils complets de développement C, C++, et Fortran. 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.
La disponibilité Code source de l'intégralité du système vous donne un contrôle total sur votre environnement. Pourquoi être prisonnier d'une solution propriétaire et dépendant de votre fournisseur alors que vous pouvez avoir un véritable système ouvert?
Une documentation en ligne très complète.
Et beaucoup d'autres choses encore!
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 dès maintenant!
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'azimut 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é développé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.
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é:
Services Internet: 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:
Avec FreeBSD, vous pouvez facilement commencer petit avec un PC 386 à bas prix et évoluer jusqu'à un quadri-processeurs Xeon avec stockage RAID au fur et à mesure que votre entreprise s'agrandit.
Education: 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 un outil très utile pour ceux qui s'intéressent aux ordinateurs essentiellement pour faire un autre travail!
Recherche: 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 pourrait être discuté sur des forums ouverts.
Réseau: 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.
Station de travail X Window: FreeBSD est un excellent choix pour faire un terminal X peu coûteux, en utilisant le serveur X11 librement disponible. 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.
Développement de logiciel: 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.
FreeBSD est disponible sous forme de code source ou binaire sur CDROM, DVD ou par ftp anonyme, Voyez Annexe A, Se procurer FreeBSD pour plus de détails.
La section suivante fournit des informations générales sur le projet, dont un court historique, les objectifs du projet, et le mode de développement du projet.
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.
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.
386BSD était le système d'exploitation de Bill Jolitz, qui souffrait assez sévèrement à ce moment-là d'avoir été négligé pendant 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.
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 CDROM, 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.
La première version sur CDROM (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.
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. Berkeley 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 à son 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.
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'à Novembre 1994 pour terminer cette étape de transition et que FreeBSD 2.0 paraisse sur l'Internet et sur CDROM (fin Décembre). 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, en Juin 1995.
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.
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 dernière (2.2.8) parut en Novembre 1998. La première version officielle 3.0 sortira en Octobre 1998 et annoncera le début de la fin pour la branche 2.2.
Il y eut la création de nouvelles branches le 20 Janvier 1999, donnant 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, la version 3.2 livrée le 15 Mai 1999, la 3.3 le 16 Septembre 1999, la 3.4 le 20 Décembre 1999 et la 3.5 le 24 Juin 2000, qui fut suivit quelques jours plus tard par une mise à jour mineure 3.5.1 pour rajouter quelques correctifs de sécurité de dernière minute sur Kerberos. Cela sera la dernière version de la la branche 3.X à paraître.
Le 13 Mars 2000 a vu l'apparition d'une nouvelle branche: la branche 4.X-STABLE. Il y a eu plusieurs versions jusqu'ici: la 4.0-RELEASE est sortie en Mars 2000, et la dernière version, la 4.11-RELEASE est sortie en Janvier 2005.
La tant attendue 5.0-RELEASE a été
annoncée le 19 Janvier 2003. Etant le point
culminant de près de trois ans de travail, cette
version a engagé FreeBSD sur la voie d'un support
avancé des systèmes multiprocesseurs et des
“threads”, et a introduit le support des
plateformes UltraSPARC® et ia64
. Cette version fut suivie
de la 5.1 en Juin 2003. La dernier version 5.X issue de la
branche -CURRENT fut la 5.2.1-RELEASE présentée
en Février 2004.
La branche RELENG_5 créée en Août 2004, suivie par la 5.3-RELEASE, marque le début de la branche 5-STABLE. La version la plus récente, la 11.2-RELEASE, est sortie en Septembre 2013. Il n'est pas prévu de publier d'autres versions de la branche RELENG_5.
La branche RELENG_6 a été créée en Juillet 2005. La version 6.0-RELEASE, la première version issue de la branche 6.X a été rendue publique en Novembre 2005. La version la plus récente, la 12.0-RELEASE, est sortie en Janvier 2014. De nouvelles versions sont prévues pour la branche RELENG_6.
Pour le moment, les projets de développement à long terme continuent à se faire dans la branche (tronc) 7.X-CURRENT, et des “instantanées” de la 7.X sur CDROM (et, bien sûr, sur le net) sont continuellement mises à disposition sur le serveur d'instantané pendant l'avancement des travaux.
L'objectif du projet FreeBSD est de fournir du logiciel qui puisse être utilisé à n'importe quelle fin et sans aucune 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 qu'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.
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.
Le développement de FreeBSD est un processus très ouvert et très souple, c'est littéralement le résultat de contributions de centaines de personnes dans le monde entier, ce que reflète notre liste des participants. L'infrastructure de développement de FreeBSD permet à ces centaines de développeurs de collaborer via l'Internet. Nous sommes toujours à l'affût 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 liste de diffusion pour les discussions techniques sur FreeBSD. La liste de diffusion pour les annonces relatives à FreeBSD est aussi disponible pour ceux qui veulent faire connaître aux autres utilisateurs de FreeBSD les principaux domaines de développement en cours.
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:
L'arborescence centrale des sources de FreeBSD est gérée sous CVS (Concurrent Version System), un système librement disponible de gestion de version des sources qui est livré avec FreeBSD. Les archives CVS principales sont sur une machine à Santa Clara CA, USA, d'où elles sont répliquées sur de nombreuses machines miroir à travers le monde. L'arborescence CVS qui contient les branches -CURRENT et -STABLE peut facilement être dupliquée sur votre propre machine. Reportez-vous à la section Synchroniser votre arborescence des sources pour plus d'informations sur la façon de procéder.
Les personnes autorisées
(committers) sont celles qui ont les droits
en écriture sur l'arborescence CVS, et
sont autorisées à faire des modifications dans
les sources de FreeBSD (le terme “committer” vient de
la commande cvs(1) commit
, 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 send-pr(1). S'il semble
y avoir un problème dans ce système, vous pouvez
aussi les joindre en envoyant un courrier électronique à
liste de diffusion pour les committers de FreeBSD.
L'équipe de base de FreeBSD 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. L'actuelle équipe de base a été élu à partir d'un ensemble de “committers” candidats en Juillet 2006. Des élections ont lieu tous les 2 ans.
Certains membres de l'équipe de base ont aussi leur propre domaine de responsabilité, 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. Pour une liste complète des développeurs FreeBSD et de leurs domaines de responsabilité, veuillez consulter la liste des participants au projet.
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 tout à fait exacte, et il serait plus juste de dire que ce sont des gens qui ont sacrifié leur vie à FreeBSD contre toute raison!
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 liste de diffusion pour les discussions techniques sur FreeBSD où ces questions sont abordées. Voyez Annexe C, Ressources sur Internet pour plus d'informations concernant les diverses listes de discussion FreeBSD.
La liste de ceux qui ont contribué au projet est longue et en augmentation, pourquoi donc ne pas vous y joindre et contribuer à quelque chose en retour dès aujourd'hui?
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 le site du projet FreeBSD.
En résumé, notre modèle de développement est organisé comme un ensemble relâché de cercles concentriques. Ce modèle centralisé est en place pour la commodité des utilisateurs 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 programmes d'application cohérents que les utilisateurs puissent facilement installer et employer — c'est un modèle qui fonctionne très bien pour cela.
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!
FreeBSD est une version librement disponible et incluant tout le code source basé sur 4.4BSD-Lite2 pour les ordinateurs à architectures Intel i386™, i486™, Pentium®, Pentium® Pro, Celeron®, Pentium® II, Pentium® III, Pentium® 4 (ou compatible), Xeon™, DEC Alpha™ et systèmes basés sur UltraSPARC® de Sun. 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”.
Depuis la publication de FreeBSD 2.0 fin 1994, 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 5 MO 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, le support intégré DHCP, un sous-système SCSI amélioré, support ISDN, support pour l'ATM, FDDI, les cartes “Fast et Gigabit Ethernet” (1000 Mbit), un meilleur support des derniers contrôleurs Adaptec et des milliers de corrections de bogues.
En plus du système lui-même, FreeBSD offre un nouveau
catalogue de logiciels portés (“ports”) qui inclut
des milliers de programmes habituellement demandés. A l'heure
où sont écrites ces lignes il y avait plus de
24,000 logiciels portés! 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 440 Mo
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 façon 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 du programme que vous désirez
installer, de taper make install
, et de laisser le
système faire le reste. La distribution originale
complète de chaque logiciel est chargée dynamiquement
depuis le CDROM ou un site FTP proche, il vous suffit de disposer de
suffisamment d'espace disque pour compiler le logiciel que vous voulez.
Presque tous les logiciels sont aussi fournis sous forme
pré-compilée (“package”—paquetage) qui peut être
installé avec une seule commande (pkg_add
), si
vous ne voulez pas les compiler à partir des sources. Plus
d'information sur les paquetages et les logiciels portés
peut être trouvée dans le Chapitre 4, Installer des applications: les logiciels pré-compilés
et les logiciels portés.
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 /usr/share/doc
de n'importe
quelle machine sous une version récente de FreeBSD. Vous pouvez
consulter les manuels localement disponibles avec n'importe quel
navigateur HTML aux URLs suivantes:
Vous pouvez aussi consulter les exemplaires originaux (et les plus souvent mis à jour) sur http://www.FreeBSD.org.
Version française de Marc Fonvieille
<blackend@FreeBSD.org>
.
En fonction de l'environnement utilisé, il existe plusieurs manières différentes pour obtenir un FreeBSD en mesure de fonctionner. Il existe des:
Images de machines virtuelles, à télécharger et à importer dans l'environnement virtuel de votre choix. Elles peuvent être récupérées à partir de la page Download FreeBSD. Il existe des images pour KVM (« qcow2 »), VMWare (« vmdk »), Hyper-V (« vhd »), ainsi que des images disque brutes (« raw ») qui sont universellement supportées. Ce ne sont pas des images d'installation, mais plutôt des instances préconfigurées (« déjà installées »), prêtes à fonctionner et à effectuer les tâches de post-installation.
Images de machines virtuelles disponibles sur les plateformes Amazon AWS Marketplace, Microsoft Azure Marketplace, et Google Cloud Platform, à exécuter sur leurs services d'hébergement respectifs. Pour plus d'information sur le déploiement de FreeBSD sur Azure, veuillez consulter le chapitre correspondant de la Documentayion Azure.
Images disque de cartes SD, pour les systèmes embarqués comme le Raspberry Pi ou le BeagleBone Black. Elles peuvent être téléchargées à partir de la page Download FreeBSD. Ces fichiers doivent être décompressés et écrits sur une carte SD, comme un fichier d'image disque brut, à partir de laquelle la carte embarquée pourra démarrer.
Images disque d'installation, pour installer FreeBSD sur un disque dur pour les ordinateurs de bureau, ordinateurs portables ou les systèmes serveurs.
Le reste de ce chapitre décrit les quatre cas, en expliquant comment installer FreeBSD en utilisant un programme d'installation en mode texte appelé bsdinstall.
Par défaut, les instructions d'installation de ce chapitre sont écrites pour les architectures i386™ et AMD64. Où elles seront applicables, des instructions spécifiques à d'autres architectures seront indiquées. Il peut y avoir des différences mineures entre le programme d'installation et ce qui est montré ici, aussi il faut utiliser ce chapitre comme un guide général plutôt qu'une suite d'instructions à suivre à la ligne près.
Les utilisateurs préférant installer FreeBSD à l'aide d'un programme d'installation graphique peuvent être intéressés par GhostBSD, MidnightBSD ou NomadBSD.
Après la lecture de ce chapitre, vous connaîtrez:
La configuration matérielle minimale nécessaire et les architectures matérielles supportées par FreeBSD.
Comment créer le support d'installation de FreeBSD.
Comment lancer bsdinstall.
Les questions que bsdinstall posera, ce qu'elles signifient, et comment y répondre.
Comment dépanner une installation qui a échoué.
Comment accéder à la version « live » de FreeBSD avant d'effectuer une installation.
Avant de lire ce chapitre, vous devrez:
Lire la liste du matériel supporté fournie avec la version de FreeBSD qui va être installée, et vérifier que le matériel du système est supporté.
La configuration minimale pour installer FreeBSD varie avec l'architecture matérielle concernée. Les architectures matérielles et les périphériques supportés par une version de FreeBSD sont listés sur la page d'Information sur les versions de FreeBSD. La page de Téléchargement de FreeBSD donne également des recommandations pour le choix de l'image correcte pour les différentes architectures/
Une installation de FreeBSD nécessite un minimum de 96 Mo de RAM et 1.5 Go d'espace libre sur le disque dur. Néanmoins, des quantités aussi faibles de mémoire et d'espace disque ne sont réellement utilisables que pour des applications particulières comme les applications embarquées. Un ordinateur d'usage général aura besoin de plus de ressources. 2-4 Go de RAM et au moins 8 Go d'espace disque sont un bon point de départ.
Voici les contraintes sur les processeurs pour chaque architecture:
C'est le type de processeur pour ordinateur de bureau et portable le plus courant, utilisé dans les systèmes modernes. Intel® l'appelle Intel64. D'autres fabricants l'appelle parfois x86-64.
Des exemples de processeurs compatibles amd64 comprennent: les AMD Athlon™64, AMD Opteron™, Intel® Xeon™ multi-coeurs, Intel® Core™ 2 et processeurs suivants.
Les ordinateurs de bureau et portables plus anciens utilisent souvent cette architecture x86 32bits.
Presque tous les processeurs compatibles i386 avec une unité de calcul en virgule flottante sont supportés. Tous les processeurs Intel® 486 ou supérieurs sont supportés.
FreeBSD utilisera le support de l'extension d'adresse physique (« Physical Address Extensions » ou PAE) sur les CPUs avec cette fonctionnalité. Un noyau avec la fonctionnalité PAE activée détectera la mémoire au-dessus de 4 Go et permettra son utilisation par le système. Néanmoins, utiliser PAE ajoutera des contraintes aux pilotes de périphériques et à d'autres fonctionnalités de FreeBSD.
Tous les systèmes Apple® Mac® utilisant une ROM « New World » avec l'USB intégré sont supportés. Le fonctionnement SMP (multi-processeurs) est supporté sur les machines dotées de plusieurs CPUs.
Un noyau 32bits ne peut utiliser que les 2 premiers Go de RAM.
Les systèmes supportés par FreeBSD/sparc64 sont listés sur la page du Projet FreeBSD/sparc64.
Le SMP est supporté sur tous les systèmes possédant plus d'un processeur. Un disque dur dédié est nécessaire, étant donné qu'il n'est pas, à l'heure actuelle, possible de partager un disque dur avec un autre système d'exploitation.
Une fois déterminé que le système répond bien aux exigences minimales en termes de matériel pour installer FreeBSD, le fichier d'installation devrait être téléchargé et le support d'installation préparé. Avant de faire cela, vérifier que le système est prêt pour une installation en vérifiant les différents éléments de la liste de contrôle suivante:
Sauvegarder les données importantes
Avant d'installer tout système d'exploitation, il faut toujours en premier sauvegarder toutes les données importantes. Ne pas stocker la sauvegarde sur le système sur lequel aura lieu l'installation. A la place, sauvegarder les données sur un disque amovible comme un disque USB, sur un autre système sur le réseau, ou sur un système de sauvegarde en ligne. Tester la sauvegarde avant de lancer l'installation afin de s'assurer qu'elle contient tous les fichiers nécessaires. Quand le programme d'installation formate le disque du système, toutes les données stockées sur ce disque seront perdues.
Où installer FreeBSD?
Si FreeBSD sera le seul système d'exploitation installé, cette étape peut être passée. Mais si FreeBSD partagera le disque avec un autre système d'exploitation, choisir quel disque ou partition sera utilisée pour FreeBSD.
Dans les architectures i386 et amd64, les disques durs peuvent être divisés en plusieurs partitions en utilisant une des deux méthodes de partitionnement. Le Master Boot Record (MBR) traditionnel contient une table de partitions définissant jusqu'à quatre partitions primaires. Pour des raisons historiques, FreeBSD appelle ces partitions primaires slices ( tranches). Une de ces partitions primaire peut devenir une partition étendue contenant plusieurs partitions logiques. La table de partitionnement GUID (GUID Partition Table ou GPT) est une méthode nouvelle et plus simple pour partitionner un disque. Les implémentations classiques de GPT autorisent jusqu'à 128 partitions par disque, supprimant ainsi le recours à des partitions logiques.
Le chargeur d'amorçage de FreeBSD a besoin soit d'une partition primaire soit d'une partition GPT. Si toutes les partitions primaires ou GPT sont déjà utilisées, l'une d'entre elles devra être libérée pour FreeBSD. Pour créer une partition sans effacer les données existantes, utiliser un outil de redimensionnement de partition pour réduire une partition existante et créer une nouvelle partition en utilisant l'espace libéré.
De nombreux outils de partionnement gratuits et commerciaux sont listés sur http://en.wikipedia.org/wiki/List_of_disk_partitioning_software. GParted Live (http://gparted.sourceforge.net/livecd.php) est un CD Live gratuit qui comprend l'éditeur de partition GParted. GParted est également disponible sur d'autres CDs Live Linux.
Utilisés correctement, les outils de redimensionnement des disques peuvent créer, sans risque, l'espace nécessaire pour la création d'une nouvelle partition. Etant donnée que la possibilité de sélectionner la mauvaise partition existe, effectuer toujours une sauvegarde des données importantes et vérifier son intégrité avant de modifier les partitions du disque.
Disposer de différentes partitions contenant chacune un système d'exploitation différent rend possible l'installation de plusieurs systèmes d'exploitation sur un ordinateur. Une autre méthode est d'utiliser la virtualisation (Chapitre 23, Virtualisation) qui permet l'exécution simultanée de plusieurs systèmes d'exploitation sans avoir à modifier les partitions du disque dur.
Récupérer les informations relatives au réseau
Certaines méthodes d'installation de FreeBSD requièrent une connexion réseau pour télécharger les fichiers d'installation. Après toute installation, le programme d'installation proposera de configurer les interfaces réseau du système.
Si le réseau dispose d'un serveur DHCP, il peut être utilisé pour fournir une configuration réseau automatique. Si la configuration par DHCP n'est pas possible, les informations réseau suivantes pour le système doivent être obtenues auprès de l'administrateur réseau ou du fournisseur d'accès:
Vérifier l'Errata FreeBSD
Bien que le projet FreeBSD s'efforce de s'assurer que chaque version de FreeBSD soit aussi stable que possible, des bogues peuvent parfois exister. Il est très rare que ces bogues affectent le processus d'installation. Dès que ces problèmes sont découverts et corrigés, ils sont notés dans l'Errata de FreeBSD (https://www.freebsd.org/releases/12.1R/errata.html) présent sur le site Web de FreeBSD. Vérifier l'errata avant l'installation afin d'être sûr qu'il n'y a pas de problème pouvant affecter l'installation.
Les informations sur chaque version, y compris les errata, peuvent être trouvés sur le site web de FreeBSD dans la section d'information sur les différentes versions (https://www.freebsd.org/releases/index.html).
Le programme d'installation FreeBSD n'est pas une application qui peut être exécutée à partir d'un autre système d'exploitation. Au lieu de cela, télécharger un fichier d'installation de FreeBSD, copiez-le sur le support correspondant à sa taille (CD, DVD, ou clé USB) et démarrer le système pour installer à partir du support inséré ou branché sur l'ordinateur.
Les fichiers d'installation de FreeBSD sont
disponibles sur www.freebsd.org/where.html#download.
Chaque nom de fichier d'installation contient le numéro de la
version de FreeBSD, l'architecture et le type de fichier.
Par exemple pour installer FreeBSD 12.1 sur un système
amd64 à partir d'un DVD, téléchargez
FreeBSD-12.1-RELEASE-amd64-dvd1.iso
,
gravez ce fichier sur un DVD, et démarrer
le système avec le DVD inséré.
Les fichiers d'installation sont disponibles dans différents formats. Les formats varient en fonction de l'architecture matérielle et du type de support.
Des fichiers
d'installation supplémentaires sont prévus pour les
ordinateurs qui sont amorcés par UEFI
(Unified Extensible Firmware Interface pour « Interface
micrologicielle extensible unifiée »). Le nom de ces
fichiers comprend la chaîne de caractères
uefi
.
Types de fichiers:
-bootonly.iso
: C'est le plus petit
fichier d'installation car il ne contient que le programme
d'installation. Une connexion à Internet fonctionnelle
est requise lors de l'installation puisque le programme
d'installation téléchargera les fichiers nécessaires pour
effectuer l'installation de FreeBSD. Ce fichier doit être
gravé sur un CD en utilisant une
application de gravure de CDs.
-disc1.iso
: Ce fichier contient
tous les fichiers nécessaires pour installer FreeBSD, ses
sources, et le catalogue des logiciels portés. Il doit
être gravé sur un CD en utilisant une
application de gravure de CDs.
-dvd1.iso
: Ce fichier contient
tous les fichiers nécessaires pour installer FreeBSD, ses
sources, et le catalogue des logiciels portés. Il
contient également un ensemble de paquetages binaires
populaires pour installer un gestionnaire de fenêtres et
des applications de manière à ce qu'un système complet
puisse être installé sans nécessiter une connexion à
Internet. Ce fichier être gravé sur un
DVD en utilisant une application de
gravure de DVDs.
-memstick.img
: Ce fichier contient
tous les fichiers nécessaires pour installer FreeBSD, ses
sources, et le catalogue des logiciels portés. Il doit
être copié sur une clé USB en suivant
les instructions données plus bas.
-mini-memstick.img
: Comme
-bootonly.iso
, ne contient pas les
fichiers d'installation, mais les téléchargera au fur et à
mesure des besoins. Une connexion à Internet fonctionnelle
est requise lors de l'installation. Copier ce fichier sur
une clé USB comme décrit dans Section 2.3.1.1, « Ecrire un fichier image sur un disque
USB ».
Après avoir téléchargé le fichier image du support d'installation,
téléchargez également le fichier
CHECKSUM.SHA256
à partir du même
répertoire. Calculez une somme de
contrôle ou checksum du
fichier image. FreeBSD fournit sha256(1) à cet effet, à
utiliser comme sha256
.
Les autres systèmes d'exploitation proposent des outils similaires.fichierimage
Comparez la
somme de contrôle calculée avec celle donnée dans le fichier
CHECKSUM.SHA256
. Les sommes de contrôle
doivent être identiques. Si une des sommes ne correspond pas,
le fichier est corrompu et devra être téléchargé à
nouveau.
Le fichier *.img
est une
image de l'intégralité du contenu d'une
clé USB. Il ne peut pas être copié
directement vers le périphérique de destination comme un
simple fichier. Plusieurs applications existent pour écrire
le fichier *.img
sur une clé
USB. Cette section décrit deux de ces
utilitaires.
Avant de continuer, sauvegardez toutes les données importantes présentes sur la clé USB. Cette procédure effacera toutes les données sur la clé.
dd
pour écrire une
imageCet exemple prend /dev/da0
comme périphérique cible sur lequel l'image sera écrite.
Vérifiez que le périphérique utilisé comme cible est
bien le bon, car cette commande détruira les données
existantes.
L'utilitaire en ligne de commande dd(1) est
disponible sur les systèmes BSD, Linux®, et Mac OS®.
Pour écrire une image en utilisant
dd
, brancher la clé
USB et déterminez son nom de
périphérique. Indiquer, alors, le nom du fichier
d'installation téléchargé et le nom du périphérique pour
la clé USB. Cet exemple écrit le
fichier image d'installation amd64 sur le premier
périphérique USB sur un système FreeBSD
existant.
#
dd if=
FreeBSD-12.1-RELEASE-amd64-memstick.img
of=/dev/da0
bs=1M conv=sync
Si cette commande échoue, vérifier que la clé
USB n'est pas montée et que le nom de
périphérique est bien celui d'un disque et non d'une
partition. Certains systèmes d'exploitation pourront
nécessiter l'exécution de cette commande avec
sudo(8). La syntaxe dd(1) varie légèrement en
fonction des plate-formes; par exemple, Mac OS® a besoin
d'un bs=1m
en minuscules. Des systèmes
comme Linux® pourront mettre en tampon les écritures.
Pour forcer toutes les écritures en attente à
s'effectuer, utiliser sync(8).
Assurez-vous de préciser le bon disque comme cible, car les données existantes sur ce disque seront écrasées et détruites.
Récupérer Image Writer for Windows®
Image Writer for
Windows® est une application gratuite
pour écrire une image sur une clé USB. Téléchargez-la
depuis https://sourceforge.net/projects/win32diskimager/
et décompressez-la dans un répertoire.
Ecrire l'image avec Image Writer
Double-cliquez sur l'icone
Win32DiskImager pour lancer
le programme. Vérifiez que le lecteur affiché sous
Device
est celui de
la clé USB. Cliquer sur l'icone répertoire et
sélectionner l'image à écrire sur la clé. Cliquer sur
pour
accepter le nom du fichier image. Vérifiez que tout
est correct, et qu'il n'y a pas de répertoires
présents sur la clé USB ouverts dans d'autres
fenêtres. Puis quand tout est prêt, cliquer sur
pour écrire
le fichier image sur la clé USB.
Vous êtes maintenant prêt à commencer l'installation de FreeBSD.
Par défaut, le processus d'installation ne modifiera rien sur le(s) disque(s) dur(s) jusqu'au message suivant:
Your changes will now be written to disk. If you have chosen to overwrite existing data, it will be PERMANENTLY ERASED. Are you sure you want to commit your changes?
L'installation peut être quittée à tout moment avant cet avertissement. Si quelque chose a mal été configurée, arrêtez juste l'ordinateur avant ce point, et aucun changement ne sera effectué sur le disque dur.
Cette section décrit comment démarrer le système à partir du support d'installation qui a été préparé à l'aide des instructions de Section 2.3.1, « Préparer le support d'installation ». Pour démarrer avec une clé USB démarrable, brancher la clé USB avant d'allumer l'ordinateur. Pour démarrer avec un CD ou un DVD, allumer l'ordinateur et insérer le disque à la première occasion. Comment configurer le système pour démarrer à partir du support utilisé dépend de l'architure matérielle.
Ces architectures disposent d'un menu du BIOS pour sélectionner le périphérique de démarrage. En fonction du support de démarrage choisi, sélectionner le lecteur CD/DVD ou l'USB comme premier périphérique de démarrage. La plupart des systèmes proposent également la sélection du périphérique d'amorçage au démarrage à l'aide d'une touche sans avoir à entrer dans le BIOS. Généralement, la touche est soit F10, soit F11, soit F12, ou encore Escape.
Si l'ordinateur charge le système d'exploitation existant, alors soit:
Le support d'installation n'a pas été inséré suffisamment tôt lors du processus de démarrage. Laisser le support inséré, et essayer de redémarrer l'ordinateur.
Soit les modifications du BIOS étaient incorrectes ou non-sauvegardées. Vérifier à nouveau que le bon périphérique a été choisi comme premier périphérique de démarrage.
Ce système est trop ancien pour supporter l'amorçage à partir du support choisi. Dans ce cas, le gestionnaire de démarrage Plop (http://www.plop.at/en/bootmanager.html) peut être utilisé pour démarrer à partir du support sélectionné.
Sur la plupart des machines, maintenir la touche
C enfoncée lors du démarrage provoquera
l'amorçage du CD. Sinon appuyez sur
Command+Option+O+F,
ou
Windows+Alt+O+F
dans le cas des claviers non-Apple®. A l'invite
0 >
, entrez:
boot cd:,\ppc\loader cd:0
Une fois le système démarré à partir du support d'installation, un menu similaire au suivant sera affiché:
Par défaut, le menu attendra dix secondes une saisie de l'utilisateur avant de démarrer dans le programme d'installation de FreeBSD ou, si FreeBSD est déjà installé, avant de démarrer sous FreeBSD. Pour mettre en pause ce décompte afin d'examiner les options offertes, appuyer sur Espace. Pour sélectionner une option, appuyer sur le chiffre, le caractère ou la touche en surbrillance. Les options disponibles sont les suivantes.
Boot Multi User
(Démarrage en mode
multi-utilisateur): Cette option provoquera la poursuite
du processus de démarrage de FreeBSD. Si le décompte du
démarrage a été mis en pause, appuyer sur
1, B majuscule ou
minuscule, ou encore Entrée.
Boot Single User
(Démarrage en mode
mono-utilisateur): Ce mode peut être employé pour réparer
une installation de FreeBSD existante comme décrit dans la
Section 12.6.2, « Mode mono-utilisateur ». Appuyer sur
2 ou B majuscule ou
minuscule pour entrer dans ce mode.
Escape to loader prompt
(Quitter
vers l'interpréteur de commandes du chargeur): Cela
démarrera le système dans l'interpréteur de commandes du
chargeur qui offre un nombre limité de commandes
bas-niveau. Cette invite de commandes est abordée dans la
Section 12.3.3, « Etape trois, /boot/loader
». Appuyer sur
3 ou Echap pour démarrer
dans ce mode.
Reboot
: Redémarre le système.
Kernel
: Charge un noyau différent.
Configure Boot Options
: Ouvre le
menu montré et décrit sur la Figure 2.2, « Menu des options du chargeur FreeBSD ».
Le menu des options du chargeur est divisé en deux parties. La première partie peut être utilisée pour soit retourner au menu de démarrage principal soit pour réinitialiser les options à leur valeur par défaut.
La partie suivante est utilisée pour positionner les
options disponibles sur On
ou
Off
en appuyant sur le chiffre ou le
caractère en surbrillance pour chaque option. Le système
démarre toujours en utilisant le paramétrage choisi pour ces
options jusqu'à ce qu'il soit modifié. Plusieurs options
peuvent être modifées en utilisant ce menu:
ACPI Support
: Si le système se fige
au démarrage, essayer de positionner cette option à
Off
.
Safe Mode
: Si le système se fige
toujours durant le démarrage même avec l'option
ACPI Support
à Off
,
essayer de positionner cette option à
On
.
Single User
(Mono-utilisateur):
Positionner cette option sur On
pour
réparer une installation existante de FreeBSD comme décrit
dans la Section 12.6.2, « Mode mono-utilisateur ». Une fois le
problème réglé, repositionner l'option à
Off
.
Verbose
(Verbeux): Positionner
cette option sur On
pour voir des
messages plus détaillés lors du processus de démarrage.
Cela peut être utile pour dépanner un matériel.
Après avoir effectué les sélections nécessaires, appuyer sur 1 ou Retour arrière pour retourner au menu de démarrage principal, puis appuyer sur Entrée pour démarrer sous FreeBSD. Une série de messages de démarrage apparaîtra au fur et à mesure que FreeBSD détectera le matériel et chargera le programme d'installation. Une fois le démarrage achevé, le menu d'accueil de la Figure 2.3, « Menu d'accueil » sera affiché.
Appuyer sur Enter pour sélectionner pour entrer dans le programme d'installation. Le reste de ce chapitre décrit comment utiliser ce programme d'installation. Sinon, utiliser la flèche droite ou gauche ou les lettres colorées pour sélectionner l'élément désiré. peut être sélectionné pour accéder à un interpréteur de commandes FreeBSD afin d'utiliser des utilitaires en ligne de commande pour préparer les disques avant l'installation. L'option peut être employée pour tester FreeBSD avant de l'installer. Cette option est décrite dans la Section 2.11, « Utilisation du CD Live ».
Pour relire les messages de démarrage, dont la détection
du matériel, appuyer sur la touche S
majuscule ou minuscule, puis sur Entrée
pour accéder à un interpréteur de commandes. A l'invite,
taper more /var/run/dmesg.boot
et
utiliser la barre d'espace pour faire défiler les messages.
Une fois terminé, taper exit
pour revenir
au menu d'accueil.
Cette section présente dans l'ordre les menus de bsdinstall et le type d'information qui sera demandé avant l'installation du système. Utiliser les touches fléchées pour sélectionner un menu, et ensuite la touche Espace pour sélectionner ou déselectionner cet élément du menu. Une fois terminé, utiliser Enter pour sauvegarder la sélection et passer à l'écran suivant.
Avant de démarrer le processus d'installation, bsdinstall chargera les fichiers de tables de clavier comme indiqué dans Figure 2.4, « Chargement de la table de clavier ».
Après le chargement des tables de clavier, bsdinstall affiche le menu montré sur Figure 2.5, « Menu de sélection de la table de clavier ». Utilisez les flèches haut et bas pour choisir la table de clavier la plus proche de celle du clavier relié au système. Appuyer sur Enter pour sauvegarder la sélection.
Un appui sur Echap provoquera la sortie de ce menu et l'utilisation de la table par défaut. Si le choix ne semble pas évident, choisir est conseillé.
De plus, lors de la sélection d'une table de clavier différente, l'utilisateur peut tester la table et s'assurer qu'elle est correcte avant de prendre en compte le changement comme montré sur Figure 2.6, « Menu de test de la table de clavier ».
Le menu bsdinstall suivant est utilisé pour configurer le nom de machine à donner au système nouvellement installé.
Saisir un nom de machine qui est unique sur le réseau.
Cela doit être un nom de machine complet comme machine3.example.com
Ensuite, bsdinstall demandera de choisir les composants optionnels à installer.
Décider quels composants installer dépendra principalement de l'utilisation prévue du système et de l'espace disque disponible. Le noyau FreeBSD et les utilitaires de base, formant ensemble ce que l'on nomme le système de base, sont toujours installés. Selon l'architecture, certains de ces composants peuvent ne pas apparaître:
base-dbg
- Outils de base comme
cat,
ls parmi tant d'autres avec
les symboles de débogage activés.
kernel-dbg
- Noyau et modules avec
les symboles de débogage activés.
lib32-dbg
- Bibliothèques de
compatibilité pour l'exécution d'applications 32bits sur
une version 64bits de FreeBSD avec les symboles de débogage
activés.
lib32
- Bibliothèques de
compatibilité pour l'exécution d'applications 32bits sur
une version 64bits de FreeBSD.
ports
- Le catalogue des logiciels
portés pour FreeBSD.
Le catalogue des logiciels portés est un ensemble de fichiers qui automatise le téléchargement, la compilation et l'installation de logiciels tierce-partie. Le Chapitre 4, Installer des applications: les logiciels pré-compilés et les logiciels portés discute de l'utilisation du catalogue des logiciels portés.
Le programme d'installation ne vérifie pas la présence de l'espace requis. Sélectionner cette option uniquement si l'espace disque suffisant est disponible. Le catalogue des logiciels portés occupe environ 440 Mo d'espace disque.
src
- Code source complet du noyau et
du système de base. Bien que n'étant pas requis pour la
majorité des applications, il peut être nécessaire pour
compiler des pilotes de périphériques, des modules du
noyau, ou des applications du catalogue des logiciels
portés. Il est également utilisé pour le développement de
FreeBSD. L'arborescence complète des sources demande
1 Go
d'espace disque, et la recompilation du système FreeBSD
complet nécessite 5 Go d'espace
supplémentaire.
tests
- Suite d'outils de test pour
FreeBSD.
Le menu affiché dans Figure 2.9, « Installation à partir du réseau » n'apparaît que lors
de l'installation à partir d'une image
-bootonly.iso
ou -mini-memstick.img
étant donné que ces supports
d'installation ne contiennent pas de copie des fichiers
d'installation. Comme les fichiers d'installation doivent être
récupérés par l'intermédiaire d'une connexion réseau, ce menu
indique qu'une interface réseau doit être configurée en premier
lieu. Si ce menu est affiché à un moment donné de
l'installation, pensez à suivre les instructions données dans
Section 2.9.1, « Configuration des interfaces réseau ».
Le menu suivant est utilisé pour déterminer la méthode pour allouer l'espace disque.
bsdinstall propose à l'utilisateur quatre méthodes pour allouer l'espace disque:
le partitionnement Auto (UFS)
fixe automatiquement les partitions disque et utilise le
système de fichiers UFS
.
le partitionnement Manual
(« Manuel ») permet aux utilisateurs avancés de
créer des partitions sur mesures à partir des options du
menu.
Shell
ouvre une invite d'interpréteur
de commandes dans laquelle les utilisateurs avancés peuvent
créer des partitions sur mesures en utilisant des
utilitaires en ligne de commande comme gpart(8),
fdisk(8), et bsdlabel(8).
le partitionnement Auto (ZFS)
créé un
système de fichiers racine sur ZFS avec le support optionnel
du chiffrement GELI pour les environnements de
démarrage.
Cette section décrit ce qui doit être pris en compte lors du partitionnement du disque. Elle montre ensuite comment utiliser les différentes méthodes de partionnement.
Lors du partitionnement, il faut garder à l'esprit que les
disques durs transfèrent les données plus rapidement depuis
les pistes extérieures que depuis les pistes intérieures.
Aussi, les systèmes de fichiers plus petits et très sollicités
devraient être positionnés vers l'extérieur du disque, alors
que les partitions plus grandes comme
/usr
devraient être placées vers
l'intérieur du disque. C'est une bonne idée de créer les
partitions dans l'ordre suivant: /
,
espace de pagination, /var
, et
/usr
.
La taille de la partition /var
reflète l'utilisation prévue de la machine. Cette partition
est utilisée pour contenir les boîtes aux lettres de
messagerie, les fichiers journaux, et les queues d'impression.
Les boîtes aux lettres et les fichiers journaux peuvent
croître jusqu'à atteindre des tailles inattendues en fonction
du nombre d'utilisateurs et combien de temps sont conservés
les fichiers journaux. En moyenne, la plupart des
utilisateurs n'auront rarement besoin de plus d'un gigaoctet
d'espace disque pour /var
.
Parfois, beaucoup d'espace disque est nécessaire pour
/var/tmp
. Quand de nouveaux logiciels
sont installés, les outils de paquetage extraient une copie
temporaire des paquetages dans
/var/tmp
. Les logiciels importants
comme Firefox,
ou
LibreOffice peuvent être délicats
à installer si l'espace disque dans
/var/tmp
n'est pas suffisant.
La partition /usr
contient beaucoup
de fichiers nécessaires au système, dont le catalogue des
logiciels portés de FreeBSD et le code source du système. Au
moins 2 gigaoctets d'espace sont recommandés pour cette
partition.
Lors du choix de la taille des partitions, gardez à l'esprit les besoins en espace. Manquer d'espace sur une partition alors qu'une autre est à peine utilisée peut être très frustrant.
Par principe, votre espace de pagination devrait typiquement avoir une taille double de la quantité de mémoire physique (RAM). Les systèmes avec peu de mémoire RAM pourront avoir de meilleures performances avec beaucoup plus d'espace de pagination. Configurer trop peu d'espace de pagination peut conduire à une certaine inefficacité du code de pagination de la mémoire virtuelle (VM) et peut être à l'origine de problèmes ultérieurement si vous ajoutez plus de mémoire à votre système.
Sur des systèmes importants avec de multiples disques SCSI ou de multiples disques IDE fonctionnant sur différents contrôleurs, il est vivement recommandé que vous configuriez un espace de pagination sur chaque disque, jusqu'à quatre disques. Les partitions de pagination sur les différents disques devront avoir approximativement la même taille. Le noyau peut gérer des tailles arbitraires mais les structures de données internes sont dimensionnées pour 4 fois la taille de la plus grande partition de pagination. Garder la taille des partitions de pagination proche permettra au noyau de répartir de manière optimale l'espace de pagination entre les disques. Des espaces de pagination importants ne sont pas problématiques, même s'ils sont peu utilisés. Il peut être plus simple de récupérer la main face un programme incontrôlable avant d'être forcé à redémarrer la machine.
En partitionnant correctement votre système, la
fragmentation introduite sur les partitions plus petites et
plus chargées en écriture ne s'étendra pas sur les partitions
principalement utilisées en lecture. De plus, avoir les
partitions principalement utilisées en écriture proche du bord
du disque augmentera les performances d'E/S
sur les partitions qui le demandent le plus. Bien qu'il soit
nécessaire d'avoir de bonnes performances
d'E/S sur les grandes partitions, les
déplacer plus vers l'extérieur du disque ne donnera pas lieu à
une augmentation significative des performances alors que le
déplacement de performances alors que le déplacement de
/var
vers le bord peut avoir un sérieux
impact.
Quand cette méthode est sélectionnée, un menu affichera le(s) disque(s) disponible(s). Si plusieurs disques sont connectés, choisissez celui sur lequel FreeBSD doit être installé.
Une fois le disque sélectionné, le menu suivant demande si l'installation se fait soit sur l'intégralité du disque soit sur une partition à créer à partir de l'espace libre. Si
est sélectionné, une partition recouvrant la totalité du disque est automatiquement créée. Sélectionner créé une partition dans l'espace inutilisé du disque.Après la sélection de bsdinstall affiche une boîte de dialogue indiquant que le disque va être effacé.
,Le menu suivant montre une liste avec les différents types d'organisation des partitions. GPT est généralement le choix le plus adapté pour les ordinateurs de type amd64. Les ordinateurs plus anciens qui ne sont pas compatibles avec GPT devraient utiliser un partionnement de type MBR. Les autres types de partionnement sont généralement utilisés pour les ordinateurs peu courants ou anciens. Plus d'informations sont disponibles dans la Tableau 2.1, « Tables de partitionnement ».
Une fois l'organisation des partitions créée, vérifiez-la afin de s'assurer qu'elle correspond bien aux besoins de l'installation. La sélection de
permettra de revenir au partitionnement de départ, et l'appui sur créera les partitions FreeBSD automatiquement. Les partitions peuvent être créées, modifiées, ou supprimées manuellement. Quand le partitionnement est correct, sélectionner pour poursuivre l'installation.Une fois les disques configurés, le menu suivant offre une dernière chance pour effectuer des modifications avant que les disques sélectionnés ne soient formatés. Si des changements doivent être faits, choisir
pour retourner dans le menu principal de partionnement. fera quitter le programme d'installation sans qu'aucun changement n'ait été appliqué au disque dur. Sélectionner pour lancer le processus d'installation.Pour poursuivre le processus d'installation, aller à la Section 2.7, « Récupération des fichiers de distribution ».
La sélection de cette méthode ouvre l'éditeur de partitions.
Sélectionner le disque d'installation(ada0
dans
cet exemple) et
pour afficher un menu sur le choix du type de
table de partitionnement.
Le partitionnement GPT est généralement le choix le plus approprié pour les ordinateurs de type amd64 Les ordinateurs anciens qui ne sont pas compatibles avec GPT doivent utiliser à la place un partitionnement de type MBR. Les autres systèmes de partitionnement sont en général utilisés pour les ordinateurs plus anciens ou particuliers.
Abbréviation | Description |
---|---|
APM | Table de partition Apple, utilisée par l'architecture PowerPC®. |
BSD | Partition BSD (BSD Labels) sans MBR, parfois appelée dangerously dedicated mode ou « mode dédié » car les utilitaires disques non-BSD peuvent ne pas la reconnaître. |
GPT | Table de partition GUID (http://en.wikipedia.org/wiki/GUID_Partition_Table"). |
MBR | Master Boot Record (http://en.wikipedia.org/wiki/Master_boot_record"). |
VTOC8 | Volume Table Of Contents utilisé par les ordinateurs Sun SPARC64 et UltraSPARC. |
Après avoir choisi et créé le partitionnement, sélectionner à nouveau Tab est utilisée pour déplacer le curseur entre les différents champs.
créera les nouvelles partitions. La toucheUne installation standard de FreeBSD avec GPT utilise au moins trois partitions:
freebsd-boot
- Contient le code de démarrage
FreeBSD.
freebsd-ufs
- Un système de
fichiers UFS FreeBSD.
freebsd-zfs
- Un système de
fichiers ZFS FreeBSD. Plus d'informations
au sujet de ZFS est disponible dans le Chapitre 20, The Z File System (ZFS) ** Traduction
en Cours **.
freebsd-swap
- Espace de pagination
pour FreeBSD.
Consulter la page de manuel gpart(8) pour la description d'autres types de partitions disponibles pour GPT.
Des partitions avec plusieurs systèmes de fichiers peuvent
être créées et certaines personnes préfèrent une
organisation plus traditionnelle avec des partitions séparées
pour les systèmes de fichiers /
,
/var
, /tmp
, et
/usr
. Consulter Exemple 2.1, « Création d'un système traditionnel de partitions pour
systèmes de fichiers séparés », pour un
exemple.
Les tailles peuvent être entrées avec les abréviations courantes: K for kilooctet, M pour mégaoctets, ou G pour gigaoctets.
Un alignement correct des secteurs sur le disque permet de meilleures performances, et créer des partitions de tailles multiples de 4Koctets permet de s'assurer de l'alignement sur les disques à secteur de 512 octets ou 4Koctets. Généralement, employer des tailles de partition qui sont des multiples d'1M ou 1G est le moyen le plus simple de garantir que chaque partition débute sur un multiple de 4K. Il existe une exception: la partition freebsd-boot ne devrait pas dépasser 512K en raison de limitations du code de démarrage.
Un point de montage est nécessaire si cette partition
contiendra un système de fichiers. Si une seule partition UFS
unique sera créée, le point de montage devra être
/
.
Un Label
(ou étiquette) est le nom avec lequel la partition sera
connue. Les noms ou numéros de disques peuvent varier si le
disque est connecté à un contrôleur ou port différent, mais le
label de partition ne changera pas. Se référer aux labels
plutôt qu'aux noms de disques et numéros de partitions dans
les fichiers comme /etc/fstab
rend le
système plus tolérant aux changements de matériel. Les labels
GPT apparaissent dans le répertoire
/dev/gpt/
lorsqu'un disque est attaché au
système. Les autres systèmes de partitionnement présentent
d'autres possibilités au niveau des labels et leurs labels
apparaissent sous différentes répertoires dans
/dev/
.
Employez un label unique pour chaque partition
pour éviter les conflits avec les labels identiques.
Quelques lettres du nom du l'ordinateur, de son rôle, ou de
son emplacement peuvent être ajoutées au label. Par
exemple, labroot
ou
rootfslab
pour la partition UFS racine
de l'ordinateur appelé lab
.
Pour une organisation traditionnelle de partitions dans
laquelle les répertoires /
,
/var
, /tmp
, et
/usr
sont des systèmes de fichiers
séparés ayant chacun leur propre partition, créer une table
de partition GPT, puis créer les
partitions comme montré ci-après. Les tailles de partitions
indiquées sont celles typiques pour un disque de 20G. Si
plus d'espace est disponible sur le disque cible, une
partition de pagination ou une partition
/var
plus importantes peuvent être
utiles. Les labels utilisés ici sont préfixés par
ex
pour « exemple », mais le
lecteur peut utiliser un autre label unique comme décrit
plus haut.
Par défaut, le programme gptboot
de
FreeBSD s'attend à ce que la première partition UFS trouvée soit la
partition /
.
Type de partition | Taille | Point de montage | Label |
---|---|---|---|
freebsd-boot | 512K | ||
freebsd-ufs | 2G | / | exrootfs |
freebsd-swap | 4G | exswap | |
freebsd-ufs | 2G | /var | exvarfs |
freebsd-ufs | 1G | /tmp | extmpfs |
freebsd-ufs | valeur proposée par défaut (le reste du disque) | /usr | exusrfs |
Après la création des partitions, sélectionnez Section 2.7, « Récupération des fichiers de distribution ».
pour poursuivre l'installation et rendez-vous à laCe mode de partitionnement ne fonctionne qu'avec des disques entiers et effacera le contenu du disque entier. Le menu principal de configuration ZFS présente plusieurs options pour contrôler la création du pool (ensemble de stockage constitué d'un ou plusieurs disques).
Voici un résumé des options pouvant être utilisées dans ce menu:
Install
- Procède à l'installation
avec les options sélectionnées.
Pool Type/Disks
- Permet la
configuration du Pool Type
et des disques
qui formeront le pool. Le programme d'installation
ZFS automatique ne supporte, actuellement
qu'un seul périphérique virtuel (« top level
vdev ») de niveau supérieur en dehors du mode stripe
(un seul disque ou concaténation de plusieurs disques).
Pour créer des pools plus complexes, utilisez les
instructions de la Section 2.6.5, « Partitionnement à partir de l'interpréteur de
commandes »
pour créer le pool.
Rescan Devices
- Met à jour la liste
des disques disponibles.
Disk Info
- Ce menu peut être utilisé
pour inspecter chaque disque, y compris sa table des
partitions et différentes autres informations comme la
référence du modèle et son numéro de série s'ils sont
disponibles.
Pool Name
- Fixe le nom du pool. Le
nom par défaut est zroot.
Force 4K Sectors?
- Force
l'utilisation de secteurs d'une taille de 4Ko. Par défaut,
le programme d'installation créera automatiquement des
partitions qui seront alignées sur des emplacements
multiples de 4Ko et force ZFS à utiliser des secteurs de
4Ko. C'est sans risque même pour les disques avec des
secteurs de 512 octets, et présente l'avantage de s'assurer
que les pools créés sur des disques à secteurs de 512 octets
pourront se voir ajouter, dans le futur, des disques avec
secteurs de 4Ko comme espace de stockage supplémentaire ou
en remplacement de disques défectueux. Appuyez sur la
touche Enter pour choisir d'activer ou non
cette option.
Encrypt Disks?
- Le chiffrement des
disques permet à l'utilisateur de chiffer les disques avec
GELI. Plus d'information au sujet du
chiffrement des disques est disponible dans la Section 18.16.2, « Chiffrage des disques avec
geli
». Appuyez sur la touche
Enter pour choisir d'activer ou non cette
option.
Partition Scheme
- Permet de choisir
le système de partionnement. GPT est l'option recommandée
dans la plupart des cas. Appuyez sur la touche
Enter pour choisir parmi les differentes
options.
Swap Size
- Fixe la quantité d'espace
de pagination.
Mirror Swap?
- Permet à l'utilisateur
de créer un miroir de l'espace de pagination sur chaque
disque. Faites attention, activer l'espace de pagination en
mode miroir rend les crashs dumps inutilisables. Appuyez sur
la touche Enter pour choisir d'activer ou
non cette option.
Encrypt Swap?
- Permet à
l'utilisateur de chiffrer l'espace de pagination. Le
système chiffre l'espace de pagination avec une clé
temporaire à chaque démarrage du système et en change à
chaque redémarrage. Appuyez sur la touche
Enter pour choisir d'activer ou non cette
option. Plus d'information au sujet du chiffrement de
l'espace de pagination dans la Section 18.17, « Chiffrage de l'espace de pagination ».
Sélectionner T pour configurer le
Pool Type
et le ou les disques qui
constitueront le pool.
Voici un résumé des Pool Type
pouvant
être sélectionnés dans ce menu:
stripe
- Le mode striping ou
entrelacé offre le maximum d'espace de stockage à partir de
l'ensemble des périphériques connectés, mais pas de
redondance. Si un seul disque tombe en panne, les données
du pool seront perdues de manière définitive.
mirror
- Le mode miroir stocke une
copie complète des données sur chaque disque. Le mode
miroir offre de bonnes performances en lecture parce que les
données sont lues à partir de tous les disques en
parallèles. Les performances en écriture sont plus lentes
étant donné que les données doivent être écrites sur tous
les disques du pool. Ce mode permet à tous les disques sauf
un de tomber en panne. Cette option nécessite aux moins
deux disques.
raid10
- Miroirs entrelacés. Offre
les meilleures performances mais le moins d'espace de
stockage. Cette option nécessite un nombre pair de disques
et au minimum quatre disques.
raidz1
- RAID à simple redondance.
Permet la panne d'un seul disque. Cette option nécessite au
moins trois disques.
raidz2
- RAID à double redondance.
Permet la panne simultanée de deux disques. Cette option
nécessite au moins quatre disques.
raidz3
- RAID à triple redondance.
Permet la panne simultanée de trois disques. Cette option
nécessite au moins cinq disques.
Une fois que le Pool Type
a été
sélectionné, la liste des disques disponibles est affichée, et
l'utilisateur est invité à choisir un ou plusieurs disques
pour former le pool. La configuration doit être alors validée
pour s'assurer que suffisamment de disques ont été
sélectionnés. Si ce n'est pas le cas, sélectionner
pour retourner
à la liste des disques, ou
pour changer de
Pool Type
.
Si un ou plusieurs disques manquent sur la liste, ou si des disques ont été ajoutés après le lancement du programme d'installation, sélectionner
pour mettre à jour la liste des disques disponibles.Pour éviter d'effacer par accident les mauvais disques, le menu
peut être utilisé pour inspecter chaque disque, y compris sa table des partitions et plusieurs autres informations comme le modèle de disque et son numéro de série si disponibles.Sélectionnez N pour configurer le
Pool Name
. Entrez le nom souhaité puis
sélectionnez pour le prendre
en compte ou pour
retourner au menu principal et conserver le nom par
défaut.
Sélectionnez S pour fixer la quantité d'espace de pagination. Entrez la quantité souhaitée puis sélectionnez pour la prendre en compte ou pour retourner au menu principal et conserver la quantité par défaut.
Une fois que toutes les options ont été configurées aux valeurs souhaitées, sélectionnez l'option
en haut du menu. Le programme d'installation offre alors une dernière chance de tout annuler avant que le contenu des disques sélectionnés ne soit détruit pour créer le pool ZFS.Si le chiffrement GELI du disque a été activé, le programme d'installation demandera deux fois le mot de passe à utiliser pour chiffrer les disques. Ensuite, après cela, l'initialisation du chiffrement commence.
L'installation se poursuit alors normalement. Pour continuer l'installation, aller à Section 2.7, « Récupération des fichiers de distribution ».
Dans le cas d'installations complexes, les menus de
partitionnement de bsdinstall
peuvent ne pas proposer le niveau de flexibilité recherché.
Les utilisateurs expérimentés peuvent sélectionner l'option
à partir du menu de
partitionnement afin de partitionner manuellement les disques,
de créer le ou les systèmes de fichiers, d'éditer
/tmp/bsdinstall_etc/fstab
, et de monter
les systèmes de fichiers sous /mnt
. Une
fois cela fait, taper exit
pour retourner
dans bsdinstall et poursuivre
l'installation.
La durée de l'installation variera en fonction de la distribution choisie, du support d'installation, et de la vitesse de l'ordinateur. Une série de messages indiquera la progression de l'installation.
En premier lieu, le programme d'installation formatera le(s)
disque(s) sélectionné(s) et initialisera les partitions.
Ensuite, dans le cas d'une installation à partir d'un support
bootonly media
ou mini
memstick
, il téléchargera les composants
sélectionnés:
Ensuite, l'intégrité des fichiers de distribution est vérifiée pour s'assurer qu'ils n'ont pas été corrompus durant le téléchargement ou leur lecture à partir du support d'installation.
Enfin, les fichiers contrôlés sont décompressés sur le disque:
Une fois que tous les fichiers de distribution requis ont été décompressés, bsdinstall affichera le premier menu de post-installation. Cette série de menu est décrite dans la section suivante.
Tout d'abord, le mot de passe de l'utilisateur root
doit être défini. Notez
que lors de la saisie du mot de passe, les caractères tapés ne
sont pas affichés sur l'écran. Après sa saisie, le mot de
passe devra être entré une deuxième fois. Cela permet
d'éviter les erreurs de frappe.
La série de menus suivante permet de déterminer l'heure locale correcte en choisissant la région du monde, le pays et le fuseau horaire. Régler le fuseau horaire permet au système de corriger automatiquement l'heure lors des modifications régionales comme l'heure d'été ou d'hiver, et d'effectuer correctement toute autre modification relative au fuseau horaire.
L'exemple présenté ici concerne une machine située dans le fuseau horaire du centre de l'Espagne en Europe. Les choix pourront varier en fonction de la zone géographique.
La région appropriée est choisie en utilisant les touches flèches puis en appuyant sur Entrée.
Sélectionner le pays approprié en utilisant les touches flèches et appuyer sur Entrée.
Le fuseau horaire approprié est choisi en utilisant les touches flèches, puis en appuyant sur Entrée.
Confirmez que l'abréviation pour le fuseau horaire est correcte.
La date correcte est sélectionnée en utilisant les touches flèches puis en appuyant sur
. Sinon, la sélection de la date peut être passée en appuyant sur .L'heure correcte est sélectionnée en utilisant les touches flèches puis en appuyant sur
. Sinon, cette configuration peut être passée en appuyant sur .Le menu suivant est destiné à choisir quels services système seront lancés au démarrage. Tous ces services sont optionnels. Ne lancez que les services nécessaires au fonctionnement du système.
Voici un résumé des services pouvant être activés dans ce menu:
local_unbound
- Active le résolveur
DNS local. Il est important de garder à l'esprit que
c'est le résolveur du système de base qui n'est destiné
à être utilisé uniquement qu'en tant que résolveur cache
local. Si l'objectif est de mettre en place un résolveur
pour tout le réseau, installer
dns/unbound.
sshd
- Le daemon Secure
Shell (SSH) est utilisé pour
l'accès à un système à distance via une connexion chiffrée.
Activez ce service que si le système doit être accessible
pour l'ouverture de session à distance.
moused
- Activez ce service si la
souris sera utilisée à partir de la console système en ligne
de commande.
ntpdate
- Active la mise à l'heure
automatique de l'horloge au démarrage. La fonction de ce
programme est désormais disponible dans le daemon
ntpd(8). Après une certaine période d'adaptation,
l'utilitaire ntpdate(8) sera supprimé.
ntpd
- Le daemon du protocole de temps
réseau (Network Time Protocol)
(NTP) pour la synchronisation
automatique de l'horloge. Activez ce service s'il y a un
serveur Windows®, Kerberos, ou LDAP sur
le réseau.
powerd
- Utilitaire de contrôle de
la gestion de l'énergie du système pour le contrôle de la
consommation en énergie.
dumpdev
- Activer les crash dumps
peut s'avérer très utile pour déboguer les problèmes du
système, aussi les utilisateurs sont encouragés à activer
les crashs dumps.
Le menu suivant est utilisé pour sélectionner quelles options de sécurité seront activées. Toutes ces options sont facultatives. Mais leur utilisation est encouragée.
Voici un résumé des options qui peuvent être activées dans ce menu:
hide_uids
- Cache les processus en
cours d'exécution sous des utilisateurs différents pour
éviter que des utilisateurs non autorisés puissent voir
les processus en cours d'exécution exécutés par d'autres
utilisateurs (UID) évitant ainsi la fuite
d'information.
hide_gids
- Cache les processus en
cours d'exécution sous des groupes différents pour éviter
que des utilisateurs non autorisés puissent voir les
processus en cours d'exécution exécutés par d'autres
groupes (GID) évitant ainsi la fuite d'information.
hide_jail
- Cache les processus en
cours d'exécution dans des jails pour éviter que des
utilisateurs non autorisés puissent voir les processus en
cours d'exécution dans les jails.
read_msgbuf
- Désactive la lecture
du tampon des messages du noyau pour les utilisateurs
non autorisés en empêchant l'utilisation de dmesg(8)
pour lire les messages du tampon de trace du noyau.
proc_debug
- La désactivation des
fonctionnalités de débogage des processus pour les
utilisateurs non autorisés désactive une variété de
services de débogage inter-processus non-privilégiés, cela
comprend certaines fonctionnalités procfs, ptrace(), et
and ktrace(). Veuillez noter que cela empêche également
le fonctionnement d'outils de débogage pour les
utilisateurs non autorisés comme lldb(1),
truss(1), procstat(1), ainsi que certaines
fonctionnalités de débogage intégrées dans certains
langages comme PHP, etc.
random_pid
- Rend aléatoire le
choix de la valeur du PID de chaque nouveau
processus.
clear_tmp
- Nettoie le répertoire
/tmp
au démarrage du système.
disable_syslogd
- Désactive
l'ouverture d'un socket réseau
syslogd. Par défaut, FreeBSD
exécute syslogd de manière
sécurisée avec le paramètre -s
. Cela
évite que le daemon écoute sur le port 514 les requêtes
UDP entrantes. Avec cette option activée
syslogd sera exécuté avec les
paramètres -ss
ce qui empêche
l'ouverture de ports par
syslogd. Pour des informations
supplémentaires, consultez la page de manuel
syslogd(8).
disable_sendmail
- Désactive
l'agent de transfert de courrier Sendmail.
secure_console
- Quand cette option
est activée, l'invite réclame le mot de passe root
lors de l'entrée en
mode utilisateur unique.
disable_ddtrace
- DTrace peut
fonctionner dans un mode qui affectera le noyau en
exécution. Des actions destructives ne pourront pas être
utilisées sauf si elles ont été explicitement autorisées.
Pour activer cette option lors de l'utilisation de
DTrace utilisez le paramètre -w
.
Pour des informations supplémentaires, consultez la page
de manuel dtrace(1).
Le menu suivant demande de créer au moins un compte
utilisateur. Il est recommandé d'utiliser un compte
utilisateur pour l'ouverture de session sur le système
plutôt que d'employer le compte
root
. Quand on
utilise une session root
, il n'existe aucune limite
ou protection quant à ce qui peut être fait. Ouvrir une
session en tant qu'utilisateur normal est plus sûr et plus
sécurisé.
Sélectionner
pour ajouter de nouveaux utilisateurs.Suivez les instructions et saisissez les informations
demandées pour le compte utilisateur à ajouter. L'exemple
donné dans Figure 2.44, « Entrée des informations utilisateur » créé le
compte utilisateur asample
.
Voici un résumé des informations à saisir:
Username
- Le nom d'utilisateur ou
identifiant que l'utilisateur entrera pour ouvrir une
session. Une convention courante est d'utiliser la première
lettre du prénom associé au nom, tant que chaque nom
d'utilisateur reste unique sur le système. Le nom
d'utilisateur est sensible à la casse et ne devrait pas
contenir d'espace.
Full name
- Le nom complet de
l'utilisateur. Il peut contenir des espaces et est utilisé
comme description du compte utilisateur.
Uid
- L'identifiant numérique pour
cet utilisateur. En général, ce champ est laissé vide de
façon à ce que le système assigne par lui-même une
valeur.
Login group
- Le groupe de
l'utilisateur. Généralement il est laissé vide pour accepter le
choix par défaut.
Invite
- Groupes supplémentaires pour
lesquels l'utilisateur sera également ajouté comme
membre. Si l'utilisateur a besoin d'un accès
administrateur, tapez user
into
other groups?wheel
ici.
Login class
- Généralement laissé
vide pour accepter la valeur par défaut.
Shell
- Tapez un des noms listés pour
choisir l'interpréteur de commande
de l'utilisateur. Consulter Section 3.9, « Interpréteurs de commandes - “Shells” » pour
plus d'information sur les interpréteurs de commande.
Home directory
- Le répertoire de
l'utilisateur. La valeur par défaut est, en général,
correcte.
Home directory permissions
- Les
permissions sur le répertoire utilisateur. La valeur par
défaut est, en général, correcte.
Use password-based authentication?
- En général yes
de manière à ce que
l'utilisateur soit invité à entrer son mot de passe à
l'ouverture de session.
Use an empty password?
-
En général no
car c'est un problème
de sécurité d'avoir un mot de passe vide.
Use a random password?
- En général
no
de manière à ce que l'utilisateur
puisse entrer son propre mot de passe à l'invite suivante.
Enter password
- Le mot de passe
pour cet utilisateur. Les caractères tapés n'apparaîtront
pas sur l'écran.
Enter password again
- Le mot de
passe doit à nouveau être saisi pour vérification.
Lock out the account after
creation?
- En général
no
de manière à ce que l'utilisateur
puisse ouvrir une session.
Après avoir tout saisi, un résumé est affiché pour
vérification. Si une erreur a été faite, entrez
no
et recommencez.
Si tout est correct, entrez yes
pour créer
ce nouvel utilisateur.
S'il y a d'autres utilisateurs à ajouter, répondez
yes
à la question Add another
user?
. Entrez no
pour terminer
l'ajout d'utilisateurs et continuer l'installation.
Pour plus d'information sur l'ajout d'utilisateurs et leur gestion, consultez Section 13.1, « Synopsis ».
Après avoir tout installé et configuré, une dernière chance de modifier les réglages est proposée.
Utilisez ce menu pour effectuer des changements ou toute configuration supplémentaire avant de terminer l'installation.
Add User
- Décrit dans la
Section 2.8.5, « Ajouter des utilisateurs ».
Root Password
- Décrit dans la
Section 2.8.1, « Définir le mot de passe de root
».
Hostname
- Décrit dans la
Section 2.5.2, « Configurer le nom de la machine ».
Network
- Décrit dans la
Section 2.9.1, « Configuration des interfaces réseau ».
Services
- Décrit dans la
Section 2.8.3, « Activation des services ».
System Hardening
- Décrit dans la
Section 2.8.4, « Activer les options de renforcement de la
sécurité ».
Time Zone
- Décrit dans la
Section 2.8.2, « Réglage du fuseau horaire ».
Handbook
- Télécharge et installe
le Manuel FreeBSD.
Une fois la configuration finale achevée, sélectionnez
.bsdinstall demandera s'il y a des éléments supplémentaires à configurer avant le redémarrage sur le nouveau système. Sélectionner pour quitter vers un interpréteur de commande, ou pour passer à la dernière étape d'installation.
Si d'autre configuration ou une configuration spécifique est nécessaire, choisissez
pour démarrer dans le mode du CD Live.Si l'installation est achevée, sélectionnez
pour redémarrer l'ordinateur et démarrer le nouveau système FreeBSD. N'oubliez pas de retirer le support d'installation de FreeBSD ou l'ordinateur risque de redémarrer dessus à nouveau.Lors du démarrage de FreeBSD, des messages
d'information sont affichés.
Une fois que le
système a achevé son démarrage, une invite de session est
affichée.
A l'invite login:
, saisissez le nom
d'utilisateur ajouté lors de l'installation.
Evitez d'ouvrir des sessions en tant que root
. Consultez
Section 13.3, « Le compte super-utilisateur » pour des instructions sur
comment devenir super-utilisateur quand un accès
administrateur est
nécessaire.
Les messages qui ont défilé lors du démarrage
peuvent être à nouveau visualisés en appuyant sur
Scroll-Lock (ou Arrêt
défil) pour activer le défilement arrière
du tampon des messages. Les touches
PgUp, PgDn, et les touches
fléchées pourront être utilisées pour remonter dans les
messages. Une fois terminé, appuyez à nouveau sur
Scroll-Lock pour déverrouiller l'écran et fera
revenir à l'affichage normal de la console. Pour revoir ces
messages quand le système en fonctionnement depuis un
certain temps, tapez less
/var/run/dmesg.boot
à partir de l'invite.
Appuyez sur q pour retourner à
l'invite de commande après la visualisation.
Si sshd a été activé dans Figure 2.41, « Sélection de services supplémentaires à activer », le premier démarage pourra être un peu plus lent en raison de la génération des clés RSA et DSA. Les démarrages suivants seront plus rapides. Les empreintes des clés seront affichées, comme montré dans cet exemple:
Generating public/private rsa1 key pair. Your identification has been saved in /etc/ssh/ssh_host_key. Your public key has been saved in /etc/ssh/ssh_host_key.pub. The key fingerprint is: 10:a0:f5:af:93:ae:a3:1a:b2:bb:3c:35:d9:5a:b3:f3 root@machine3.example.com The key's randomart image is: +--[RSA1 1024]----+ | o.. | | o . . | | . o | | o | | o S | | + + o | |o . + * | |o+ ..+ . | |==o..o+E | +-----------------+ Generating public/private dsa key pair. Your identification has been saved in /etc/ssh/ssh_host_dsa_key. Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub. The key fingerprint is: 7e:1c:ce:dc:8a:3a:18:13:5b:34:b5:cf:d9:d1:47:b2 root@machine3.example.com The key's randomart image is: +--[ DSA 1024]----+ | .. . .| | o . . + | | . .. . E .| | . . o o . . | | + S = . | | + . = o | | + . * . | | . . o . | | .o. . | +-----------------+ Starting sshd.
Consulter Section 14.11, « OpenSSH » pour plus d'information au sujet des empreintes et de SSH.
FreeBSD n'installe pas d'environnement graphique par défaut, mais de nombreux sont disponibles. Consultez Chapitre 5, Le système X Window pour plus d'information au sujet de l'installation et la configuration d'un gestionnaire de fenêtres graphique.
Arrêter proprement un ordinateur sous FreeBSD aide à protéger
les données et même le matériel de tout dommage. Ne coupez
pas l'alimentation tant que le système n'est pas
correctement arrêté! Si l'utilisateur est membre
du groupe wheel
,
passez en super-utilisateur en tapant su
sur la ligne de commande et en entrant le mot de passe de
root
. Ensuite,
utilisez la commande
shutdown -p now
et le système se fermera
proprement, et si le matériel le support, s'éteindra lui-même.
Ensuite, est affichée une liste des interfaces réseaux trouvées sur l'ordinateur. Sélectionner l'interface à configurer.
Si une interface réseau Ethernet est choisie, le programme d'installation passera au menu montré dans la Figure 2.53, « Sélection d'un fonctionnement réseau en IPv4 ». Si une interface réseau sans-fil est choisie, le système recherchera les points d'accès sans-fil:
Les réseaux sans-fil sont identifiés par un Service Set Identifier (SSID), qui est un nom, court, unique donné à chaque réseau. Les SSIDs trouvés durant la recherche sont affichés, suivis par une description des types de chiffrement disponibles pour chaque réseau. Si le SSID désiré n'apparaît pas dans la liste, sélectionner pour rechercher à nouveau. Si le réseau désiré n'apparaît toujours pas, vérifiez qu'il n'y a pas de problèmes d'antenne ou essayez de rapprocher l'ordinateur du point d'accès. Rescannez après chaque modification.
Ensuite, entrer les informations de chiffrement pour se connecter au réseau sans-fil sélectionné. Le chiffrement WPA2 est fortement recommandé sachant que les chiffrements plus anciens, comme WEP, offrent peu de sécurité. Si le réseau utilise WPA2, entrez le mot de passe également connu sous le nom de Pre-Shared Key (PSK). Pour des raisons de sécurité, les caractères tapés dans la boîte de saisie apparaissent sous la forme d'astérisques.
Ensuite, indiquez si une adresse réseau en IPv4 doit être configurée ou non sur l'interface Ethernet ou sans-fil:
Il existe deux méthodes de configuration IPv4. En DHCP, l'interface réseau sera configurée automatiquement, c'est la méthode à privilégier si le réseau dispose d'un serveur DHCP. Sinon, les informations de configuration du réseau devront être saisies manuellement sous la forme d'une configuration statique.
N'entrez pas de paramètres réseau au hasard, cela ne fonctionnera pas. Si un serveur DHCP n'est pas disponible, récupérez les paramètres listés dans Informations réseau nécessaires auprès de l'administrateur réseau ou du fournisseur d'accès à Internet.
Si un serveur DHCP est disponible, sélectionner
dans le menu suivant pour configurer automatiquement l'interface réseau. Le programme d'installation s'arrêtera pendant environ une minute pour trouver le serveur DHCP et récupérer l'information de configuration du réseau pour le système.S'il n'y a pas de serveur DHCP, sélectionner
et tapez les paramètres d'adressage suivants dans le menu qui suit:IP Address
- L'adresse
IPv4
assignée à cet ordinateur. Cette adresse doit être
unique et ne pas être déjà utilisée par un autre
équipement sur le réseau local.
Subnet Mask
- Le masque de
sous-réseau utilisé par le réseau.
Default Router
- L'adresse
IP de la passerelle par défaut du
réseau.
L'écran suivant demandera si l'interface doit être configurée pour l'IPv6. Si l'IPv6 est disponible et désiré, choisir
pour le sélectionner.Un réseau IPv6 peut être configuré suivant deux méthodes. Le système d'autoconfiguration sans état ou StateLess Address AutoConfiguration (SLAAC) demandera automatiquement les informations de configuration correctes à un routeur local. Consulter http://tools.ietf.org pour plus d'information. La configuration statique, quant à elle, demande la saisie manuelle des informations réseau.
Si un routeur IPv6 est disponible, sélectionner
dans le menu suivant pour configurer automatiquement l'interface réseau. Le programme d'installation s'arrêtera pendant environ une minute pour trouver le routeur et obtenir les informations de configuration réseau pour le système.S'il n'y a pas de routeur IPv6, sélectionnez
et tapez les paramètres d'adressage suivants dans le menu qui suit:IPv6 Address
- L'adresse
IP
assignée à cet ordinateur. Cette adresse doit être
unique et ne pas être déjà utilisée par un autre
équipement sur le réseau local.
Default Router
- L'adresse
IPv6 de la passerelle par défaut du
réseau.
Le dernier menu de configuration est utilisé pour
configurer le système de résolution Domain Name
System (ou DNS) qui convertit
les noms de machine en adresses réseau et inversement. Si
la méthode du DHCP ou du
SLAAC a été utilisée pour configurer
automatiquement la carte réseau, les valeurs de
configuration du système de résolution de noms
(Resolver Configuration
) pourront déjà
être complétées. Dans le cas contraire, entrer le nom de
domaine du réseau local dans le champ
Search
. DNS #1
et
DNS #2
sont les adresses
IPv4 et/ou IPv6 des
serveurs DNS locaux. Au moins un serveur
DNS est nécessaire.
Une fois l'interface réseau configurée, sélectionnez un site miroir qui est situé dans la même région du monde que l'ordinateur sur lequel FreeBSD doit être installé. Les fichiers peuvent être récupérés plus rapidement quand le miroir est proche de l'ordinateur cible, réduisant ainsi le temps d'installation.
Cette section couvre le dépannage basique de l'installation, comme les problèmes courants rencontrés.
Vérifier la liste du matériel supporté (https://www.freebsd.org/releases/index.html)
de la version de FreeBSD pour être sûr que le matériel est
supporté. Si le matériel est supporté et que
des blocages ou autres problèmes surviennent,
compiler un noyau personnalisé en utilisant les instructions
de Chapitre 8, Configurer le noyau de FreeBSD pour ajouter le support pour
les périphériques qui ne sont pas présents dans le noyau
GENERIC
. Le noyau
est configuré de telle façon qu'il
supposera que la plupart des périphériques seront dans leur
configuration d'usine en termes d'IRQs,
d'adresses d'E/S, et canaux de
DMA. Si le matériel a été reconfiguré, un
fichier de configuration du noyau personnalisé peut indiquer à
FreeBSD où trouver les choses.
Quelques problèmes d'installation peuvent être évités ou allégés en mettant à jour le firmware de divers composants matériels, en particulier la carte mère. Le firmware de la carte mère peut également être désigné par le terme BIOS. La plupart des constructeurs de cartes mères ou d'ordinateur disposent d'un site web où peuvent être trouvées les mises à jour et les informations de mises à jour.
Les fabricants déconseillent fortement de mettre à jour le BIOS de la carte mère à moins d'avoir une bonne raison de le faire, comme une mise à jour critique. Le processus de mise à jour peut mal se passer, laissant un BIOS incomplet et l'ordinateur inutilisable.
Si le système se bloque au démarrage pendant la
détection du matériel, ou se comporte de manière étrange
lors de l'installation, l'ACPI peut être le
coupable. FreeBSD utilise de manière intensive le système
ACPI sur les plateformes i386 et
amd64, s'il est détecté au démarrage, pour aider à la
configuration du matériel. Malheureusement, des bogues
persistent dans le pilote ACPI, et
sur les cartes mères et leur BIOS.
L'ACPI peut être désactivé en
positionnant le paramètre
hint.acpi.0.disabled
pour le chargeur
de démarrage:
set hint.acpi.0.disabled="1"
Ce paramètre est réinitialisé à chaque démarrage du
système, il est donc nécessaire d'ajouter
hint.acpi.0.disabled="1"
au fichier
/boot/loader.conf
. Plus
d'information au sujet du chargeur peut être trouvée
dans la Section 12.1, « Synopsis ».
Le menu d'accueil de bsdinstall, montré dans Figure 2.3, « Menu d'accueil », propose une option . C'est utile pour ceux qui se demandent si FreeBSD est le bon choix et désirent tester certaines fonctionnalités avant l'installation.
Les points suivants devront être pris en compte avant l'utilisation du :
Pour utiliser le système, une authentification est
nécessaire. Le nom d'utilisateur est root
, sans mot de
passe.
Etant donné que le système s'exécute directement à partir du support d'installation, le système sera bien plus lent que s'il était installé sur un disque dur.
Cette option ne propose qu'une invite de commande et pas d'interface graphique.
Version française de Marc Fonvieille
<blackend@FreeBSD.org>
.
Le chapitre suivant couvrira les commandes et fonctionnalités de base du système d'exploitation FreeBSD. La plupart de ces informations sera valable pour n'importe quel système d'exploitation UNIX®. Soyez libre de passer ce chapitre si vous êtes familier avec ces informations. Si vous êtes nouveau à FreeBSD, alors vous voudrez certainement lire attentivement ce chapitre.
Après la lecture de ce chapitre, vous saurez:
Comment utiliser les “consoles virtuelles” de FreeBSD.
Comment les permissions des fichiers d'UNIX® fonctionnent ainsi que l'utilisation des indicateurs de fichiers sous FreeBSD.
L'architecture par défaut du système de fichiers sous FreeBSD.
L'organisation des disques sous FreeBSD.
Comment monter et démonter des systèmes de fichier.
Ce que sont les processus, daemons et signaux.
Ce qu'est un interpréteur de commande, et comment changer votre environnement de session par défaut.
Comment utiliser les éditeurs de texte de base.
Ce que sont les périphériques et les fichiers spéciaux de périphérique.
Quel est le format des binaires utilisé sous FreeBSD.
Comment lire les pages de manuel pour plus d'information.
FreeBSD peut être utilisé de diverses façons. L'une d'elles est en tapant des commandes sur un terminal texte. Une bonne partie de la flexibilité et de la puissance d'un système d'exploitation UNIX® est directement disponible sous vos mains en utilisant FreeBSD de cette manière. Cette section décrit ce que sont les “terminaux” et les “consoles”, et comment les utiliser sous FreeBSD.
Si vous n'avez pas configuré FreeBSD pour lancer automatiquement un environnement graphique au démarrage, le système vous présentera une invite d'ouverture de session après son démarrage, juste après la fin des procédures de démarrage. Vous verrez quelque chose de similaire à:
Additional ABI support:. Local package initialization:. Additional TCP options:. Fri Sep 20 13:01:06 EEST 2002 FreeBSD/i386 (pc3.example.org) (ttyv0) login:
Les messages pourront être différents sur votre système, mais cela devrait y ressembler. Les deux dernières lignes sont celles qui nous intéressent actuellement. La seconde de ces lignes nous donne:
FreeBSD/i386 (pc3.example.org) (ttyv0)
Cette ligne contient quelques éléments d'information
sur le système que vous venez de démarrer. Vous
êtes en train de lire une console “FreeBSD”,
tournant sur un processeur Intel ou compatible de la famille
x86[1]. Le nom de cette machine (chaque machine UNIX®
a un nom) est pc3.example.org
, et vous
regardez actuellement sa console système—le terminal
ttyv0
.
Et enfin, la dernière ligne est toujours:
login:
C'est le moment où vous êtes supposé taper votre “nom d'utilisateur” pour vous attacher au système FreeBSD. La section suivante décrit comment procéder.
FreeBSD est un système multi-utilisateur, multi-processeur. C'est la description formelle qui est habituellement donnée pour un système qui peut être utilisé par différentes personnes, qui exécutent simultanément de nombreux programmes sur une machine individuelle.
Chaque système multi-utilisateur a besoin d'un moyen pour distinguer un “utilisateur” du reste. Sous FreeBSD (et sous tous les systèmes de type UNIX®), cela est effectué en demandant à chaque utilisateur de “s'attacher” au système avant d'être en mesure d'exécuter des programmes. Chaque utilisateur possède un nom unique (le nom d'utilisateur) et une clé secrète personnelle (le mot de passe). FreeBSD demandera ces deux éléments avant d'autoriser un utilisateur à lancer un programme.
Juste après que FreeBSD ait démarré et en ait terminé avec l'exécution des procédures de démarrage[2], il présentera une invite et demandera un nom d'utilisateur valide:
login:
Pour cet exemple, supposons que votre nom d'utilisateur
est john
. Tapez
john
à cette invite puis appuyez sur
Entrée. Alors vous devrez être
invité à entrer un “mot de passe”:
login: john
Password:
Tapez maintenant le mot de passe de john
,
et appuyez sur Entrée. Le mot de passe
n'est pas affiché! Vous n'avez pas à
vous préoccuper de cela maintenant. Il suffit de penser que
cela est fait pour des raisons de sécurité.
Si vous avez tapé correctement votre mot de passe, vous devriez être maintenant attaché au système et prêt à essayer toutes les commandes disponibles.
Vous devriez voir apparaître le MOTD
ou message du jour suivi de l'invite de commande (un
caractère #
, $
, ou
%
). Cela indique que vous avez ouvert
avec succès une session sous FreeBSD.
Exécuter des commandes UNIX® dans une console est bien beau, mais FreeBSD peut exécuter plusieurs programmes à la fois. Avoir une seule console sur laquelle les commandes peuvent être tapées serait un peu du gaspillage quand un système d'exploitation comme FreeBSD peut exécuter des dizaines de programmes en même temps. C'est ici que des “consoles virtuelles” peuvent être vraiment utiles.
FreeBSD peut être configuré pour présenter de nombreuses consoles virtuelles. Vous pouvez basculer d'une console virtuelle à une autre en utilisant une combinaison de touches sur votre clavier. Chaque console a son propre canal de sortie, et FreeBSD prend soin de rediriger correctement les entrées au clavier et la sortie vers écran quand vous basculez d'une console virtuelle à la suivante.
Des combinaisons de touches spécifiques ont été réservées par FreeBSD pour le basculement entre consoles[3]. Vous pouvez utiliser Alt+F1, Alt+F2, jusqu'à Alt+F8 pour basculer vers une console virtuelle différente sous FreeBSD.
Quand vous basculez d'une console à une autre, FreeBSD prend soin de sauvegarder et restaurer la sortie d'écran. Il en résulte l'“illusion” d'avoir plusieurs écrans et claviers “virtuels” que vous pouvez utiliser pour taper des commandes pour FreeBSD. Les programmes que vous lancez sur une console virtuelle ne cessent pas de tourner quand cette console n'est plus visible. Ils continuent de s'exécuter quand vous avez basculé vers une console virtuelle différente.
La configuration par défaut de FreeBSD démarre avec huit
consoles virtuelles. Cependant ce n'est pas un paramétrage
fixe, et vous pouvez aisément personnaliser votre installation
pour démarrer avec plus ou moins de consoles virtuelles. Le
nombre et les paramétrages des consoles virtuelles sont
configurés dans le fichier
/etc/ttys
.
Vous pouvez utiliser le fichier
/etc/ttys
pour configurer les consoles
virtuelles de FreeBSD. Chaque ligne non-commentée dans ce fichier
(les lignes qui ne débutent pas par le caractère
#
) contient le paramétrage d'un terminal ou
d'une console virtuelle. La version par défaut de ce
fichier livrée avec FreeBSD configure neuf consoles virtuelles,
et en active huit. Ce sont les lignes commençant avec le terme
ttyv
:
# name getty type status comments # ttyv0 "/usr/libexec/getty Pc" cons25 on secure # Virtual terminals ttyv1 "/usr/libexec/getty Pc" cons25 on secure ttyv2 "/usr/libexec/getty Pc" cons25 on secure 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/X11R6/bin/xdm -nodaemon" xterm off secure
Pour une description détaillée de chaque colonne de ce fichier et toutes les options que vous pouvez utiliser pour configurer les consoles virtuelles, consultez la page de manuel ttys(5).
Une description détaillée de ce qu'est
« le mode mono-utilisateur » peut être
trouvée dans Section 12.6.2, « Mode mono-utilisateur ». Il est
important de noter qu'il n'y a qu'une console de disponible
quand vous exécutez FreeBSD en mode mono-utilisateur. Il n'y
a aucune console virtuelle de disponible. Le paramétrage de
la console en mode mono-utilisateur peut être
également trouvé dans le fichier
/etc/ttys
. Recherchez la ligne qui
commence avec le mot console
:
# name getty type status comments # # If console is marked "insecure", then init will ask for the root password # when going to single-user mode. console none unknown off secure
Comme l'indiquent les commentaires au-dessus de la ligne
console
, vous pouvez éditer cette ligne
et changer secure
pour
insecure
. Si vous faites cela, quand
FreeBSD démarrera en mode mono-utilisateur, il demandera le
mot de passe de root
.
Cependant faites attention quand vous modifiez
cela pour insecure
. Si vous
oubliez le mot de passe de root
, le
démarrage en mode mono-utilisateur sera condamné.
Il est encore possible, mais cela pourra être relativement
compliqué pour quelqu'un qui n'est pas à l'aise avec le
processus de démarrage de FreeBSD et les programmes entrant
en jeu.
La résolution (ou encore le mode vidéo) de la console FreeBSD peut être réglée à 1024x768, 1280x1024, ou tout autre résolution supportée par le circuit graphique et le moniteur. Pour utiliser une résolution vidéo différente vous devez en premier lieu recompiler votre noyau en ajoutant deux options supplémentaires:
options VESA options SC_PIXEL_MODE
Une fois votre noyau recompilé avec ces deux options, vous pouvez déterminer quels sont les modes vidéo supportés par votre matériel en utilisant l'outil vidcontrol(1). Pour obtenir une liste des modes supportés, tapez la ligne suivante:
#
vidcontrol -i mode
La sortie de cette commande est une liste des modes
vidéo que supporte votre matériel. Vous pouvez
ensuite décider d'utiliser un nouveau mode en le
passant à la commande vidcontrol(1) tout en ayant
les droits de root
:
#
vidcontrol MODE_279
Si le nouveau mode vidéo est satisfaisant, il peut
être activé au démarrage de manière
permanente en le configurant dans le fichier
/etc/rc.conf
:
allscreens_flags="MODE_279"
FreeBSD, étant un descendant direct de l'UNIX® BSD, est basé sur plusieurs concepts clés d'UNIX®. Le premier, et le plus prononcé, est le fait que FreeBSD est un système d'exploitation multi-utilisateurs. Le système peut gérer plusieurs utilisateurs travaillant tous simultanément sur des tâches complètement indépendantes. Le système est responsable du partage correct et de la gestion des requêtes pour les périphériques matériels, la mémoire, et le temps CPU de façon équitable entre chaque utilisateur.
Puisque le système est capable de supporter des utilisateurs multiples, tout ce que le système gère possède un ensemble de permissions définissant qui peut écrire, lire, et exécuter la ressource. Ces permissions sont stockées sous forme de trois octets divisés en trois parties, une pour le propriétaire du fichier, une pour le groupe auquel appartient le fichier, et une autre pour le reste du monde. Cette représentation numérique fonctionne comme ceci:
Valeur | Permission | Contenu du répertoire |
---|---|---|
0 | Pas d'accès en lecture, pas d'accès en écriture, pas d'accès en exécution | --- |
1 | Pas d'accès en lecture, pas d'accès en écriture, exécution | --x |
2 | Pas d'accès en lecture, écriture, pas d'accès en exécution | -w- |
3 | Pas d'accès en lecture, écriture, exécution | -wx |
4 | Lecture, pas d'accès en écriture, pas d'accès en exécution | r-- |
5 | Lecture, pas d'accès en écriture, exécution | r-x |
6 | Lecture, écriture, pas d'accès en exécution | rw- |
7 | Lecture, écriture, exécution | rwx |
Vous pouvez utiliser l'option -l
avec la
commande ls(1) pour afficher le contenu du répertoire
sous forme une longue et détaillée qui inclut une colonne
avec des informations sur les permissions d'accès des fichiers
pour le propriétaire, le groupe, et le reste du monde.
Par exemple un ls -l
dans un répertoire
quelconque devrait donner:
%
ls -l
total 530 -rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile -rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile -rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt ...
Voici
comment est divisée la première colonne de l'affichage
généré par ls -l
:
-rw-r--r--
Le premier caractère (le plus à gauche) indique
si c'est un fichier normal, un répertoire, ou
un périphérique mode caractère,
une socket, ou tout autre pseudo-périphérique.
Dans ce cas, -
indique un fichier normal. Les trois caractères suivants,
rw-
dans cet exemple, donnent les
permissions pour le propriétaire du fichier. Les trois
caractères qui suivent, r--
, donnent les
permissions pour le groupe auquel appartient le fichier.
Les trois derniers caractères, r--
,
donnent les permissions pour le reste du
monde. Un tiret signifie que la permission est désactivée.
Dans le cas de ce fichier, les permissions sont telles que le
propriétaire peut lire et écrire le fichier, le groupe
peut lire le fichier, et le reste du monde peut seulement lire le fichier.
D'après la table ci-dessus, les permissions pour ce fichier
seraient 644
, où chaque chiffre
représente les
trois parties des permissions du fichier.
Tout cela est bien beau, mais comment le système
contrôle les permissions sur les périphériques?
En fait FreeBSD traite la plupart des périphériques
sous la forme d'un fichier que les programmes peuvent ouvrir, lire,
et écrire des données dessus comme tout autre fichier.
Ces périphériques spéciaux sont stockés
dans le répertoire /dev
.
Les répertoires sont aussi traités comme des fichiers. Ils ont des droits en lecture, écriture et exécution. Le bit d'exécution pour un répertoire a une signification légèrement différente que pour les fichiers. Quand un répertoire est marqué exécutable, cela signifie qu'il peut être traversé, i.e. il est possible d'utiliser “cd” (changement de répertoire). Ceci signifie également qu'à l'intérieur du répertoire il est possible d'accéder aux fichiers dont les noms sont connus (en fonction, bien sûr, des permissions sur les fichiers eux-mêmes).
En particulier, afin d'obtenir la liste du contenu d'un répertoire, la permission de lecture doit être positionnée sur le répertoire, tandis que pour effacer un fichier dont on connaît le nom, il est nécessaire d'avoir les droits d'écriture et d'exécution sur le répertoire contenant le fichier.
Il y a d'autres types de permissions, mais elles sont principalement employées dans des circonstances spéciales comme les binaires “setuid” et les répertoires “sticky”. Si vous désirez plus d'information sur les permissions de fichier et comment les positionner, soyez sûr de consulter la page de manuel chmod(1).
Les permissions symboliques, parfois désignées sous le nom d'expressions symboliques, utilisent des caractères à la place de valeur en octal pour assigner les permissions aux fichiers et répertoires. Les expressions symboliques emploient la syntaxe: (qui) (action) (permissions), avec les valeurs possibles suivantes:
Option | Lettre | Représente |
---|---|---|
(qui) | u | Utilisateur |
(qui) | g | Groupe |
(qui) | o | Autre |
(qui) | a | Tous (« le monde entier ») |
(action) | + | Ajouter des permissions |
(action) | - | Retirer des permissions |
(action) | = | Fixe les permissions de façon explicite |
(permissions) | r | Lecture |
(permissions) | w | Ecriture |
(permissions) | x | Exécution |
(permissions) | t | bit collant (sticky) |
(permissions) | s | Exécuter avec l'ID utilisateur (UID) ou groupe (GID) |
Ces valeurs sont utilisées avec la commande
chmod(1) comme précédemment mais avec
des lettres. Par exemple, vous pourriez utiliser la commande
suivante pour refuser l'accès au fichier
FICHIER
à d'autres
utilisateurs:
%
chmod go= FICHIER
Une liste séparé par des virgules peut être
fournie quand plus d'un changement doit être effectué
sur un fichier. Par exemple la commande suivante retirera
les permissions d'écriture au groupe et au “reste du
monde” sur le fichier FICHIER
,
puis ajoutera la permission d'exécution pour tout le
monde:
%
chmod go-w,a+x FICHIER
En addition des permissions sur les fichiers précédemment présentées, FreeBSD supporte l'utilisation d'« indicateurs de fichiers ». Ces indicateurs rajoutent un niveau de contrôle et de sécurité sur les fichiers, mais ne concernent pas les répertoires.
Ces indicateurs ajoutent donc un niveau de contrôle
supplémentaire des fichiers, permettant d'assurer que
dans certains cas même le super-utilisateur
root
ne pourra effacer ou modifier des
fichiers.
Les indicateurs de fichiers peuvent être
modifiés avec l'utilitaire chflags(1), ce dernier
présentant une interface simple. Par exemple, pour
activer l'indicateur système de suppression impossible
sur le fichier file1
, tapez la commande
suivante:
#
chflags sunlink file1
Et pour désactiver l'indicateur de suppression
impossible, utilisez la commande précédente avec
le préfixe « no » devant l'option
sunlink
:
#
chflags nosunlink file1
Pour afficher les indicateurs propres à ce fichier,
utilisez la commande ls(1) avec l'option
-lo
:
#
ls -lo file1
La sortie de la commande devrait ressembler à:
-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1
Plusieurs indicateurs ne peuvent être
positionnés ou retirés que par le
super-utilisateur root
. Dans les autres
cas, le propriétaire du fichier peut activer ces
indicateurs. Pour plus d'information, la lecture des pages de
manuel chflags(1) et chflags(2) est
recommandée à tout administrateur.
L'organisation de l'arborescence des répertoires de FreeBSD est essentielle pour obtenir une compréhension globale du système. Le concept le plus important à saisir est celui du répertoire racine, “/”. Ce répertoire est le premier a être monté au démarrage et il contient le système de base nécessaire pour préparer le système d'exploitation au fonctionnement multi-utilisateurs. Le répertoire racine contient également les points de montage pour les autres systèmes de fichiers qui sont montés lors du passage en mode multi-utilisateurs.
Un point de montage est un répertoire où peuvent
être greffés des systèmes de fichiers
supplémentaires au système de
fichiers parent (en général le système de fichiers racine). Cela est décrit plus en détails dans la Section 3.5, « Organisation des disques ». Les points de montage standards incluent
/usr
, /var
,
/tmp
,
/mnt
, et /cdrom
. Ces
répertoires sont en général
référencés par des entrées dans le
fichier /etc/fstab
.
/etc/fstab
est une table des divers systèmes
de fichiers et de leur point de montage utilisé comme
référence par le système.
La plupart des systèmes de fichiers présents dans
/etc/fstab
sont montés automatiquement au
moment du démarrage par la procédure rc(8) à
moins que
l'option noauto
soit présente.
Plus de détails peuvent être trouvés dans la
Section 3.6.1, « Le fichier fstab
».
Une description complète de l'arborescence du système de fichiers est disponible dans la page de manuel hier(7). Pour l'instant, une brève vue d'ensemble des répertoires les plus courants suffira.
Répertoire | Description |
---|---|
/ | Répertoire racine du système de fichiers. |
/bin/ | Programmes utilisateur fondamentaux aux deux modes de fonctionnement mono et multi-utilisateurs. |
/boot/ | Programmes et fichiers de configuration utilisés durant le processus de démarrage du système. |
/boot/defaults/ | Fichiers de configuration par défaut du processus de démarrage; voir la page de manuel loader.conf(5). |
/dev/ | Fichiers spéciaux de périphérique; voir la page de manuel intro(4). |
/etc/ | Procédures et fichiers de configuration du système. |
/etc/defaults/ | Fichiers de configuration du système par défaut; voir la page de manuel rc(8). |
/etc/mail/ | Fichiers de configuration pour les agents de transport du courrier électronique comme sendmail(8). |
/etc/namedb/ | Fichiers de configuration de named ;
voir la page de manuel named(8). |
/etc/periodic/ | Procédures qui sont exécutées de façon quotidienne, hebdomadaire et mensuelle par l'intermédiaire de cron(8); voir la page de manuel periodic(8). |
/etc/ppp/ | Fichiers de configuration de ppp ; voir
la page de manuel ppp(8). |
/mnt/ | Répertoire vide habituellement utilisé par les administrateurs système comme un point de montage temporaire. |
/proc/ | Le système de fichiers pour les processus; voir les pages de manuel procfs(5), mount_procfs(8). |
/rescue/ | Programmes liés en statique pour les réparations d'urgence; consultez la page de manuel rescue(8). |
/root/ | Répertoire personnel du compte
root . |
/sbin/ | Programmes systèmes et utilitaires systèmes fondamentaux aux environnements mono et multi-utilisateurs. |
/tmp/ | Fichiers temporaires.
Le contenu de /tmp
n'est en général PAS préservé
par un redémarrage du système. Un
système de fichiers en mémoire est
souvent monté sur /tmp . Cela peut
être automatisé en utilisant les
variables rc.conf(5) relatives au système
« tmpmfs » (ou à l'aide d'une
entrée dans le fichier
/etc/fstab ; consultez la page de
manuel mdmfs(8)). |
/usr/ | La majorité des utilitaires et applications utilisateur. |
/usr/bin/ | Utilitaires généraux, outils de programmation, et applications. |
/usr/include/ | Fichiers d'en-tête C standard. |
/usr/lib/ | Ensemble des bibliothèques. |
/usr/libdata/ | Divers fichiers de données de service. |
/usr/libexec/ | Utilitaires et daemons système (exécutés par d'autres programmes). |
/usr/local/ | Exécutables, bibliothèques, etc... Egalement
utilisé comme destination de défaut pour les
logiciels portés pour FreeBSD. Dans
/usr/local , l'organisation
générale
décrite par la page de manuel hier(7) pour
/usr devrait être utilisée.
Exceptions faites du répertoire man qui est directement
sous /usr/local plutôt que sous
/usr/local/share , et la
documentation des logiciels portés est dans
share/doc/port .
|
/usr/obj/ | Arborescence cible spécifique à une
architecture produite par la compilation de l'arborescence
/usr/src . |
/usr/ports | Le catalogue des logiciels portés (optionnel). |
/usr/sbin/ | Utilitaires et daemons système (exécutés par les utilisateurs). |
/usr/share/ | Fichiers indépendants de l'architecture. |
/usr/src/ | Fichiers source FreeBSD et/ou locaux. |
/usr/X11R6/ | Exécutables, bibliothèques etc... de la distribution d'X11R6 (optionnel). |
/var/ | Fichiers de traces, fichiers temporaires, et
fichiers tampons. Un système de fichiers en
mémoire est parfois monté sur /var . Cela peut
être automatisé en utilisant les
variables rc.conf(5) relatives au système
« varmfs » (ou à l'aide d'une
entrée dans le fichier
/etc/fstab ; consultez la page de
manuel mdmfs(8)). |
/var/log/ | Divers fichiers de trace du système. |
/var/mail/ | Boîtes aux lettres des utilisateurs. |
/var/spool/ | Divers répertoires tampons des systèmes de courrier électronique et d'impression. |
/var/tmp/ | Fichiers temporaires. Ces fichiers sont
généralement conservés lors d'un
redémarrage du système, à moins
que /var ne
soit un système de fichiers en
mémoire. |
/var/yp | Tables NIS. |
Le plus petit élément qu'utilise FreeBSD pour
retrouver des fichiers est le nom de fichier. Les noms de
fichiers sont sensibles à la casse des caractères,
ce qui signifie que readme.txt
et
README.TXT
sont deux fichiers
séparés. FreeBSD n'utilise pas l'extension
(.txt
) d'un fichier pour déterminer
si ce fichier est un programme, un document ou une autre forme
de donnée.
Les fichiers sont stockés dans des répertoires. Un répertoire peut ne contenir aucun fichier, ou en contenir plusieurs centaines. Un répertoire peut également contenir d'autre répertoires, vous permettant de construire une hiérarchie de répertoires à l'intérieur d'un autre. Cela rend plus simple l'organisation de vos données.
Les fichiers et les répertoires sont
référencés en donnant le nom du fichier ou
du répertoire, suivi par un slash, /
,
suivi par tout nom de répertoire nécessaire. Si
vous avez un répertoire foo
, qui
contient le répertoire bar
, qui
contient le fichier readme.txt
, alors le
nom complet, ou chemin
(“path”) vers le fichier est
foo/bar/readme.txt
.
Les répertoires et les fichiers sont stockés sur un système de fichiers. Chaque système de fichiers contient à son niveau le plus haut un répertoire appelé répertoire racine pour ce système de fichiers. Ce répertoire racine peut alors contenir les autres répertoires.
Jusqu'ici cela est probablement semblable à n'importe
quel autre système d'exploitation que vous avez pu avoir
utilisé. Il y a quelques différences: par
exemple, MS-DOS® utilise \
pour séparer
les noms de fichier et de répertoire, alors que MacOS
utilise :
.
FreeBSD n'utilise pas de lettre pour les lecteurs, ou
d'autres noms de disque dans le chemin. Vous n'écrirez
pas c:/foo/bar/readme.txt
sous
FreeBSD.
Au lieu de cela, un système de fichiers est
désigné comme système de
fichiers racine. La racine du système de
fichiers racine est représentée par un
/
. Tous les autres systèmes de
fichiers sont alors montés sous le
système de fichiers racine. Peu importe le nombre de
disques que vous avez sur votre système FreeBSD, chaque
répertoire apparaît comme faisant partie du
même disque.
Supposez que vous avez trois systèmes de fichiers,
appelés A
, B
, et
C
. Chaque système de fichiers
possède un répertoire racine, qui contient deux
autres répertoires, nommés A1
,
A2
(et respectivement B1
,
B2
et C1
,
C2
).
Appelons A
le système de fichiers
racine. Si vous utilisiez la commande ls
pour visualiser le contenu de ce répertoire, vous verriez
deux sous-répertoires, A1
et
A2
. L'arborescence des répertoires
ressemblera à ceci:
Un système de fichiers doit être monté
dans un répertoire d'un autre système de fichiers.
Supposez maintenant que vous montez le système de
fichiers B
sur le répertoire
A1
. Le répertoire racine de
B
remplace A1
, et les
répertoires de B
par conséquent
apparaissent:
Tout fichier de B1
ou
B2
peut être atteint avec le chemin
/A1/B1
ou /A1/B2
si
nécessaire. Tous les fichiers qui étaient dans
A1
ont été temporairement
cachés. Ils réapparaîtront si
B
est
démonté de A.
Si B
a été monté sur
A2
alors le diagramme sera semblable à
celui-ci:
et les chemins seront /A2/B1
et
respectivement /A2/B2
.
Les systèmes de fichiers peuvent être
montés au sommet d'un autre. En continuant l'exemple
précédent, le système de fichiers
C
pourrait être monté au sommet
du répertoire B1
dans le
système de fichiers B
, menant à
cet arrangement:
Où C
pourrait être
monté directement sur le système de fichiers
A
, sous le répertoire
A1
:
Si vous êtes familier de MS-DOS®, ceci est semblable, bien
que pas identique, à la commande
join
.
Ce n'est normalement pas quelque chose qui doit vous préoccuper. Généralement vous créez des systèmes de fichiers à l'installation de FreeBSD et décidez où les monter, et ensuite ne les modifiez jamais à moins que vous ajoutiez un nouveau disque.
Il est tout à fait possible de n'avoir qu'un seul grand système de fichiers racine, et de ne pas en créer d'autres. Il y a quelques inconvénients à cette approche, et un avantage.
Les différents systèmes de fichiers peuvent avoir différentes options de montage. Par exemple, avec une planification soigneuse, le système de fichiers racine peut être monté en lecture seule, rendant impossible tout effacement par inadvertance ou édition de fichier critique. La séparation des systèmes de fichiers inscriptibles par l'utilisateur permet leur montage en mode nosuid; cette option empêche les bits suid/guid des exécutables stockés sur ce système de fichiers de prendre effet, améliorant peut-être la sécurité.
FreeBSD optimise automatiquement la disposition des fichiers sur un système de fichiers, selon la façon dont est utilisé le système de fichiers. Aussi un système de fichiers contenant beaucoup de petits fichiers qui sont écrits fréquemment aura une optimisation différente à celle d'un système contenant moins, ou de plus gros fichiers. En ayant un seul grand système de fichiers cette optimisation est perdue.
Les systèmes de fichiers de FreeBSD sont très robustes même en cas de coupure secteur. Cependant une coupure secteur à un moment critique pourrait toujours endommager la structure d'un système de fichiers. En répartissant vos données sur des systèmes de fichiers multiples il est plus probable que le système redémarre, vous facilitant la restauration des données à partir de sauvegardes si nécessaire.
Les systèmes de fichiers ont une taille fixe. Si vous créez un système de fichiers à l'installation de FreeBSD et que vous lui donnez une taille spécifique, vous pouvez plus tard vous apercevoir que vous avez besoin d'une partition plus grande. Cela n'est pas facilement faisable sans sauvegardes, recréation du système de fichiers, et enfin restauration des données.
FreeBSD dispose d'une commande, growfs(8), qui permettra d'augmenter la taille d'un système de fichiers au vol, supprimant cette limitation.
Les systèmes de fichiers sont contenus dans des
partitions. Cela n'a pas la même signification que
l'utilisation commune du terme partition (par exemple une
partition
MS-DOS®), en raison de l'héritage Unix de FreeBSD.
Chaque partition est identifiée par une lettre de
a
à h
. Chaque
partition ne contient qu'un seul système de fichiers,
cela signifie que les systèmes de fichiers sont souvent
décrits soit par leur point de montage typique dans la
hiérarchie du système de fichiers, soit par la
lettre de la partition qui les contient.
FreeBSD utilise aussi de l'espace disque pour l'espace de pagination (“swap”). L'espace de pagination fournit à FreeBSD la mémoire virtuelle. Cela permet à votre ordinateur de se comporter comme s'il disposait de beaucoup plus de mémoire qu'il n'en a réellement. Quand FreeBSD vient à manquer de mémoire il déplace certaines données qui ne sont pas actuellement utilisées vers l'espace de pagination, et les rapatrie (en déplaçant quelque chose d'autre) quand il en a besoin.
Quelques partitions sont liées à certaines conventions.
Partition | Convention |
---|---|
a | Contient normalement le système de fichiers racine |
b | Contient normalement l'espace de pagination |
c | Normalement de la même taille que la tranche
(“slice”) contenant les partitions. Cela
permet aux utilitaires devant agir sur
l'intégralité de la tranche (par exemple
un analyseur de blocs défectueux) de travailler
sur la partition c . Vous ne devriez
normalement pas créer de système de
fichiers sur cette partition. |
d | La partition d a eu dans le
passé une signification particulière, ce
n'est plus le cas aujourd'hui, et d
pourra être utilisée comme une partition
classique. |
Chaque partition contenant un système de fichiers est stockée dans ce que FreeBSD appelle une tranche (“slice”). Tranche - “slice” est le terme FreeBSD pour ce qui est communément appelé partition, et encore une fois, cela en raison des fondations Unix de FreeBSD. Les tranches sont numérotées, en partant de 1, jusqu'à 4.
Les numéros de tranche suivent le nom du
périphérique, avec le préfixe
s
, et commencent à 1. Donc
“da0s1” est la première
tranche sur le premier disque SCSI. Il ne peut y avoir que
quatre tranches physiques sur un disque, mais vous pouvez avoir
des tranches logiques dans des tranches physiques d'un type
précis. Ces tranches étendues sont
numérotées à partir de 5, donc
“ad0s5” est la première
tranche étendue sur le premier disque IDE. Elles sont
utilisées par des systèmes de fichiers qui
s'attendent à occuper une tranche entière.
Les tranches, les disques “en mode
dédié”, et les autres disques contiennent
des partitions, qui sont
représentées par des lettres allant de
a
à h
. Cette
lettre est ajoutée au nom de périphérique,
aussi “da0a” est la partition a
sur le premier disque da, qui est en “en mode
dédié”.
“ad1s3e” est la
cinquième partition de la troisième tranche du
second disque IDE.
En conclusion chaque disque présent sur le système est identifié. Le nom d'un disque commence par un code qui indique le type de disque, suivi d'un nombre, indiquant de quel disque il s'agit. Contrairement aux tranches, la numérotation des disques commence à 0. Les codes communs que vous risquez de rencontrer sont énumérés dans le Tableau 3.1, « Codes des périphériques disques ».
Quand vous faites référence à une
partition, FreeBSD exige que vous nommiez également la
tranche et le disque contenant la partition, et quand vous
faites référence à une tranche vous devrez
également faire référence au nom du disque.
On fait donc référence à une partition en écrivant le nom du disque,
s
, le numéro de la tranche, et enfin
la lettre de la partition. Des exemples sont donnés dans
l'Exemple 3.1, « Exemples d'appellation de disques, tranches et
partitions ».
L'Exemple 3.2, « Modèle conceptuel d'un disque » montre un exemple de l'organisation d'un disque qui devrait aider à clarifier les choses.
Afin d'installer FreeBSD vous devez tout d'abord configurer les tranches sur votre disque, ensuite créer les partitions dans la tranche que vous utiliserez pour FreeBSD, et alors créer un système de fichiers (ou espace de pagination) dans chaque partition, et décider de l'endroit où seront montés les systèmes de fichiers.
Code | Signification |
---|---|
ad | Disque ATAPI (IDE) |
da | Disque SCSI |
acd | CDROM ATAPI (IDE) |
cd | CDROM SCSI |
fd | Lecteur de disquette |
Nom | Signification |
---|---|
ad0s1a | Première partition (a )
sur la première tranche (s1 )
du premier disque IDE
(ad0 ). |
da1s2e | Cinquième partition (e )
sur la seconde tranche (s2 ) du
deuxième disque SCSI
(da1 ). |
Ce diagramme montre comment FreeBSD voit le premier disque
IDE attaché au système. Supposons que le disque
a une capacité de 4 Go, et contient deux tranches
de 2 Go (partitions MS-DOS®). La première tranche
contient un disque MS-DOS®, C:
, et la
seconde tranche contient une installation de FreeBSD. Dans
cet exemple l'installation de FreeBSD a trois partitions de données, et
une partition de pagination.
Les trois partitions accueilleront chacune un
système de fichiers. La partition a
sera utilisée en tant que système de fichiers
racine, la partition e
pour le contenu du
répertoire /var
, et
f
pour l'arborescence du répertoire
/usr
.
Le système de fichiers peut être vu comme un arbre
enraciné sur le répertoire /
.
/dev
, /usr
, et les
autres répertoires dans le répertoire racine sont des
branches, qui peuvent avoir leurs propres branches, comme
/usr/local
, et ainsi de suite.
Il y a diverses raisons pour héberger certains de ces
répertoires sur des systèmes de fichiers
séparés.
/var
contient les répertoires
log/
, spool/
, et divers
types de fichiers temporaires, et en tant que tels, peuvent voir
leur taille augmenter de façon importante.
Remplir le système de
fichiers racine n'est pas une bonne idée, aussi séparer
/var
de /
est souvent
favorable.
Une autre raison courante de placer certains répertoires sur d'autres systèmes de fichiers est s'ils doivent être hébergés sur des disques physiques séparés, ou sur des disques virtuels séparés, comme les systèmes de fichiers réseau, ou les lecteurs de CDROM.
Durant le processus de
démarrage, les systèmes de fichiers listés
dans /etc/fstab
sont automatiquement
montés (à moins qu'il ne soient listés avec
l'option noauto
).
Le fichier /etc/fstab
contient une
liste de lignes au format suivant:
device
/mount-point
fstype
options
dumpfreq
passno
device
Un nom de périphérique (qui devrait exister), comme expliqué dans la Section 18.2, « Noms des périphériques ».
mount-point
Un répertoire (qui devrait exister), sur lequel sera monté le système de fichier.
fstype
Le type de système de fichiers à
indiquer à
mount(8). Le système de fichiers par défaut de
FreeBSD est l'ufs
.
options
Soit rw
pour des systèmes de
fichiers à lecture-écriture, soit
ro
pour des systèmes de fichiers
à lecture seule, suivi par toute
option qui peut s'avérer nécessaire. Une option
courante est noauto
pour les systèmes de
fichiers qui ne sont normalement pas montés durant la
séquence de démarrage. D'autres options sont
présentées dans la page de manuel mount(8).
dumpfreq
C'est utilisé par dump(8) pour déterminer quels systèmes de fichiers nécessitent une sauvegarde. Si ce champ est absent, une valeur de zéro est supposée.
passno
Ceci détermine l'ordre dans lequel les systèmes
de fichiers devront être vérifiés.
Les systèmes de fichiers
qui doivent être ignorés devraient avoir leur
passno
positionné à zéro.
Le système de fichiers racine (qui doit être
vérifié avant tout le reste) devrait avoir son
passno
positionné à un,
et les options passno
des autres
systèmes fichiers devraient être positionnées
à des valeurs supérieures à un. Si plus
d'un système de fichiers ont le même
passno
alors fsck(8) essaiera
de vérifier les systèmes de fichiers
en parallèle si c'est possible.
Consultez la page de manuel de fstab(5) pour plus
d'information sur le format du fichier
/etc/fstab
et des options qu'il
contient.
La commande mount(8) est ce qui est finalement utilisé pour monter des systèmes de fichiers.
Dans sa forme la plus simple, vous utilisez:
#
mount device mountpoint
Il y beaucoup d'options, comme mentionné dans la page de manuel mount(8), mais les plus courantes sont:
-a
Monte tous les systèmes de fichiers listés dans
/etc/fstab
. Exception faite de ceux
marqués comme “noauto”, ou exclus par
le drapeau -t
, ou encore ceux qui sont
déjà montés.
-d
Tout effectuer à l'exception de l'appel
système de montage réel. Cette option est utile
conjointement avec le drapeau -v
pour
déterminer ce que mount(8) est en train
d'essayer de faire.
-f
Force le montage d'un système de fichiers non propre (dangereux), ou force la révocation de l'accès en écriture quand on modifie l'état de montage d'un système de fichiers de l'accès lecture-écriture à l'accès lecture seule.
-r
Monte le système de fichiers en lecture seule. C'est
identique à l'utilisation de l'argument
ro
(rdonly
pour les
versions de FreeBSD antérieures à la 5.2)
avec l'option
-o
.
-t
fstype
Monte le système de fichiers comme étant
du type de système donné, ou monte
seulement les systèmes de fichiers du type donné,
si l'option -a
est précisée.
“ufs” est le type de système de fichiers par défaut.
-u
Mets à jour les options de montage sur le système de fichiers.
-v
Rends la commande prolixe.
-w
Monte le système de fichiers en lecture-écriture.
L'option -o
accepte une liste d'options
séparées par des virgules, dont les suivantes:
Ne pas autoriser l'exécution de binaires sur ce système de fichiers. C'est également une option de sécurité utile.
Ne pas prendre en compte les indicateurs setuid ou setgid sur le système de fichiers. C'est également une option de sécurité utile.
La commande umount(8) prend, comme paramètre, un des
points de montage, un nom de périphérique, ou
l'option -a
ou -A
.
Toutes les formes acceptent -f
pour forcer
de démontage, et -v
pour le mode
prolixe. Soyez averti que l'utilisation de -f
n'est généralement pas une bonne idée.
Démonter de force des systèmes de fichiers pourrait
faire planter l'ordinateur ou endommager les données sur
le système de fichiers.
Les options -a
et -A
sont utilisées pour démonter tous les systèmes
de fichiers actuellement montés, éventuellement
modifié par les types de systèmes de fichiers
listés après l'option -t
.
Cependant l'option -A
, n'essaye pas de
démonter le système de fichiers racine.
FreeBSD est un système d'exploitation multi-tâches. Cela veut dire qu'il semble qu'il y ait plus d'un programme fonctionnant à la fois. Tout programme fonctionnant à un moment donné est appelé un processus. Chaque commande que vous utiliserez lancera au moins un nouveau processus, et il y a de nombreux processus système qui tournent constamment, maintenant ainsi les fonctionnalités du système.
Chaque processus est identifié de façon unique par
un nombre appelé process ID (identifiant de
processus), ou PID, et, comme pour les fichiers,
chaque processus possède également un propriétaire
et un groupe. Les informations sur le propriétaire et le groupe
sont utilisées pour déterminer quels fichiers et
périphériques sont accessibles au processus, en utilisant le
principe de permissions de fichiers abordé plus tôt.
La plupart
des processus ont également un processus parent. Le processus
parent est le processus qui les a lancés. Par exemple, si vous
tapez des commandes sous un interpréteur de commandes, alors
l'interpréteur de commandes est un processus, et toute commande
que vous lancez est aussi un processus. Chaque processus que vous
lancez de cette manière aura votre interpréteur de
commandes comme processus parent.
Une exception à cela est le processus spécial
appelé init(8). init
est
toujours le premier processus, donc son PID est toujours 1.
init
est lancé automatiquement par le noyau au
démarrage de FreeBSD.
Deux commandes sont particulièrement utiles pour voir les
processus sur le système, ps(1) et top(1). La
commande ps
est utilisée pour afficher une liste statique
des processus tournant actuellement, et peut donner leur PID, la
quantité de mémoire qu'ils utilisent, la ligne de
commande par l'intermédiaire de laquelle ils ont
été lancés, et ainsi de suite.
La commande top(1) affiche tous les processus, et actualise
l'affichage régulièrement, de sorte que vous puissiez voir
de façon intéractive ce que fait l'ordinateur.
Par défaut, ps(1) n'affiche que les commandes que vous faites tourner et dont vous êtes le propriétaire. Par exemple:
%
ps
PID TT STAT TIME COMMAND 298 p0 Ss 0:01.10 tcsh 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14) 37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14) 48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi 48730 p0 IW 0:00.00 (dns helper) (navigator-linux-) 72210 p0 R+ 0:00.00 ps 390 p1 Is 0:01.14 tcsh 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y 6688 p3 IWs 0:00.00 tcsh 10735 p4 IWs 0:00.00 tcsh 20256 p5 IWs 0:00.00 tcsh 262 v0 IWs 0:00.00 -tcsh (tcsh) 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish
Comme vous pouvez le voir dans cet exemple, la sortie de
ps(1) est organisée en un certain nombre de colonnes.
PID
est l'identifiant de processus discuté plus
tôt. Les PIDs sont assignés à partir de 1, et
vont jusqu'à 99999,
et puis repassent à 1 quand le maximum est atteint
(un PID n'est pas réassigné s'il est
déjà utilisé).
La colonne TT
donne le terminal sur lequel tourne le
programme, et peut être pour le moment ignoré sans risque.
STAT
affiche l'état du programme, peut
être également ignoré.
TIME
est la durée d'utilisation du CPU—ce
n'est généralement pas le temps écoulé depuis
que vous avez lancé le programme, comme la plupart des programmes passent
beaucoup de temps à attendre que certaines choses se produisent
avant qu'ils n'aient besoin de dépenser du temps CPU.
Et enfin, COMMAND
est la ligne de commande qui a
été utilisée lors du lancement du programme.
ps(1) supporte un certain nombre d'options différentes
pour modifier les informations affichées. Un des ensembles
d'options les plus utiles est auxww
.
a
affiche l'information au sujet de tous les
processus tournant, et pas seulement les vôtres.
u
donne le nom de l'utilisateur du propriétaire
du processus, ainsi que l'utilisation de la mémoire.
x
affiche des informations sur les processus
“daemon”, et ww
oblige ps(1) à
afficher la ligne de commande complète pour chaque processus, plutôt que de la
tronquer quand elle est trop longue pour tenir à
l'écran.
La sortie de top(1) est semblable. Un extrait de session ressemble à ceci:
%
top
last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10 47 processes: 1 running, 46 sleeping CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free Swap: 256M Total, 38M Used, 217M Free, 15% Inuse PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm 48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt ...
La sortie est divisée en deux sections. L'entête (les cinq premières lignes) donne le PID du dernier processus lancé, la charge système moyenne (qui est une mesure de l'occupation du système), la durée de fonctionnement du système (le temps écoulé depuis le dernier redémarrage), et l'heure actuelle. Les autres éléments de l'entête concernent le nombre de processus en fonctionnement (47 dans notre cas), combien d'espace mémoire et d'espace de pagination sont occupés, et combien de temps le système passe dans les différents états du CPU.
En dessous il y a une série de colonnes contenant des informations semblables à celles données par ps(1). Comme précédemment vous pouvez lire le PID, le nom d'utilisateur, la quantité de temps CPU consommée, et la commande qui a été lancée. top(1) vous affiche par défaut la quantité d'espace mémoire utilisée par chaque processus. Cela est divisé en deux colonnes, une pour la quantité totale, et une autre pour la quantité résidente—la quantité totale représente l'espace mémoire dont a eu besoin l'application, et la quantité résidente représente l'espace qui est en fait utilisé actuellement. Dans cet exemple vous pouvez voir que Netscape® a exigé presque 30 Mo de RAM, mais utilise actuellement seulement 9Mo.
top(1) actualise l'affichage toutes les deux secondes;
cela peut être modifié avec l'option
s
.
Quand vous utilisez un éditeur il est facile de le contrôler, de lui dire de charger des fichiers, et ainsi de suite. Vous pouvez faire cela parce que l'éditeur fournit les possibilités de le faire, et parce qu'un éditeur est attaché à un terminal. Certains programmes ne sont pas conçus pour fonctionner avec un dialogue constant avec l'utilisateur, et donc ils se déconnectent du terminal à la première occasion. Par exemple, un serveur web passe son temps à répondre aux requêtes web, il n'attend normalement pas d'entrée de votre part. Les programmes qui transportent le courrier électronique de site en site sont un autre exemple de cette classe d'application.
Nous appelons ces programmes des daemons (démons). Les “daemons” étaient des personnages de la mythologie Grecque: ni bon ni mauvais, c'étaient de petits esprits serviteurs qui, généralement, ont été à l'origine de choses utiles à l'humanité, un peu comme les serveurs web ou de messagerie d'aujourd'hui nous sont utiles. C'est pourquoi la mascotte BSD a été, pendant longtemps, un démon à l'apparence joyeuse portant des chaussures de tennis et une fourche.
Il existe une convention pour nommer les programmes qui
fonctionnent normalement en tant que daemons qui est d'utiliser
une terminaison en “d”.
BIND est le “Berkeley Internet Name
Domain”, mais le programme réel qui est exécuté
s'appelle named
); le programme
correspondant au serveur web Apache est
appelé httpd
; le daemon de gestion de la file
d'attente de l'imprimante est lpd
, et ainsi de
suite. C'est une convention, mais pas une obligation pure et
simple; par exemple le daemon principal de gestion du courrier
électronique pour l'application
Sendmail est appelé
sendmail
, et non pas maild
,
comme vous pourriez l'imaginer.
Parfois vous devrez communiquer avec un processus daemon.
Une manière de procéder est de lui (ou à tout processus en cours
d'exécution) envoyer ce que l'on appelle un
signal. Il existe un certain
nombre de signaux différents que vous pouvez
envoyer—certains d'entre eux ont une signification précise,
d'autres sont interprétés par l'application, et la
documentation de l'application vous indiquera comment l'application
interprète ces signaux. Vous ne pouvez envoyer de signaux
qu'aux processus dont vous êtes le propriétaire.
Si vous envoyez un signal à un
processus appartenant à quelqu'un d'autre avec kill(1)
ou kill(2), vous obtiendrez un refus de permission. Il existe
une exception à cela: l'utilisateur root
, qui
peut envoyer des signaux aux processus de chacun.
Dans certain cas FreeBSD enverra également aux applications
des signaux. Si une application est mal écrite, et tente
d'accéder à une partie de mémoire à
laquelle elle n'est pas supposée avoir accès, FreeBSD
envoie au processus le signal de
violation de segmentation
(SIGSEGV
). Si une application a utilisé
l'appel système alarm(3) pour être avertie
dès qu'une période de temps précise est
écoulée alors lui sera envoyé le signal d'alarme
(SIGALRM
), et ainsi de suite.
Deux signaux peuvent être utilisés pour arrêter
un processus, SIGTERM
et SIGKILL
.
SIGTERM
est la manière polie de tuer un
processus; le processus peut attraper le signal,
réaliser que vous désirez qu'il se termine, fermer les
fichiers de trace qu'il a peut-être ouvert, et
généralement
finir ce qu'il était en train de faire juste avant la demande
d'arrêt. Dans certains cas un processus peut ignorer un
SIGTERM
s'il est au milieu d'une tâche qui ne
peut être interrompue.
SIGKILL
ne peut être ignoré par un
processus. C'est le signal “Je me fiche de ce que vous
faites, arrêtez immédiatement”. Si vous envoyez un
SIGKILL
à un processus alors FreeBSD
stoppera le processus[4].
Les autres signaux que vous pourriez avoir envie d'utiliser
sont SIGHUP
, SIGUSR1
, et
SIGUSR2
. Ce sont des signaux d'usage
général, et différentes applications se
comporteront différemment quand ils
sont envoyés.
Supposez que vous avez modifié le fichier de configuration de
votre serveur web—vous voudriez dire à votre serveur web de
relire son fichier de configuration. Vous pourriez arrêter et
relancer httpd
, mais il en résulterait une
brève période d'indisponibilité de votre serveur
web, ce qui peut être indésirable.
La plupart des daemons sont écrits pour répondre
au signal SIGHUP
en relisant leur fichier de
configuration. Donc au lieu de tuer et relancer
httpd
vous lui enverriez le signal
SIGHUP
. Parce qu'il n'y a pas de manière
standard de répondre à ces signaux, différents
daemons auront différents comportements, soyez sûr
de ce que vous faites et lisez
la documentation du daemon en question.
Les signaux sont envoyés en utilisant la commande kill(1), comme cet exemple le montre:
Cet exemple montre comment envoyer un signal à
inetd(8). Le fichier de configuration d'inetd
est
/etc/inetd.conf
, et inetd
relira ce
fichier de configuration quand un signal
SIGHUP
est envoyé.
Trouvez l'identifiant du processus (PID) auquel vous
voulez envoyer le signal. Faites-le en employant ps(1)
et grep(1). La commande grep(1) est utilisée pour
rechercher dans le résultat la chaîne de
caractères que
vous spécifiez. Cette commande est lancée en tant
qu'utilisateur normal, et inetd(8) est lancé en tant que
root
, donc les options ax
doivent être passées à ps(1).
%
ps -ax | grep inetd
198 ?? IWs 0:00.00 inetd -wW
Donc le PID d'inetd(8) est 198. Dans certains cas la
commande grep inetd
pourrait aussi
apparaître dans le résultat. C'est à
cause de la façon dont
ps(1) recherche la liste des processus en
fonctionnement.
Utilisez kill(1) pour envoyer le signal. Etant donné
qu'inetd(8) tourne sous les droits de l'utilisateur
root
vous devez utilisez su(1) pour
devenir, en premier lieu, root
.
%
su
Password:
#
/bin/kill -s HUP 198
Comme la plupart des commandes UNIX®, kill(1) n'affichera
rien si la commande est couronnée de succès. Si vous
envoyez un signal à un processus dont vous n'êtes pas le
propriétaire alors vous verrez kill:
PID
: Operation not
permitted. Si vous avez fait une erreur dans le
PID, vous enverrez le signal soit à un mauvais processus, ce
qui peut être mauvais, soit, si vous êtes chanceux, vous
enverrez le signal à un PID qui n'est pas actuellement
utilisé, et vous verrez kill:
PID
: No such
process.
/bin/kill
?: De nombreux interpréteurs de commandes fournissent la
commande kill
comme commande interne;
c'est à dire, que l'interpréteur de commandes enverra
directement le signal, plutôt que de lancer
/bin/kill
. Cela peut être utile,
cependant les différents interpréteurs ont une syntaxe
différente pour spécifier le nom du signal à
envoyer.
Plutôt que de tenter de les apprendre toutes, il peut
être plus simple de juste employer directement la commande
/bin/kill
...
.
Envoyer d'autres signaux est très semblable, substituez juste
TERM
ou KILL
dans la ligne
de commande si nécessaire.
Tuer au hasard des processus sur le système peut
être une mauvaise idée.
En particulier, init(8), processus à
l'identifiant 1, qui est très particulier. Lancer la commande
/bin/kill -s KILL 1
est une manière
rapide d'arrêter votre système. Vérifiez
toujours à deux fois les arguments que vous
utilisez avec kill(1) avant d'appuyer
sur Entrée.
Sous FreeBSD, beaucoup du travail quotidien est effectué sous
une interface en ligne de commande appelée interpréteur de
commandes ou “shell”. Le rôle principal d'un
interpréteur de commandes est de prendre les commandes sur le
canal d'entrée et de les exécuter. Beaucoup
d'interpréteurs de commandes ont également des fonctions
intégrées pour aider dans les tâches quotidiennes
comme la gestion de fichiers, le mécanisme de
remplacement et d'expansion des jokers (“file globbing”),
l'édition de la ligne de commande, les macros commandes, et les
variables d'environnement. FreeBSD est fournit avec un ensemble
d'interpréteurs de commandes, comme sh
,
l'interpréteur de commandes Bourne, et tcsh
,
l'interpréteur de commandes C-shell amélioré.
Beaucoup d'autres
interpréteurs de commandes sont disponibles dans le catalogue des
logiciels portés, comme zsh
et
bash
.
Quel interpréteur de commandes utilisez-vous? C'est vraiment
une question de goût. Si vous programmez en C vous pourriez vous
sentir plus à l'aise avec un interpréteur de commandes
proche du C
comme tcsh
. Si vous venez du monde Linux ou que
vous êtes nouveau à l'interface en ligne de commande d'UNIX®
vous pourriez essayer bash
. L'idée principale
est que chaque interpréteur de commandes à des
caractéristiques uniques qui peuvent ou ne peuvent pas
fonctionner avec votre environnement de travail
préféré, et que vous avez vraiment le
choix de l'interpréteur de commandes à utiliser.
Une des caractéristiques communes des interpréteurs de
commandes est de pouvoir compléter les noms de fichiers
(“filename completion”). En tapant les premières
lettres d'une commande ou d'un fichier, vous pouvez habituellement
faire compléter automatiquement par l'interpréteur de
commandes le reste de la commande ou du nom du fichier en appuyant sur la
touche Tab du clavier. Voici un exemple.
Supposez que vous avez deux fichiers appelés respectivement
foobar
et foo.bar
.
Vous voulez effacer foo.bar
. Donc ce
que vous devriez taper sur le clavier est: rm
fo[Tab].[Tab]
.
L'interpréteur de commandes devrait afficher rm
foo[BEEP].bar
.
Le [BEEP] est la sonnerie de la console, c'est l'interpréteur
de commande indiquant qu'il n'est pas en mesure de compléter
totalement le nom du fichier parce qu'il y a plus d'une
possibilité. foobar
et
foo.bar
commencent tous les deux par
fo
, mais il fut capable de compléter
jusqu'à foo
. Si vous tapez
.
, puis appuyez à nouveau sur
Tab, l'interpréteur de
commandes devrait pouvoir compléter le reste du nom du fichier
pour vous.
Une autre caractéristique de l'interpréteur de commandes est l'utilisation de variables d'environnement. Les variables d'environnement sont une paire variable/valeur stockées dans l'espace mémoire d'environnement de l'interpréteur de commandes. Cet espace peut être lu par n'importe quel programme invoqué par l'interpréteur de commandes, et contient ainsi beaucoup d'éléments de configuration des programmes. Voici une liste des variables d'environnement habituelles et ce qu'elles signifient:
Variable | Description |
---|---|
USER | Le nom d'utilisateur de la personne actuellement attachée au système. |
PATH | La liste des répertoires, séparés par deux points, pour la recherche des programmes. |
DISPLAY | Le nom réseau de l'affichage X11 auquel on peut se connecter, si disponible. |
SHELL | Le nom de l'interpréteur de commandes actuellement utilisé. |
TERM | Le nom du type de terminal de l'utilisateur. Utilisé pour déterminer les capacités du terminal. |
TERMCAP | L'entrée de la base de données des codes d'échappement pour permettre l'exécution de diverses fonctions du terminal. |
OSTYPE | Type du système d'exploitation, e.g. FreeBSD. |
MACHTYPE | L'architecture du CPU sur lequel tourne actuellement le système. |
EDITOR | L'éditeur de texte préferé de l'utilisateur. |
PAGER | Le visualisateur de page de texte préferré de l'utilisateur. |
MANPATH | La liste des répertoires, séparés par deux points, pour la recherche des pages de manuel. |
Fixer une variable d'environnement diffère
légèrement d'un interpréteur de commandes
à l'autre. Par exemple,
dans le style de l'interpréteur de commandes de type C-shell comme
tcsh
et csh
, vous
utiliseriez setenv
pour fixer le
contenu d'une variable d'environnement. Sous les interpréteurs de
commandes Bourne comme sh
et
bash
, vous utiliseriez
export
pour configurer vos
variables d'environnement. Par exemple, pour fixer ou modifier la
variable d'environnement EDITOR
, sous
csh
ou tcsh
une commande
comme la suivante fixera EDITOR
à
/usr/local/bin/emacs
:
%
setenv EDITOR /usr/local/bin/emacs
Sous les interpréteurs de commandes Bourne:
%
export EDITOR="/usr/local/bin/emacs"
Vous pouvez faire afficher à la plupart des
interpréteurs de commandes la variable d'environnement
en plaçant un caractère
$
juste devant son nom sur la ligne
de commande. Par exemple, echo $TERM
affichera
le contenu de $TERM
, car l'interpréteur de commande
complète $TERM
et passe la main à
echo
.
Les interpréteurs de commandes traitent beaucoup de
caractères spéciaux, appelés
métacaractères, en tant que représentation
particulière des données. Le plus commun est le
caractère *
, qui représente
zéro ou plusieurs caractères dans le nom du fichier.
Ces métacaractères spéciaux peuvent être
utilisés pour compléter automatiquement le nom des
fichiers. Par exemple, taper echo *
est presque
la même chose
que taper ls
parce que l'interpréteur de
commandes prendra tous les fichiers qui correspondent à
*
et les passera à echo
pour
les afficher.
Pour éviter que l'interpréteur de commande
n'interprète les caractères spéciaux, ils peuvent
être neutralisés en ajoutant un
caractère antislash (\
) devant. echo
$TERM
affichera votre type de terminal. echo
\$TERM
affichera $TERM
tel quel.
La méthode la plus simple pour changer votre
interpréteur de commandes est d'utiliser la commande
chsh
. En lançant chsh
vous arriverez dans l'éditeur
correspondant à votre variable d'environnement
EDITOR
; si elle n'est pas fixée, cela sera
vi
. Modifiez la ligne “Shell:”
en conséquence.
Vous pouvez également passer le paramètre
-s
à chsh
; cela modifiera
votre interpréteur de commandes sans avoir à utiliser
un éditeur. Par exemple, si
vous vouliez changer votre interpréteur de commandes pour
bash
,
ce qui suit devrait faire l'affaire:
%
chsh -s /usr/local/bin/bash
L'interpréteur de commandes que vous désirez
utiliser doit être présent dans
le fichier /etc/shells
. Si vous avez
installé l'interpréteur de commandes à partir
du catalogue des logiciels portés,
alors cela a dû déjà être fait pour vous.
Si vous avez installé à
la main l'interpréteur de commandes, vous devez alors le
faire.
Par exemple, si vous avez installé bash
à la main et l'avez placé dans
/usr/local/bin
, vous devrez faire:
#
echo "/usr/local/bin/bash" >> /etc/shells
Puis relancer chsh
.
Beaucoup de configurations sous FreeBSD sont faites en éditant des fichiers textes. Aussi ce serait une bonne idée de se familiariser avec un éditeur de texte. FreeBSD est fourni avec quelques-uns en tant qu'éléments du système de base, et beaucoup d'autres sont disponibles dans le catalogue des logiciels portés.
L'éditeur de plus facile et le plus simple à apprendre
est un éditeur appelé ee,
qui signifie l'éditeur facile (easy editor). Pour lancer
ee, on taperait sur la ligne de
commande ee fichier
où
fichier
est le nom du fichier qui doit être
édité. Par exemple, pour éditer
/etc/rc.conf
, tapez ee
/etc/rc.conf
. Une fois sous ee
, toutes
les commandes pour utiliser les fonctions de l'éditeur sont
affichées en haut de l'écran. Le caractère
^
représente la touche Ctrl sur le clavier, donc
^e
représente la combinaison de touches
Ctrl+e.
Pour quitter ee, appuyez sur la touche
Echap, ensuite choisissez
“leave editor”. L'éditeur
vous demandera s'il doit sauver les changements si le fichier a
été modifié.
FreeBSD est également fourni avec des éditeurs de texte plus puissants comme vi en tant qu'élément du système de base, alors que d'autres éditeurs, comme Emacs et vim, en tant qu'élément du catalogue des logiciels portés de FreeBSD (editors/emacs et editors/vim). Ces éditeurs offrent beaucoup plus de fonctionnalités et de puissance aux dépens d'être un peu plus compliqués à apprendre. Cependant si vous projetez de faire beaucoup d'édition de texte, l'étude d'un éditeur plus puissant comme vim ou Emacs vous permettra d'économiser beaucoup plus de temps à la longue.
Un périphérique est un terme utilisé la plupart
du temps pour les activités en rapport avec le matériel
présent sur le système,
incluant les disques, les imprimantes, les cartes graphiques, et les
claviers. Quand FreeBSD démarre, la majorité de ce
qu'affiche FreeBSD est la détection des
périphériques. Vous pouvez à nouveau
consulter les messages de démarrage en visualisant le fichier
/var/run/dmesg.boot
.
Par exemple, acd0
est le premier
lecteur de CDROM IDE, tandis que kbd0
représente le clavier.
La plupart de ces périphériques sous un système
d'exploitation UNIX® peuvent être accédés par
l'intermédiaire de fichiers appelés fichiers
spéciaux de périphérique
(“device node”), qui sont situés dans le
répertoire /dev
.
Quand vous ajoutez un nouveau périphérique à votre système, ou compilez le support pour des périphériques supplémentaires, de nouveaux fichiers spéciaux de périphérique doivent être créés.
Le système de fichiers de périphérique, ou
DEVFS
, fournit un accès à l'espace
nom des périphériques du noyau dans l'espace nom du
système de fichiers global. Au lieu d'avoir à
créer et modifier les fichiers spéciaux de
périphérique, DEVFS
maintient ce système de fichiers particulier pour vous.
Voir la page de manuel de devfs(5) pour plus d'information.
Afin de comprendre pourquoi FreeBSD utilise le format elf(5), vous devez d'abord connaître quelques détails concernant les trois formats “dominants” d'exécutables actuellement en vigueur sous UNIX®:
Le plus vieux et le format objet “classique” d'UNIX®. Il utilise une entête courte et compacte avec un nombre magique au début qui est souvent utilisé pour caractériser le format (voir la page de manuel a.out(5) 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 de caractères.
COFF
Le format objet SVR3. L'entête comprend une table de section, de telle sorte que vous avez plus de sections qu'uniquement .text, .data et .bss.
Le successeur de COFF, qui permet des sections multiples et des valeurs possibles de 32 bits et 64 bits. Un inconvénient majeur: ELF a aussi été conçu en supposant qu'il y aurait qu'un seul ABI par architecture système. Cette hypothèse est en fait assez incorrecte, et même dans le monde SYSV (qui a au moins trois ABIs: SVR4, Solaris, SCO) cela ne se vérifie pas.
FreeBSD essaye de contourner ce problème en fournissant un utilitaire pour marquer un exécutable connu ELF avec des informations sur l'ABI qui va avec. Consultez la page de manuel de brandelf(1) pour plus d'informations.
FreeBSD vient du camp “classique” et a
utilisé le format a.out(5), une technologie
employée et éprouvée à travers des
générations de BSDs, jusqu'aux débuts de la
branche 3.X. Bien qu'il fut possible de compiler et
d'exécuter des binaires natifs ELF (et
noyaux) sous FreeBSD avant cela, FreeBSD a initialement
résisté à la “pression” de passer
à ELF comme format par défaut.
Pourquoi? Bien, quand le camp Linux ont fait leur
pénible transition vers ELF, ce n'est pas
tant fuir le format a.out
qui rendait
difficile la construction de bibliothèques partagée
pour les développeurs mais le mécanisme de
bibliothèques partagées basé sur des tables de
sauts inflexible. Puisque les outils ELF
disponibles offraient une solution au problème
des bibliothèques partagées et étaient
perçus comme “le chemin à suivre” de toute
façon, le coût de la migration a été
accepté comme nécessaire, et la transition a
été réalisée. Le mécanisme FreeBSD
de bibliothèques partagées se rapproche plus
du style de mécanisme de bibliothèques
partagées de SunOS™ de Sun, et est très simple
à utiliser.
Pourquoi existe-t-il tant de formats différents?
Dans un obscure et lointain passé, il y avait du
matériel simple. Ce matériel simple supportait
un simple petit système. a.out
était complètement adapté pour
représenter les binaires sur ce système simple
(un PDP-11). Au fur et à mesure que des personnes
portaient UNIX® à partir de ce système
simple, ils ont maintenus le format a.out
parce qu'il était suffisant pour les premiers portages
d'UNIX® sur des architectures comme le Motorola 68k, les VAX,
etc.
Alors un certain ingénieur matériel brillant
a décidé qu'il pourrait forcer le matériel
à faire des choses bizarre, l'autorisant ainsi à
réduire le nombre de portes logiques et permettant
au coeur du CPU de fonctionner plus rapidement.
Bien qu'on l'a fait fonctionner avec ce nouveau
type de matériel (connu de nos jour sous le nom de
RISC), a.out
n'était pas adapté
à ce matériel, aussi beaucoup de formats ont
été développés
pour obtenir de meilleures performances de ce matériel
que ce que pouvait offrir le simple et limité format
qu'était a.out
. Des
choses comme COFF, ECOFF,
et quelques autres obscures formats ont été
inventé et leur limites explorées avant que les choses
ne se fixent sur ELF.
En outre, les tailles des programmes devenaient
énormes alors que les disques (et la mémoire
physique) étaient toujours relativement
petits, aussi le concept de bibliothèque partagée
est né. Le système de VM (mémoire virtuelle)
est également devenu plus sophistiqué.
Tandis que chacune de ces avancées était
faites en utilisant le format a.out
,
son utilité a été élargie
de plus en plus avec chaque nouvelle fonction. De plus les
gens ont voulu charger dynamiquement des choses à
l'exécution, ou se débarrasser de partie de
leur programme après l'initialisation pour économiser
de l'espace mémoire et de pagination. Les langages
sont devenus plus sophistiqués et les gens ont voulu
du code appelé automatiquement avant la partie
principale du programme. Beaucoup de modifications ont
été apportées au format a.out
pour rendre possible toutes ces choses, et cela a
fonctionné pendant un certain temps. Avec le temps,
a.out
n'était plus capable de
gérer tous ces problèmes sans une augmentation
toujours croissante du code et de sa complexité.
Tandis ELF résolvait plusieurs de
ces problèmes, il aurait été pénible
de quitter un système qui a fonctionné.
Ainsi ELF a dû attendre jusqu'au moment
où il était plus pénible de rester avec
a.out
que d'émigrer vers
ELF.
Cependant, avec le temps, les outils de compilation desquels ceux de FreeBSD sont dérivés (l'assembleur et le chargeur tout spécialement) ont évolué en parallèle. Les développeurs FreeBSD ajoutèrent les bibliothèques partagées et corrigèrent quelques bogues. Les gens de chez GNU qui ont à l'origine écrit ces programmes, les récrivirent et ajoutèrent un support plus simple pour la compilation multi-plateformes, avec différents formats à volonté, et ainsi de suite. Lorsque beaucoup de personnes ont voulu élaborer des compilateurs multi-plateformes pour FreeBSD, elles n'eurent pas beaucoup de chance puisque les anciennes sources que FreeBSD avait pour as et ld n'étaient pas adaptées à cette tâche. Le nouvel ensemble d'outils de GNU (binutils) supporte la compilation multi-plateformes, ELF, les bibliothèques partagées, les extensions C++, etc. De plus, de nombreux vendeurs de logiciels fournissent des binaires ELF, et c'est une bonne chose pour permettre leur exécution sous FreeBSD.
ELF est plus expressif
qu'a.out
et permet plus d'extensibilité
dans le système de base.
Les outils ELF sont mieux maintenus, et
offrent un support pour la compilation multi-plateformes, ce qui
est important pour de nombreuses personnes.
ELF peut être légèrement plus lent
qu'a.out
, mais tenter de mesurer cette
différence n'est pas aisé. Il y a
également de nombreux détails qui
diffèrent entre les deux dans la façon dont
ils mappent les pages mémoire, gère le code
d'initialisation, etc.
Dans le futur, le support a.out
sera
retiré du noyau GENERIC
, et
par la suite retiré des sources du noyau une fois que le
besoin d'exécuter d'anciens programmes
a.out
aura disparu.
La documentation la plus complète sur FreeBSD est sous la
forme de pages de manuel. Presque chaque programme sur le
système est fournit avec un court manuel de
référence expliquant l'utilisation de base et les
diverses options. Ces manuels peuvent être visualisés
avec la commande man
.
L'utilisation de la commande man
est
simple:
%
man command
command
est le nom de la commande
à propos de laquelle vous désirez en savoir plus.
Par exemple, pour en savoir plus au sujet de la commande
ls
tapez:
%
man ls
Les manuels en ligne sont divisés en sections numérotées:
Commandes utilisateur.
Appels système et numéros d'erreur.
Fonctions des bibliothèques C.
Pilotes de périphérique.
Formats de fichier.
Jeux et autres divertissements.
Information diverse.
Commandes de maintenance et d'utilisation du système.
Information de développement du noyau.
Dans certains cas, le même sujet peut apparaître
dans plus d'une section du manuel en ligne. Par exemple, il existe une
commande utilisateur chmod
et un appel
système chmod()
. Dans ce cas, vous pouvez
préciser à la commande man
laquelle
vous désirez en spécifiant la section:
%
man 1 chmod
Cela affichera la page de manuel de la commande utilisateur
chmod
. Les références à
une section particulière du manuel en ligne sont
traditionnellement placées entre parenthèses, ainsi
chmod(1) se rapporte à la commande
utilisateur chmod
et chmod(2) se
rapporte à l'appel système.
C'est parfait si vous connaissez le nom de la commande et
vous souhaitez simplement savoir comment l'utiliser, mais qu'en
est-il si vous ne pouvez pas vous rappelez du nom de la
commande? Vous pouvez utiliser man
pour
rechercher des mots-clés dans les descriptions de commandes en
employant l'option -k
:
%
man -k mail
Avec cette commande on vous affichera la liste des commandes
qui ont le mot-clé “mail” dans leurs descriptions.
C'est en fait équivalent à l'utilisation de la commande
apropos
.
Ainsi, vous regardez toutes ces commandes fantaisistes
contenues dans /usr/bin
mais vous n'avez
pas la moindre idée de ce quelles font vraiment? Faites
simplement:
%
cd /usr/bin
%
man -f *
ou
%
cd /usr/bin
%
whatis *
ce qui fait la même chose.
FreeBSD inclut beaucoup d'applications et d'utilitaires
produit par la Fondation pour le Logiciel Libre ( Free Software
Foundation). En plus des pages de manuel, ces programmes sont
fournis avec des documents hypertexte appelés fichiers
info
qui peuvent être lus avec la commande
info
ou, si vous avez installé
emacs, dans le mode info
d'emacs.
Pour utiliser la commande info(1), tapez simplement:
%
info
Pour une brève introduction, tapez h
.
Pour une référence rapide sur la commande, tapez
?
.
[1] C'est ce que signifie i386
. Notez
que même si vous ne faites pas tourner FreeBSD sur un CPU Intel
386, cela sera i386
. Ce n'est pas le
type de votre microprocesseur, mais
“l'architecture” du microprocesseur qui est
donnée ici.
[2] Les procédures de démarrage sont des programmes qui sont exécutés automatiquement par FreeBSD au démarrage. Leur fonction principale est de configurer le système pour permettre l'exécution de tout programme, et de démarrer tout service que vous avez configuré pour tourner en tâche de fond et exécuter des choses utiles.
[3] Une description assez technique et précise de tous les détails de la console FreeBSD et des pilotes de clavier peut être trouvée dans les pages de manuel de syscons(4), atkbd(4), vidcontrol(1) et kbdcontrol(1). Nous ne nous étendrons pas en détails ici, mais le lecteur intéressé peut toujours consulter les pages de manuel pour explication plus détaillée et plus complète sur le fonctionnement des choses.
[4] Ce n'est pas tout à fait vrai—il y a quelques cas où les choses ne peuvent être interrompues. Par exemple, si le processus est en train d'essayer de lire un fichier qui est sur un autre ordinateur sur le réseau, et que l'autre ordinateur n'est plus accessible pour quelque raison (a été éteint, ou le réseau a un problème), alors le processus est dit “non interruptible”. Par la suite le processus entrera en pause, typiquement après deux minutes. Dès que cette pause sera effective le processus sera tué.
Version française de Marc Fonvieille
<blackend@FreeBSD.org>
.
FreeBSD est livré avec une riche collection d'outils en tant que partie du système de base. Beaucoup de choses peuvent être faites avant d'avoir besoin de recourir à l'installation d'une application tiers pour effectuer un travail précis. FreeBSD fournit deux technologies complémentaires pour installer des logiciels tiers sur votre système: le Catalogue des logiciels portés de FreeBSD (pour une installation à partir des sources), et les logiciels pré-compilés ou « paquetages » (pour installer des binaires pré-compilés). N'importe laquelle de ces deux méthodes peut être utilisée pour installer les nouvelles versions de vos applications favorites à partir d'un support local ou directement depuis le réseau.
Après la lecture de ce chapitre, vous saurez:
Comment installer des logiciels tiers pré-compilés.
Comment compiler des logiciels tiers à partir des sources en utilisant le catalogue de logiciels portés.
Comment effacer les logiciels pré-compilés ou portés précédemment installés.
Comment modifier les paramètres par défaut utilisés par le catalogue des logiciels portés.
Comment trouver l'application recherchée.
Comment mettre à jour vos applications.
Si vous avez utilisé auparavant un système UNIX® vous saurez que la procédure typique pour installer les logiciels tiers ressemble à ceci:
Télécharger le logiciel, qui peut être distribué sous forme de code source, ou sous forme d'un binaire.
Extraire le logiciel de son format de distribution (généralement une archive tar compressée soit avec compress(1), soit avec gzip(1), ou encore bzip2(1)).
Recherchez la documentation (peut être un fichier
INSTALL
ou README
, ou des fichiers dans un sous
répertoire doc/
) et lisez les
informations sur comment installer le logiciel.
Si le logiciel était distribué sous forme de
sources, compilez-le. Cela peut impliquer l'édition d'un
Makefile
, ou l'exécution d'une
procédure configure
, et d'autres
activités.
Tester et installer le logiciel.
Et cela si seulement tout se passe bien. Si vous installez un logiciel qui n'a pas été spécialement porté pour FreeBSD, il se peut que vous deviez éditer le code source pour le faire fonctionner correctement.
Si vous le voulez, vous pouvez continuer d'installer des logiciels suivant la méthode “traditionnelle” sous FreeBSD. Cependant, FreeBSD fournit deux technologies avec lesquelles vous pouvez vous économiser beaucoup d'efforts: les logiciels pré-compilés et le catalogue des logiciels portés. A l'heure de l'écriture de ces lignes, plus de 24,000 applications tierces sont ainsi mises à disposition.
Pour n'importe quelle application donnée, le logiciel pré-compilé FreeBSD pour cette application est un unique fichier à télécharger. Il contient les copies pré-compilées de toutes les commandes de l'application, ainsi que tous fichiers de configuration et documentation. Un logiciel pré-compilé téléchargé peut être manipulé avec les commandes FreeBSD de gestion des logiciels pré-compilés, comme pkg_add(1), pkg_delete(1), pkg_info(1), et ainsi de suite. L'installation d'une nouvelle application peut être effectuée grâce à une unique commande.
Un logiciel porté pour FreeBSD est un ensemble de fichiers conçus pour automatiser le processus de compilation d'une application à partir du code source.
Rappelez-vous qu'il y a un certain nombre d'étapes que vous effectueriez si vous compiliez un programme vous-même (téléchargement, extraction, application de correctifs, compilation, installation). Les fichiers qui composent un logiciel porté contiennent toute l'information nécessaire pour permettre au système de faire cela pour vous. Vous lancez une poignée de commandes simples et le code source de l'application est automatiquement téléchargé, extrait, corrigé, compilé, et installé pour vous.
En fait, le catalogue des logiciels portés peut être
utilisé pour générer ce qui pourra plus tard
être manipulé avec pkg_add
et d'autres
commandes de gestion des logiciels pré-compilés qui
seront présentés sous peu.
Les logiciels pré-compilés et le catalogue des
logiciels portés comprennent la notion de
dépendances.
Supposez que vous voulez installer une application qui dépend
de l'installation d'une bibliothèque particulière.
L'application et la bibliothèque ont été toutes
deux rendues disponibles sous forme de logiciel porté pour
FreeBSD ou de logiciel pré-compilé.
Si vous utilisez la commande pkg_add
ou le
catalogue des logiciels portés pour ajouter l'application, tous
les deux remarqueront que la bibliothèque n'a pas été
installée, et installeront automatiquement en premier la
bibliothèque.
Etant donné que les deux technologies sont presque semblables, vous pourriez vous demander pourquoi FreeBSD s'ennuie avec les deux. Les logiciels pré-compilés et le catalogue de logiciels portés ont chacun leurs propres forces, et celle que vous emploierez dépendra de votre préférence.
L'archive compressée d'un logiciel pré-compilé est généralement plus petite que l'archive compressée contenant le code source de l'application.
Les logiciels pré-compilés ne nécessitent pas de compilation supplémentaire. Pour les grosses applications, comme Mozilla, KDE, ou GNOME cela peut s'avérer important, particulièrement si vous êtes sur un système lent.
Les logiciels pré-compilés ne demandent pas une compréhension du processus impliqué dans la compilation de logiciels sous FreeBSD.
Les logiciels pré-compilés sont normalement compilés avec des options conservatrices, parce qu'ils doivent pouvoir tourner sur le plus grand nombre de systèmes. En installant à partir du catalogue des logiciels portés, vous pouvez ajuster les options de compilation pour (par exemple) générer du code spécifique au Pentium 4 ou à l'Athlon.
Certaines applications ont des options de compilation concernant ce qu'elles peuvent faire et ne pas faire. Par exemple, Apache peut être configuré avec une très large variété d'options intégrées différentes. En compilant à partir du catalogue des logiciels portés vous n'avez pas à accepter les options par défaut, et vous pouvez les configurez vous-même.
Dans certains cas, de multiples logiciels
pré-compilés existeront pour la même
application pour spécifier certaines configurations.
Par exemple, Ghostscript est
disponible comme logiciel pré-compilé
ghostscript
et
ghostscript-nox11
, en fonction de si
vous avez installé ou non un serveur X11. Ce type
d'arrangement est possible avec les logiciels
pré-compilés, mais devient rapidement impossible
si une application a plus d'une ou deux options de
compilation.
Les licences de certains logiciels interdisent les distributions binaires. Ils doivent être distribués sous forme de code source.
Certaines personnes ne font pas confiance aux distributions binaires. Au moins avec le code source, vous pouvez (en théorie) le parcourir et chercher les problèmes potentiels par vous-même.
Si vous avez des correctifs locaux, vous aurez besoin du code source afin de les appliquer.
Certaines personnes aiment avoir le code source à portée de main, ainsi elles peuvent le lire si elles s'ennuient, le modifier, y faire des emprunts (si la licence le permet bien sûr), etc...
Pour suivre les mises à jour du catalogue des logiciels portés, inscrivez-vous à la liste de diffusion à propos du catalogue des logiciels portés de FreeBSD et la liste de diffusion à propos des rapports de bogue concernant le catalogue des logiciels portés de FreeBSD.
Avant d'installer une application, vous devriez consulter
http://vuxml.freebsd.org/
à la
recherche de problème de sécurité
concernant votre application.
Vous pouvez également installer ports-mgmt/portaudit qui
contrôlera automatiquement toutes les applications
installées à la recherche de
vulnérabilités connues, un contrôle sera
également effectué avant toute compilation de
logiciel porté. De même, vous pouvez utiliser la
commande portaudit -F -a
après avoir
installé des logiciels
pré-compilés.
Le reste de ce chapitre expliquera comment utiliser les logiciels pré-compilés et le catalogue des logiciels portés et la gestion des logiciels tiers sous FreeBSD.
Avant que vous puissiez installer des applications vous devez savoir ce que vous voulez, et comment se nomment les applications.
La liste des applications disponibles pour FreeBSD augmente de jours en jours. Heureusement, il y a plusieurs façons de trouver ce que vous désirez:
Le site web de FreeBSD maintient à jour une liste, dans laquelle on peut effectuer des recherches, de toutes les applications disponibles à l'adresse http://www.FreeBSD.org/ports/. Le catalogue des logiciels portés est divisé en catégories, et vous pouvez soit chercher une application par son nom (si vous le connaissez), soit lister toutes les applications disponibles dans une catégorie.
Dan Langille maintient FreshPorts, à l'adresse
http://www.FreshPorts.org/
.
FreshPorts suit les modifications des applications dans le
catalogue des logiciels portés, vous permet de
“surveiller” un ou plusieurs logiciels portés, et
peut vous envoyer un courrier électronique quand ils sont mis
à jour.
Si vous ne connaissez pas le nom de l'application que vous
voulez, essayez d'utiliser un site comme FreshMeat
(http://www.freshmeat.net/
)
pour trouver une application, ensuite vérifiez sur le site de
FreeBSD si l'application a déjà été
portée.
Si vous connaissez le nom exact du logiciel, vous devez
juste déterminer dans quelle catégorie il se
trouve, vous pouvez utiliser la commande whereis(1) pour
cela. Tapez simplement whereis
file
où
file
est le programme que vous
voulez installer. S'il est trouvé sur le
système, on vous indiquera où il se trouve, de
la manière suivante:
#
whereis lsof
lsof: /usr/ports/sysutils/lsof
Cela nous indique que lsof
(un
utilitaire système) peut être trouvé
dans le répertoire /usr/ports/sysutils/lsof
.
Vous pouvez également utiliser une simple commande echo(1) pour déterminer où se trouve un logiciel porté dans le catalogue de logiciels portés. Par exemple:
#
echo /usr/ports/*/*lsof*
/usr/ports/sysutils/lsof
Notez que cette commande retournera tout fichier
téléchargé du répertoire
/usr/ports/distfiles
correspondant à ce motif de recherche.
Encore une autre façon de trouver un logiciel
porté particulier est d'utiliser le mécanisme de
recherche interne du catalogue des logiciels portés.
Pour utiliser la fonction de recherche, vous devrez vous
trouver dans le répertoire
/usr/ports
. Une fois dans ce
répertoire, lancez make search
name=program-name
où program-name
représente le nom du programme que vous voulez
localiser. Par exemple, si vous recherchiez
lsof
:
#
cd /usr/ports
#
make search name=lsof
Port: lsof-4.56.4 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Maint: obrien@FreeBSD.org Index: sysutils B-deps: R-deps:
La partie du message de sortie à laquelle vous devez prêter attention est la ligne “Path:”, car cela vous indique où trouver le logiciel porté. Les autres informations ne sont pas nécessaires afin d'installer le logiciel porté, aussi on en parlera pas ici.
Pour une recherche plus en profondeur vous pouvez
également utiliser make search
key=string
où
string
est le texte à
rechercher. Cela recherche les noms de logiciels
portés, les commentaires, les descriptions et les
dépendances et peut être utilisé pour
trouver des logiciels portés se rapportant à
un sujet particulier si vous ne connaissez pas le nom du
programme que vous cherchez.
Dans les deux cas, la chaîne de caractère de recherche n'est pas sensible à la casse des caractères. Rechercher “LSOF” mènera aux même résultats que la recherche de “lsof”.
Il existe plusieurs outils utilisés pour la gestion des logiciels pré-compilés sur FreeBSD
Les outils de gestion en ligne de commande des logiciels pré-compilés, qui sont le sujet de la suite de cette section.
Vous pouvez utiliser l'utilitaire pkg_add(1) pour installer un logiciel pré-compilé FreeBSD à partir d'un fichier local ou d'un serveur sur le réseau.
#
ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org. 220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail freebsd@vienna.verio.net. 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files.ftp>
cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.ftp>
get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s)ftp>
exit
#
pkg_add lsof-4.56.4.tgz
Si vous ne disposez pas d'une source locale de logiciels
pré-compilés (comme l'ensemble de CDROM de FreeBSD)
alors il sera probablement plus facile d'utiliser l'option
-r
de pkg_add(1). Cela fera déterminer
automatiquement à l'utilitaire le format objet et la version
corrects et ensuite récupérer et installer le logiciel
pré-compilé à partir d'un site FTP.
#
pkg_add -r lsof
L'exemple ci-dessus téléchargera le logiciel
pré-compilé
correct sans plus d'intervention de l'utilisateur.
Si vous désirez indiquer un autre miroir FreeBSD pour les
logiciels pré-compilés à la place du site
de distribution principal, vous devez positionner en
conséquence la variable d'environnement
PACKAGESITE
, pour remplacer les
paramètres par défaut.
pkg_add(1) utilise fetch(3) pour télécharger les
fichiers, qui respecte diverses variables d'environnement, dont
FTP_PASSIVE_MODE
, FTP_PROXY
, et
FTP_PASSWORD
. Il se peut que vous ayez besoin de
configurer une ou plusieurs de ces dernières si vous êtes
derrière un coupe-feu, ou devez utiliser un proxy FTP/HTTP.
Consultez la page de manuel fetch(3) pour la liste complète
des variables. Vous pouvez également remarquer que dans
l'exemple ci-dessus lsof
est utilisé au lieu
de lsof-4.56.4
. Quand la fonction de
récupération à distance est utilisée,
le numéro de version doit être retiré.
pkg_add(1) téléchargera automatiquement la
toute dernière version de l'application.
pkg_add(1) téléchargera la
dernière version de votre application si vous êtes
sous FreeBSD-CURRENT ou FreeBSD-STABLE. Si vous utilisez une version
-RELEASE, il récupérera la version compilée
avec votre version lors de sa publication. Il est possible de
modifier ce comportement en surchargeant la variable
d'environnement PACKAGESITE
. Par exemple,
si vous utilisez un système FreeBSD 8.1-RELEASE,
par défaut pkg_add(1) tentera de
récupérer les applications
pré-compilées à partir de
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/Latest/
.
Si vous désirez forcer pkg_add(1) à
télécharger les versions des logiciels
pré-compilés pour FreeBSD 8-STABLE,
positionnez la variable PACKAGESITE
à
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/
.
Les logiciels pré-compilés sont distribués
dans les formats .tgz
et .tbz
. Vous pouvez les trouver
sur ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/
, ou
sur le CDROM de distribution de FreeBSD. Chaque CD de
l'ensemble de 4-CD de FreeBSD (et le PowerPak, etc...) contient
des logiciels pré-compilés dans le répertoire
/packages
. L'organisation des logiciels
pré-compilés est semblable à celle de
l'arborescence /usr/ports
. Chaque
catégorie possède son propre répertoire, et
chaque logiciel pré-compilé peut être
trouvé dans le répertoire All
.
La structure de répertoires du système de logiciels pré-compilés correspond à celle du catalogue des logiciels portés; ils travaillent ensemble pour former l'intégralité du système de logiciels pré-compilés/portés.
pkg_info(1) est un utilitaire qui liste et décrit les divers logiciels pré-compilés installés.
#
pkg_info
cvsup-16.1 A general network file distribution system optimized for CV docbook-1.2 Meta-port for the different versions of the DocBook DTD ...
pkg_version(1) est un utilitaire qui récapitule les versions de tous les logiciels pré-compilés installés. Il compare la version du logiciel pré-compilé avec la version actuelle trouvée dans le catalogue des logiciels portés.
#
pkg_version
cvsup = docbook = ...
Les symboles dans la seconde colonne indiquent l'âge relatif de la version installée et de la version disponible dans le catalogue des logiciels portés local.
Symbole | Signification |
---|---|
= | La version du logiciel pré-compilé installée est équivalente à celle de celui trouvé dans le catalogue des logiciels portés local. |
< | La version installée est plus ancienne que celle disponible dans le catalogue des logiciels portés. |
> | La version installée est plus récente que celle trouvée dans le catalogue local des logiciels portés. (le catalogue local des logiciels portés est probablement ancien) |
? | Le logiciel pré-compilé ne peut être trouvé dans l'index du catalogue des logiciels portés. (Cela peut se produire quand, par exemple, un logiciel installé est supprimé du catalogue des logiciels portés ou renommé.) |
* | Il y a de multiples versions de ce logiciel pré-compilé. |
! | Le logiciel installé
existe dans l'index mais pour une raison inconnue,
pkg_version a été
incapable de comparer le numéro de version du
paquetage installé avec l'entrée
correspondante dans l'index. |
Pour désinstaller un logiciel pré-compilé précédemment installé, utilisez l'utilitaire pkg_delete(1).
#
pkg_delete xchat-1.7.1
Notez que pkg_delete(1) a besoin du nom complet du
paquetage et du numéro de version; la commande
précédente n'aurait pas fonctionné avec
xchat
à la place de
xchat-1.7.1
. It est cependant
facile de retrouver la version du paquetage installé
à l'aide de la commande pkg_version(1). Vous
pouvez à la place simplement utiliser un joker:
#
pkg_delete xchat\*
dans ce cas, tous les logiciels dont le nom commence par
xchat
seront supprimés.
Les sections suivantes fournissent des instructions de base
sur l'utilisation du catalogue des logiciels portés pour installer
et désinstaller des programmes sur votre système.
Une description détaillée des cibles make
et
de variables d'environnement est disponible dans la page de
manuel ports(7).
Avant que vous puissiez installer des logiciels portés, vous
devez d'abord récupérer le catalogue des logiciels
portés— qui est essentiellement un ensemble de
Makefiles
, de correctifs, et de fichiers de
description habituellement placés dans
/usr/ports
.
Quand vous avez installé votre système FreeBSD, sysinstall vous a demandé si vous aimeriez installer le catalogue des logiciels portés. Si vous avez choisi non, vous pouvez suivre ces instructions pour obtenir le catalogue des logiciels portés:
C'est une méthode rapide pour récupérer le catalogue des logiciels portés en utilisant le protocole CVSup. Si vous voulez en apprendre plus au sujet de CVSup, lisez la section Utiliser CVSup.
L'implémentation du protocole CVSup présente dans le système de base de FreeBSD se nomme csup.
Assurez-vous que le répertoire /usr/ports
est vide avant
d'utiliser csup pour la
première fois. Si vous avez déjà un
catalogue des logiciels portés, obtenu à partir
d'une autre source, csup
n'effacera pas les correctifs qui ont été
supprimés.
Exécuter la commande csup
:
#
csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
Remplacez cvsup.FreeBSD.org
avec un serveur CVSup proche de
vous. Voir Sites
CVSup (Section A.5.7, « Sites CVSup ») pour une
liste complète des sites miroirs.
Certains peuvent vouloir utiliser leur propre
ports-supfile
, par exemple pour
éviter d'avoir à passer le serveur
CVSup sur la ligne de
commande.
Dans ce cas, en tant que
root
, copier
/usr/share/examples/cvsup/ports-supfile
à un nouvel emplacement, comme
/root
ou votre répertoire
d'utilisateur.
Editez
ports-supfile
.
Remplacez
CHANGE_THIS.FreeBSD.org
avec un serveur CVSup
proche de vous. Voir Sites CVSup (Section A.5.7, « Sites CVSup ») pour une liste
complète des sites miroirs.
Maintenant pour lancer csup
,
utilisez ce qui suit:
#
csup -L 2 /root/ports-supfile
L'exécution ultérieure de csup(1) téléchargera et appliquera tous les changements récents à votre catalogue des logiciels portés sans pour autant recompiler vos logiciels.
Portsnap est un système alternatif de distribution du catalogue des logiciels portés. Veuillez vous reporter à la section Utiliser Portsnap pour une description détaillée de toutes les caractéristiques de Portsnap.
Téléchargez un instantané
compressé du catalogue des logiciels portés
dans le répertoire /var/db/portsnap
. Vous pouvez
vous déconnecter de l'Internet, si vous le
désirez, après cette opération:
#
portsnap fetch
Si vous exécutez
Portsnap pour la première
fois, il faut extraire l'instantané dans le
répertoire /usr/ports
:
#
portsnap extract
Si votre répertoire /usr/ports
contient
déjà une version du catalogue des logiciels
portés et que vous désirez juste mettre
à jour, utilisez plutôt la commande:
#
portsnap update
Cette méthode implique l'utilisation de sysinstall pour installer le catalogue des logiciels portés à partir du disque d'installation. Il faut noter que la version du catalogue qui sera installée est la version datant de la publication de votre disque d'installation. Si vous disposez d'un accès à l'Internet, vous devriez toujours utiliser une des méthodes précédemment exposées.
En tant que root
, lancez
sysinstall
comme montré
ci-dessous:
#
sysinstall
Faites défiler l'écran vers le bas et sélectionnez Entrée.
, appuyez surFaites défiler l'écran vers le bas et sélectionnez Entrée.
, appuyez surFaites défiler l'écran vers le bas jusqu'à Espace.
, appuyez surRemontez jusqu'à Entrée.
, appuyez surChoisissez le support d'installation désiré, comme un CDROM, par FTP, etc.
Remontez jusqu'à Enter.
et appuyez surAppuyez sur la touche X pour quitter sysinstall.
La première chose qui devrait être expliquée quand on aborde le catalogue des logiciels portés est ce que l'on entend par “squelette”. En bref, un squelette est un ensemble minimal de fichiers qui indique à votre système FreeBSD comment compiler et installer proprement un programme. Chaque squelette contient:
Un fichier Makefile
. Le fichier
Makefile
contient les diverses
déclarations qui indiquent comment l'application devrait
être compilée et où elle devrait être
installée sur votre système.
Un fichier distinfo
. Ce fichier
contient l'information à propos des fichiers qui doivent
être téléchargés pour compiler le
logiciel, et leurs sommes de contrôle (en utilisant sha256(1)), pour s'assurer que
ces fichiers n'ont pas été
corrompus durant le téléchargement.
Un répertoire files
.
Ce répertoire
contient les correctifs pour permettre la compilation et
l'installation du programme sur votre système FreeBSD. Les
correctifs sont à la base de petits fichiers qui indiquent
des modifications sur des fichiers particuliers. Ils sont
sous forme de fichiers texte, qui disent “Effacer la
ligne 10” ou “Modifier la ligne 26
par...”. Les correctifs sont également connus sous le
nom de “diffs” car ils sont
générés par le programme diff(1).
Ce répertoire peut également contenir d'autres fichiers utilisés pour la compilation du logiciel porté.
Un fichier pkg-descr
. C'est une
description plus détaillée du programme, souvent en
plusieurs lignes.
Un fichier pkg-plist
. C'est une
liste de tous les fichiers qui seront installés par le
logiciel porté. Il indique également au
système des logiciels portés quels fichiers
sont à effacer lors d'une désinstallation.
Certains logiciels portés utilisent d'autres fichiers,
comme pkg-message
. Le catalogue des
logiciels portés utilise ces fichiers pour faire face à
certaines situations spéciales. Si vous désirez plus
de détails
au sujet de ces fichiers, et sur les logiciels portés en
général, consultez le Manuel du développeur de
logiciels portés.
Le logiciel porté contient les instructions pour compiler le code source, mais ne contient pas le code source. Vous pouvez obtenir le code source à partie d'un CDROM ou de l'Internet. Le code source est distribué de la façon dont l'auteur le désire. Fréquemment c'est une archive tar compressée avec gzip, mais elle pourra être compressée avec un autre outil ou même non compressée. Le code source d'un programme, peu importe la forme sous laquelle il est distribué, est appelé un fichier “distfile”. Les deux méthodes pour l'installation d'un logiciel porté pour FreeBSD sont décrites ci-dessous.
Vous devez avoir ouvert une session sous l'utilisateur
root
pour installer des logiciels
portés.
Avant d'installer un logiciel porté, vous devez
vous assurer d'avoir un catalogue des logiciels portés
à jour et vous devez consulter http://vuxml.freebsd.org/
pour les
problèmes de sécurité relatifs à
votre logiciel.
Un contrôle des problèmes de
sécurité peut être effectué
automatiquement par portaudit
avant toute nouvelle installation d'application. Cet outil
peut être trouvé dans le catalogue des
logiciels porté (security/portaudit). Vous pouvez
lancer portaudit -F
avant l'installation
d'un nouveau logiciel porté, pour
télécharger la base de données
actualisée des vulnérabilités. Un
audit de sécurité et une mise à jour de
la base de données sera effectuée lors du
contrôle quotidien de sécurité de la
machine. Pour plus d'informations, lisez les pages de
manuel portaudit(1) et periodic(8).
Le catalogue des logiciels portés suppose que vous
disposez d'une connection active à l'Internet. Si ce n'est
pas le cas, vous devez placer manuellement une copie
du distfile dans le répertoire /usr/ports/distfiles
.
Pour commencer, rendez-vous dans le répertoire du logiciel porté que vous voulez installer:
#
cd /usr/ports/sysutils/lsof
Une fois à l'intérieur du répertoire
lsof
vous verrez le squelette du logiciel
porté. L'étape suivante est de compiler
(également appelé la
“construction”) le logiciel porté. Cela est fait en tapant
simplement make
à l'invite. Une fois que
c'est fait, vous devriez voir quelque chose comme ceci:
#
make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/. ===> Extracting for lsof-4.57 ... [extraction output snipped] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [configure output snipped] ... ===> Building for lsof-4.57 ... [compilation output snipped] ...#
Notez qu'une fois la compilation terminée, vous vous
retrouvez face à l'invite. L'étape suivante est
d'installer
le logiciel porté. Afin de l'installer, vous devez juste
ajouter un mot à la commande make
, et ce
mot est install
:
#
make install
===> Installing for lsof-4.57 ... [installation output snipped] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges.#
Une fois de retour à l'invite, vous devriez être
en mesure d'exécuter l'application que vous venez juste
d'installer.
Comme lsof
est un programme qui tourne avec
des privilèges accrus, un avertissement sur la
sécurité est affiché. Durant la compilation
et l'installation de logiciels portés, vous devriez faire
attention à tout avertissement qui
pourrait apparaître.
Il est conseillé de supprimer le sous-répertoire de travail, qui contient tous les fichiers temporaires utilisés lors de la compilation. Non seulement cela consomme de l'espace disque, mais cela posera problème plus tard lors de la mise à jour vers une nouvelle version du logiciel porté.
#
make clean
===> Cleaning for lsof-4.57#
Vous pouvez vous économiser deux étapes
supplémentaires en lançant juste
make install clean
à la place de
make
, make install
et make clean
sous la forme de trois étapes séparées.
Certains interpréteurs de commandes maintiennent un
cache des commandes qui sont disponibles dans les
répertoires listés dans la variable d'environnement
PATH
, pour accélérer les
opérations de
recherche des fichiers exécutables de ces commandes. Si
vous utilisez un de ces interpréteurs de commandes, vous
pourrez avoir à utiliser la commande
rehash
après l'installation d'un logiciel
porté, avant que la commande fraîchement
installée ne puisse être utilisée.
Cette commande fonctionnera pour les interpréteurs
de commandes comme tcsh
. Utilisez la
commande hash -r
pour les
interpréteurs tels que sh
.
Consultez la documentation de votre interpréteur de
commandes pour plus d'information.
Certains DVD-ROMs comme le FreeBSD Toolkit de FreeBSD Mall
contiennent des distfiles.
Ils peuvent être utilisés avec le catalogue des logiciels
portés.
Montez le DVD-ROM sous /cdrom
. Si vous
utilisez un point de montage différent, positionnez la
variable make(1) CD_MOUNTPTS
. Les
distfiles nécessaires seront automatiquement utilisés s'ils
sont présent sur le disque.
Soyez conscient que les licences de quelques logiciels portés n'autorisent pas leur présence sur le CD-ROM. Cela peut être dû à la nécessité de remplir un formulaire d'enregistrement avant le téléchargement, ou que la redistribution n'est pas permise, ou toute autre raison. Si vous désirez installer un logiciel porté qui n'est pas disponible sur le CD-ROM, vous devrez vous connecter afin de récupérer les fichiers nécessaires.
Le catalogue des logiciels portés utilise fetch(1)
pour télécharger les fichiers, qui respecte diverses
variables d'environnement, dont FTP_PASSIVE_MODE
,
FTP_PROXY
, et FTP_PASSWORD
. Il
se peut que vous ayez besoin de configurer une ou plusieurs
de ces dernières si vous êtes derrière un
coupe-feu, ou devez utiliser un proxy FTP/HTTP.
Consultez la page de manuel fetch(3) pour la liste
complète des variables.
Pour les utilisateurs qui ne peuvent rester
connectés à l'Internet indéfiniment, il
existe la commande make
fetch
. Exécutez
cette commande à la base du catalogue des logiciels
portés (/usr/ports
) et les fichiers
nécessaires seront téléchargés.
Cette commande fonctionnera également dans les
sous-répertoires du catalogue, par exemple: /usr/ports/net
. Notez que si un
logiciel porté dépend de bibliothèques
particulières ou d'autres logiciels portés,
cette commande de récupérera
pas les sources de ces logiciels.
Remplacez fetch
par
fetch-recursive
si vous voulez
récupérer également les sources des
logiciels dont dépend un logiciel
porté.
Vous pouvez compiler tous les logiciels d'une
catégorie ou de l'ensemble du catalogue en
exécutant la commande make
dans un
répertoire de base, juste comme la commande
make fetch
précédente. C'est, cependant, une idée
dangereuse étant donné que certains logiciels
portés ne peuvent coexister. Dans d'autres cas,
certains logiciels portés peuvent installer des
fichiers différents ayant le même
nom.
Dans de rares cas les utilisateurs peuvent vouloir
récupérer les archives à partir d'un
site différent du MASTER_SITES
par
défaut (l'emplacement par défaut à
partir duquel les fichiers sont
téléchargés). Vous pouvez surcharger
l'option MASTER_SITES
avec la commande
suivante:
#
cd /usr/ports/répertoire
#
make MASTER_SITE_OVERRIDE= \ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch
Dans cet exemple nous modifions la valeur par
défaut de l'option MASTER_SITES
pour ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/
.
Certains logiciels portés autorisent (ou même nécessitent) des options de compilation qui permettent l'activation/désactivation de parties de l'application qui ne sont pas nécessaires, de certaines options de sécurité, et autres personnalisations. Quelques noms de logiciels viennent immédiatement à l'esprit: www/mozilla, security/gpgme, et mail/sylpheed-claws. Un message sera affiché quand de telles options sont disponibles.
Il est parfois utile (ou obligatoire) d'utiliser des
répertoires de travail ou cible différents.
Les variables
WRKDIRPREFIX
et PREFIX
permettent de modifier les répertoires par
défaut. Par exemple:
#
make WRKDIRPREFIX=/usr/home/example/ports install
compilera le logiciel dans le répertoire
/usr/home/example/ports
et
installera tout dans /usr/local
.
#
make PREFIX=/usr/home/example/local install
le compilera dans /usr/ports
et l'installera dans
/usr/home/example/local
.
Et bien sûr
#
make WRKDIRPREFIX=../ports PREFIX=../local install
combinera les deux (c'est trop long pour tenir sur cette page, mais cela devrait vous donner une idée générale).
Alternativement, ces variables peuvent également être configurées dans votre environnement. Consultez la page de manuel de votre interpréteur de commandes pour des instructions sur la procédure à suivre.
Certains logiciels portés qui utilisent
imake
(une partie du système X
Window) ne fonctionnent pas correctement avec la variable
PREFIX
, et insisteront pour s'installer
sous /usr/X11R6
. De
façon similaire, certains logiciels Perl ignorent
PREFIX
et s'installent dans
l'arborescence Perl. Faire en sorte que ces logiciels
portés respectent PREFIX
est une
tâche difficile voire impossible.
Lors de la compilation de certains logiciels
portés, un menu ncurses(3) pourra s'afficher et
à partir de celui-ci vous pourrez sélectionner
certaines options de compilation. Il n'est pas inhabituel
pour les utilisateurs de vouloir revoir ce menu pour
ajouter, supprimer, ou modifier ces options après la
compilation d'un logiciel. Il y a plusieurs manières
pour y parvenir. Une possibilité est de se rendre
dans le répertoire contenant le logiciel porté
et de taper make
config
, qui affichera
à nouveau le menu avec les mêmes options
sélectionnées. Une autre possibilité
est d'utiliser make
showconfig
qui vous
affichera toutes les options de configuration pour le
logiciel porté. Enfin, une autre possibilité
est d'exécuter make
rmconfig
qui supprimera
toutes les options sélectionnées et permettra
donc de repartir à zéro. Toutes ces options,
et bien d'autres, sont détaillées dans la page
de manuel ports(7).
Maintenant que vous savez comment installer des logiciels
portés, vous vous demandez probablement comment les effacer,
juste au cas où vous en installez un et plus tard vous vous
apercevez que vous n'avez pas installé le bon logiciel
porté. Nous désinstallerons notre exemple
précédent (qui était
lsof
pour ceux d'entre vous qui n'ont pas
suivi). Les logiciels portés sont supprimés de
la même manière que pour les logiciels
pré-compilés (comme décrit dans la
section Utiliser le
système des logiciels
pré-compilés) en utilisant la commande
pkg_delete(1):
#
pkg_delete lsof-4.57
Tout d'abord, listez les logiciels portés périmés dont une nouvelle version est disponible dans le catalogue des logiciels portés à l'aide de la commande pkg_version(1):
#
pkg_version -v
Une fois que vous avez mis à jour le catalogue
des logiciels portés, avant de tenter la mise à
jour d'un logiciel porté, vous devrez consulter le
fichier /usr/ports/UPDATING
. Ce fichier
décrit les divers problèmes et les étapes
supplémentaires que les utilisateurs pourront
rencontrer ou devront effectuer lors de la mise
à jour un logiciel porté, comme la
modification de format de fichiers, le changement des
emplacements des fichiers de configuration, ou des
incompatibilités avec les versions
antérieures.
Si le contenu du fichier UPDATING
prime même s'il est en est en contradiction avec des
informations présentées ici.
Le logiciel portupgrade a
été conçu pour une mise à jour
aisée des logiciels portés installés. Il
est disponible via le logiciel porté ports-mgmt/portupgrade. Installez-le
de la même manière que pour n'importe quel autre
logiciel en employant la commande make
install clean
:
#
cd /usr/ports/ports-mgmt/portupgrade
#
make install clean
Ensuite, parcourez la liste des logiciels installés
avec la commande pkgdb -F
et corrigez
toutes les inconsistances qu'il signale. C'est une bonne
idée d'effectuer ce contrôle
régulièrement avant chaque mise à
jour.
En lançant portupgrade -a
,
portupgrade mettra à jour
tous les logiciels portés périmés
installés sur votre système. Ajoutez
l'indicateur -i
si vous voulez être
consulté pour confirmer chaque mise à jour
individuelle.
#
portupgrade -ai
Si vous désirez mettre à jour qu'une seule
application bien particulière et non pas
l'intégralité des applications, utilisez la
commande: portupgrade
nom_du_logiciel_porté
.
Ajoutez l'option -R
si
portupgrade doit mettre à
jour en premier lieu tous les logiciels portés
nécessaires à l'application.
#
portupgrade -R firefox
Pour utiliser les versions pré-compilées
plutôt que les logiciels portés pour
l'installation, utilisez l'option -P
. Avec
cette option portupgrade cherche
les répertoires locaux listé dans la variable
PKG_PATH
, ou récupère les
paquetages à partir d'un site distant s'ils ne sont pas
trouvés localement. Si les paquetages ne peuvent pas
être trouvés localement ou
récupérés à distance,
portupgrade utilisera les logiciels
portés. Pour éviter l'usage des logiciels
portés, spécifiez l'option
-PP
.
#
portupgrade -PP gnome2
Pour juste récupérer les sources (ou les
paquetages, si l'option -P
est
utilisée) sans compiler ni installer quelque chose,
utilisez -F
. Pour plus d'informations
consultez la page de manuel portupgrade(1).
Portmanager est un autre utilitaire de mise à jour aisée des logiciels portés installés. Il est disponible via le logiciel portés ports-mgmt/portmanager:
#
cd /usr/ports/ports-mgmt/portmanager
#
make install clean
Tous les logiciels portés installés peuvent être mis à jour en utilisant cette simple commande:
#
portmanager -u
Vous pouvez ajouter l'option -ui
pour
être sollicité pour une confirmation à
chaque opération qu'effectuera
Portmanager.
Portmanager peut également
être employé pour installer de nouveaux
logiciels portés sur le système.
Contrairement à la commande make install
clean
habituelle, il mettra à jour toutes
les dépendances avant de compiler et d'installer le
logiciel sélectionné.
#
portmanager x11/gnome2
Si des problèmes concernant les dépendances du logiciel porté sélectionné apparaissent, vous pouvez utiliser Portmanager pour toutes les recompiler dans le bon ordre. Cette recompilation achevée, le logiciel porté en question peut alors être à son tour recompilé.
#
portmanager graphics/gimp -f
Pour plus d'information, consultez la page de manuel de Portmanager.
Portmaster est un autre
utilitaire destiné à la mise à jour des
logiciels installés.
Portmaster a été
conçu pour utiliser les outils présents dans
le système de « base » (il ne
dépend pas d'un autre logiciel porté) et
utilise les informations contenues dans le répertoire
/var/db/pkg/
pour
déterminer quel logiciel doit être mis à
jour. Il est disponible à partir du logiciel
porté ports-mgmt/portmaster:
#
cd /usr/ports/ports-mgmt/portmaster
#
make install clean
Portmaster répartit les logiciels portés en quatre catégories:
logiciels dits « Root » (pas de dépendance, aucun logiciel n'en dépend);
logiciels dits « Trunk » (pas de dépendance, d'autres logiciels en dépendent);
logiciels dits « Branch » (ont des dépendances, d'autres logiciels en dépendent);
logiciels dits « Leaf » (ont des dépendances, aucun logiciel n'en dépend).
Vous pouvez lister tous les logiciels installés
et rechercher les mises à jour en utilisant l'option
-L
:
#
portmaster -L
===>>> Root ports (No dependencies, not depended on) ===>>> ispell-3.2.06_18 ===>>> screen-4.0.3 ===>>> New version available: screen-4.0.3_1 ===>>> tcpflow-0.21_1 ===>>> 7 root ports ... ===>>> Branch ports (Have dependencies, are depended on) ===>>> apache-2.2.3 ===>>> New version available: apache-2.2.8 ... ===>>> Leaf ports (Have dependencies, not depended on) ===>>> automake-1.9.6_2 ===>>> bash-3.1.17 ===>>> New version available: bash-3.2.33 ... ===>>> 32 leaf ports ===>>> 137 total installed ports ===>>> 83 have new versions available
L'ensemble des logiciels portés installés peut être mis à jour en utilisant cette simple commande:
#
portmaster -a
Par défaut
Portmaster fera une sauvegarde
avant la suppression d'un logiciel porté. Si
l'installation de la nouvelle version se passe
correctement, Portmaster
supprimera la sauvegarde. L'option -b
demandera à Portmaster
de ne pas supprimer automatiquement la sauvegarde.
L'ajout de l'option -i
lancera
Portmaster en mode interactif,
vous serez alors sollicité avant la mise à
jour de chaque logiciel.
Si vous rencontrez des erreurs lors du processus de mise
à jour, vous pouvez utiliser l'option
-f
pour mettre à jour ou recompiler
tous les logiciels installés:
#
portmaster -af
Vous pouvez également employer Portmaster pour installer de nouveaux logiciels portés en mettant à jour toutes les dépendances avant la compilation et l'installation du nouveau logiciel:
#
portmaster shells/bash
Pour plus d'information veuillez consulter la page de manuel portmaster(8).
A la longue, l'utilisation du catalogue des logiciels
portés consommera rapidement votre espace disque.
Après la compilation et l'installation de logiciels
à partir du catalogue des logiciels portés, vous
devriez toujours penser à supprimer
les répertoires de travail temporaires, work
, en utilisant la commande
make clean
. Vous pouvez
balayer l'intégralité du catalogue des logiciels
portés pour supprimer tous les répertoires
temporaires oubliés précédement, employez
alors la commande suivante:
#
portsclean -C
Avec le temps, vous accumulerez beaucoup de fichiers
sources obsolètes dans le répertoire distfiles
. Vous pouvez les
supprimer manuellement, ou vous pouvez utiliser la commande
suivante pour effacer toutes les sources qui ne correspondent
plus à des logiciels portés
d'actualité:
#
portsclean -D
Ou pour supprimer les fichiers sources ne correspondant à aucun logiciel installé sur votre systèmes.
L'utilitaire portsclean
fait partie
de la suite portupgrade.
Pensez à supprimer les logiciels portés installés que vous n'utilisez plus. Un outil qui permet d'automatiser cette tâche est disponible via le logiciel porté ports-mgmt/pkg_cutleaves.
Après l'installation d'une nouvelle application vous voudrez normalement lire la documentation qui a pu être également installée, éditer les fichiers de configuration nécessaires, vérifier que l'application est lancée au démarrage (si c'est un daemon), et ainsi de suite.
Les étapes que vous devez suivre pour configurer chaque application seront bien évidemment différentes. Cependant, si vous venez juste d'installer une nouvelle application et que vous vous demandez “Et maintenant?” les astuces suivantes pourront vous aider:
Utilisez pkg_info(1) pour déterminer quels fichiers ont été installés et à quel endroit. Par exemple, si vous venez juste d'installer FooPackage version 1.0.0, alors la commande
#
pkg_info -L foopackage-1.0.0 | less
affichera tous les fichiers installés par le logiciel
pré-compilé. Portez une attention toute
particulière aux
fichiers dans les répertoires man/
, qui
seront des pages de manuel, dans les répertoires
etc/
, qui seront des fichiers de
configuration, et dans doc/
qui seront de
la documentation plus complète.
Si vous n'êtes pas sûr de la version de l'application qui vient juste d'être installée, une commande comme
#
pkg_info | grep -i foopackage
déterminera tous les logiciels
pré-compilés installés qui
ont foopackage
dans leur nom.
Remplacez foopackage
dans votre
ligne de commande par ce qui convient.
Une fois que vous avez identifié où les pages de manuel de l'application ont été installées, consultez-les en utilisant la commande man(1). De même, jetez un coup d'oeil aux exemples de fichiers de configuration, et toute autre documentation additionnelle qui peut avoir été fournie.
Si l'application a un site web, consultez-le pour de la documentation supplémentaire, des listes de questions fréquemment posées, etc. Si vous n'êtes pas sûr de l'adresse du site web, elle peut être affichée dans le résultat de la commande:
#
pkg_info foopackage-1.0.0
La ligne WWW:
, si elle est présente,
devrait donner l'URL du site web de l'application.
Les logiciels qui doivent être lancés au
démarrage (comme les serveurs Internet) installent
généralement un exemple de procédure de
lancement dans le répertoire /usr/local/etc/rc.d
. Vous devriez
contrôler si ce fichier est correct et l'éditer
ou le renommer si nécessaire. Consultez la section
Démarrer
des services pour plus d'informations.
Si vous rencontrez un portage qui ne fonctionne pas, il y a certaines choses que vous pouvez faire:
Vérifiez s'il n'y a pas de correctif en attente pour le logiciel porté dans la base des rapports de bogue. Si c'est le cas, il se peut que vous puissiez utiliser le correctif proposé.
Demandez l'aide du responsable du logiciel porté.
Tapez la
commande make maintainer
ou lisez le
fichier Makefile
pour trouver l'adresse
électronique du responsable. Pensez à
préciser le nom et la
version du logiciel porté (envoyer la ligne
$FreeBSD:
du fichier
Makefile
) et les messages d'erreurs
quand vous écrivez au responsable.
Certains logiciels portés ne sont pas
maintenus par une personne mais par une liste
de diffusion. Plusieurs, si ce n'est toutes, les
adresses de ces listes ressemblent à <freebsd-listname@FreeBSD.org>
.
Veuillez prendre cela en compte en rédigeant vos
questions.
En particulier, les logiciels portés
apparaissant comme maintenus par <ports@FreeBSD.org>
ne sont
en fait maintenus par personne. Correctifs et aide,
s'ils y en a, provient de la communauté qui est
abonnée à cette liste de diffusion. Des
volontaires supplémentaires sont toujours les
bienvenus!
Si vous n'obtenez pas de réponse, vous pouvez utiliser send-pr(1) pour soumettre un rapport de bogue (consultez Ecrire des rapports de bogue pour FreeBSD).
Corrigez le problème! Le Manuel du développeur de logiciels portés inclut des informations détaillées sur l'infrastructure des logiciels portés vous permettant de corriger le portage éventuellement défectueux ou même soumettre le votre!
Récupérez la version pré-compilée
sur un serveur FTP proche de vous. Le catalogue de
“référence” des logiciels
pré-compilés se trouve
sur ftp.FreeBSD.org
dans le
répertoire
packages,
mais vérifiez d'abord votre miroir
local! Il y a globalement plus de chances que cela marche,
que d'essayez de compiler à partir des sources, et cela va
également beaucoup plus vite. Utilisez le programme
pkg_add(1) pour installer le logiciel
pré-compilé sur votre système.
Version française de Marc Fonvieille
<blackend@FreeBSD.org>
.
Une installation de FreeBSD à l'aide de bsdinstall n'installe pas automatiquement d'interface graphique. Ce chapitre décrit comment installer et configurer Xorg, qui implémente une version libre du système X Window qui est utilisé pour fournir un environnement graphique. Il décrit ensuite comme trouver et installer un environnement de bureau ou un gestionnaire de fenêtres.
Les utilisateurs préférant une méthode d'installation qui configure automatiquement Xorg devraient à GhostBSD, MidnightBSD or NomadBSD.
Pour plus d'informations sur le matériel vidéo supporté par Xorg, consultez le site Web x.org.
Après la lecture de ce chapitre, vous connaîtrez:
Les divers composants du système X Window et comment ils fonctionnent ensemble.
Comment installer et configurer Xorg.
Comment installer et configurer différents gestionnaires de fenêtres et environnements de bureau.
Comment utiliser les polices de caractères TrueType® sous Xorg.
Comment configurer votre système pour l'utilisation de procédures de connexions graphiques (XDM).
Avant de lire ce chapitre, vous devrez:
Savoir comment installer des logiciels tiers comme décrit dans le Chapitre 4, Installer des applications: les logiciels pré-compilés et les logiciels portés.
Alors qu'il n'est pas nécessaire de comprendre tout le détail des divers composants du système X Window, ni comment ils interagissent entre eux, une certaine connaissance de base de ces composants peut être utile.
X a été conçu dès le départ centré autour du réseau, et adopte un modèle « client-serveur ». Dans ce modèle, le « serveur X » tourne sur l'ordinateur sur lequel sont branchés le clavier, le moniteur et la souris. Le serveur est responsable de tâches telles que la gestion de l'affichage, des entrées en provenance du clavier et de la souris, et les entrées ou sorties d'autres périphériques comme une tablette ou un vidéo-projecteur. Cela jette le trouble chez certaines personnes, parce que la terminologie X est exactement le contraire de ce à quoi ils s'attendent. Ils s'attendent à ce que le « serveur X » soit la grosse machine puissante au fond du couloir, et que le « client X » soit a machine sur leur bureau.
Chaque application X, comme XTerm ou Firefox est un « client ». Un client envoie des messages au serveur comme « Dessine une fenêtre aux coordonnées suivantes », et le serveur renvoie au client des messages du type « L'utilisateur vient de cliquer sur le bouton OK ».
A la maison ou dans un petit bureau, le serveur X et les clients X tourneront en général sur le même ordinateur. Il est également possible de faire tourner le serveur X sur un ordinateur moins puissant et d'exécuter les applications X sur un système plus puissant. Dans ce scénario, la communication entre le client X et le serveur se fera par l'intermédiaire du réseau.
X n'essaye pas de dicter quel aspect doivent avoir les
fenêtres à l'écran, comment les déplacer avec la souris,
quelles combinaisons de touches devraient être utilisées
pour passer de l'une à l'autre, comment devraient être les
barres de titres de chaque fenêtre, etc. Au lieu de cela,
X délègue cette responsabilité à une application séparée,
le gestionnaire de fenêtres (« window
manager »). Il existe des douzaines de
gestionnaires de fenêtres disponibles. Chaque
gestionnaire de fenêtres propose une apparence et une
prise en mains différentes: certains supportent les bureaux
virtuels, d'autres permettent de personnaliser les
combinaisons de touches pour la gestion du bureau,
certains ont un bouton « Démarrer », et
certains permettent d'utiliser des thèmes, pour un
changement complet d'apparence et de prise en main du
bureau. Les gestionnaires de fenêtres sont disponibles
dans la catégorie x11-wm
du catalogue
des logiciels portés.
Chaque gestionnaire de fenêtre utilise un mécanisme de configuration propre. Certains demandent un fichier de configuration écrit à la main, alors que d'autres disposent d'outils graphiques pour la plupart des tâches de configuration.
KDE et GNOME sont considérés comme des environnements de bureau car ils intègrent une suite complète d'applications pour effectuer les tâches classiques d'un bureau informatique. Ils peuvent disposer de suites bureautiques, de navigateurs Web, ou encore de jeux.
Le gestionnaire de fenêtres est responsable de la politique ou stratégie de focus de la souris. Cette politique offre plusieurs méthodes pour choisir quelle fenêtre doit recevoir les frappes au clavier et comment indiquer visuellement la fenêtre actuellement active.
Une des politiques de focus est appelée « click-to-focus » (« cliquer pour obtenir le focus »). Dans ce mode, une fenêtre devient active quand elle reçoit un clic de la souris. Dans le mode « focus-follows-mouse » (« le focus suit la souris »), la fenêtre qui est sous le pointeur de la souris est la fenêtre qui a le focus et le focus est modifié en pointant sur une autre fenêtre. Si la souris est sur la fenêtre racine (ou fond d'écran), alors cette fenêtre a le focus. Dans le mode « sloppy-focus » (« focus relâché »), si la souris est déplacée sur la fenêtre racine, la dernière fenêtre à avoir eu le focus le conserve. Avec le mode focus relâché, le focus n'est modifié que si le pointeur passe sur une nouvelle fenêtre, et non pas quand il quitte la fenêtre actuelle. Dans la politique « click-to-focus », la fenêtre active est sélectionnée par un clic de la souris. La fenêtre peut être remontée au premier plan au-dessus des autres fenêtres. Toutes les frappes au clavier seront désormais dirigées vers cette fenêtre, même si le curseur est déplacé vers une autre fenêtre.
Les différents gestionnaires de fenêtres supportent différents modes pour le focus. Tous supportent le clic pour obtenir le focus, et une grande majorité supporte également d'autres politiques. Consultez la documentation du gestionnaire de fenêtres pour déterminer quels modes sont disponibles.
Widget est un terme pour désigner tous les éléments de l'interface utilisateur qui peuvent être cliqués ou manipulés d'une façon ou d'une autre. Cela comprend les boutons, les boîtes à cocher, les boutons radio, les icônes et les listes. Une boîte à outils de widgets est un ensemble d'éléments graphiques utilisés afin de créer des applications graphiques. Il existe de nombreuses boîtes à outils d'éléments graphiques populaires comme Qt, utilisée par KDE, et GTK+, utilisée par GNOME. Cela aura pour conséquence pour les applications de présenter une apparence et une prise en main différente en fonction de la famille d'éléments graphiques utilisée pour créer ces applications.
Sous FreeBSD, Xorg peut être installé à l'aide soit d'un paquet précompilé soit d'un logiciel porté.
Le paquet pré-compilé peut être installé rapidement mais avec moins d'options de personnalisation:
#
pkg install xorg
Pour compiler et installer à partir du catalogue des logiciels portés:
#
cd /usr/ports/x11/xorg
#
make install clean
Chacune de ces deux méthodes d'installation installera une version complète d'Xorg. La version en paquets pré-compilés reste la meilleure option pour la plupart des utilisateurs.
Une plus petite version du système X adaptée aux utilisateurs expérimentés est disponible dans le paquet x11/xorg-minimal. La plupart des documentations, des bibliothèques, et des applications ne sera pas installée. Certaines applications ont besoin de ces composants additionnels pour fonctionner.
Xorg supporte les cartes graphiques, les claviers et les périphériques de pointage les plus courants.
Les cartes graphiques, moniteurs et périphériques
d'entrée sont détectés automatiquement. Ne créez pas de
fichier xorg.conf
ou n'utilisez pas
l'option -configure
en dehors d'un échec de
la configuration automatique.
Si Xorg a déjà été utilisé sur cet ordinateur avant, déplacez ou supprimez les fichiers existants:
#
mv /etc/X11/xorg.conf ~/xorg.conf.etc
#
mv /usr/local/etc/X11/xorg.conf ~/xorg.conf.localetc
Ajouter au groupe video
ou
wheel
l'utilisateur qui exécutera
Xorg pour activer
l'accélération 3D quand elle est disponible. Pour ajouter
l'utilisateur jru
aux groupes
disponibles:
#
pw groupmod video -m
jru
|| pw groupmod wheel -mjru
Le gestionnaire de fenêtres twm est inclu par défaut. Il est lancé quand Xorg démarre:
%
startx
Sur certaines anciennes versions de FreeBSD, la console système doit être configurée en vt(4) avant que le retour à la console texte puisse correctement fonctionner. Consultez Section 5.4.3, « Kernel Mode Setting (KMS) ».
L'accès à /dev/dri
est nécessaire
pour autoriser l'accélération 3D sur les cartes graphiques.
Il est en général plus simple d'ajouter l'utilisateur qui
exécutera X soit au groupe video
soit au
groupe wheel
. Ici, pw(8) est utilisé
pour ajouter l'utilisateur slurms
au groupe video
, ou au groupe
wheel
s'il n'y a pas de groupe
video
:
#
pw groupmod video -m
slurms
|| pw groupmod wheel -mslurms
Quand l'ordinateur bascule de l'affichage sur la console vers une définition d'écran plus haute pour X, il doit fixer le mode de sortie graphique. Les versions récentes de Xorg utilisent un système présent dans le noyau pour effectuer ces changements de manière la plus efficace. Les anciennes versions de FreeBSD utilisent sc(4) qui n'a pas connaissance du système KMS. La conséquence est qu'après avoir fermé X, l'affichage de la console système sera vide même si elle reste fonctionnelle. La nouvelle console vt(4) évite ce problème.
Ajoutez la ligne suivante au fichier
/boot/loader.conf
pour activer
vt(4):
kern.vty=vt
Une configuration manuelle n'est généralement pas nécessaire. Ne créez pas de fichiers de configuration à la main à moins que la configuration automatique ne fonctionne pas.
Xorg recherche ses fichiers
de configuration dans plusieurs répertoires.
/usr/local/etc/X11/
est le répertoire
recommandé pour ces fichiers sous FreeBSD. L'utilisation de ce
répertoire permet de conserver une séparation entre les
fichiers des applications et ceux du système
d'exploitation.
Stocker les fichiers de configuration dans le répertoire
/etc/X11/
originel fonctionne toujours.
Cependant, cela a pour conséquence de mélanger des fichiers
concernant des applications avec ceux du système de base
FreeBSD et n'est pas recommandé.
Il est plus simple d'utiliser plusieurs fichiers qui
chacun individuellement s'occupe de la configuration d'un
paramètre précis plutôt qu'un seul fichier
xorg.conf
traditionnel. Ces fichiers
sont stockés dans le sous-répertoire
xorg.conf.d/
du répertoire principal de
configuration. Son chemin d'accès complet est en général
/usr/local/etc/X11/xorg.conf.d/
.
Des exemples de ces fichiers sont présentés plus bas dans cette section.
Le fichier unique traditionnel
xorg.conf
fonctionne toujours mais
n'est ni clair ni aussi flexible que plusieurs fichiers dans
le sous-répertoire xorg.conf.d/
.
En raison de changements effectués dans les versions récentes de FreeBSD, il est désormais possible d'utiliser les pilotes de périphériques graphiques proposés dans le catalogue des logiciels portés ou sous forme pré-compilé. Par conséquent, les utilisateurs peuvent utiliser un des pilotes disponibles à partir du logiciel graphics/drm-kmod.
L'accélération 2D et 3D sont supportées par la plupart des cartes graphiques Intel KMS driver en provenance d'Intel.
Nom du pilote: i915kms
L'accélération 2D et 3D sont supportées par la plupart des anciennes cartes graphiques Radeon KMS driver en provenance d'AMD.
Nom du pilote: radeonkms
L'accélération 2D et 3D sont supportées par la plupart des nouvelles cartes graphiques AMD KMS driver en provenance d'AMD.
Nom du pilote: amdgpu
Pour information, veuillez consulter https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units ou https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units pour une liste des GPUs supportés.
L'accélération 3D est supportée sur la plupart des cartes graphiques Intel® jusqu'au Ivy Bridge (HD Graphics 2500, 4000, et P4000), y compris Iron Lake (HD Graphics) et Sandy Bridge (HD Graphics 2000).
Nom du pilote: intel
Pour information, consultez https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units.
L'accélération 2D et 3D sont supportées par les cartes Radeon jusqu'à la série HD6000 comprise.
Nom du pilote: radeon
Pour information, consultez https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units.
Plusieurs pilotes NVIDIA sont disponibles dans la
catégorie x11
du catalogue des
logiciels portés. Installez le pilote correspondant à
la carte graphique.
Pour information, consultez https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units.
Certains ordinateurs portables ont un processeur graphique supplémentaire en plus de celui intégré dans le chipset ou le microprocesseur. Le système Optimus combine du matériel Intel® et NVIDIA. Les systèmes graphiques sélectionnables ou systèmes graphiques hybrides sont la combinaison d'un processeur Intel® ou AMD® et d'un GPU AMD® Radeon.
L'implémentation de ces systèmes graphiques hybrides varie, et Xorg sous FreeBSD n'est pas en mesure de faire fonctionner toutes les versions.
Certains ordinateurs fournissent une option du BIOS pour désactiver une de ces cartes graphiques ou pour sélectionner un mode discret qui peut être utilisé avec un des pilotes graphiques standard. Par exemple, il est parfois possible de désactiver le GPU NVIDIA dans un système Optimus. La partie graphique Intel® peut alors être utilisée avec un pilote Intel®.
Les paramètres du BIOS dépendent
du modèle d'ordinateur. Dans certaines situations, les
deux GPU peuvent être laissés actifs,
mais la création d'un fichier de configuration utilisant
seulement le GPU principal dans la
partie Device
est suffisant pour
qu'un tel système fonctionne.
Les pilotes pour les cartes graphiques moins
courantes peuvent être trouvés dans la catégorie
x11-drivers
du catalogue des
logiciels portés.
Les cartes qui ne sont pas supportées par un pilote précis pourront toujours être utilisables avec le pilote x11-drivers/xf86-video-vesa. Ce pilote est installé par x11/xorg. Il peut également être installé manuellement en tant que x11-drivers/xf86-video-vesa. Xorg tente d'utiliser ce pilote quand un pilote spécifique à la carte graphique n'est pas trouvé.
x11-drivers/xf86-video-scfb est un pilote graphique non-spécifique qui fonctionne sur de nombreux ordinateurs UEFI et ARM®.
Pour configurer le pilote Intel® dans un fichier de configuration:
/usr/local/etc/X11/xorg.conf.d/driver-intel.conf
Section "Device" Identifier "Card0" Driver "intel" # BusID "PCI:1:0:0" EndSection
Si plus d'une carte graphique est présente,
l'identifant BusID
peut être
décommenté et paramétré pour sélectionné la carte
désirée. Une liste des IDs des
cartes graphiques peut être obtenu avec
pciconf -lv | grep -B3
display
.
Pour configurer le pilote Radeon dans un fichier de configuration:
/usr/local/etc/X11/xorg.conf.d/driver-radeon.conf
Section "Device" Identifier "Card0" Driver "radeon" EndSection
Pour configurer le pilote VESA dans un fichier de configuration:
/usr/local/etc/X11/xorg.conf.d/driver-vesa.conf
Section "Device" Identifier "Card0" Driver "vesa" EndSection
Pour configurer le pilote scfb
pour une utilisation avec un ordinateur
UEFI ou ARM®:
scfb
à l'aide d'un fichier/usr/local/etc/X11/xorg.conf.d/driver-scfb.conf
Section "Device" Identifier "Card0" Driver "scfb" EndSection
Presque tous les moniteus supportent la norme Extended Display Identification Data (EDID). Xorg utilise EDID pour communiquer avec le moniteur et détecter les définitions et les taux de rafraichissement supportés. Ensuite, il sélectionne la combinaison de paramètres la plus adaptée pour le moniteur.
Les autres définitions supportées par le moniteur peuvent être sélectionnées en indiquant celle désirée dans les fichiers de configuration, ou à l'aide de xrandr(1) après avoir lancé le serveur X.
Exécutez xrandr(1) sans aucun paramètre pour voir la liste des sorties vidéos et des modes détectés du moniteur:
%
xrandr
Screen 0: minimum 320 x 200, current 3000 x 1920, maximum 8192 x 8192 DVI-0 connected primary 1920x1200+1080+0 (normal left inverted right x axis y axis) 495mm x 310mm 1920x1200 59.95*+ 1600x1200 60.00 1280x1024 85.02 75.02 60.02 1280x960 60.00 1152x864 75.00 1024x768 85.00 75.08 70.07 60.00 832x624 74.55 800x600 75.00 60.32 640x480 75.00 60.00 720x400 70.08 DisplayPort-0 disconnected (normal left inverted right x axis y axis) HDMI-0 disconnected (normal left inverted right x axis y axis)
Ceci montre que la sortie DVI-0
est utilisée actuellement pour afficher une définition
d'écran de 1920x1200 pixels à une fréquence de
rafraichissement d'environ 60 Hz. Il n'y a pas de
moniteur branché aux connecteurs
DisplayPort-0
et
HDMI-0
.
N'importe quel autre mode d'affichage peut être choisi avec xrandr(1). Par exemple, pour basculer sur 1280x1024 à 60 Hz:
%
xrandr --mode 1280x1024 --rate 60
Une opération courante est d'utiliser une sortie vidéo externe sur un ordinateur portable pour un vidéo-projecteur.
Le type et le nombre de connecteurs de sortie
varient en fonction des systèmes, et le nom donné à
chaque sortie varie d'un pilote graphique à l'autre. Ce
qu'un pilote appelle HDMI-1
, un autre
l'appellera HDMI1
. Aussi la première
chose à faire est de lancer xrandr(1) pour lister
toutes les sorties disponibles.
%
xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192 LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm 1366x768 60.04*+ 1024x768 60.00 800x600 60.32 56.25 640x480 59.94 VGA1 connected (normal left inverted right x axis y axis) 1280x1024 60.02 + 75.02 1280x960 60.00 1152x864 75.00 1024x768 75.08 70.07 60.00 832x624 74.55 800x600 72.19 75.00 60.32 56.25 640x480 75.00 72.81 66.67 60.00 720x400 70.08 HDMI1 disconnected (normal left inverted right x axis y axis) DP1 disconnected (normal left inverted right x axis y axis)
Quatre sorties ont été trouvées: l'écran intégré
LVDS1
, et les connecteurs externes
VGA1
, HDMI1
, et
DP1
.
Le projecteur a été connecté à la sortie
VGA1
. xrandr(1) est maintenant
utilisé pour régler cette sortie sur la définition
native de ce vidéo-projecteur et pour ajouter l'espace
d'affichage supplémentaire à droite du bureau:
%
xrandr --output VGA1 --auto --right-of LVDS1
Le paramètre --auto
sélectionne la
définition et le taux de rafraichissement détecté par
EDID. Si la définition n'est pas
correctement détectée, une valeur définie peut être donnée
avec le paramètre --mode
à la place
de --auto
. Par exemple, la plupart
des vidéo-projecteurs acceptent une définition de
1024x768 qui est réglée avec --mode
1024x768
.
xrandr(1) est souvent exécuté à partir de
.xinitrc
pour régler le mode adapté quand X est lancé.
Pour configurer la définition de l'écran à 1024x768 dans un fichier de configuration:
/usr/local/etc/X11/xorg.conf.d/screen-resolution.conf
Section "Screen" Identifier "Screen0" Device "Card0" SubSection "Display" Modes "1024x768" EndSubSection EndSection
Les quelques moniteurs ne supportant pas
l'EDID peuvent être configurés en
paramétrant HorizSync
et
VertRefresh
avec les plages de
fréquences supportées par le moniteur.
/usr/local/etc/X11/xorg.conf.d/monitor0-freq.conf
Section "Monitor" Identifier "Monitor0" HorizSync 30-83 # kHz VertRefresh 50-76 # Hz EndSection
L'emplacement normalisé des touches d'un clavier est appelé disposition (layout). Les dispositions et d'autres paramètres réglables sont listés dans la page de manuel xkeyboard-config(7).
Une disposition des touches américaine est celle
utilisée par défaut. Pour sélectionner une
disposition différente, configurez les options
XkbLayout
et
XkbVariant
dans une section
InputClass
. Cette configuration
sera appliquée à tous les périphériques d'entrée qui
correspondent à cette classe.
Cet exemple sélectionne une disposition de touches française.
/usr/local/etc/X11/xorg.conf.d/keyboard-fr.conf
Section "InputClass" Identifier "KeyboardDefaults" MatchIsKeyboard "on" Option "XkbLayout" "fr" EndSection
Configuration des dispositions américaine, espagnole et ukrainienne. Le passage de l'une à l'autre de ces dispositions se fait en appuyant sur Alt+Shift. x11/xxkb ou x11/sbxkb peuvent être utilisés pour un contrôle de la sélection de la disposition des touches amélioré et pour avoir des indicateurs de la disposition en cours d'utilisation.
/usr/local/etc/X11/xorg.conf.d/kbd-layout-multi.conf
Section "InputClass" Identifier "All Keyboards" MatchIsKeyboard "yes" Option "XkbLayout" "us, es, ua" EndSection
X peut être fermé à partir d'une combinaison de
touches. Par défaut, cette combinaison n'est pas
définie car elle entre en conflit avec les commandes
passées au clavier pour certaines applications.
L'activation de cette option nécessite d'effectuer des
modifications à la section
InputDevice
du clavier:
/usr/local/etc/X11/xorg.conf.d/keyboard-zap.conf
Section "InputClass" Identifier "KeyboardDefaults" MatchIsKeyboard "on" Option "XkbOptions" "terminate:ctrl_alt_bksp" EndSection
Si vous utilisez xorg-server 1.20.8
ou les versions suivantes sous FreeBSD 12.1
et que vous n'utilisez pas moused(8), ajoutez la
ligne kern.evdev.rcpt_mask=12
au
fichier /etc/sysctl.conf
.
Plusieurs paramètres de la souris peuvent être réglés avec les options de configuration. Consultez la page de manuel mousedrv(4) pour une liste complète.
Le nombre de boutons d'une souris peut être
configuré dans la section
InputDevice
du fichier
xorg.conf
. Pour fixer le nombre
de boutons à 7:
/usr/local/etc/X11/xorg.conf.d/mouse0-buttons.conf
Section "InputDevice" Identifier "Mouse0" Option "Buttons" "7" EndSection
Dans certains cas, la configuration automatique d'Xorg ne fonctionne pas avec un matériel spécifique, ou une configuration différente est recherchée. Pour ces cas, un fichier de configuration personnalisé peut être créé.
Ne créez pas de fichiers de configuration à la main à moins que cela ne soit nécessaire. Une configuration inadaptée peut empêcher un fonctionnement correct.
Un fichier de configuration basé sur le matériel détecté peut être généré par Xorg. Ce fichier est un point de départ utile pour une configuration personnalisée.
Génération d'un fichier
xorg.conf
:
#
Xorg -configure
Le fichier de configuration est enregistré sous
/root/xorg.conf.new
.
Effectuez les modifications désirées, puis tester ce fichier
(avec l'option -retro
de manière à avoir un
fond d'écran visible) avec:
#
Xorg -retro -config /root/xorg.conf.new
Une fois que la nouvelle configuration a été ajustée et testée,
elle peut être divisée en plus petits fichiers dans les
emplacements habituels,
/usr/local/etc/X11/xorg.conf.d/
.
Les polices de caractères livrées par défaut avec Xorg sont loin d'être idéales pour des applications de type publication. Les grandes polices utilisées pour les présentations présentent un aspect en escalier et peu professionnel, et les petites polices sont presque complètement illisibles. Cependant, il existe de nombreuses polices Type1 (PostScript®) gratuites, de hautes qualités qui peuvent être aisément utilisées avec Xorg.. Par exemple, la collection de polices de caractères URW (x11-fonts/urwfonts) comprend une version haute qualité des polices de caractères standards type1 (Times Roman®, Helvetica®, Palatino® et autres). La collection Freefonts (x11-fonts/freefonts) comprend beaucoup plus de polices de caractères, mais la plupart d'entre elles sont destinées à être utilisées avec des logiciels graphiques comme Gimp, et ne sont pas suffisamment complètes pour servir de polices de caractères d'affichage. De plus Xorg peut être configuré pour utiliser les polices de caractères TrueType® avec un minimum d'effort. Pour plus de détails à ce sujet, consultez la page de manuel X(7) ou la section Section 5.5.2, « Polices de caractères TrueType® ».
Pour installer les collections de polices de caractères Type1 précédentes à partir des paquets binaires, lancez les commandes suivantes:
#
pkg install urwfonts
Pour les compiler à partir du catalogue des logiciels portés, lancez les commandes suivantes:
#
cd /usr/ports/x11-fonts/urwfonts
#
make install clean
Et de même pour la collection Freefont ou d'autres. Pour
que le serveur X détecte ces polices, ajoutez une
ligne appropriée au fichier de configuration du serveur X
(/etc/X11/xorg.conf
),
du type:
FontPath "/usr/local/share/fonts/URW/"
Autre possibilité, en ligne de commande dans une session X lancez:
%
xset fp+ /usr/local/share/fonts/urwfonts
%
xset fp rehash
Cela fonctionnera mais la configuration sera perdue quand la
session X sera fermée, à moins de l'ajouter dans le
fichier de
démarrage (~/.xinitrc
pour une session
startx
classique, ou dans
~/.xsession
quand on s'attache au système
par l'intermédiaire d'un gestionnaire de session graphique comme
XDM). Une troisième méthode
est d'utiliser le nouveau fichier /usr/local/etc/fonts/local.conf
:
comme montré dans la section Section 5.5.3, « Polices de caractères anticrénelage ».
Xorg dispose d'un support
intégré pour le rendu des polices TrueType®.
Il y a deux différents modules qui peuvent activer cette
fonctionnalité. Le module freetype est
utilisé dans cet exemple parce qu'il est plus compatible avec les
autres moteurs de rendu des polices de caractères. Pour activer
le module freetype ajoutez juste la ligne suivante dans la section
"Module"
du fichier
/etc/X11/xorg.conf
.
Load "freetype"
Maintenant créez un répertoire pour les polices
TrueType® (par exemple
/usr/local/share/fonts/TrueType
) et copiez
toutes les polices TrueType® dans ce répertoire. Gardez à
l'esprit
que les polices TrueType® ne peuvent être directement prises d'un
Apple® Mac®; elles doivent être dans un format UNIX®/MS-DOS®/Windows® pour
être utilisées sous Xorg.
Une fois les fichiers copiés dans ce répertoire, utilisez
mkfontscale pour créer un fichier
fonts.dir
, de façon à ce que le moteur
d'affichage des polices d'X sache que de nouveaux fichiers ont
été
installés. mkfontscale peut être installé
à partir d'un paquet binaire:
#
pkg install mkfontscale
Puis créez un index des polices de caractères pour X dans le répertoire:
#
cd /usr/local/share/fonts/TrueType
#
mkfontscale
Maintenant ajoutez le répertoire des polices TrueType® au chemin des polices de caractères. Cela est identique à ce qui est décrit dans la section Section 5.5.1, « Polices de caractères Type1 »:
%
xset fp+ /usr/local/share/fonts/TrueType
%
xset fp rehash
ou ajouter une ligne FontPath
au fichier
xorg.conf
.
Désormais Gimp, LibreOffice, et toutes les autres applications X devraient maintenant reconnaître les polices de caractères TrueType® installées. Les polices très petites (comme le texte de page web visualisé sur un écran haute résolution) et les très grandes polices (dans LibreOffice) auront un rendu bien meilleur maintenant.
Toutes les polices de caractères sous Xorg
se trouvant dans les répertoires /usr/local/share/fonts/
et
~/.fonts/
sont
automatiquement disponibles pour l'anticrénelage avec
les applications compatibles Xft. La plupart des application
sont compatibles Xft, comme KDE,
GNOME, et
Firefox.
Afin de contrôler quelles polices de
caractères sont anticrénelées, ou pour
configurer les propriétés de
l'anticrénelage, créez (ou éditez, s'il
existe déjà) le fichier
/usr/local/etc/fonts/local.conf
.
Plusieurs caractéristiques avancées du
système de fontes Xft peuvent être
ajustées par l'intermédiaire de ce fichier;
cette section ne décrit que des possibilités
simples. Pour plus de détails, consultez la page de
manuel fonts-conf(5).
Ce fichier doit être dans le format XML. Faites
attention à la casse des caractères, et
assurez-vous que toutes les balises sont correctement
fermées. Le fichier débute avec l'entête
XML classique suivie par une définition DOCTYPE, puis
de la balise <fontconfig>
:
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig>
Comme précisé précédemment,
l'ensemble des polices de caractères du
répertoire /usr/local/share/fonts/
comme du
répertoire ~/.fonts/
sont disponibles pour
les applications compatibles Xft. Si vous désirez
ajouter un autre répertoire en dehors des ces deux
là, ajoutez une ligne similaire à la suivante au
fichier
/usr/local/etc/fonts/local.conf
:
<dir>/chemin/vers/mes/fontes</dir>
Après l'ajout de nouvelles polices, et tout particulièrement de nouveaux répertoires de polices, vous devrez exécuter la commande suivante pour reconstituer le cache des polices de caractères:
#
fc-cache -f
L'anticrénelage rend les bords légèrement flous, ce qui rend le texte très petit plus lisible et enlève l'effet « d'escalier » des grands textes, mais peut provoquer une fatigue visuelle si c'est appliqué au texte de taille normale. Pour exclure les tailles de polices inférieures à 14 points de l'anticrénelage, ajoutez ces lignes:
<match target="font"> <test name="size" compare="less"> <double>14</double> </test> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match> <match target="font"> <test name="pixelsize" compare="less" qual="any"> <double>14</double> </test> <edit mode="assign" name="antialias"> <bool>false</bool> </edit> </match>
L'espacement pour certaines polices de caractères à chasse fixe peut également être inapproprié avec l'anticrénelage. Cela semble être un problème avec KDE, en particulier. Une solution possible pour cela est de forcer l'espacement pour de telles polices de caractères à 100. Ajoutez les lignes suivantes:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>fixed</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match> <match target="pattern" name="family"> <test qual="any" name="family"> <string>console</string> </test> <edit name="family" mode="assign"> <string>mono</string> </edit> </match>
(ceci ajoute un alias "mono"
pour les autres
noms communs des polices de caractères fixes), puis
ajoutez:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>mono</string> </test> <edit name="spacing" mode="assign"> <int>100</int> </edit> </match>
Certaines polices de caractères, comme Helvetica,
peuvent présenter des problèmes lors de
l'anticrénelage. Généralement cela se
manifeste par l'impression que la fonte semble coupée
en deux verticalement. Au pire cela peut provoquer des crashs
avec certaines applications. Pour éviter cela,
pensez à ajouter ce qui suit au fichier
local.conf
:
<match target="pattern" name="family"> <test qual="any" name="family"> <string>Helvetica</string> </test> <edit name="family" mode="assign"> <string>sans-serif</string> </edit> </match>
Une fois l'édition de
local.conf
achevée, assurez-vous
que le fichier se termine par la balise
</fontconfig>
. Si ce n'est pas le
cas, tous vos changements seront ignorés.
Les utilisateurs peuvent ajouter leurs propres
paramètres par l'intermédiaire de leur propre fichier
~/.config/fontconfig/fonts.conf
.
Ce fichier doit utiliser le même format XML
décrit précédemment.
Un dernier point: avec un écran LCD, un
échantillonnage “sub-pixel” peut être
désiré. Fondamentalement, ceci traite les composantes
rouge,
verte et bleu séparément (horizontalement
séparées) pour améliorer la résolution
horizontale; les résultats peuvent être dramatiques.
Pour activer cela, ajoutez quelque part dans le fichier
local.conf
les lignes:
<match target="font"> <test qual="all" name="rgba"> <const>unknown</const> </test> <edit name="rgba" mode="assign"> <const>rgb</const> </edit> </match>
En fonction de type d'écran, le terme
rgb
pourra devoir être changé pour
bgr
, vrgb
ou
vbgr
: expérimentez
pour déterminer lequel fonctionne le mieux.
Xorg propose un gestionnaire de connexion graphique, XDM, qui peut être utilisé pour la gestion des procédures de connexion graphique. XDM fournit une interface graphique pour sélectionner à quel serveur d'affichage se connecter et entrer des informations d'autorisation d'accès comme l'ensemble identifiant et mot de passe.
Cette section montre comment configurer le gestionnaire de connexion graphique X sous FreeBSD. Certains environnements de bureau fournissent leur propre gestionnaire de connexion graphique. Se référer à la Section 5.7.1, « GNOME » pour des instructions sur comment configurer le gestionnaire de connexion graphique GNOME et à la Section 5.7.2, « KDE » pour des instructions concernant la configuration du gestionnaire de connexion graphique KDE.
Pour installer XDM, utilisez le
logiciel porté ou la version pré-compilée
x11/xdm. Une fois installé,
XDM peut être configuré pour être
lancé au démarrage de la machine en modifiant la ligne
suivante dans /etc/ttys
:
ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure
Modifiez le off
pour
on
et sauvegardez la modification. Le
champ ttyv8
sur cette ligne indique que
XDM démarrera sur le neuvième
terminal virtuel.
Le répertoire de configuration
d'XDM est situé dans
/usr/local/etc/X11/xdm
. Ce répertoire
contient plusieurs fichiers utilisés pour modifier le
comportement et l'apparence d'XDM,
ainsi que quelques procédures et programmes utilisés pour
configurer le bureau quand XDM est
exécuté. Tableau 5.1, « Fichiers de configuration d'XDM » résume la
fonction de chacun de ces fichiers. La syntaxe exacte et
l'utilisation de ces fichiers sont décrites dans
xdm(1).
Fichier | Description |
---|---|
Xaccess | Le protocole utilisé pour se connecter à XDM est appelé le « X Display Manager Connection Protocol » (XDMCP). Ce fichier est un ensemble de règles d'autorisation client pour contrôler les connexions XDMCP à partir de machines distantes. Par défaut, ce fichier n'autorise pas la connexion de clients distants. |
Xresources | Ce fichier contrôle l'apparence et la prise en main du programme de sélection et d'ouverture de session XDM. La configuration par défaut est une simple fenêtre d'ouverture de session rectangulaire avec le nom de la machine hôte affiché en haut dans une grande police de caractères et avec les invites « Login: » et « Password: » en dessous. Le format de ce fichier est identique au fichier de paramètres par défaut décrit dans la documentation Xorg |
Xservers | Liste des affichages distants et locaux que le système doit proposer à l'ouverture de session. |
Xsession | Procédure d'ouverture de session par défaut qui
est exécutée par XDM quand
un utilisateur se connecte. Elle pointe vers une
procedure personnalisée de session dans le répertoire
~/.xsession . |
Xsetup_ * | Procédures utilisées pour lancer automatiquement
des applications avant d'afficher les interfaces de
sélection et d'ouverture de session. Il existe une
procedure pour chaque écran utilisé, nommée
Xsetup_* , où *
est le numéro local de l'écran. En général, ces
procédures exécutent un ou deux programmes en tâche de
fond comme xconsole . |
xdm-config | Configuration globale pour tous les écrans tournant sur cette machine. |
xdm-errors | Contient les erreurs générées par le programme
serveur. Si une connexion
qu'XDM tente d'ouvrir se
bloque, examinez ce fichier pour trouver des messages
d'erreur. Ces messages sont également écrits dans le
fichier ~/.xsession-errors de
l'utilisateur à chaque session. |
xdm-pid | L'identifiant, ID, du processus exécutant XDM. |
Par défaut, seuls les utilisateurs sur le même système peuvent ouvrir une session en utilisant XDM. Pour permettre aux utilisateurs d'autres système de se connecter au gestionnaire d'affichage, éditez les règles de contrôle d'accès et activez l'écoute des demandes de connexion.
Pour configurer XDM pour
l'écoute des demandes de connexions distantes, commentez la
ligne DisplayManager.requestPort
dans le
fichier /usr/local/etc/X11/xdm/xdm-config
en ajoutant un !
devant:
! SECURITY: do not listen for XDMCP or Chooser requests ! Comment out this line if you want to manage X terminals with xdm DisplayManager.requestPort: 0
Sauvegardez et relancez XDM.
Pour restreindre l'accès à distance, consultez les exemples
dans /usr/local/etc/X11/xdm/Xaccess
ainsi
que la page de manuel xdm(1) pour plus
d'informations
Cette section décrit comment installer sur un système FreeBSD
un des trois environnements de bureau populaires. Un
environnement de bureau peut aller du simple gestionnaire de
fenêtres jusqu'à la suite complète d'applications de bureau.
Plus d'une centaine d'environnements est disponible dans la
catégorie x11-wm
du catalogue des logiciels
portés.
GNOME est un environnement de bureau convivial. Il comprend un panneau (« panel ») pour lancer des applications et afficher des états, un bureau, un ensemble d'outils et d'applications, et un ensemble de conventions qui rendent aisée la coopération et la cohérence entre applications. Plus d'informations concernant GNOME sous FreeBSD peuvent être trouvées sur https://www.FreeBSD.org/gnome. Le site contient de la documentation supplémentaire sur l'installation, la configuration, et l'administration de GNOME sous FreeBSD.
Cet environnement de bureau peut être installé à partir d'un paquet pré-compilé:
#
pkg install gnome3
Pour plutôt compiler GNOME à partir du catalogue des logiciels portés, utilisez la commande qui suit. GNOME est une application importante en taille et qui demandera un temps notable pour être compilée, et cela, même sur un ordinateur rapide.
#
cd /usr/ports/x11/gnome3
#
make install clean
GNOME
a besoin que /proc
soit monté. Ajoutez
la ligne suivante au fichier /etc/fstab
pour monter ce système de fichiers automatiquement au
démarrage:
proc /proc procfs rw 0 0
GNOME utilise
D-Bus et
HAL comme bus des messages et
couche d'abstraction matérielle. Ces applications sont
automatiquement installées comme dépendances à
GNOME. Activez-les dans
/etc/rc.conf
pour qu'elles soient lancées
au démarrage du système:
dbus_enable="YES" hald_enable="YES"
Après l'installation, il faut configurer
Xorg pour lancer GNOME.
La manière la plus simple de faire cela est d'activer le
gestionnaire d'affichage de GNOME,
GDM, qui est installé par
défaut comme élément du paquet pré-compilé ou du logiciel
porté GNOME. Il peut être
activé en ajoutant la ligne
suivante au fichier /etc/rc.conf
:
gdm_enable="YES"
Il est souvent intéressant de lancer également tous les
services GNOME. Pour accomplir
cela, ajoutez une seconde ligne à
/etc/rc.conf
:
gnome_enable="YES"
GDM sera lancé automatiquement au démarrage du système.
Une deuxième méthode de lancement de
GNOME est de taper
startx
à partir de la ligne de commande
après avoir configuré le fichier ~/.xinitrc
.
Si ce fichier existe déjà, remplacez la ligne qui lance
le gestionnaire de fenêtres actuel par une qui exécute
/usr/local/bin/gnome-session
. Si ce
fichier n'existe pas, créez-le avec la commande:
%
echo "exec /usr/local/bin/gnome-session" > ~/.xinitrc
Une troisième méthode est d'utiliser
XDM comme gestionnaire d'affichage.
Dans ce cas, créez un exécutable
~/.xsession
:
%
echo "exec /usr/local/bin/gnome-session" > ~/.xsession
KDE est un autre environnement de bureau simple d'utilisation. Ce bureau propose une suite d'applications avec une apparence et une prise en main commune, des menus et des barres d'outils, des raccourcis clavier, des couleurs et une régionalisation standardisés, ainsi qu'un système de configuration de l'environnement centralisé. Plus d'informations sur KDE peuvent être trouvées sur http://www.kde.org/. Pour des informations spécifiques à FreeBSD, consultez http://freebsd.kde.org.
Pour installer la version pré-compilée de KDE, tapez:
#
pkg install x11/kde5
Pour plutôt compiler KDE à partir du catalogue des logiciels portés, utilisez la commande qui suit. L'installation du logiciel porté proposera un menu pour sélectionner quel composant à installer. KDE est une application importante en taille et qui demandera un temps notable pour être compilée, et cela, même sur un ordinateur rapide.
#
cd /usr/ports/x11/kde5
#
make install clean
KDE
a besoin que /proc
soit monté. Ajoutez
la ligne suivante au fichier /etc/fstab
pour monter ce système de fichiers automatiquement au
démarrage:
proc /proc procfs rw 0 0
KDE utilise
D-Bus et
HAL comme bus des messages et
couche d'abstraction matérielle. Ces applications sont
automatiquement installées comme dépendances à
KDE. Activez-les dans
/etc/rc.conf
pour qu'elles soient lancées
au démarrage du système:
dbus_enable="YES" hald_enable="YES"
Depuis KDE Plasma 5, le gestionnaire d'affichage KDE, KDM, n'est plus développé. Un remplacement possible est SDDM. Pour l'installer, tapez:
#
pkg install x11/sddm
Ajoutez cette ligne à
/etc/rc.conf
:
sddm_enable="YES"
Une deuxième méthode de lancement de
KDE Plasma est de taper
startx
à partir de la ligne de commande.
Pour que cela fonctionne, la ligne suivante est requise dans
~/.xinitrc
:
exec ck-launch-session startplasma-x11
Une troisième méthode de lancement de
KDE Plasma utilise
XDM. Dans ce cas, créez un exécutable
~/.xsession
comme indiqué:
%
echo "exec ck-launch-session startplasma-x11" > ~/.xsession
Une fois KDE Plasma lancée, consultez son système d'aide intégrée pour plus d'informations sur comment utiliser ses différents menus et applications.
XFce est un environnement de bureau basé sur le “toolkit” GTK+ utilisé par GNOME. Cependant, il est plus léger et offre un bureau simple, efficace et simple d'utilisation. Il est complètement configurable, dispose d'une barre principale avec des menus, des petites applications et des lanceurs d'applications, il fournit un gestionnaire de fichiers et un gestionnaire du son, et il est personnalisable avec des thèmes. Puisqu'il est rapide, léger et efficace, il est idéal pour les machines anciennes ou lentes avec des limitations en mémoire. Plus d'informations sur XFce peuvent être trouvées sur le site http://www.xfce.org.
Pour installer le paquet pré-compilé de Xfce:
#
pkg install xfce
Alternativement, pour compiler le logiciel porté:
#
cd /usr/ports/x11-wm/xfce4
#
make install clean
Xfce utilise
D-Bus comme bus des messages.
Cette application est automatiquement installée comme
dépendance à Xfce. Activez-la dans
/etc/rc.conf
pour qu'elle soit lancée au
démarrage du système:
dbus_enable="YES"
Contrairement à GNOME ou
KDE,
Xfce ne fournit pas son propre
gestionnaire de session. Afin de lancer Xfce
à partir de la ligne de commande en tapant startx
,
créez d'abord le fichier ~/.xinitrc
à
l'aide de la ligne:
%
echo ". /usr/local/etc/xdg/xfce4/xinitrc" > ~/.xinitrc
Une méthode alternative est d'utiliser
XDM. Pour configurer cette
méthode, créez un exécutable ~/.xsession
:
%
echo ". /usr/local/etc/xdg/xfce4/xinitrc" > ~/.xsession
Une méthode pour rendre l'utilisation d'un ordinateur plus plaisante est l'ajout de jolis effets en 3D.
L'installation du paquet binaire Compiz Fusion est simple, mais sa configuration demande quelques étapes qui ne sont pas décrites dans la documentation du logiciel porté.
Les effets visuels dans l'environnement de bureau peuvent
être à l'origine d'une charge non-négligeable pour la carte
graphique. Pour les cartes graphiques nVidia, le pilote de
périphérique propriétaire est nécessaire pour obtenir de
bonnes performances. Les utilisateurs d'autres cartes
graphiques peuvent sauter cette section et poursuivre avec la
partie sur la configuration
d'xorg.conf
.
Pour déterminer quel pilote nVidia est requis, consultez la FAQ à ce sujet.
Après avoir déterminé le pilote correct à utiliser pour votre carte, l'installation est aussi simple que d'installer n'importe quel autre paquet binaire.
Par exemple, pour installer la dernière version du pilote:
#
pkg install x11/nvidia-driver
Le pilote créera un module noyau, qui doit être chargé au
démarrage du système. Ajoutez la ligne suivante au fichier
/boot/loader.conf
:
nvidia_load="YES"
Pour charger immédiatement le module noyau dans le
noyau en cours d'utilisation, utilisez une commande du type
kldload nvidia
. Cependant, il a été
remarqué que certaines versions
d'Xorg ne fonctionnaient pas
correctement si le pilote n'était pas chargé lors du
démarrage du système. Après l'édition du fichier
/boot/loader.conf
,
un redémarrage est donc recommandé.
Avec le module noyau chargé, seul la modification d'une
ligne dans xorg.conf
est nécessaire pour
activer le pilote propriétaire:
Trouvez la ligne suivante dans
/etc/X11/xorg.conf
:
Driver "nv"
et modifiez-la pour:
Driver "nvidia"
Lancez l'interface graphique comme vous en avez l'habitude, et vous devriez être accueilli par le logo nVidia. Tout devrait fonctionner comme à l'accoutumée.
Pour activer Compiz Fusion,
/etc/X11/xorg.conf
doit être
modifié:
Ajoutez la section suivante pour activer les effets du compositeur:
Section "Extensions" Option "Composite" "Enable" EndSection
Recherchez la section « Screen » qui devrait être semblable à celle ci-dessous:
Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" ...
et ajouter les deux lignes suivantes (après la ligne « Monitor »):
DefaultDepth 24 Option "AddARGBGLXVisuals" "True"
Recherchez la partie « Subsection » faisant référence à la définition de l'écran que vous voulez utiliser. Par exemple, si vous voulez utiliser une définition de 1280x1024, recherchez la partie comme ci-dessous. Si la définition voulue n'apparaît nulle part, vous devrez ajouter l'entrée correspondante à la main:
SubSection "Display" Viewport 0 0 Modes "1280x1024" EndSubSection
Une profondeur de couleurs de 24 bits est requise pour un bureau utilisant la composition, modifiez la section précédente pour:
SubSection "Display" Viewport 0 0 Depth 24 Modes "1280x1024" EndSubSection
Et enfin, vérifiez que les modules « glx » et « extmod » sont chargés dans la section « Module »:
Section "Module" Load "extmod" Load "glx" ...
Ce qui précède peut être effectué automatiquement avec
x11/nvidia-xconfig en exécutant (en tant
que root
):
#
nvidia-xconfig --add-argb-glx-visuals
#
nvidia-xconfig --composite
#
nvidia-xconfig --depth=24
L'installation de Compiz Fusion est aussi simple que celle de n'importe quel paquet binaire:
#
pkg install x11-wm/compiz-fusion
Quand l'installation est achevée, lancez votre environnement de bureau et, à un terminal, entrez les commandes suivantes (sous l'utilisateur normal):
%
compiz --replace --sm-disable --ignore-desktop-hints ccp &
%
emerald --replace &
Votre écran devrait clignoter quelques secondes, étant donné que votre gestionnaire de fenêtres (par exemple Metacity si vous utilisez GNOME) est remplacé par Compiz Fusion. Emerald s'occupera de la décoration des fenêtres (c'est à dire, les boutons de fermeture, de réduction, d'agrandissement, les barres de titres etc.).
Vous avez la possibilité de convertir tout cela en une procédure à exécuter automatiquement au démarrage (par exemple en l'ajoutant à « Sessions » dans le cas d'un bureau GNOME):
#! /bin/sh compiz --replace --sm-disable --ignore-desktop-hints ccp & emerald --replace &
Sauvegardez ce fichier dans votre répertoire personnel
sous le nom, par exemple, start-compiz
et
rendez-le exécutable:
%
chmod +x ~/start-compiz
Utilisez ensuite l'interface graphique pour l'ajouter au menu GNOME).
(situé dans , , dans le cas d'un environnement de bureauPour sélectionner tous les effets visuels désirés et leurs paramètres, exécutez (toujours en tant qu'utilisateur normal) le programme Compiz Config Settings Manager:
%
ccsm
Sous GNOME, il peut être trouvé dans le menu , puis .
Si vous avez sélectionné « gconf support » lors
de la compilation, vous pourrez également voir ces paramètres
en utilisant gconf-editor
sous
apps/compiz
.
Maintenant que les bases sont maîtrisées, cette partie du Manuel va traiter de certaines fonctionnalités de FreeBSD fréquemment utilisées. Ces chapitres:
Présentent des applications de bureautique populaires et utiles: des navigateurs, des outils de productivité, des lecteurs de documents, etc.
Présentent plusieurs outils multimédia disponibles pour FreeBSD.
Expliquent le processus de compilation d'un noyau FreeBSD personnalisé, pour permettre l'ajout de fonctionnalités supplémentaires.
Décrivent le système d'impression en détail, pour les configurations d'imprimante locale et en réseau.
Montrent comment exécuter des applications Linux sur le système FreeBSD.
Certains de ces chapitres conseillent des lectures préalables, ceci est noté dans le synopsis au début de chaque chapitre.
Version française de Marc Fonvieille
<blackend@FreeBSD.org>
.
FreeBSD peut faire fonctionner une large variété d'applications de bureautique, comme des navigateurs et des traitements de textes. La plupart de ces derniers sont disponibles sous forme pré-compilée ou peuvent être compilé automatiquement à partir du catalogue des logiciels portés. De nombreux utilisateurs s'attendent à trouver ces types d'applications dans leur environnement de travail. Ce chapitre vous montrera comment installer quelques unes des applications de bureautique les plus populaires sans trop d'effort, soit à partir de versions pré-compilées soit à partir du catalogue des logiciels portés.
Notez que lorsque l'on installe des programmes à partir du catalogue des logiciels portés, ils sont compilés à partir des sources. Cela peut prendre un temps relativement long, en fonction de ce que vous compilez et de la puissance de votre machine. Si la compilation à partir des sources requiert un temps prohibitif, vous pouvez installer la plupart des programmes de l'arbre des ports à partir de version pré-compilées.
Comme FreeBSD dispose d'un système de compatibilité avec les binaires Linux, de nombreuses applications développées à l'origine pour Linux sont disponibles pour votre environnement de travail. Il est vivement recommandé que vous lisiez le Chapitre 10, Compatibilité binaire avec Linux® avant d'installer des applications Linux. De nombreux logiciels portés utilisant la compatibilité binaire Linux débutent avec le terme “linux-”. Souvenez-vous de cela quand vous recherchez un logiciel porté bien particulier, par exemple à l'aide de whereis(1). Dans le reste de ce chapitre on suppose que vous avez activé la compatibilité Linux avant d'installer des applications Linux.
Voici les catégories d'applications couvertes par ce chapitre:
Navigateurs (comme Mozilla, Opera, Firefox, Konqueror)
Productivité (comme KOffice, AbiWord, The GIMP, OpenOffice.org)
Lecteurs de document (comme Acrobat Reader®, gv, Xpdf, GQview)
Finance (comme GnuCash, Gnumeric, Abacus)
Avant de lire ce chapitre, vous devrez:
Savoir comment installer des logiciels tiers (Chapitre 4, Installer des applications: les logiciels pré-compilés et les logiciels portés).
Savoir comment installer des logiciels pour Linux (Chapitre 10, Compatibilité binaire avec Linux®).
Pour des informations sur comment mettre en place un environnement multimédia, lisez le Chapitre 7, Multimédia. Si vous désirez configurer et utiliser le courrier électronique, veuillez vous référer au Chapitre 29, Courrier électronique.
FreeBSD n'est pas livré avec un navigateur particulier installé. Au lieu de cela, le répertoire www du catalogue des logiciels portés contient de nombreux navigateurs prêts à être installés. Si vous n'avez pas le temps de tout compiler (cela peut prendre un temps relativement long dans certains cas) nombres d'entre eux sont disponibles sous forme pré-compilée.
KDE et GNOME fournissent déjà un navigateur HTML. Veuillez vous référer au Section 5.7, « Environnements de bureau » pour plus d'information sur comment configurer ces environnements de travail.
Si vous êtes à la recherche de navigateurs légers, vous devriez consulter le catalogue des logiciels portés pour www/dillo, www/links, ou www/w3m.
Cette section couvre les applications suivantes:
Nom de l'application | Ressources nécessaires | Installation à partir du catalogue des logiciels portés | Dépendances principales |
---|---|---|---|
Mozilla | importantes | lourde | Gtk+ |
Opera | faibles | légère | Version native FreeBSD et Linux disponibles. La version Linux dépend de la compatibilité binaire Linux et de linux-openmotif. |
Firefox | moyennes | lourde | Gtk+ |
Konqueror | moyennes | lourde | Bibliothèques KDE |
Mozilla est un navigateur moderne et stable, dont le portage FreeBSD est complet: il présente un moteur d'affichage HTML qui respecte vraiment les normes; il intègre un lecteur de courrier électronique et de forums de discussion. Il possède même un éditeur HTML si vous projetez d'écrire vous-même quelques pages Web. Les utilisateurs de Netscape® trouveront des similitudes avec la suite Communicator, étant donné que les deux navigateurs partagent certains développements passés.
Sur les machines lentes, avec une vitesse de processeur de moins de 233MHz ou avec moins de 64MO de RAM, Mozilla peut être trop consommateur en ressources pour être vraiment utilisable. Vous pourrez vouloir essayer à la place le navigateur Opera décrit plus tard dans ce chapitre.
Si vous ne pouvez ou ne voulez compiler Mozilla, pour une quelconque raison, l'équipe GNOME de FreeBSD l'a déjà fait pour vous. Installez juste la version pré-compilée à partir du réseau avec:
#
pkg_add -r mozilla
Si la version pré-compilée n'est pas disponible, et que vous avez suffisamment de temps et d'espace disque, vous pouvez obtenir les sources pour Mozilla, le compiler et l'installer sur votre système. Cela s'effectue en faisant:
#
cd /usr/ports/www/mozilla
#
make install clean
Le logiciel porté Mozilla
s'assure d'une initialisation correcte en exécutant la
configuration de la base de registre chrome avec les
privilèges de root
privilèges.
Cependant si vous désirez récupérer des
modules additionnels comme “mouse gestures”, vous
devez exécuter Mozilla en
tant que root
pour obtenir une
installation correcte de ces modules.
Une fois que vous avez achevé l'installation de
Mozilla, vous n'avez plus besoin
d'être sous root
. Vous pouvez lancer
Mozilla en tant que navigateur en
tapant:
%
mozilla
Vous pouvez lancer directement les lecteurs de courrier électronique et de forums comme montré ci-dessous:
%
mozilla -mail
Firefox est la génération suivante de navigateurs basés sur le code de Mozilla. Mozilla est une suite complète d'applications, comme un navigateur, un client de messagerie, un client de discussion et bien plus. Firefox est juste un navigateur, ce qui le rend plus petit et plus rapide.
Installez la version pré-compilée du logiciel en tapant:
#
pkg_add -r firefox
Vous pouvez également utiliser le catalogue des logiciels portés si vous désirez effectuer la compilation à partir des sources:
#
cd /usr/ports/www/firefox
#
make install clean
Dans cette section et la suivante, nous supposerons que vous avez déjà installé Firefox ou Mozilla.
La fondation FreeBSD a acquis auprès de Sun Microsystems une licence de distribution des binaires FreeBSD pour le Java Runtime Environment (JRE™) et le Java Development Kit (JDK™). Les paquetages binaires pour FreeBSD sont disponibles sur le site de la fondation FreeBSD.
Pour ajouter le support Java™ à
Firefox ou
Mozilla, vous devez installer tout
d'abord le logiciel porté java/javavmwrapper. Ensuite,
téléchargez le paquetage Diablo
JRE™ à l'adresse http://www.freebsdfoundation.org/downloads/java.shtml
,
et installez-le à l'aide de pkg_add(1).
Lancez votre navigateur et tapez
about:plugins
dans la barre d'adresse et
appuyez sur Entrée. Une page
listant les greffons installés s'affichera; le
greffon Java™ devrait
désormais apparaître dans la liste. Si ce n'est
pas le cas, en tant que root
, exécutez la
commande suivante:
#
ln -s /usr/local/diablo-jre1.5.0/plugin/i386/ns7/libjavaplugin_oji.so \ /usr/local/lib/browser_plugins/
puis relancez votre navigateur.
Le greffon Macromedia® Flash® n'est pas disponible pour FreeBSD. Cependant il existe une couche logicielle (« wrapper ») pour utiliser la version Linux du greffon. Ce « wrapper » supporte également les greffons Adobe® Acrobat®, RealPlayer® et plus.
Installez le logiciel porté www/nspluginwrapper. Ce logiciel nécessite emulators/linux_base qui occupe un espace relativement important.
L'étape suivante est l'installation du logiciel porté www/linux-flashplugin7. Une fois le
logiciel installé, le greffon doit être
installé par chaque utilisateur à l'aide de la
commande nspluginwrapper
:
%
nspluginwrapper -v -a -i
Lancez ensuite votre navigateur, tapez
about:plugins
dans la barre d'adresse et
appuyez sur Entrée. Une liste des greffons
actuellement disponibles devrait apparaître.
Opera est un navigateur complet respectant les standards. Il intègre un lecteur de courrier électronique et de forums de discussion, un client IRC, un lecteur de flux RSS/Atom et beaucoup plus. Malgré cela, Opera reste relativement léger et très rapide. Il est disponible en deux versions: une version “native” pour FreeBSD et une version utilisant l'émulation Linux.
Pour naviguer sur le Web avec la version FreeBSD d'Opera, installez la version pré-compilée:
#
pkg_add -r opera
Certains sites FTP n'ont pas toutes les versions pré-compilées, mais Opera peut également être obtenu avec le catalogue des logiciels portés en tapant:
#
cd /usr/port/www/opera
#
make install clean
Pour installer la version Linux
d'Opera, utilisez
linux-opera
à la place
d'opera
dans les exemples
précédents. La version Linux est utile dans les
situations demandant l'utilisation de greffons qui sont
uniquement disponibles pour Linux, comme
Acrobat Reader®. Dans tous les
autres aspects, les versions FreeBSD et Linux devraient être
identiques.
Konqueror fait partie de KDE mais peut être également utilisé en dehors de KDE en installant x11/kdebase3. Konqueror est plus qu'un navigateur, c'est également un gestionnaire de fichiers et une visionneuse multimedia
Il existe également un ensemble de greffons pour Konqueror disponible dans misc/konq-plugins.
Konqueror supporte
également Flash®; un
tutorial pour avoir le support de
Flash® sous
Konqueror est disponible à
l'adresse http://freebsd.kde.org/howto.php
.
Quand on parle de productivité, les nouveaux utilisateurs recherchent souvent une bonne suite bureautique ou un traitement de texte convivial. Bien que certains environnements de travail comme KDE fournissent déjà une suite de bureautique, il n'y a pas de logiciels de productivité par défaut. FreeBSD fournit tout ce qui est nécessaire, indépendamment de votre environnement de travail.
Cette section couvre les applications suivantes:
Nom de l'application | Ressources nécessaires | Installation à partir du catalogue des logiciels portés | Dépendances principales |
---|---|---|---|
KOffice | légères | lourde | KDE |
AbiWord | légères | lourde | Gtk+ ou GNOME |
The Gimp | légères | lourde | Gtk+ |
OpenOffice.org | importantes | très lourde | JDK™ 1.4, Mozilla |
La communauté KDE propose son environnement de travail avec une suite de bureautique qui peut être utilisée en dehors de KDE. Elle comprend quatre composants standard que l'on peut trouver dans d'autres suites. KWord est le traitement de texte, KSpread est le tableur, KPresenter est le programme pour gérer des présentations, et Kontour vous permet de créer des documents graphiques.
Avant d'installer la dernière version de KOffice, soyez sûr d'avoir une version à jour de KDE.
Pour installer KOffice à partir de la version pré-compilée, utilisez la commande suivante:
#
pkg_add -r koffice
Si la version pré-compilée n'est pas disponible, vous pouvez utiliser le catalogue des logiciels portés. Par exemple, pour installer KOffice pour KDE3, faites:
#
cd /usr/ports/editors/koffice-kde3
#
make install clean
AbiWord est un traitement de texte gratuit similaire au niveau de l'apparence et de la prise en main à Microsoft® Word. Il convient pour taper des lettres, des rapports, des mémos, et ainsi de suite. Il est très rapide, dispose de nombreuses fonctions, et très convivial.
AbiWord peut importer et
exporter dans de nombreux formats de fichiers, dont certains
formats propriétaires comme le .doc
de
Microsoft®.
AbiWord est disponible sous forme pré-compilée. Vous pouvez l'installer avec:
#
pkg_add -r abiword
Si la version pré-compilée n'est pas disponible, il peut être compilé à partir du catalogue des logiciels portés. Le catalogue devra être plus à jour. Cela peut être fait de cette façon:
#
cd /usr/ports/editors/abiword
#
make install clean
Pour la création et la retouche d'image The GIMP est un programme de manipulation d'image très sophistiqué. Il peut être utilisé comme un simple programme de dessin ou comme une suite de retouche d'image de qualité photo. Il supporte un grand nombre de modules additionnels et présente une interface de création de procédures. The GIMP peut lire et écrire dans un très grand nombre de formats de fichiers. Il supporte l'interfaçage avec des scanners et des tablettes graphiques.
Vous pouvez installer la version pré-compilée en utilisant cette commande:
#
pkg_add -r gimp
Si votre site FTP ne dispose pas de la version pré-compilée, vous pouvez utiliser le catalogue des logiciels portés. Le répertoire graphics du catalogue contient également le Manuel de The Gimp. Voici comment les installer:
#
cd /usr/ports/graphics/gimp
#
make install clean
#
cd /usr/ports/graphics/gimp-manual-pdf
#
make install clean
Le répertoire graphics du catalogue des logiciels portés contient la version de développement de The GIMP dans graphics/gimp-devel. Une version HTML du Manuel de The Gimp est disponible à partir de graphics/gimp-manual-html.
OpenOffice.org comprend toutes les applications indispensables d'une suite de bureautique complète: un traitement de texte, un tableur, un programme de gestion de présentation, et un logiciel de dessin. Son interface utilisateur est très proche de celle d'autres suites de bureautique, et elle peut importer et exporter dans divers formats de fichiers populaires. Elle est disponible dans de nombreuses langues — l'interface, les correcteurs orthographiques, et les dictionnaires ont été internationalisés.
Le traitement de texte d'OpenOffice.org utilise un format de fichier natif en XML pour augmenter la portabilité et la flexibilité. Le tableur dispose d'un langage de macro et il peut être interfacé avec des bases de données extérieures. OpenOffice.org est déjà stable et fonctionne en natif sous Windows®, Solaris™, Linux, FreeBSD, et Mac OS® X. Plus d'information à propos d'OpenOffice.org peut être trouvé sur le site Web d'OpenOffice.org. Pour une information spécifique à FreeBSD, et pour télécharger directement les versions précompilées, utilisez le site Web de l'Equipe FreeBSD de portage d'OpenOffice.org.
Pour installer OpenOffice.org, faites:
#
pkg_add -r openoffice.org
Cette commande devrait fonctionner si vous utilisez une version -RELEASE de FreeBSD. Si ce n'est pas le cas, vous devriez consulter le site de l'équipe de portage d'OpenOffice.org pour télécharger puis installer le paquetage adéquat en utilisant pkg_add(1). Les versions actuelles et de développement sont disponibles.
Une fois l'installation effective, vous avez juste à taper la commande suivante pour exécuter OpenOffice.org:
%
openoffice.org
Lors de la première exécution, quelques
questions vous seront posées et un répertoire
.openoffice.org2
sera créé
dans votre répertoire utilisateur.
Si les version pré-compilées d'OpenOffice.org ne sont pas disponibles, vous avez toujours la possibilité de compiler le logiciel porté. Cependant, vous devez garder à l'esprit que cela demande beaucoup d'espace disque et un temps de compilation relativement long.
#
cd /usr/ports/editors/openoffice.org-2
#
make install clean
Si vous désirez compiler une version localisée, remplacez la dernière ligne de commande avec la suivante:
#
make LOCALIZED_LANG=votre_langage install clean
Vous devez remplacer
votre_langage
avec le code ISO de
langage approprié. Une liste des codes de langage
supportés est disponible dans le fichier
files/Makefile.localized
situé
dans le répertoire du logiciel porté.
Une fois cela effectué, OpenOffice.org peut être lancé avec la commande:
%
openoffice.org
Certains nouveaux formats de documentation ont gagné en popularité depuis l'avènement d'UNIX®; les lecteurs standard qu'ils nécessitent peuvent ne pas être disponibles dans le système de base. Nous verrons, dans cette section, comment installer ces lecteurs de document.
Cette section couvre les applications suivantes:
Nom de l'application | Ressources nécessaires | Installation à partir du catalogue des logiciels portés | Dépendances principales |
---|---|---|---|
Acrobat Reader® | faibles | légère | Compatibilité binaire Linux |
gv | faibles | légère | Xaw3d |
Xpdf | faibles | légère | FreeType |
GQview | faibles | légère | Gtk+ ou GNOME |
De nombreux documents sont désormais distribués sous forme de fichiers PDF, qui signifie “Format Portable de Document” - Portable Document Format. Un des lecteurs recommandé est Acrobat Reader®, sorti par Adobe pour Linux. Comme FreeBSD peut exécuter les binaires Linux, il est également disponible pour FreeBSD.
Pour installer Acrobat Reader® 7, à partir du catalogue de logiciels portés, faire:
#
cd /usr/ports/print/acroread7
#
make install clean
Il n'existe pas de paquetage pour des raisons de licence.
gv un lecteur de fichier PostScript® et PDF. Il est a l'origine basé sur ghostview mais présente un plus bel aspect grâce à la bibliothèque Xaw3d. Il est rapide et son interface est simple. gv possède de nombreuses fonctionnalités comme l'orientation, le format du papier, l'échelle, l'anticrénelage. Presque toutes les opérations peuvent être effectuées soit à partir du clavier soit à la souris.
Pour installer gv à partir de la version pré-compilée, faites:
#
pkg_add -r gv
Si vous ne pouvez obtenir la version pré-compilée, vous pouvez utiliser le catalogue des logiciels portés:
#
cd /usr/ports/print/gv
#
make install clean
Si vous désirez un petit lecteur de fichiers PDF, Xpdf est léger et efficace. Il demande très peu de ressources et est très stable. Il utilise les polices de caractères standards de X et ne requiert pas Motif® ou tout autre ensemble d'éléments graphiques pour X.
Pour installer la version pré-compilée d'Xpdf utilisez la commande suivante:
#
pkg_add -r xpdf
Si la version pré-compilée n'est pas disponible ou que vous préfériez utiliser le catalogue des logiciels portés, faites:
#
cd /usr/ports/graphics/xpdf
#
make install clean
Une fois l'installation achevée, vous pouvez lancer Xpdf et utiliser le bouton droit de la souris pour activer le menu.
GQview est un gestionnaire d'image. Vous pouvez visualiser un fichier avec un simple clic, lancer un éditeur externe, obtenir une pré-visualisation par vignettes, et bien plus. Il propose également un mode présentation et quelques possibilités d'opérations sur fichiers de base. Vous pouvez gérer des collections d'images et trouver facilement les doublons. GQview supporte l'affichage plein écran et l'internationalisation de l'interface.
Si vous désirez installer la version pré-compilée de GQview, faites:
#
pkg_add -r gqview
Si la version pré-compilée n'est pas disponible ou que vous préférez utiliser le catalogue des logiciels portés, faites:
#
cd /usr/ports/graphics/gqview
#
make install clean
Si, pour diverses raisons, vous voudriez gérer vos finances personnelles sous FreeBSD, il existe quelques applications puissantes et simples d'emploi prêtes à être installées. Certaines d'entre elles sont compatibles avec des formats de fichiers très répandus comme ceux utilisés par Quicken ou Excel pour stocker des documents.
Cette section couvre les programmes suivants:
Nom de l'application | Ressources nécessaires | Installation à partir du catalogue des logiciels portés | Dépendances principales |
---|---|---|---|
GnuCash | faibles | lourde | GNOME |
Gnumeric | faibles | lourde | GNOME |
Abacus | faibles | légère | Tcl/Tk |
KMyMoney | faibles | lourde | KDE |
GnuCash fait partie de l'effort GNOME en vue de fournir des applications puissantes et conviviales pour l'utilisateur final. Avec GnuCash, vous pouvez suivre vos crédits et débits, vos comptes bancaires, et vos actions. Il présente une interface intuitive tout en restant très professionnel.
GnuCash fournit un registre intelligent, un système hiérarchique pour les comptes, de nombreux raccourcis clavier et des systèmes d'autocomplémentation de la frappe au clavier. Il peut diviser une simple transaction en plusieurs étapes plus détaillées. GnuCash peut importer et fusionner des fichiers QIF de Quicken. Il supporte également la plupart des formats internationaux de date et de monnaies.
Pour installer GnuCash sur votre système, faites:
#
pkg_add -r gnucash
Si la version pré-compilée n'est pas disponible, vous pouvez utiliser le catalogue des logiciels portés:
#
cd /usr/ports/finance/gnucash
#
make install clean
Gnumeric est un tableur, faisant partie de l'environnement de travail GNOME. Il dispose d'un système automatique “devinant” le type d'entrée de l'utilisateur en fonction du format de la cellule avec un système de remplissage automatique pour de nombreuses séquences d'utilisation. Il peut importer des fichiers de nombreux formats populaires comme ceux d'Excel, Lotus 1-2-3, ou Quattro Pro. Gnumeric supporte l'affichage de graphiques grâce au programme de tracé math/guppi. Il dispose d'un grand nombre de fonctions intégrées et permet tous les formats de cellule habituels comme le format numérique, monétaire, date, temps, et bien plus.
Pour installer Gnumeric sous forme pré-compilée, tapez:
#
pkg_add -r gnumeric
Si la version pré-compilée n'est pas disponible, vous pouvez utiliser le catalogue des logiciels portés en faisant:
#
cd /usr/ports/math/gnumeric
#
make install clean
Abacus est un tableur léger et facile d'emploi. Il incorpore de nombreuses fonctions utiles dans plusieurs domaines comme les statistiques, la finance, et les mathématiques. Il peut importer et exporter en format Excel. Abacus peut produire des sorties en PostScript®.
Pour installer Abacus à partir de la version pré-compilée, faites:
#
pkg_add -r abacus
Si la version pré-compilée n'est pas disponible, vous pouvez utiliser le catalogue des logiciels portés en faisant:
#
cd /usr/ports/deskutils/abacus
#
make install clean
KMyMoney est un programme de comptabilité personnelle pour KDE. KMyMoney a pour objectif de fournir et d'incorporer toutes les fonctionnalités importantes que l'on retrouve dans les applications de comptabilité personnelle commerciales. Il met également l'accent sur la facilité d'utilisation et la mise en place d'une comptabilité en partie double. KMyMoney peut importer les fichiers au format Quicken (QIF), suivre des placements, gérer plusieurs monnaies et fournir une quantité de compte-rendus. La possibilité d'importer des fichiers au format OFX est également disponible à l'aide d'un greffon séparé.
Pour installer KMyMoney sous forme d'un paquetage:
#
pkg_add -r kmymoney2
Si le paquetage n'est pas disponible, vous pouvez utiliser le catalogue des logiciels portés:
#
cd /usr/ports/finance/kmymoney2
#
make install clean
Alors que FreeBSD est populaire parmi les fournisseurs d'accès à Internet pour ses performances et sa stabilité, il est quasiment prêt pour une utilisation quotidienne en tant que station de travail. Avec plusieurs milliers d'applications disponibles sous forme pré-compilées ou dans le catalogue des logiciels portés, vous pouvez vous construire l'environnement de travail qui vous conviendra le mieux.
Voici un bref rappel de toutes les applications abordées dans ce chapitre:
Nom de l'application | Nom du logiciel pré-compilé | Nom du logiciel porté |
---|---|---|
Mozilla | mozilla | www/mozilla |
Opera | opera | www/opera |
Firefox | firefox | www/firefox |
KOffice | koffice-kde3 | editors/koffice-kde3 |
AbiWord | abiword | editors/abiword |
The GIMP | gimp | graphics/gimp |
OpenOffice.org | openoffice | editors/openoffice-1.1 |
Acrobat Reader® | acroread | print/acroread7 |
gv | gv | print/gv |
Xpdf | xpdf | graphics/xpdf |
GQview | gqview | graphics/gqview |
GnuCash | gnucash | finance/gnucash |
Gnumeric | gnumeric | math/gnumeric |
Abacus | abacus | deskutils/abacus |
Version française de Marc Fonvieille
<blackend@FreeBSD.org>
.
FreeBSD supporte une grande variété de cartes son, vous permettant d'obtenir un son haute fidélité à partir de votre ordinateur. Ceci inclut la possibilité d'enregistrer et de jouer les formats “MPEG Audio Layer 3” (MP3), WAV et Ogg Vorbis aussi bien que de nombreux autres formats. Le catalogue de logiciels portés de FreeBSD contient également des applications vous permettant d'éditer vos enregistrements, rajouter des effets sonores, et contrôler des périphériques MIDI.
Avec un peu d'expérimentation, FreeBSD pourra lire des fichiers vidéo et des DVDs. Le nombre d'applications pour encoder, convertir, et lire divers supports vidéo est plus limité que le nombre d'applications équivalentes dans le domaine du son. Par exemple au moment de l'écriture de ces lignes, il n'existe pas de bonne application d'encodage dans le catalogue des logiciels portés de FreeBSD, qui pourra être utilisée pour convertir d'un format à un autre, comme peut le faire pour le son le programme audio/sox. Cependant, le paysage logiciel dans ce domaine évolue rapidement.
Ce chapitre décrira les étapes nécessaires pour configurer votre carte son. La configuration et l'installation d'X11 (Chapitre 5, Le système X Window) ont déjà pris soin des problèmes matériel de votre carte vidéo, bien qu'il puisse y avoir quelques réglages à ajuster pour obtenir une meilleure lecture des vidéos.
Après la lecture de ce chapitre, vous connaîtrez:
Comment configurer votre système afin que votre carte son soit reconnue.
Les méthodes pour tester le fonctionnement de votre carte.
Comment faire face aux problèmes de configuration de votre carte son.
Comment jouer et encoder des MP3s.
Comment la vidéo est supportée par X11.
Quelques logiciels portés qui donnent de bon résultats pour lire/encoder de la vidéo.
Comment lire des DVDs, des fichiers .mpg
et
.avi
.
Comment extraire l'information présente sur des CDs et des DVDs.
Comment configurer une carte TV.
Comment configurer un scanner.
Avant de lire ce chapitre, vous devrez:
Savoir comment configurer et installer un nouveau noyau (Chapitre 8, Configurer le noyau de FreeBSD).
Essayer de monter des CDs audio avec la commande mount(8) aura pour résultat une erreur, au moins, et une panique du noyau, au pire. Ces supports ont des codages spécifiques qui diffèrent du système de fichiers ISO classique.
Avant que vous commenciez, vous devriez connaître le modèle de carte son que vous avez, la puce qu'elle utilise, et si c'est une carte PCI ou ISA. FreeBSD supporte une grande variété de cartes PCI et ISA. Consultez la liste des périphériques audio supportés des notes de compatibilité matériel pour voir si votre carte est supportée. Ces notes indiqueront également quel pilote supporte votre carte.
Pour utiliser votre carte son, vous devrez charger le pilote de périphérique approprié. Cela peut être fait de deux façons. La plus simple est de charger le module pour votre carte son avec kldload(8), ce qui peut être soit fait à partir de la ligne de commande:
#
kldload snd_emu10k1
soit en ajoutant la ligne appropriée dans le fichier
/boot/loader.conf
comme cela:
snd_emu10k1_load="YES"
Ces exemples concernent la carte Creative SoundBlaster®
Live!. Les autres modules son chargeables sont listés dans
/boot/defaults/loader.conf
. Si vous
n'êtes pas sûr du pilote à utiliser, vous
pouvez tenter de charger le pilote
snd_driver
:
#
kldload snd_driver
C'est un méta-pilote
chargeant directement les pilotes les plus courants. Cela
accélère la recherche du pilote
adapté. Il est également possible de charger
l'intégralité des pilotes de cartes son en
utilisant le système
/boot/loader.conf
.
Si vous voulez connaître le pilote
sélectionné lors du chargement du
méta-pilote snd_driver
, vous pouvez
consulter le fichier /dev/sndstat
à
cet effet, et cela à l'aide de la commande cat
/dev/sndstat
.
Une seconde méthode est de compiler le support pour votre carte son en statique dans votre noyau. La section ci-dessous fournit les informations nécessaires pour ajouter le support de votre matériel de cette manière. Pour plus d'informations au sujet de la recompilation de votre noyau, veuillez consulter le Chapitre 8, Configurer le noyau de FreeBSD.
La première chose à effectuer est d'ajouter au noyau le pilote de périphérique audio générique sound(4); pour cela vous devrez ajouter la ligne suivante au fichier de configuration du noyau:
device sound
Ensuite, vous devez ajouter le support pour votre carte son. Par conséquent, vous devez savoir quel pilote supporte la carte. Consultez la liste des périphériques audio supportés des notes de compatibilité matériel pour déterminer le pilote correct pour votre carte son. Par exemple, une carte son Creative SoundBlaster® Live! est supportée par le pilote snd_emu10k1(4). Pour ajouter le support pour cette carte, utilisez ce qui suit:
device snd_emu10k1
Assurez-vous de lire la page de manuel du pilote pour la
syntaxe à utiliser. La syntaxe de la configuration
du noyau pour chaque pilote de carte son supportée
peut être également trouvée dans
le fichier /usr/src/sys/conf/NOTES
.
Les cartes son ISA non-PnP pourront nécessiter de
fournir au noyau des informations sur le paramétrage de
la carte (IRQ, port d'E/S, etc.), comme c'est en général le
cas pour toutes les cartes ISA non-PnP. Cela s'effectue par
l'intermédiaire du fichier
/boot/device.hints
. Au démarrage
du système, le chargeur (loader(8)) lira ce
fichier et passera les paramètres au noyau. Par
exemple, une vieille carte ISA non-PnP Creative SoundBlaster®
16 utilisera le pilote snd_sbc(4) de paire avec snd_sb16
, on ajoutera alors la ligne suivante
au fichier de configuration du noyau:
device snd_sbc device snd_sb16
avec également ceci dans le fichier
/boot/device.hints
:
hint.sbc.0.at="isa" hint.sbc.0.port="0x220" hint.sbc.0.irq="5" hint.sbc.0.drq="1" hint.sbc.0.flags="0x15"
Dans ce cas, la carte utilise le port d'E/S
0x220
et l'IRQ 5
.
La syntaxe utilisée dans le fichier
/boot/device.hints
est abordée
dans la page de manuel du pilote sound(4) ainsi que celle
du pilote spécifique à la carte son.
Les paramètres donnés ci-dessus sont ceux par défaut. Dans certains cas, vous pouvez avoir besoin de modifier l'IRQ ou tout autre paramètre en fonction de votre carte son. Consultez la page de manuel snd_sbc(4) pour plus d'informations au sujet de cette carte.
Après avoir redémarré avec le noyau modifié, ou après avoir chargé le module nécessaire, la carte son devrait apparaître dans le tampon des messages du système (dmesg(8)) d'un manière proche de la suivante:
pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0 pcm0: [GIANT-LOCKED] pcm0: <Cirrus Logic CS4205 AC97 Codec>
L'état de la carte son peut être
contrôlée par l'intermédiaire du fichier
/dev/sndstat
:
#
cat /dev/sndstat
FreeBSD Audio Driver (newpcm) Installed devices: pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384 kld snd_ich (1p/2r/0v channels duplex default)
Le résultat pourra être différent sur
votre système. Si aucun périphérique
pcm
n'apparaît, retournez en
arrière et revoyez ce qui a été fait
précédemment. Contrôlez à nouveau votre
fichier de configuration du noyau et vérifiez que vous
avez choisi le périphérique correct. Les
problèmes courants sont listés dans la
Section 7.2.2.1, « Problèmes courants ».
Si tout va bien, vous devriez avoir maintenant une carte son qui fonctionne. Si la sortie audio de votre lecteur de CD-ROM ou de DVD-ROM est correctement reliée à votre carte son, vous pouvez introduire un CD dans le lecteur et le jouer avec cdcontrol(1):
%
cdcontrol -f /dev/acd0 play 1
Diverses applications, comme audio/workman offrent une meilleure interface. Vous pouvez vouloir installer une application comme audio/mpg123 pour écouter des fichiers audio MP3.
Une autre méthode
rapide pour tester la carte est d'envoyer des données au
/dev/dsp
, de la manière
suivante:
%
cat filename > /dev/dsp
où filename
peut
être n'importe quel fichier. Cette ligne de commande
devrait produire des sons, confirmant le bon fonctionnement de
la carte son.
Les niveaux du mixer de la carte son peuvent être modifiés par la commande mixer(8). Plus de détails peuvent être trouvés dans la page de manuel mixer(8).
Erreur | Solution |
---|---|
sb_dspwr(XX) timed out | Le port d'E/S n'est pas configuré correctement. |
bad irq XX | L'IRQ sélectionnée est incorrecte. Vérifiez que l'IRQ choisie et l'IRQ de la carte son sont les mêmes. |
xxx: gus pcm not attached, out of memory | Il n'y a pas suffisamment de mémoire disponible pour utiliser ce périphérique. |
xxx: can't open /dev/dsp! | Vérifiez avec la commande
|
Il est souvent intéressant de pouvoir jouer simultanément du son à partir de multiples sources, comme lorsque esound ou artsd ne supportent pas le partage du périphérique son avec certaines applications.
FreeBSD vous permet de le faire par l'intermédiaire de Canaux Sonores Virtuels, qui peuvent être activés avec la fonction sysctl(8). Les canaux virtuels vous permettent de multiplexer la sortie de votre carte son en mixant le son au niveau du noyau.
Pour configurer le nombre de canaux virtuels, il existe deux
paramètres de sysctl qui, si vous avez les privilèges
de l'utilisateur root
, peuvent
être configurés comme ceci:
#
sysctl hw.snd.pcm0.vchans=4
#
sysctl hw.snd.maxautovchans=4
L'exemple ci-dessus alloue quatre canaux virtuels, ce qui est
un nombre suffisant pour une utilisation classique.
hw.snd.pcm0.vchans
est le nombre de canaux
virtuels que possède pcm0
,
et est configurable une fois que le périphérique
a été attaché au système.
hw.snd.maxautovchans
est le nombre de canaux
virtuels alloués à un nouveau
périphérique audio quand il est attaché
à l'aide de kldload(8). Comme le module
pcm
peut être chargé
indépendamment des pilotes de périphériques,
hw.snd.maxautovchans
peut stocker combien de
canaux virtuels seront alloués à chaque
périphérique attaché par la suite.
Vous ne pouvez pas modifier le nombre de canaux virtuels pour un périphérique en cours d'utilisation. Quittez avant tout autre chose les programmes utilisant le périphérique en question, comme les lecteurs de fichiers sonores ou les « daemons » audios.
Si vous n'utilisez pas devfs(5), vous devrez faire
pointer vos applications sur
/dev/dsp0
.x
,
où x
est 0 à 3 si
hw.snd.pcm.0.vchans
est fixé à 4.
Sur un système utilisant devfs(5), ce qui
précède sera automatiquement effectué
de façon transparente pour le programme qui
réclame le périphérique
/dev/dsp0
.
Les valeurs par défaut du mixeur des
différents canaux sont fixées en dur dans le
code source du pilote pcm(4). Il existe plusieurs
applications et “daemons” qui vous permettent de
fixer les valeurs du mixeur qui seront mémorisées entre
chaque invocation, mais
ce n'est pas une solution idéale. Il est possible
régler les valeurs par défaut au niveau du
pilote — ceci se fait en définissant les valeurs
adéquates dans le fichier
/boot/device.hints
. Par exemple:
hint.pcm.0.vol="50"
Cela fixera le volume du canal à une valeur par défaut de 50; dès que le module pcm(4) est chargé.
Les fichiers MP3 (MPEG Layer 3 Audio) donnent un son proche de la qualité d'un CD audio, il n'y a aucune raison pour que votre station de travail FreeBSD ne puisse pas en profiter.
De loin, le plus populaire des lecteurs MP3 pour X11 est XMMS (X Multimedia System). Les thèmes (skins) de Winamp peuvent être utilisés avec XMMS dès lors que l'interface est quasiment identique à celle du Winamp de Nullsoft. XMMS dispose aussi d'un support natif pour modules externes (plug-in).
XMMS peut être installé à partir du catalogue de logiciels portés multimedia/xmms ou de la version pré-compilée.
L'interface d'XMMS est intuitive, avec une liste de lecture, un égaliseur graphique, et plus. Ceux qui sont familiers avec Winamp trouveront XMMS simple d'utilisation.
Le logiciel porté audio/mpg123 est une alternative, un lecteur de MP3 en ligne de commande.
mpg123 peut être utilisé en spécifiant le périphérique sonore et le fichier MP3 sur la ligne de commande, comme montré ci-dessous:
#
mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3. Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp. Uses code from various people. See 'README' for more! THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK! Playing MPEG stream from Foobar-GreastestHits.mp3 ... MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
/dev/dsp1.0
devrait être remplacé
par le périphérique dsp
correspondant sur votre système.
Avant d'encoder la totalité d'un CD ou une piste en MP3, les données audio doivent être extraites et transférées sur le disque dur. Cela se fait en copiant les données brutes CDDA (CD Digital Audio) en fichiers WAV.
L'utilitaire cdda2wav
, qui fait partie de
la suite sysutils/cdrtools,
est utilisé pour extraire les données audio de CDs et les
informations rattachées.
Avec le CD audio dans le lecteur, la commande suivante peut
être utilisée (en tant que root
) pour
convertir l'intégralité d'un CD en fichiers WAV (un par
piste):
#
cdda2wav -D 0,1,0 -B
cdda2wav supportera également les lecteurs de CDROM ATAPI (IDE). Pour faire l'extraction à partir d'un lecteur IDE, précisez le nom du périphérique à la place de l'unité SCSI. Par exemple, pour extraite la piste 7 à partir d'un lecteur IDE:
#
cdda2wav -D /dev/acd0 -t 7
Le -D
spécifie le périphérique SCSI
0,1,0
0,1,0
, qui correspond à ce qui est
donné par la commande
cdrecord -scanbus
.
Pour extraire des pistes individuelles, utilisez l'option
-t
comme ceci:
#
cdda2wav -D 0,1,0 -t 7
Cet exemple extrait la septième piste du CD audio. Pour extraire un ensemble de pistes, par exemple, de la piste 1 à 7, précisez un intervalle:
#
cdda2wav -D 0,1,0 -t 1+7
L'utilitaire dd(1) peut également être utilisé pour extraire des pistes audios à partir de lecteurs ATAPI, consultez la Section 18.6.5, « Dupliquer des CDs Audio » pour plus d'informations sur cette possibilité.
De nos jours, l'encodeur mp3 à utiliser est lame. Lame peut être trouvé dans le catalogue de logiciels portés: audio/lame.
En utilisant les fichiers WAV extraits, la commande suivante
convertira le fichier audio01.wav
en
audio01.mp3
:
#
lame -h -b 128 \ --tt "La chanson XY" \ --ta "Artiste XY" \ --tl "Album XY" \ --ty "2001" \ --tc "Extrait et encodé par XY" \ --tg "Genre" \ audio01.wav audio01.mp3
128 kbits semble être le taux standard actuel du débit
audio utilisé pour les MP3s. Nombreux sont ceux qui
préfèrent des taux de haute qualité: 160 ou 192.
Plus le débit audio est élevé plus
l'espace disque utilisé par le fichier MP3 sera grand mais la
qualité sera meilleure. L'option -h
active le
mode “haute qualité, mais un peu plus lent”. Les
options commençant par --t
indiquent des
balises ID3, qui généralement contiennent les
informations sur le morceau, devant être
intégrées au fichier MP3.
D'autres informations sur l'encodage peuvent être trouvées
en consultant la page de manuel de Lame.
Afin de pouvoir graver un CD audio à partir de fichiers MP3, ces derniers doivent être convertis dans le format WAV non compressé. XMMS et mpg123 supportent tous les deux la sortie de fichiers MP3 en format de fichier non compressé.
Ecriture sur le disque avec XMMS:
Lancez XMMS.
Clic-droit sur la fenêtre pour faire apparaître le menu d'XMMS.
Sélectionner Preference
sous
Options
.
Changez l'option “Output Plugin” pour “Disk Writer Plugin”.
Appuyez sur Configure
.
Entrez (ou choisissez browse) un répertoire où va être écrit le fichier décompressé.
Chargez le fichier MP3 dans XMMS comme à l'accoutumé, avec le volume à 100% et l'égaliseur (EQ settings) désactivé.
Appuyez sur Play
—
XMMS devrait se comporter comme
s'il jouait le MP3, mais aucun son ne sera audible. Il est
en fait en train de “jouer” le MP3 dans un
fichier.
Vérifiez que vous avez rétabli l'option “Output Plugin” à sa valeur de départ afin de pouvoir écouter à nouveau des MP3s.
Ecriture sur le disque avec mpg123:
Lancez mpg123 -s audio01.mp3
> audio01.pcm
XMMS crée un fichier au format WAV, tandis que mpg123 convertit le fichier MP3 en données audio PCM brutes. Ces deux formats peuvent être utilisés avec cdrecord pour créer des CDs audio. Vous devez utiliser des fichiers PCM bruts avec burncd(8). Si vous utilisez des fichiers WAV, vous noterez un petit parasite au début de chaque piste, ce son est l'entête du fichier WAV. Vous pouvez simplement retirer l'entête d'un fichier WAV avec l'utilitaire SoX (il peut être installé à partir du logiciel porté audio/sox ou de la version pré-compilée):
%
sox -t wav -r 44100 -s -w -c 2 track.wav track.raw
Lisez la Section 18.6, « Création et utilisation de supports optiques (CDs) » pour plus d'informations sur l'utilisation d'un graveur de CD sous FreeBSD.
Les applications pour lire des vidéos sont assez récentes et se développent très rapidement. Soyez patient. Tout ne va pas fonctionner aussi bien que cela pu être le cas avec le son.
Avant que vous ne commenciez, vous devrez connaître le modèle de carte vidéo dont vous disposez ainsi que le circuit intégré qu'elle utilise. Alors qu'Xorg et XFree86™ supportent une large variété de cartes vidéo, seul un petit nombre d'entre elles donne de bonnes performances en lecture de vidéos. Pour obtenir la liste des extensions supportées par le serveur X utilisant votre carte employez la commande xdpyinfo(1) durant le fonctionnement d'X11.
C'est une bonne idée d'avoir un court fichier MPEG
qui pourra être utilisé comme fichier test pour
évaluer divers lecteurs et leurs options. Comme certains
programmes de lecture de DVD chercheront un support DVD sur
/dev/dvd
par défaut, ou ont ce
périphérique fixé définitivement dans
leur code, vous pourrez trouver utile de créer des liens
symboliques vers les périphériques corrects:
#
ln -sf /dev/acd0 /dev/dvd
#
ln -sf /dev/acd0 /dev/rdvd
Notez qu'en raison de la nature du système
devfs(5), les liens créés à la main
comme les précédents ne seront pas
conservés si vous redémarrez le système.
Afin de créer automatiquement les liens symboliques
dès que vous redémarrez votre système,
ajoutez les lignes suivantes au fichier
/etc/devfs.conf
:
link acd0 dvd link acd0 rdvd
De plus, le décodage de DVD, qui nécessite de faire appel à des fonctions spéciales du lecteur de DVD, demande d'avoir la permission d'écrire sur les périphériques DVD.
Pour augmenter la mémoire partagée pour l'interface X11, il est recommandé que les valeurs de certaines variables sysctl(8) soient augmentées:
kern.ipc.shmmax=67108864 kern.ipc.shmall=32768
Il y a plusieurs manières possibles pour afficher de la vidéo sous X11. Ce qui fonctionnera vraiment est énormément dépendant du matériel. Chaque méthode décrite ci-dessous donnera différents résultats en fonction du matériel. De plus, le rendu de la vidéo sous X11 est un sujet recevant beaucoup d'attention dernièrement, et avec chaque nouvelle version d'Xorg, ou d'XFree86™, il pourra y avoir des améliorations significatives.
Une liste des interfaces vidéo communes:
X11: sortie X11 classique utilisant de la mémoire partagée.
XVideo: une extension de l'interface X11 qui supporte la vidéo sur n'importe quelle partie de l'écran contrôlé par X11.
SDL: “Simple Directmedia Layer” - couche simple d'accès directe au média.
DGA: “Direct Graphics Access” - accès direct au graphique.
SVGAlib: couche graphique bas niveau pour la console.
Xorg et XFree86™ 4.X disposent d'une extension appelée XVideo (également connue sous les termes Xvideo, Xv, ou xv) qui permet d'afficher directement de la vidéo à travers une accélération spécifique. Cette extension fournit une très bonne qualité de rendu même sur les machines bas de gamme.
Pour vérifier si l'extension fonctionne utilisez
xvinfo
:
%
xvinfo
XVideo est supporté pour votre carte si le résultat de la commande ressemble à:
X-Video Extension version 2.2 screen #0 Adaptor #0: "Savage Streams Engine" number of ports: 1 port base: 43 operations supported: PutImage supported visuals: depth 16, visualID 0x22 depth 16, visualID 0x23 number of attributes: 5 "XV_COLORKEY" (range 0 to 16777215) client settable attribute client gettable attribute (current value is 2110) "XV_BRIGHTNESS" (range -128 to 127) client settable attribute client gettable attribute (current value is 0) "XV_CONTRAST" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) "XV_SATURATION" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) "XV_HUE" (range -180 to 180) client settable attribute client gettable attribute (current value is 0) maximum XvImage size: 1024 x 1024 Number of image formats: 7 id: 0x32595559 (YUY2) guid: 59555932-0000-0010-8000-00aa00389b71 bits per pixel: 16 number of planes: 1 type: YUV (packed) id: 0x32315659 (YV12) guid: 59563132-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x30323449 (I420) guid: 49343230-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x36315652 (RV16) guid: 52563135-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x3e0, 0x7c00 id: 0x35315652 (RV15) guid: 52563136-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x7e0, 0xf800 id: 0x31313259 (Y211) guid: 59323131-0000-0010-8000-00aa00389b71 bits per pixel: 6 number of planes: 3 type: YUV (packed) id: 0x0 guid: 00000000-0000-0000-0000-000000000000 bits per pixel: 0 number of planes: 0 type: RGB (packed) depth: 1 red, green, blue masks: 0x0, 0x0, 0x0
Notez également que les formats listés (YUV2, YUV12, etc...) ne sont pas présents dans chaque implémentation d'XVideo et leur absence pourra gêner certains programmes.
Si le résultat ressemble à:
X-Video Extension version 2.2 screen #0 no adaptors present
Alors XVideo n'est probablement pas supporté pour votre carte.
Si XVideo n'est pas supporté pour votre carte, cela signifie seulement qu'il sera plus difficile pour votre système d'affichage de répondre aux demandes du rendu vidéo en termes de puissance de calcul. En fonction de votre carte vidéo et de votre processeur, vous pourriez encore obtenir de bons résultats. Vous devriez probablement vous documenter sur les méthodes pour améliorer les performances en lisant la Section 7.4.3, « Lectures supplémentaires ».
La couche simple d'accès directe au média, SDL, a été prévue pour être une couche de portage entre Microsoft® Windows®, BeOS, et UNIX®, permettant à des applications “cross-platform” qui font un usage efficace du son et du graphique d'être développées. La couche SDL fournit une abstraction de bas niveau vers le matériel qui peut parfois être plus efficace que l'interface X11.
La bibliothèque SDL peut être trouvée dans devel/sdl12.
L'accès direct au graphique est une extension X11
qui permet à un programme de bypasser le serveur X et
d'accéder directement au matériel. Comme il
repose sur une copie bas niveau de la mémoire, les
programmes l'utilisant doivent être
exécutés avec les privilèges de l'utilisateur
root
.
L'extension DGA et ses performances peuvent être
testées avec dga(1). Quand dga
est
exécuté, il changera les couleurs de l'affichage
à chaque appui sur une touche. Pour quitter, utilisez la touche
q.
Cette section traite des logiciels disponibles dans le catalogue des logiciels portés de FreeBSD qui peuvent être utilisés pour lire de la vidéo. Les applications vidéos sont un domaine de développement très actif, et les capacités de diverses applications seront sujettes à des divergences avec la description donnée ici.
Premièrement, il est important de savoir que plusieurs des applications vidéos fonctionnant sous FreeBSD ont été développées comme des applications pour Linux. Plusieurs de ces applications sont encore considérées comme étant de qualité bêta. Parmi les problèmes que l'on peut rencontrer avec les applications vidéos sous FreeBSD, nous trouvons:
Une application ne peut pas lire un fichier produit par une autre application.
Une application ne peut pas lire un fichier quelle a produit.
La même application sur deux machines différentes, recompilée sur chaque machine pour la machine elle-même, jouera le fichier différemment.
Un filtre apparemment insignifiant comme un changement d'échelle de l'image donne de très mauvais résultats en raison d'une routine de changement d'échelle boguée.
Une application qui plante régulièrement.
La documentation n'est pas installée avec le logiciel
porté et peut être trouvée sur Internet ou
dans le répertoire
work
du logiciel porté.
Parmin ces applications, nombreuses sont celles qui peuvent présenter des “Linuxismes”. Aussi, il y peut y avoir des problèmes résultants de la façon dont certaines bibliothèques standards sont implémentées dans les distributions Linux, ou certaines caractéristiques du noyau Linux qui ont été employées par les auteurs des applications. Ces problèmes ne sont pas toujours remarqués et contournés par les responsables du portage du logiciel ce qui peut mener vers quelques ennuis comme ceux-ci:
L'utilisation de /proc/cpuinfo
pour
détecter les caractéristiques du processeur.
Une mauvaise utilisation des “threads” qui provoque le blocage de programme au lieu de se terminer complètement.
Des logiciels habituellement utilisés en conjonction avec l'application ne sont pas encore dans le catalogue des logiciels portés.
Jusqu'ici, les développeurs de ces applications ont été coopératifs avec les responsables des logiciels portés pour minimiser les modifications nécessaires au portage.
MPlayer est une application pour lire des vidéos récemment et rapidement développée. Les objectifs de l'équipe de MPlayer sont la rapidité et la flexibilité sur Linux et autre UNIX®. Le projet fut démarré quand le fondateur de l'équipe en eu assez des mauvaises performances en lecture des autres lecteurs disponibles. Certains diront que l'interface graphique a été sacrifiée pour une conception rationalisée. Cependant, une fois que vous avez les options en ligne de commande et les combinaisons de touches en main, cela fonctionne très bien.
MPlayer réside dans multimedia/mplayer.
MPlayer
effectue un certain nombre de contrôle du
matériel durant le processus de compilation, il en
résulte un
binaire qui ne sera pas portable d'un système à l'autre.
Ainsi il est important d'utiliser le logiciel porté et de ne
pas utiliser un logiciel pré-compilé.
En plus, un certain nombre d'options peuvent être
spécifiées dans la ligne de commande make
,
comme décrit dans le fichier Makefile
et au départ de la compilation:
#
cd /usr/ports/multimedia/mplayer
#
make
N - O - T - E Take a careful look into the Makefile in order to learn how to tune mplayer towards you personal preferences! For example, make WITH_GTK1 builds MPlayer with GTK1-GUI support. If you want to use the GUI, you can either install /usr/ports/multimedia/mplayer-skins or download official skin collections from http://www.mplayerhq.hu/homepage/dload.html
Les options par défaut du logiciel porté
devraient être suffisantes pour la plupart des
utilisateurs. Cependant si vous avez besoin du codec XviD,
vous devez spécifier l'option
WITH_XVID
dans la ligne de commande. Le
périphérique DVD par défaut peut
également être défini avec l'option
WITH_DVD_DEVICE
, par défaut
/dev/acd0
sera utilisé.
Au moment de l'écriture de ces lignes, le logiciel
porté de MPlayer compilera sa
documentation HTML et deux exécutables,
mplayer
et
mencoder
, qui est un outil pour ré-encoder
de la vidéo.
La documentation HTML de MPlayer est très complète. Si le lecteur trouve l'information sur le matériel vidéo et les interfaces manquante dans ce chapitre, la documentation de MPlayer est une alternative très complète. Vous devriez certainement prendre le temps de lire la documentation de MPlayer, si vous êtes à la recherche d'informations sur le support vidéo sous UNIX®.
Chaque utilisateur de MPlayer doit
créer un
sous-répertoire .mplayer
dans son
répertoire d'utilisateur. Pour créer ce
sous-répertoire nécessaire, vous pouvez taper ce qui
suit:
%
cd /usr/ports/multimedia/mplayer
%
make install-user
Les options de commande de mplayer
sont
données dans la page de manuel. Pour plus de détails
il y a la documentation HTML. Dans cette section, nous
décrirons que quelques unes des utilisations les plus courantes.
Pour lire à un fichier, comme
testfile.avi
en utilisant une des
diverses interfaces vidéo utilisez l'option
-vo
:
%
mplayer -vo xv testfile.avi
%
mplayer -vo sdl testfile.avi
%
mplayer -vo x11 testfile.avi
#
mplayer -vo dga testfile.avi
#
mplayer -vo 'sdl:dga' testfile.avi
Cela vaut la peine d'essayer toutes ces options, comme leur performance relative dépend de nombreux facteurs et variera de façon significative avec le matériel.
Pour lire un DVD, remplacez
testfile.avi
par dvd://
où N
-dvd-device
DEVICE
N
est
le numéro du titre à jouer et
DEVICE
est
le fichier spécial de périphérique correspondant
au lecteur de DVD. Par exemple, pour jouer le titre 3 depuis
/dev/dvd
:
#
mplayer -vo xv dvd://3 -dvd-device /dev/dvd
Le périphérique DVD par défaut
peut être défini lors de la compilation du
logiciel porté MPlayer par
l'intermédiaire de l'option
WITH_DVD_DEVICE
. Par défaut, ce
périphérique est
/dev/acd0
. Plus de détails
peuvent être trouvés dans le
Makefile
du logiciel
porté.
Pour arrêter, avancer, etc..., consultez
les combinaisons de touches, qui sont données en
exécutant mplayer -h
ou lisez
la page de manuel.
D'autres options importantes pour la lecture sont:
-fs -zoom
qui active le mode plein écran
et -framedrop
qui aide au niveau des
performances.
Pour que la ligne de commande à taper ne devienne pas trop
longue, l'utilisateur peut créer un fichier
.mplayer/config
et y fixer les options
par défaut:
vo=xv fs=yes zoom=yes
Enfin, mplayer
peut être
utilisé pour extraire une piste du DVD dans un fichier
.vob
.
Pour récupérer la seconde piste vidéo
d'un DVD, tapez ceci:
#
mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd
Le fichier de sortie, out.vob
, sera du
MPEG et peut être manipulé par les autres
logiciels décrits dans cette section.
Avant
d'utiliser mencoder
c'est une bonne
idée de vous familiariser avec les options données
par la documentation HTML. Il existe une page de manuel, mais
elle n'est pas très utile sans la documentation en HTML.
Il y a d'innombrables façons d'améliorer la
qualité, diminuer le débit binaire, et
modifier les formats, et certaines de ces options peuvent faire
la différence entre de bonnes et mauvaises performances.
Voici quelques exemples pour y arriver. Tout d'abord une
simple copie:
%
mencoder input.avi -oac copy -ovc copy -o output.avi
De mauvaises combinaisons d'options peuvent conduire
à des fichiers illisibles
même par mplayer
. Aussi, si
vous voulez juste extraire un fichier, restez sur l'option
-dumpfile
de mplayer
.
Pour convertir input.avi
au format MPEG4
avec un codage audio MPEG3 (audio/lame est nécessaire):
%
mencoder input.avi -oac mp3lame -lameopts br=192 \ -ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi
Ceci a produit un fichier lisible par mplayer
et xine
.
input.avi
peut être remplacé
par dvd://1 -dvd-device /dev/dvd
et exécuté en tant
que root
pour ré-encoder directement un
titre DVD. Puisque vous êtes susceptible de ne pas
être satisfait du résultat la première fois, il
est recommandé d'extraire le titre vers un fichier et de
travailler sur le fichier.
Le lecteur xine est un projet de grande envergure visant non seulement à être une solution vidéo tout-en-un, mais également de produire une bibliothèque de base réutilisable et un exécutable modulaire qui peut être étendu grâce à des greffons. Il est fourni sous forme pré-compilée et de logiciel porté, multimedia/xine.
Le lecteur xine est encore un peu brut, mais c'est clairement un bon début. Dans la pratique, xine demande soit un processeur rapide avec une carte vidéo rapide, soit l'extension XVideo. L'interface graphique est utilisable, mais peu pratique.
Au moment de l'écriture de ces lignes, il n'y a pas de module d'entrée fourni avec xine qui lira les DVDs codés en CSS. Il existe des versions tiers qui ont des modules à cet effet intégrés, mais aucune de ces dernières ne se trouve dans le catalogue des logiciels portés de FreeBSD.
Comparé à MPlayer, xine fait plus pour l'utilisateur, mais au même moment, rend inaccessible à l'utilisateur certains contrôles bien précis. Le lecteur xine se comporte le mieux sur les interfaces XVideo.
Par défaut, le lecteur xine lancera une interface graphique. Les menus peuvent alors être utilisés pour ouvrir un fichier précis:
%
xine
Alternativement, le lecteur peut être invoqué pour jouer directement un fichier sans l'interface graphique avec la commande:
%
xine -g -p mymovie.avi
Le logiciel transcode n'est pas un
lecteur, mais une suite d'outils pour
ré-encoder les fichiers audio et vidéo.
Avec transcode,
on a la capacité de fusionner des fichiers vidéos,
réparer les fichiers endommagés, en utilisant les outils
en ligne de commande avec des interfaces de flots
stdin/stdout
.
Un grand nombre d'options peut être précisé lors de la compilation du logiciel porté multimedia/transcode, nous recommandons d'utiliser la ligne de commande suivante pour compiler transcode:
#
make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \ WITH_MJPEG=yes -DWITH_XVID=yes
Le paramétrage proposé devrait convenir à la plupart des utilisateurs.
Pour illustrer les capacités de
transcode
, voici un exemple montrant comment
convertir un fichier DivX en fichier MPEG-1 en standard PAL (VCD
PAL):
%
transcode -i input.avi -V --export_prof vcd-pal -o output_vcd
%
mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpa
Le fichier MPEG résultant,
output_vcd.mpg
, peut être directement
lu avec MPlayer. Vous pourrez
même le graver sur un CD pour créer ainsi un
Vidéo CD; dans ce cas vous devrez installer et utiliser
les programmes multimedia/vcdimager et sysutils/cdrdao.
Il existe une page de manuel pour
transcode
, mais il est conseillé de
consulter également le wiki de
transcode pour plus d'information et des
exemples.
Les différents logiciels vidéo pour FreeBSD se développent rapidement. Il est fort possible que dans un futur proche plusieurs des problèmes abordés ici seront résolus. Entre temps ceux qui veulent tirer partie des possibilités audio/vidéo de FreeBSD devront se débrouiller avec des connaissances extraites de plusieurs FAQs et guides et utiliser différentes applications. Cette section existe pour fournir au lecteur des références sur ces documentations additionnelles.
La documentation de MPlayer est techniquement très instructive. Ces documents devraient probablement être consultés par quiconque désirant obtenir un niveau élevé d'expertise sur la vidéo et UNIX®. La liste de diffusion de MPlayer est hostile à toute personne qui n'a pas pris la peine de lire la documentation, aussi si vous projetez de leur envoyer des rapports de bogue, lisez la documentation!
Le HOWTO de xine contient un chapitre sur l'amélioration des performances qui est général à tous les lecteurs de vidéo.
Et enfin, il y a quelques autres applications prometteuses que le lecteur devrait essayer:
Avifile qui est également un logiciel porté multimedia/avifile.
Ogle qui est également un logiciel porté multimedia/ogle.
multimedia/dvdauthor, un logiciel libre pour la création de DVDs.
Les cartes TV vous permettent de regarder sur votre ordinateur la télévision par voie hertzienne ou par câble. La plupart d'entre elles acceptent de la vidéo composite par l'intermédiaire de connecteurs RCA ou S-video et certaines de ces cartes disposent d'un tuner radio FM.
FreeBSD founit le support pour les cartes TV PCI utilisant un circuit de capture video Brooktree Bt848/849/878/879 ou Conexant CN-878/Fusion 878a à l'aide du pilote bktr(4). Vous devez également vous assurer que la carte dispose d'un tuner supporté, consultez la page de manuel bktr(4) pour une liste des tuners supportés.
Pour utiliser votre carte, vous devrez charger le pilote
bktr(4), cela peut être effectué en ajoutant
la ligne suivante au fichier
/boot/loader.conf
:
bktr_load="YES"
Alternativement, vous pouvez compiler en statique dans le noyau le support pour la carte TV, dans ce cas ajouter les lignes suivantes dans votre fichier de configuration du noyau:
device bktr device iicbus device iicbb device smbus
Ces pilotes de périphériques supplémentaires sont nécessaires étant donné que les composants de la carte sont interconnectés via un bus I2C. Compilez et installez, ensuite, un nouveau noyau.
Une fois que le support a été ajouté au système, vous devez redémarrer votre machine. Durant le processus de démarrage, votre carte TV devrait apparaître de cette manière:
bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0 iicbb0: <I2C bit-banging driver> on bti2c0 iicbus0: <Philips I2C bus> on iicbb0 master-only iicbus1: <Philips I2C bus> on iicbb0 master-only smbus0: <System Management Bus> on bti2c0 bktr0: Pinnacle/Miro TV, Philips SECAM tuner.
Bien évidemment ces messages peuvent varier en fonction de votre matériel. Cependant assurez-vous que le tuner est correctement détecté; il est possible de forcer certains des paramètres détecté à l'aide du système sysctl(8) et d'options de configuration du noyau. Par exemple, si vous désirez forcer le tuner pour un tuner Philips SECAM, vous devrez ajouter la ligne suivante au fichier de configuration du noyau:
options OVERRIDE_TUNER=6
ou vous pouvez directement utiliser sysctl(8):
#
sysctl hw.bt848.tuner=6
Consultez la page de manuel bktr(4) et le fichier
/usr/src/sys/conf/NOTES
pour plus de
détails sur les options disponibles.
Pour utiliser votre carte TV, vous devrez installer une des applications suivantes:
multimedia/fxtv qui permet de regarder la télévision et d'enregistrer des images, du son et de la vidéo.
multimedia/xawtv est également une application pour regarder la télévision avec les mêmes fonctionnalités que fxtv.
misc/alevt décode et affiche les informations Vidéotexte/Télétexte.
audio/xmradio, un programme pour utiliser le tuner FM fourni avec certaines cartes TV.
audio/wmtune, une application intégrable dans votre environnement de travail pour gérer les tuners radio.
Plus d'applications sont disponibles dans le catalogue des logiciels portés de FreeBSD.
Si vous rencontrez un quelconque problème avec votre carte TV, vous devriez contrôler tout d'abord que le circuit de capture video et le tuner sont vraiment supportés par le pilote bktr(4) et si vous avez utilisé les bonnes options de configuration. Pour plus de support et pour les diverses questions que vous pouvez vous poser à propos de votre carte TV, vous pouvez contacter et utiliser les archives de la liste de diffusion freebsd-multimedia.
Sous FreeBSD, l'accès aux scanners est possible grâce à l'API SANE (Scanner Access Now Easy) disponible dans le catalogue des logiciels portés. SANE utilisera également certains pilotes de périphériques FreeBSD pour accéder à la partie matérielle du scanner.
FreeBSD supporte les scanners SCSI et USB. Assurez-vous que votre scanner est supporté par SANE avant d'effectuer une quelconque configuration. SANE dispose d'une liste des périphériques supportés qui peut vous informer sur le support et son statut pour un scanner particulier. La page de manuel uscanner(4) donne également une liste des scanners USB supportés.
Comme mentionné plus haut les interfaces SCSI et USB sont supportées. En fonction de l'interface de votre scanner, différents pilotes de périphérique sont nécessaires.
Le noyau GENERIC
inclut par
défaut les pilotes nécessaires au support des
scanners USB. Si vous décidez d'utiliser un noyau
personnalisé, assurez-vous que les lignes suivantes
sont présentes dans votre fichier de configuration du
noyau:
device usb device uhci device ohci device uscanner
En fonction du contrôleur USB présent sur
votre carte mère, vous n'avez besoin que d'une des
deux lignes device uhci
et
device ohci
, cependant avoir ces deux
lignes simultanément dans la configuration du noyau
est sans risque.
Si vous ne désirez pas recompiler votre noyau et
que votre noyau n'est pas le GENERIC
,
vous pouvez directement charger le module du pilote
uscanner(4) à l'aide de la commande
kldload(8):
#
kldload uscanner
Pour charger ce module à chaque démarrage
du système, ajoutez la ligne suivante au fichier
/boot/loader.conf
:
uscanner_load="YES"
Après avoir redémarré avec le bon noyau, ou après avoir chargé le module nécessaire, branchez votre scanner USB. Une ligne montrant la détection de votre scanner devrait apparaître dans le tampon des messages du système (dmesg(8)):
uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2
Ceci nous indique que notre scanner utilise le fichier
spécial de périphérique
/dev/uscanner0
.
Si votre scanner dispose d'une interface SCSI, il est
important de connaître quelle carte contrôleur
SCSI vous utiliserez. En fonction du contrôleur sur
la carte, vous devrez adapter votre configuration du noyau.
Le noyau GENERIC
supporte les
contrôleurs SCSI les plus courants. Assurez-vous
d'avoir lu le fichier NOTES
et ajoutez la
ligne adéquate dans votre fichier de configuration du
noyau. En plus du pilote de votre carte SCSI, vous avez
besoin des lignes suivantes dans votre fichier de
configuration du noyau:
device scbus device pass
Une fois que votre noyau a été correctement compilé et installé, vous devriez être en mesure de voir les périphériques au démarrage:
pass2 at aic0 bus 0 target 2 lun 0 pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device pass2: 3.300MB/s transfers
Si votre scanner n'était pas alimenté au démarrage du système, il est encore possible de forcer sa détection, en en sondant le bus SCSI avec la commande camcontrol(8):
#
camcontrol rescan all
Re-scan of bus 0 was successful Re-scan of bus 1 was successful Re-scan of bus 2 was successful Re-scan of bus 3 was successful
Ensuite le scanner apparaîtra dans la liste des périphériques SCSI:
#
camcontrol devlist
<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0) <IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1) <AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3) <PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)
Plus de détails sur les périphériques SCSI sont disponibles dans les pages de manuel scsi(4) et camcontrol(8).
Le système SANE est divisé en deux parties: les « backend »s (graphics/sane-backends) et les « frontend »s (graphics/sane-frontends). Les « backend »s fournissent l'accès au scanner. La liste des périphériques supportés par SANE indique quel « backend » supportera votre scanner. Il est indispensable de déterminer correctement le « backend » relatif à votre scanner si vous voulez être en mesure d'utiliser votre périphérique. La partie « frontend »s fournie l'interface graphique de numérisation (xscanimage).
La première étape est d'installer le
logiciel porté graphics/sane-backends ou sa version
pré-compilée. Ensuite, utilisez la commande
sane-find-scanner
pour contrôler la
détection du scanner par l'ensemble
SANE:
#
sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3
Le résultat de la commande affichera le type d'interface utilisée par le scanner et le fichier spécial de périphérique utilisé pour attacher le scanner au système. Le fabricant et le modèle peuvent ne pas apparaître, cela n'est pas important.
Certains scanners USB requièrent le chargement préalable d'un « firmware », cela est expliqué dans la page de manuel du « backend » utilisé. Vous devriez également consulter les pages de manuel de sane-find-scanner(1) et sane(7).
Nous devons maintenant vérifier si le scanner sera
identifié par un « frontend » de
numérisation. Par défaut, les
« backend »s SANE sont
fournies avec un outil en ligne de commande appelé
scanimage(1). Cette commande vous permet de lister les
périphériques et d'effectuer une acquisition
d'image à partir de la ligne de commande. L'option
-L
est employée pour afficher les
scanners présents sur le système:
#
scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner
Aucun résultat, ou un message disant qu'aucun
scanner n'a été identifié indiquent que
scanimage(1) est incapable d'identifier le scanner. Si
cela se produit, vous devrez éditer le fichier de
configuration du « backend » du scanner et
définir le type de scanner utilisé. Le
répertoire /usr/local/etc/sane.d/
contient
tous les fichiers de configurations des
« backend »s. Ce problème d'identification
apparaît essentiellement avec certains scanners
USB.
Par exemple, avec le scanner USB utilisé dans la
Section 7.6.2.1, « Interface USB »,
sane-find-scanner
nous donne l'information
suivante:
#
sane-find-scanner -q
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0
Le scanner est correctement détecté, il
utilise l'interface USB et est attaché au fichier
spécial de périphérique
/dev/uscanner0
. Nous pouvons maintenant
vérifier si le scanner est correctement
identifié:
#
scanimage -L
No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages).
Comme le scanner n'est pas identifié, nous devons
éditer le fichier
/usr/local/etc/sane.d/epson.conf
. Le
scanner utilisé était un EPSON
Perfection®
1650, nous en déduisons donc que ce scanner utilisera
le « backend » epson
.
Assurez-vous de bien lire les commentaires d'aide
présents dans les fichiers de configuration des
« backend »s. Les modifications à faire
sont relativement simples: commentez toutes les lignes
concernant une interface différente de celle
utilisée par votre scanner (dans notre cas, nous
commenterons toutes les lignes débutant par le mot
scsi
étant donné que notre
scanner utilise une interface USB), ajoutez ensuite à
la fin du fichier une ligne indiquant l'interface et le
fichier spécial de périphérique
utilisé. Dans ce cas, nous ajoutons la ligne
suivante:
usb /dev/uscanner0
Veuillez vous assurer de bien lire les commentaires fournis dans les fichiers de configurations des « backend »s ainsi que les pages de manuel correspondantes pour plus de détails concernant la syntaxe correcte à utiliser. Nous pouvons maintenant vérifier si le scanner est identifié:
#
scanimage -L
device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner
Notre scanner a été identifié. Ce
n'est pas important si la marque et le modèle ne
correspondent pas au scanner. L'important est le champ
`epson:/dev/uscanner0'
, qui nous donne le
« backend » et le fichier spécial de
périphérique corrects.
Une fois que la commande scanimage -L
est en mesure d'identifier le scanner, la configuration est
terminée. Le périphérique est prêt
à effectuer sa première
numérisation.
Bien que scanimage(1) permette d'effectuer une numérisation à partir de la ligne de commande, il est préférable d'utiliser une interface graphique. SANE offre une interface graphique simple mais efficace: xscanimage (graphics/sane-frontends).
Xsane (graphics/xsane) est une autre interface graphique de numérisation assez populaire. Ce programme offre des fonctions avancées comme différents mode de numérisation (photocopie, fax, etc.), la correction des couleurs, la numérisation par lots, etc. Ces deux applications sont utilisables comme greffon pour GIMP.
Toutes les opérations précédentes ont
été effectuées avec les privilèges
root
. Vous pourrez, cependant, avoir
besoin que d'autres utilisateurs puissent accéder au
scanner. L'utilisateur devra avoir les permissions de lecture
et d'écriture sur le fichier spécial de
périphérique /dev/uscanner0
dont le propriétaire est le groupe
operator
. L'ajout de l'utilisateur
joe
au groupe
operator
lui autorisera l'accès
au scanner:
#
pw groupmod operator -m joe
Pour plus de détails, consultez la page de manuel
de pw(8). Vous devez également fixer les
permissions d'écriture correctes (0660 or 0664) sur le
fichier spécial de périphérique
/dev/uscanner0
, par défaut le
groupe operator
n'a qu'un accès
en lecture. Cela se fait en ajoutant les lignes suivantes au
fichier /etc/devfs.rules
:
[system=5] add path uscanner0 mode 660
Ajoutez ensuite ce qui suit au fichier
/etc/rc.conf
et redémarrez la
machine:
devfs_system_ruleset="system"
Plus d'information concernant ces lignes peut être trouvée dans la page de manuel devfs(8).
Bien sûr, pour des raisons de
sécurité, vous devriez réfléchir
à deux fois avant d'ajouter un utilisateur à
n'importe quel groupe, tout particulièrement au groupe
operator
.
Version française de Marc Fonvieille
<blackend@FreeBSD.org>
.
Le noyau est le coeur du système d'exploitation FreeBSD. Il est responsable de la gestion de la mémoire, de la mise en application des contrôles de sécurité, du réseau, des accès disque, et bien plus. Bien que FreeBSD devienne de plus en plus configurable dynamiquement, il est toujours nécessaire occasionnellement de reconfigurer et recompiler votre noyau.
Après la lecture de ce chapitre, vous saurez:
Pourquoi vous pourriez avoir besoin de compiler un noyau sur mesure.
Comment écrire un fichier de configuration du noyau, ou modifier un fichier de configuration existant.
Comment utiliser le fichier de configuration du noyau pour créer et recompiler un nouveau noyau.
Comment installer un nouveau noyau.
Que faire si quelque chose se passe mal.
Toutes les commandes listées dans les exemples de ce
chapitre doivent être exécutées en tant que
root
afin de fonctionner.
Traditionnellement, FreeBSD a eu ce qui s'appelle un noyau “monolithique”. Cela signifie que le noyau était un gros programme, supportant une liste figée de périphériques, et si vous vouliez modifier le comportement du noyau alors vous deviez compiler un nouveau noyau, et ensuite redémarrer votre ordinateur avec le nouveau noyau.
Aujourd'hui, FreeBSD s'oriente rapidement vers un modèle où une grande partie des fonctions du noyau est contenue dans des modules qui peuvent être dynamiquement chargés et déchargés si nécessaire. Cela permet au noyau de s'adapter au nouveau matériel devenant soudainement disponible (comme les cartes PCMCIA dans un ordinateur portable), ou pour qu'une nouvelle fonctionnalité qui n'était pas nécessaire lors de la compilation du noyau y soit intégrée. On appelle cela un noyau modulaire.
En dépit de cela, il est encore nécessaire d'effectuer certaines configurations de noyau en statique. Dans certains cas c'est parce que la fonctionnalité est si proche du noyau qu'elle ne peut être rendue dynamiquement chargeable. Dans d'autres cas, cela peut tout simplement venir du fait que personne n'a encore pris le temps d'écrire un module dynamiquement chargeable pour cette fonctionnalité.
Compiler un noyau sur mesure est l'un des plus importants
rites de passage que doit endurer tout utilisateur BSD. Cette
opération, tout en prenant du temps, apportera de nombreuses
améliorations à votre système FreeBSD.
A la différence du noyau GENERIC
,
qui doit supporter une large gamme de matériels, un noyau sur
mesure ne contient que le support pour votre
configuration matérielle. Cela a de nombreux avantages,
comme:
Un temps de démarrage plus court. Comme le noyau ne recherchera que le matériel présent sur votre système, le temps nécessaire au démarrage de votre système peut diminuer de façon importante.
Une utilisation plus faible de la mémoire. Un noyau sur
mesure utilise souvent moins de mémoire que le noyau
GENERIC
, ce qui est important car le noyau
doit toujours résider en mémoire. Pour cette
raison, un noyau sur mesure est tout particulièrement utile
sur un système dont les ressources mémoire sont
limitées.
Le support de matériels supplémentaires. Un noyau
sur mesure vous permet d'intégrer le support pour des
périphériques, qui ne sont
pas présents dans le noyau
GENERIC
comme les cartes son.
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
/usr/src/sys
, qui est également
accessible via le lien symbolique /sys
.
Il comporte un certain nombre de sous-répertoires correspondants
à différentes parties du noyau, mais les plus
importantes, en ce qui nous concerne, sont
arch/conf
, où vous
éditerez votre fichier configuration personnalisé, et
compile
, qui est l'espace de travail où
votre noyau sera compilé. arch
représente une des architectures suivante: i386
, soit
alpha
, amd64
,
ia64
, powerpc
,
sparc64
, ou encore pc98
(une branche alternative de développement de l'architecture PC,
populaire au Japon). Tout ce qui se trouve dans un répertoire
particulier à une architecture est propre uniquement
à cette architecture; le reste du code est un code indépendant du type de machine et commun à
toutes les plates-formes sur lesquelles FreeBSD pourrait être
potentiellement porté. Remarquez l'organisation logique de
l'arborescence des répertoires, où chaque
périphérique, système de fichiers,
et option supportés a son propre
sous-répertoire.
Les exemples de ce chapitre supposent que vous utilisez l'architecture i386. Si ce n'est pas votre cas, effectuez les ajustements appropriés au niveau des chemins d'accès pour votre architecture.
S'il n'y a pas de répertoire
/usr/src/sys
sur votre système,
alors c'est que les sources du noyau n'ont pas été
installées. La manière la plus facile de les installer
est d'exécuter sysinstall
en tant
que root
, et sélectionner
, puis
,
, puis
et .
Si vous avez une aversion envers sysinstall
et que vous disposez d'un CDROM “officiel” de
FreeBSD, alors vous pouvez installer les sources depuis la
ligne de commande:
#
mount /cdrom
#
mkdir -p /usr/src/sys
#
ln -s /usr/src/sys /sys
#
cat /cdrom/src/ssys.[a-d]* | tar -xzvf -
#
cat /cdrom/src/sbase.[a-d]* | tar -xzvf -
Ensuite allez dans le répertoire
arch/conf
et copiez
le fichier de configuration GENERIC
dans un
fichier qui portera le nom que vous voulez donner à votre
noyau. Par exemple:
#
cd /usr/src/sys/i386/conf
#
cp GENERIC MONNOYAU
Par tradition, c'est un nom en majuscules, et si vous maintenez
plusieurs machines FreeBSD avec des configurations matérielles
différentes, c'est une bonne idée de lui donner le
même nom que la machine. Nous l'appellerons
MONNOYAU
pour les besoins de cet
exemple.
Conserver votre fichier de configuration du noyau
directement sous /usr/src
peut être une
mauvaise idée. Si vous avez des problèmes
il peut être tentant de juste effacer
/usr/src
et recommencer à nouveau.
Après avoir fait cela ne prends que quelques secondes
pour vous rendre compte que vous venez
d'effacer votre fichier de configuration du noyau
personnalisé. N'éditez pas, non plus, directement le fichier
GENERIC
, il peut être
écrasé à la prochaine mise à jour de l'arborescence
des sources, et vos modifications seraient
perdues.
Vous voudrez peut être conserver votre fichier de
configuration du noyau ailleurs et alors créer un lien
symbolique vers le fichier dans le répertoire
i386
.
Par exemple:
#
cd /usr/src/sys/i386/conf
#
mkdir /root/noyaux
#
cp GENERIC /root/noyaux/MONNOYAU
#
ln -s /root/noyaux/MONNOYAU
Editez maintenant MONNOYAU
avec votre
éditeur de texte préféré.
Si vous venez tout juste de finir l'installation, le seul
éditeur disponible sera probablement
vi, qui est trop complexe pour être
décrit ici, mais est bien expliqué dans de nombreux
ouvrages de la bibliographie.
Cependant, FreeBSD offre un éditeur plus simple appelé
ee qui, si vous êtes débutant,
sera votre éditeur de choix. N'hésitez pas à
modifier les commentaires d'entête pour y décrire
votre configuration ou les modifications que vous avez apportés
par rapport au noyau GENERIC
.
Si vous avez déjà compilé un noyau sur SunOS™
ou tout autre système d'exploitation BSD, l'essentiel de fichier
vous sera familier. Si vous venez d'un système d'exploitation
comme DOS, à l'inverse, le fichier de configuration
GENERIC
vous paraîtra inintelligible, lisez
alors lentement et attentivement la section sur le fichier de
configuration.
Si vous synchronisez
votre arborescence des sources avec les toutes
dernières sources du projet FreeBSD, assurez-vous de
toujours lire le fichier /usr/src/UPDATING
avant d'effectuer une quelconque opération de mise
à jour. Ce fichier décrit les problèmes
importants ou les domaines demandant une attention
particulière dans le code mis à jour.
/usr/src/UPDATING
correspond toujours
à votre version des sources de FreeBSD, et est donc plus
à jour que ce Manuel.
Vous devez maintenant compiler le code source du noyau.
Passez dans le répertoire
/usr/src
.
#
cd /usr/src
Compilez le noyau:
#
make buildkernel KERNCONF=MONNOYAU
Installez le nouveau noyau:
#
make installkernel KERNCONF=MONNOYAU
Il est indispensable d'avoir l'intégralité des sources du système FreeBSD pour compiler le noyau.
Par défaut, quand vous compilez un noyau
personnalisé, tous les modules
seront également recompilés. Si vous
désirez mettre à jour un noyau plus rapidement
ou compiler que certains modules, vous devez éditer le
fichier /etc/make.conf
avant de compiler
le noyau:
MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs
Cette variable définit une liste de modules à compiler à la place de l'intégralité des modules.
WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs
Cette variable définit une liste de modules à exclure du processus de compilation. Pour d'autres variables qui peuvent être intéressantes pour le processus de compilation du noyau, consultez la page de manuel make.conf(5).
Le nouveau noyau sera copié dans le répertoire
/boot/kernel
avec le nom
/boot/kernel/kernel
et l'ancien noyau sera renommé en
/boot/kernel.old/kernel
. Maintenant, arrêtez
le système et redémarrez pour utiliser votre
nouveau noyau.
Si quelque chose se passe mal, il y a quelques instructions
de dépannage à
la fin de ce chapitre que vous pourrez trouver utiles. Assurez-vous de lire la section qui
explique comment revenir en arrière dans le cas où
votre nouveau noyau ne
démarre pas.
Les autres fichiers
concernant le processus de démarrage, comme le chargeur
(loader(8)) et la configuration du démarrage
sont conservés dans le
répertoire /boot
.
Les modules tiers et personnalisés peuvent être
placés dans /boot/kernel
,
bien que les utilisateurs doivent être conscients
que garder ses modules synchronisés avec le noyau
compilé est très important.
Les modules qui ne sont pas destinés à fonctionner
avec le noyau compilé peuvent être instables et
ne pas donner les résultats escomptés.
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 contiennent qu'un seul argument.
Tout ce qui suit le caractère #
est
considéré comme un commentaire et ignoré.
Les sections suivantes décrivent chaque mot-clé,
dans l'ordre où ils apparaissent dans le fichier
GENERIC
.
Pour une liste exhaustive des
options et périphériques dépendants de
l'architecture utilisée, consultez le fichier
NOTES
présent
dans le même répertoire que le fichier GENERIC
.
Pour les options ne dépendant pas de l'architecture,
consultez le fichier
/usr/src/sys/conf/NOTES
.
Pour compiler un fichier contenant toutes les options
possibles, en général pour effectuer des tests,
exécutez la commande suivante en tant que
root
:
#
cd /usr/src/sys/i386/conf && make LINT
Ce qui suit est un exemple de fichier de configuration du
noyau GENERIC
avec divers commentaires aux
endroits nécessaires pour un peu plus de clarté.
Cet exemple devrait correspondre de façon très proche
à votre copie du fichier
/usr/src/sys/i386/conf/GENERIC
.
machine i386
C'est l'architecture de la machine. Elle doit être
alpha
, amd64
,
i386
, ia64
,
pc98
, powerpc
, ou encore
sparc64
.
cpu I486_CPU cpu I586_CPU cpu I686_CPU
Ce qui précède définit le type de CPU
présent dans votre système. Il peut y avoir plusieurs
occurrences de la ligne CPU (si, par exemple, vous n'êtes pas sûr
de devoir utiliser I586_CPU
ou I686_CPU
), cependant, pour un noyau
personnalisé, il est mieux de spécifier uniquement
le CPU que vous avez.
Si vous n'êtes pas sûr du type, vous pouvez lister
le fichier /var/run/dmesg.boot
pour visualiser les
messages de démarrage.
ident GENERIC
C'est l'identification du noyau. Vous devriez changer cela
pour le nom, quel qu'il soit, que vous donnez à votre noyau,
par exemple MONNOYAU
si vous avez suivi les
instructions des exemples précédents.
La valeur que vous donnez à la chaîne ident
s'affichera au démarrage du noyau, il est donc utile de donner
au nouveau noyau un nom différent si vous voulez le
différencier de votre noyau habituel (e.g., vous voulez compiler
un noyau expérimental).
#To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" #Default places to look for devices.
Le fichier
device.hints(5) est utilisé pour configurer les
paramètres des pilotes de périphériques.
Le loader(8) recherchera le fichier
/boot/device.hints
au démarrage.
En utilisant l'option hints
vous pouvez
compiler ces valeurs en statique dans votre noyau. Il
n'est alors pas utile de créer de fichier
device.hints
dans
/boot
.
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
Le processus normal de compilation de FreeBSD inclut
les informations de débogage lors de la compilation
du noyau avec l'option
-g
, qui autorisera les informations de
débogage quand le noyau sera passé à
gcc(1).
options SCHED_4BSD # 4BSD scheduler
L'ordonnanceur (« scheduler ») traditionnel et par défaut de FreeBSD. Conservez cette ligne.
options PREEMPTION # Enable kernel thread preemption
Permet aux processus légers présents dans le noyau d'être devancés par des processus de priorité plus élevée. Cela améliore l'interactivité et permet aux processus d'interruption d'être exécutés le plus tôt possible au lieu d'attendre leur tour.
options INET #InterNETworking
Support réseau. Conservez-le, même si vous n'envisagez pas de vous connecter à un réseau. La plupart des programmes utilisent le réseau “en boucle” (i.e., établissent des connexions réseau avec le PC lui-même), cette option est donc quasiment obligatoire.
options INET6 #IPv6 communications protocols
Ceci active les protocoles de communication IPv6.
options FFS #Berkeley Fast Filesystem
C'est le système de fichiers de base sur disque dur. Gardez ces options si vous démarrez depuis le disque dur.
options SOFTUPDATES #Enable FFS Soft Updates support
Cette option rajoutera le support des « Soft
Updates » dans le noyau, ce qui aidera
l'accélération des accès en écriture
sur les disques. Même quand cette fonction est fournit
par le noyau, elle doit être activée sur chaque
disque. Regardez le résultat de la commande
mount(8) pour voir si les « Soft Updates » sont
activées sur les disques de votre système. Si
vous ne voyez pas apparaître l'option
soft-updates
alors vous devrez l'activer en
utilisant les commandes tunefs(8) (pour les systèmes
de fichiers existant) ou newfs(8) (pour les nouveaux
systèmes de fichiers).
options UFS_ACL #Support for access control lists
Cette option active le support des listes de contrôle d'accès au système de fichiers (ACL). Elles reposent sur l'utilisation d'attributs étendus et d'UFS2, cette fonctionnalité est décrite dans la Section 14.12, « Listes de contrôle d'accès au système de fichiers ». Les ACLs sont activées par défaut, et leur support ne devraient pas être retiré du noyau si elles ont été précédemment utilisées sur un système de fichiers, étant donné que cela supprimera les listes de contrôle d'accès changeant alors la façon dont sont protégés les fichiers d'une manière imprévisible.
options UFS_DIRHASH #Improve performance on big directories
Cette option inclut certaines fonctions pour accélérer les opérations disque sur de gros répertoires, aux dépens d'employer de la mémoire supplémentaire. Vous conserverez normalement cela pour un gros serveur, ou une station de travail très active, et vous l'enlèverez si vous utilisez FreeBSD sur un petit système où la mémoire prime et la vitesse d'accès disque est moins importante, comme pour un coupe-feu.
options MD_ROOT #MD is a potential root device
Cette option active le support pour des disques virtuels en mémoire utilisés comme périphérique racine.
options NFSCLIENT # Network Filesystem Client options NFSSERVER # Network Filesystem Server options NFS_ROOT # NFS usable as /, requires NFSCLIENT
Le système de fichiers réseau. A moins que vous n'envisagiez de monter des partitions d'un serveur de fichiers UNIX® par l'intermédiaire d'un réseau TCP/IP, vous pouvez mettre en commentaire ces options.
options MSDOSFS #MSDOS Filesystem
Le système de fichiers MS-DOS®. A moins que vous
n'envisagiez de monter une partition DOS d'un disque dur au
démarrage, vous pouvez sans risque commenter 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
emulators/mtools
vous permet d'accéder à des disquettes DOS sans avoir
besoin de les monter (et ne requiert pas non plus
MSDOSFS
).
options CD9660 #ISO 9660 Filesystem
Le système de fichiers ISO 9660 pour les CDROMs. Commentez ces options si vous n'avez pas de lecteur de CDROM ou que vous ne montez qu'occasionnellement des CDROMs (il sera chargé dynamiquement dès que vous monterez un CDROM). Les CDROMs audios n'ont pas besoin de ce système de fichiers.
options PROCFS # Process filesystem (requires PSEUDOFS)
Le système de fichiers pour les processus. C'est un
“pseudo-système” de fichiers monté sur
/proc
qui permet à des programmes comme
ps(1) de vous fournir plus d'informations sur les processus
qui tournent sur le système.
L'utilisation de PROCFS
n'est pas
nécessaire la plupart du temps, comme la majeur partie
des outils de débogage et de monitoring ont
été adaptés pour s'exécuter sans
PROCFS
: les
nouvelles installations ne monteront pas par
défaut ce système de fichiers.
options PSEUDOFS #Pseudo-filesystem framework
Les noyaux 6.X faisant usage du système
PROCFS
doivent également inclure le
support pour PSEUDOFS
.
options GEOM_GPT # GUID Partition Tables.
Cette option apporte la possibilité d'avoir un grand nombre de partitions sur un seul disque.
options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
Compatibilité avec 4.3BSD. Conservez cette option; certains programmes auront un comportement bizarre si vous la commentez.
options COMPAT_FREEBSD4 #Compatible with FreeBSD4
Cette option est nécessaires aux systèmes i386™ et Alpha fonctionnant sous FreeBSD 5.X pour supporter les applications compilées sur d'anciennes version de FreeBSD qui utilisent d'anciennes interfaces d'appel système. Il est recommandé d'utiliser cette option sur tous les systèmes i386™ et Alpha susceptibles d'exécuter d'anciennes applications; les plateformes apparues sous FreeBSD 5.0, comme l'ia64 et SPARC64®, n'ont pas besoin de cette option.
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
Cette option est nécessaire sous FreeBSD 6.X et versions supérieures pour supporter les applications compilées sous FreeBSD 5.X et qui utilisent les interfaces d'appel système FreeBSD 5.X.
options SCSI_DELAY=5000 #Delay (in ms) before probing SCSI
Cette option oblige le noyau à attendre 5 secondes avant 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 essayer de diminuer cette valeur, pour accélérer le démarrage du système. Bien sûr, si vous le faites, et que FreeBSD a du mal à reconnaître vos périphériques SCSI, vous devrez l'augmenter à nouveau.
options KTRACE #ktrace(1) support
Ceci permet de tracer le processus du noyau, ce qui est utile pour le débogage.
options SYSVSHM #SYSV-style shared memory
Cette option implémente la mémoire partagée System V. L'usage le plus courant qui en est fait est l'extension XSHM d'X, dont de nombreux logiciels gourmants en graphique tireront automatiquement parti pour fonctionner plus vite. Si vous utilisez X, vous utiliserez absolument cette option.
options SYSVMSG #SYSV-style message queues
Support des messages System V. Cette option n'augmente que de quelques centaines d'octets la taille du noyau.
options SYSVSEM #SYSV-style semaphores
Support des sémaphores System V. D'un usage moins courant, mais n'augmente la taille du noyau que de quelques centaines d'octets.
L'option -p
de la commande ipcs(1) donnera la liste des processus
utilisant chacun de ces mécanismes System V.
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
Extensions temps-réel ajoutées dans la norme POSIX® 1993. Certaines applications du catalogue des logiciels portés les utilisent (comme StarOffice™).
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
Cette option concerne le clavier. Elle installe une
entrée CDEV dans le répertoire
/dev
.
options ADAPTIVE_GIANT # Giant mutex is adaptive.
« Giant » est le nom d'un mécanisme
d'exclusion mutuelle (un « mutex » dormant) qui
protège l'accès à un ensemble important de
ressources du noyau. Aujourd'hui c'est un goulot
d'étranglement des performances inacceptable que l'on est
en train de remplacer activement par des verrous qui
protègent les ressources individuelles. L'option
ADAPTIVE_GIANT
permet à Giant
d'être inclus dans l'ensemble des mutex lancés de
manière adaptative. C'est à dire, quand un thread
désire verrouiller le mutex Giant, mais que ce dernier
est déjà verrouillé par un thread sur un
autre CPU, le premier thread continuera à fonctionner et
attendra la libération du verrou. Normalement, le thread
retournera à l'état dormant et attendra une
nouvelle chance de pouvoir s'exécuter. Si vous
n'êtes pas sûr, laissez la configuration en
l'état.
device apic # I/O APIC
Le périphérique apic active l'utilisation de
l'E/S APIC pour l'acheminement des interruptions. Le
périphérique apic peut être utilisé
dans les noyaux UP (monoprocesseur) et SMP, mais est requis pour
les noyaux SMP. Ajoutez options SMP
pour
inclure le support pour plusieurs processeurs.
Le périphérique apic n'existe que sur l'architecture i386, cette ligne de configuration ne doit pas être utilisée sur d'autres architectures.
device eisa
Rajoutez cela si vous avez une carte mère EISA. Cela permet l'auto-détection et la configuration de tous les périphériques présents sur le bus EISA.
device pci
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.
# Floppy drives device fdc
C'est le contrôleur de lecteur de disquettes.
# ATA and ATAPI devices device ata
Ce pilote supporte tous les périphériques
ATA et ATAPI. Vous n'avez besoin que d'une seule ligne
device ata
pour que le noyau détecte tous les
périphériques PCI ATA/ATAPI sur les machines
modernes.
device atadisk # ATA disk drives
Ceci est requis avec device ata
pour les
disques ATA.
device ataraid # ATA RAID drives
Ceci est nécessaire avec device
ata
pour les disques RAID ATA.
device atapicd # ATAPI CDROM drives
Ceci est nécessaire avec device ata
pour le support des lecteurs de CDROM ATAPI.
device atapifd # ATAPI floppy drives
Ceci est nécessaire avec device ata
pour le support des lecteurs de disquettes ATAPI.
device atapist # ATAPI tape drives
Ceci est nécessaire avec device ata
pour le support des lecteurs de bande ATAPI.
options ATA_STATIC_ID #Static device numbering
Cela rend la numérotation des périphériques statique, sans cela l'allocation des numéros de périphériques sera dynamique.
# SCSI Controllers device ahb # EISA AHA1742 family device ahc # AHA2940 and onboard AIC7xxx devices options AHC_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~128k to driver. device ahd # AHA39320/29320 and onboard AIC79xx devices options AHD_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~215k to driver. device amd # AMD 53C974 (Teckram DC-390(T)) device isp # Qlogic family #device ispfw # Firmware for QLogic HBAs- normally a module device mpt # LSI-Logic MPT-Fusion #device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (newer chipsets + those of `ncr') device trm # Tekram DC395U/UW/F DC315U adapters device adv # Advansys SCSI adapters device adw # Advansys wide SCSI adapters device aha # Adaptec 154x SCSI adapters device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60. device bt # Buslogic/Mylex MultiMaster SCSI adapters device ncv # NCR 53C500 device nsp # Workbit Ninja SCSI-3 device stg # TMC 18C30/18C50
Contrôleurs SCSI. Mettez en commentaires ceux que vous
n'avez pas sur votre système. Si vous n'avez qu'un
système IDE, vous pouvez supprimer toutes ces lignes. Les
lignes *_REG_PRETTY_PRINT
sont des options de
débogage pour leur pilote respectif.
# SCSI peripherals device scbus # SCSI bus (required for SCSI) device ch # SCSI media changers device da # Direct Access (disks) device sa # Sequential Access (tape etc) device cd # CD device pass # Passthrough device (direct SCSI access) device ses # SCSI Environmental Services (and SAF-TE)
Périphériques SCSI. A nouveau, mettez en commentaires tous ceux que vous n'avez pas, ou si vous n'avez que du matériel IDE, vous pouvez tous les supprimer.
Le pilote USB umass(4) et quelques autres pilotes utilisent le sous-système SCSI même si ce ne sont pas de véritables périphériques SCSI. Par conséquent assurez-vous de ne pas retirer le support SCSI si un tel pilote fait partie de la configuration du noyau.
# RAID controllers interfaced to the SCSI subsystem device amr # AMI MegaRAID device arcmsr # Areca SATA II RAID device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - See NOTES for options device hptmv # Highpoint RocketRAID 182x device rr232x # Highpoint RocketRAID 232x device iir # Intel Integrated RAID device ips # IBM (Adaptec) ServeRAID device mly # Mylex AcceleRAID/eXtremeRAID device twa # 3ware 9000 series PATA/SATA RAID # RAID controllers device aac # Adaptec FSA RAID device aacp # SCSI passthrough for aac (requires CAM) device ida # Compaq Smart RAID device mfi # LSI MegaRAID SAS device mlx # Mylex DAC960 family device pst # Promise Supertrak SX6000 device twe # 3ware ATA RAID
Contrôleurs RAID supportés. Si vous n'avez aucun de ces derniers dans votre système, vous pouvez les mettre en commentaires ou les supprimer.
# atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller
Le contrôleur du clavier (atkbdc
) permet
de gérer les E/S du clavier AT et des
périphériques de pointage PS/2. Ce contrôleur
est nécessaire au pilote de périphérique
du clavier (atkbd
) et celui des
périphériques de pointage PS/2
(psm
).
device atkbd # AT keyboard
Le pilote de périphérique atkbd
,
associé au contrôleur atkbdc
, fournit
un accès au clavier AT 84 touches ou au clavier AT étendu qui
est connecté au contrôleur de clavier de la machine.
device psm # PS/2 mouse
Utilisez ce périphérique si votre souris se branche sur le port PS/2.
device kbdmux # keyboard multiplexer
Support de base pour le multiplexage de claviers. Si vous n'avez pas l'intention d'utiliser sur le système plus d'un clavier, vous pouvez supprimer cette ligne sans risque.
device vga # VGA video card driver
Pilote de la carte graphique.
device splash # Splash screen and screen saver support
Ecran/bannière de démarrage. Les économiseurs d'écran ont également besoin de ce pseudo-périphérique.
# syscons is the default console driver, resembling an SCO console device sc
sc
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 termcap
,
cela n'a guère d'importance que vous choisissiez ce pilote
ou vt
, le pilote compatible
VT220
. Quand vous ouvrez une session,
positionnez votre variable d'environnement TERM
à
scoansi
si vous avez des problèmes pour
utiliser des programmes en mode plein-écran avec cette
console.
# Enable this for the pcvt (VT220 compatible) console driver #device vt #options XSERVER # support for X server on a vt console #options FAT_CURSOR # start with block cursor
C'est le pilote de console compatible VT220, et,
rétrospectivement, compatible VT100/102. Il fonctionne
bien sur certains ordinateurs portables qui sont matériellement
incompatibles avec le pilote sc
. Comme
précédemment, positionnez la variable d'environnement
TERM
lorsque que vous ouvrez une session,
mais cette fois-ci à vt100
ou
vt220
. Ce pilote peut aussi s'avérer
utile quand vous vous connectez à un grand nombre de
machines différentes par le réseau sur lesquelles
les entrées pour le périphérique
sc
ne sont souvent pas définies dans
leurs fichiers termcap
ou
terminfo
— alors que le terminal
vt100
devrait être disponible sur
pratiquement toutes les plates-formes.
device agp
Ajoutez cette option si vous avez une carte AGP dans votre système. Cela activera le support AGP, et l'AGP GART pour les cartes qui ont cette fonction.
# Power management support (see NOTES for more options) device apm
“Advanced Power Management support” - gestion
avancée de l'énergie. Utile pour les ordinateurs
portables, ceci est cependant désactivé par
défaut dans le noyau GENERIC
sous
FreeBSD 5.X et versions suivantes
# Add suspend/resume support for the i8254. device pmtimer
Pilote du périphérique de gestion du temps pour les événements de la gestion de l'énergie, comme l'APM ou l'ACPI.
# PCCARD (PCMCIA) support # PCMCIA and cardbus bridge support device cbb # cardbus (yenta) bridge device pccard # PC Card (16-bit) bus device cardbus # CardBus (32-bit) bus
Support PCMCIA. Vous en avez besoin si vous utilisez un ordinateur portable.
# Serial (COM) ports device sio # 8250, 16[45]50 based serial ports
Cela représente les ports séries, appelés
ports COM
dans le monde MS-DOS®/Windows®.
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,
consultez la page de manuel de sio(4) pour plus
d'informations sur les bonnes valeurs à ajouter à votre
fichier /boot/device.hints
.
Certaines cartes vidéo (notamment celle à base de
circuits S3) utilisent des adresses d'E/S sous la forme
0x*2e8
, et comme de nombreuses cartes
séries bon marché de décodent pas
complètement l'espace d'adresse d'E/S 16 bits, il y a
aura des conflits avec ces cartes, rendant le port
COM4
pratiquement inutilisable.
Chaque port série doit avoir une IRQ unique (à
moins que vous n'utilisiez une carte multi-ports qui autorise
le partage d'interruption), donc les IRQs par défaut pour
les ports COM3
et COM4
ne peuvent être
utilisées.
# Parallel port device ppc
C'est l'interface parallèle du bus ISA.
device ppbus # Parallel port bus (required)
Fournit le support pour le bus du port parallèle.
device lpt # Printer
Support pour les imprimantes parallèles.
Les trois lignes précédentes sont nécessaires pour permettre le support des imprimantes parallèles.
device plip # TCP/IP over parallel
C'est le pilote pour l'interface réseau sur port parallèle.
device ppi # Parallel port interface device
Port d'E/S d'usage général (“geek port”) + port d'E/S IEEE1284.
#device vpo # Requires scbus and da
Ceci est pour le lecteur Zip de Iomega. Les options
scbus
et da
sont
également requises. Les meilleures performances sont
obtenues avec les ports configurés dans le mode EPP 1.9.
#device puc
Décommentez ce périphérique si vous disposez d'une carte PCI série ou parallèle « idiote » qui est supportée par le pilote puc(4).
# PCI Ethernet NICs. device de # DEC/Intel DC21x4x (« Tulip ») device em # Intel PRO/1000 adapter Gigabit Ethernet Card device ixgb # Intel PRO/10GbE Ethernet Card device txp # 3Com 3cR990 (« Typhoon ») device vx # 3Com 3c590, 3c595 (« Vortex »)
Divers pilotes de cartes réseaux PCI. Mettez en commentaires ou supprimer les lignes de celles qui ne sont pas présentes sur votre système.
# PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! device miibus # MII bus support
Le support du bus MII est nécessaire pour certaines
cartes Ethernet PCI 10/100, à savoir celles qui utilisent des
interfaces compatibles MII ou implémentent une gestion de
l'interface opérant comme le bus MII. Ajouter
device miibus
à la configuration du noyau
intègre le support pour l'API miibus générique et
tous les pilotes d'interfaces PHY, incluant un pilote
générique pour les interfaces PHYs qui ne sont pas
spécifiquements gérées par un
pilote individuel.
device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet device bge # Broadcom BCM570xx Gigabit Ethernet device dc # DEC/Intel 21143 and various workalikes device fxp # Intel EtherExpress PRO/100B (82557, 82558) device lge # Level 1 LXT1001 gigabit ethernet device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet device nge # NatSemi DP83820 gigabit ethernet device nve # nVidia nForce MCP on-board Ethernet Networking device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc') device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (« Starfire ») device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) device stge # Sundance/Tamarack TC9021 gigabit Ethernet device ti # Alteon Networks Tigon I/II gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 « EPIC ») device vge # VIA VT612x gigabit ethernet device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (« Boomerang », « Cyclone »)
Pilotes qui utilisent le code du contrôleur du bus MII.
# ISA Ethernet NICs. pccard NICs included. device cs # Crystal Semiconductor CS89x0 NIC # 'device ed' requires 'device miibus' device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards device ex # Intel EtherExpress Pro/10 and Pro/10+ device ep # Etherlink III based cards device fe # Fujitsu MB8696x based cards device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc. device lnc # NE2100, NE32-VL Lance Ethernet cards device sn # SMC's 9000 series of Ethernet chips device xe # Xircom pccard Ethernet # ISA devices that use the old ISA shims #device le
Pilotes pour les cartes Ethernet ISA. Consultez le fichier
/usr/src/sys/i386/conf/NOTES
pour savoir
quelles cartes sont supportées et par quel pilote.
# Wireless NIC cards device wlan # 802.11 support
Support 802.11 générique. Cette ligne est nécessaire pour le réseau sans fil.
device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support
Support pour le chiffrage pour les périphériques 802.11. Ces lignes sont nécessaires si vous avez l'intention d'utiliser le chiffrage et les protocoles de sécurité 802.11i.
device an # Aironet 4500/4800 802.11 wireless NICs. device ath # Atheros pci/cardbus NIC's device ath_hal # Atheros HAL (Hardware Access Layer) device ath_rate_sample # SampleRate tx rate control for ath device awi # BayStack 660 and others device ral # Ralink Technology RT2500 wireless NICs. device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. #device wl # Older non 802.11 Wavelan wireless NIC.
Support pour diverses cartes réseau sans fil.
# Pseudo devices device loop # Network loopback
C'est l'interface générique en boucle de
TCP/IP. Si vous employez telnet ou FTP sur
localhost
(aussi connu en tant qu'adresse
127.0.0.1
) la réponse vous
parviendra via ce pseudo-périphérique. Ceci est
obligatoire.
device random # Entropy device
Générateur de nombres aléatoire sécurisé pour les applications de chiffrement.
device ether # Ethernet support
ether
ne sert que si vous avez une carte
Ethernet. Cela intègre le code générique
pour le protocole Ethernet.
device sl # Kernel SLIP
sl
est le support pour le protocole SLIP.
Il a été presque entièrement supplanté
par le protocole PPP, plus facile à mettre en oeuvre, mieux
adapté aux connexions par modem, et aussi plus
puissant.
device ppp # Kernel PPP
C'est le support intégré au noyau du protocole PPP
pour les connexions par modem. Il y a aussi une version de PPP
sous forme de programme utilisateur qui utilise
tun
et offre plus de souplesse et de
possibilités comme la connexion à la
demande.
device tun # Packet tunnel.
Ceci est utilisé par le programme PPP en mode utilisateur. Voyez la section PPP de ce manuel pour plus d'informations.
device pty # Pseudo-ttys (telnet etc)
C'est un “pseudo-terminal” ou un port simulant
une session. Il est utilisé par les sessions
telnet
et rlogin
entrantes, par xterm, et d'autres
applications comme Emacs.
device md # Memory « disks »
Pseudo-périphérique de disque mémoire.
device gif # IPv6 and IPv4 tunneling
Ceci implémente l'encapsulation du protocole IPv6 par
dessus l'IPv4, l'IPv4 par dessus l'IPv6, l'encapsulation IPv4
par dessus l'IPv4, et IPv6 par dessus IPv6. Le
périphérique gif
« s'auto-duplique », et créera les fichiers
spéciaux de périphérique en fonction des
besoins.
device faith # IPv6-to-IPv4 relaying (translation)
Ce pseudo-périphérique capture les paquets qui lui sont envoyés et les détourne vers le “daemon” de translation IPv4/IPv6.
# The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! # Note that 'bpf' is required for DHCP. device bpf # Berkeley packet filter
C'est le filtre de paquets de Berkeley. Ce pseudo-périphérique permet de placer les interfaces en mode “promiscuous” (indiscret), pour capturer chaque paquet sur réseau de diffusion (e.g., un réseau Ethernet). Ces paquets peuvent être enregistrés sur le disque et/ou examinés avec le programme tcpdump(1).
Le périphérique bpf(4) est également utilisé par dhclient(8) pour obtenir une adresse IP du routeur par défaut (passerelle) et ainsi de suite. Si vous utilisez DHCP, conservez cette ligne non commentée.
# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices
device ugen # Generic
device uhid # « Human Interface Devices »
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
device ural # Ralink Technology RT2500USB wireless NICs
device urio # Diamond Rio 500 MP3 player
device uscanner # Scanners
# USB Ethernet, requires mii
device aue # ADMtek USB Ethernet
device axe # ASIX Electronics USB Ethernet
device cdce # Generic USB over Ethernet
device cue # CATC USB Ethernet
device kue # Kawasaki LSI USB Ethernet
device rue # RealTek RTL8150 USB Ethernet
Support pour divers périphériques USB.
# FireWire support device firewire # FireWire bus code device sbp # SCSI over FireWire (Requires scbus and da) device fwe # Ethernet over FireWire (non-standard!)
Support pour divers périphériques Firewire.
Pour plus d'informations et pour avoir la liste de
périphériques supplémentaires supportés par
FreeBSD, voyez le fichier
/usr/src/sys/i386/conf/NOTES
.
Les machines à configuration mémoire importante ont besoin de pouvoir accéder à plus d'espace mémoire utilisateur et noyau que la limite des 4 gigaoctets de l'espace d'adresse noyau+utilisateur (“Kernel Virtual Address”—KVA). En raison de cette limite, Intel a ajouté le support d'adresses physiques sur 36 bits pour l'espace d'adresses dans les familles de microprocesseurs Pentium® Pro et suivantes.
L'extension de l'adressage physique—,“Physical
Address Extension” (PAE) est une
caractéristique des microprocesseurs Intel® Pentium®
Pro et suivants autorisant les configurations mémoires
jusqu'à 64 gigaoctets. FreeBSD fournit un support pour
cette caratéristique via l'option de configuration du
noyau PAE
, disponible sous toutes les versions
actuelles de FreeBSD.
En raison des limitations de l'architecture
mémoire Intel®, aucune distinction n'est faite entre
la mémoire au-dessus et en-dessous de 4 gigaoctets. La
mémoire allouée au-dessus de 4 gigaoctets est
simplement ajoutée à l'ensemble de la
mémoire disponible.
Pour activer le support PAE dans le noyau, ajoutez simplement la ligne suivante dans votre fichier de configuration du noyau:
options PAE
Le support PAE sous FreeBSD est uniquement disponible pour les processeurs IA-32 d'Intel®. Il doit être noté que le support PAE sous FreeBSD n'a pas été énormément testé, et devrait être considéré comme bêta comparé aux autres fonctionnalités stables de FreeBSD.
Le support PAE sous FreeBSD a quelques limitations:
Un processus est incapable d'accéder à plus de 4 gigaoctets d'espace mémoire.
Les modules KLD ne peuvent être chargés dans un noyau avec PAE activé, en raison des différences entre la structure d'un module et du noyau.
Les pilotes de périphériques qui
n'utilisent pas l'interface bus_dma(9)
seront à l'origine de corruption de données
avec un noyau PAE et ne sont pas
recommandés. Pour cette raison, le fichier de
configuration du noyau avec support
PAE
qui est fourni avec
FreeBSD exclut tous les pilotes connus
pour ne pas fonctionner avec un noyau avec support
PAE.
Certains paramètres modifiables du
système déterminent l'utilisation des
ressources mémoire par la quantité de la
mémoire physique disponible. De tels
paramètres peuvent être inutilement
sur-alloués en raison de la grande quantité de
mémoire d'un système PAE.
Un bon exemple est le “sysctl”
kern.maxvnodes
, qui contrôle le
nombre maximal de “vnodes” alloués par le
noyau. Il est recommandé d'ajuster ce dernier et les
autres paramètres du même genre à des
valeurs raisonnables.
Il pourra être nécessaire d'augmenter l'espace
d'adressage virtuel du noyau (“kernel virtual
address”—KVA) ou de
réduire le montant de la ressource spécifique
du noyau qui est fortement utilisée (voir plus haut)
afin d'éviter l'épuisement de l'espace
KVA. L'option du noyau
KVA_PAGES
peut être employée
pour augmenter l'espace KVA.
Pour des considérations de performance et de stabilité, il est recommandé de consulter la page de manuel tuning(7). La page de manuel pae(4) contient des informations à jour sur le support PAE sous FreeBSD.
Il y a cinq types de problèmes qui peuvent survenir lors de la compilation d'un noyau sur mesure. Ce sont:
config
échoue:Si la commande config(8) échoue quand vous lui passez en paramètre la description de votre noyau, vous avez probablement fait une simple erreur quelque part. Heureusement config(8) affichera le numéro de la ligne qui lui a posé problème, vous pouvez donc localiser rapidement la ligne contenant l'erreur. Par exemple, si vous avez:
config: line 17: syntax error
Vérifiez que la ligne est
correctement écrite, en le comparant avec le noyau
GENERIC
ou une autre
référence.
make
échoue:Si la commande make
échoue,
cela signale habituellement une erreur dans la description
de votre noyau, mais qui n'est pas suffisamment sérieuse pour que
la commande config(8) la détecte.
A nouveau, vérifiez votre fichier de configuration, et si
vous n'arrivez toujours pas à résoudre le
problème, envoyez un courrier électronique à la
liste de diffusion pour les questions d'ordre général à propos de FreeBSD en joignant votre fichier de configuration
du noyau, le diagnostic devrait être rapide.
Si votre nouveau noyau ne démarre pas, ou ne
reconnaît pas vos périphériques,
ne paniquez pas! Heureusement, FreeBSD dispose d'un
excellent mécanisme pour récupérer si le
noyau ne fonctionne pas. Sélectionnez simplement le noyau,
à partir duquel vous désirez démarrer,
à l'invite du chargeur de FreeBSD. Vous pouvez y
accéder quand le menu de démarrage
apparaît. Sélectionner l'option 6,
« Escape to a loader prompt ». A l'invite,
tapez unload kernel
et ensuite
boot /boot/kernel.old/kernel
,
ou le nom de fichier d'un autre noyau qui pourra démarrer
proprement. Quand on reconfigure un noyau, il est
toujours bon de conserver à portée de la main un
noyau dont on sait qu'il fonctionne.
Après avoir démarré avec un
noyau en état de marche, vous pouvez revérifier votre
fichier de configuration et essayer de recompiler à
nouveau votre noyau. Une ressource utile est le fichier
/var/log/messages
qui enregistre,
entre autres, tous les messages du noyau à chaque
démarrage réussi. En outre, la commande
dmesg(8) affichera les messages du noyau pour le
dernier démarrage.
Si vous avez des difficultés à compiler
un noyau, veillez à conserver un noyau
GENERIC
, ou un autre noyau dont
vous savez qu'il fonctionne, sous la main, avec un nom
différent de sorte qu'il ne soit pas
écrasé à la prochaine compilation.
Vous ne pouvez pas faire confiance au noyau
kernel.old
parce qu'en installant
un nouveau noyau, kernel.old
est
remplacé par le dernier noyau installé dont
il n'est pas certain qu'il soit opérationnel. Aussi,
dès que possible, déplacez le noyau
opérationnel vers le
bon emplacement /boot/kernel
où des commandes
comme ps(1) pourront ne pas fonctionner correctement.
Pour cela, renommez le répertoire contenant le bon
noyau:
#
mv /boot/kernel /boot/kernel.bad
#
mv /boot/kernel.good /boot/kernel
ps
ne fonctionne plus du tout: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 -CURRENT sur un système -RELEASE, de nombreuses commandes d'affichage de l'état du système comme ps(1) and vmstat(8) ne fonctionneront plus. Vous devrez recompiler et installer un système avec la même version de l'arborescence des sources de celle utilisée pour votre noyau. 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.
Version française de Gregory Delfly
<gregoryd.freebsd@free.fr>
.
FreeBSD peut être utilisé pour imprimer sur une grande variété d'imprimantes, depuis la plus ancienne des imprimantes matricielles jusqu'aux toutes dernières imprimantes laser, en passant par tout ce qui peut exister entre les deux, et vous permet d'obtenir des impressions de haute qualité avec les programmes que vous exécutez.
Il est également possible de configurer FreeBSD pour qu'il fasse office de serveur d'impression sur un réseau; de cette manière FreeBSD peut recevoir des travaux d'impression (« jobs ») en provenance de différents ordinateurs, comprenant d'autres machines sous FreeBSD et des machines sous Windows® ou Mac OS®. FreeBSD veillera à ce qu'un seul travail d'impression ne soit imprimé à la fois, et pourra tenir des statistiques sur les utilisateurs et les machines lançant le plus d'impressions, produire des pages d'« en-têtes » pour distinguer les impressions de chacun, et plus encore.
Après la lecture de ce chapitre, vous saurez:
Comment configurer le gestionnaire d'impression de FreeBSD
Comment installer des filtres d'impression, pour gérer des travaux d'impression particuliers de manière différente, ce qui inclut la transformation de documents entrants en un format que vos imprimantes comprennent.
Comment inclure des en-têtes ou des pages bannière dans vos impressions.
Comment imprimer en utilisant des imprimantes connectées à d'autres ordinateurs.
Comment imprimer en utilisant des imprimantes connectées directement au réseau.
Comment gérer des restrictions d'impression, notamment comment limiter la taille des travaux d'impression, et empêcher certains utilisateurs d'imprimer.
Comment tenir des statistiques d'impression, et rendre compte de l'utilisation de l'imprimante.
Comment résoudre les problèmes d'impression.
Avant de lire ce chapitre, vous devriez:
Savoir comment configurer et installer un nouveau noyau (Chapitre 8, Configurer le noyau de FreeBSD).
Afin d'utiliser des imprimantes avec FreeBSD, vous avez la possibilité de les paramétrer pour qu'elles utilisent le gestionnaire d'impression de Berkeley, également connu sous le nom de gestionnaire d'impression LPD, ou tout simplement LPD. C'est le système contrôle d'imprimante par défaut de FreeBSD. Ce chapitre présente LPD et vous assistera tout au long de sa configuration.
Si vous connaissez déjà LPD ou un autre système de gestion des impressions, vous pouvez directement vous rendre à la section Paramétrage de base.
LPD contrôle tout ce qui relève des imprimantes. Il est responsable de plusieurs tâches:
Il contrôle l'accès aux imprimantes directement connectées au système ainsi qu'à celles connectées à d'autres machines via le réseau.
Il permet aux utilisateurs de soumettre des fichiers à imprimer; ces requêtes sont connues sous le nom de travaux.
Il empêche l'accès simultané de plusieurs utilisateurs à une même imprimante, en gérant une queue pour chaque imprimante.
Il peut produire des pages d'en-tête (également connues sous le nom de pages bannières ou encore cartouches) afin que les utilisateurs puissent facilement retrouver dans une pile d'impressions celles correspondant aux travaux qu'ils ont soumis.
Il s'occupe de paramétrer les communications lorsque les imprimantes sont connectées via un port série.
Il peut transmettre des travaux par réseau à un gestionnaire d'impression LPD situé sur une autre machine.
Il peut appliquer des filtres spéciaux afin d'assurer le formatage des travaux en fonction des différents langages et caractéristiques des imprimantes.
Il peut comptabiliser l'utilisation de l'imprimante.
Vous pouvez, au travers d'un fichier de configuration
(/etc/printcap
) et en fournissant les
programmes de filtres spéciaux, faire exécuter par
LPD tout ou partie des tâches
mentionnées ci-dessus sur une grande
variété de modèles d'imprimantes.
Si vous êtes l'unique utilisateur de votre système, vous vous demandez sans doute pourquoi il vous faudrait vous préoccuper du gestionnaire d'impression, alors que vous n'avez pas besoin de contrôle d'accès, de pages d'en-tête ni de statistiques relatives à l'utilisation de l'imprimante. Quand bien même il est possible de mettre en oeuvre l'accès direct à l'imprimante, vous devriez tout de même utiliser le gestionnaire d'impression, parce que:
LPD imprime les travaux en tâche de fond: vous n'êtes pas obligé d'attendre que les données soient passées à l'imprimante.
LPD peut commodément se charger d'appliquer des filtres à un travail pour adjoindre une en-tête contenant la date et l'heure, ou convertir un fichier au format particulier (comme un fichier DVI TeX) en un format que l'imprimante comprenne. Ainsi, vous n'aurez pas à vous charger de ces manipulations à la main.
Beaucoup d'applications, tant libres que commerciales, fournissant une fonctionnalité d'impression s'attendent généralement à traiter avec le gestionnaire d'impression. En le mettant en oeuvre, vous vous faciliterez le support des autres applications que vous pourriez ajouter plus tard, ou que vous avez déjà installées.
Pour utiliser des imprimantes avec le gestionnaire d'impression, il vous faudra configurer à la fois la partie matérielle (c'est à dire les imprimantes) et la partie logicielle (c'est à dire LPD). Ce document présente deux niveaux de configuration:
La section Configuration simple de l'imprimante vous apprendra à connecter une imprimante, à renseigner LPD sur la façon dont il doit communiquer avec elle, et à imprimer de simples fichiers textes.
La section Configuration avancée de l'imprimante vous apprendra à imprimer différents formats de fichiers, des pages d'en-tête, par l'intermédiaire d'un réseau, à contrôler l'accès aux imprimantes, et comptabiliser leur utilisation.
Cette section vous apprendra à configurer l'imprimante et LPD. Elle présente les bases:
La section Configuration matérielle donne des indications sur la façon de connecter l'imprimante à l'un des ports de votre ordinateur.
La section Configuration
logicielle montre comment renseigner le fichier de
configuration du gestionnaire d'impression
LPD
(/etc/printcap
).
Si vous mettez en oeuvre une imprimante réceptionnant les données à imprimer via un protocole réseau plutôt que par les interfaces locales de l'ordinateur, lisez la section Imprimantes avec des interfaces utilisant des flux réseau.
Bien que cette section soit intitulée « Configuration simple de l'imprimante », elle s'avère en réalité plutôt complexe. La partie la plus difficile consiste à faire fonctionner l'imprimante avec votre ordinateur et LPD. Les options avancées telles les pages d'en-tête ou les statistiques sont relativement faciles à mettre en oeuvre une fois que l'imprimante fonctionne.
Cette section détaille les différentes manières de connecter une imprimante à votre PC. Elle discute les types de ports et de câbles, et de la configuration noyau dont vous pourriez avoir besoin afin que FreeBSD puisse communiquer avec l'imprimante.
Si vous avez déjà connecté votre imprimante et réussi à imprimer sous un autre système d'exploitation, vous pouvez probablement passer à la section Configuration logicielle.
Les imprimantes pour PC vendues aujourd'hui sont en général pourvues d'une ou plusieurs des trois interfaces suivantes:
Les interfaces série, également connues sous les noms RS-232 ou ports COM, utilisent un port série sur votre ordinateur pour envoyer des données à l'imprimante. Les interfaces série sont courantes, dans l'industrie informatique, et les câbles sont à la fois disponibles et faciles à réaliser. Elles réclament parfois des câbles spéciaux et peuvent nécessiter le paramétrage d'options de communication assez complexes. La plupart des ports série PC ont une vitesse de transmission maximale de 115200 bps, ce qui rend l'impression de travaux comportant beaucoup de graphismes malaisée.
Les interfaces parallèles utilisent un port parallèle sur votre ordinateur pour envoyer des données à l'imprimante. Les interfaces parallèles sont courantes dans l'industrie informatique et plus rapides que les interfaces série RS-232. Les câbles sont disponibles mais sont moins faciles à fabriquer à la main. En général, il n'y a aucune option de communication à paramétrer avec ces interfaces, ce qui rend leur configuration particulièrement simple.
Les interfaces parallèles sont parfois appelées « Centronics », nom tiré du type de connecteur de l'imprimante
Les interfaces USB, tenant leur nom de « Universal Serial Bus », ou « Bus Série Universel », s'avèrent plus véloces encore que les interfaces parallèles ou série RS-232. Les câbles sont simples et peu onéreux. L'USB surpasse les interfaces série RS-232 et parallèles pour l'impression, mais son support par les systèmes UNIX® n'est pas aussi bon. Une façon d'éviter ce problème est d'acheter une imprimante qui dispose à la fois d'une interface USB et d'une interface parallèle, comme beaucoup de modèles.
En règle générale, les interfaces parallèles n'offrent qu'une communication unidirectionnelle (de l'ordinateur vers l'imprimante) alors que les interfaces série et USB permettent un échange bidirectionnel. Les imprimantes et ports parallèles plus récents (EPP et ECP) peuvent communiquer dans les deux sens sous FreeBSD lorsque l'on a recourt à un câble conforme à la norme IEEE-1284.
La communication bidirectionnelle avec l'imprimante en utilisant un port parallèle se fait en général de l'une des deux manières suivantes. La première utilise un pilote d'imprimante compilé pour FreeBSD comprenant le langage propriétaire de l'imprimante. C'est couramment le cas des imprimantes jet d'encre et cela peut être utilisé pour retourner les niveaux d'encre et autres informations d'état. La seconde méthode est employée lorsque l'imprimante supporte PostScript®.
Les travaux PostScript® sont en fait des programmes envoyés à l'imprimante. Ils ne génèrent pas nécessairement de sortie papier et peuvent retourner leurs résultats directement à l'ordinateur. PostScript® utilise aussi la communication bidirectionnelle pour avertir l'ordinateur de problèmes, comme des erreurs dans le programme PostScript® ou des bourrages papier. Vos utilisateurs apprécieraient certainement de telles informations. De surcroît, la meilleure façon de tenir des statistiques sérieusement avec une imprimante PostScript® nécessite la communication bidirectionnelle: on demande à l'imprimante quel est son compteur de pages (combien en a-t-elle imprimées depuis sa fabrication), puis on lui envoie le travail de l'utilisateur, enfin on lui redemande son compteur de pages. La différence entre les deux valeurs donne la consommation de papier que vous pouvez attribuer à cet utilisateur.
Pour raccorder une imprimante utilisant une interface parallèle, branchez le câble Centronics sur l'imprimante et sur l'ordinateur. Les instructions accompagnant l'imprimante, l'ordinateur, ou les deux, devraient parfaitement vous renseigner.
Souvenez-vous du port parallèle que vous avez
utilisé sur l'ordinateur. Pour FreeBSD, le premier se
nomme ppc0
; le deuxième,
ppc1
, et ainsi de suite. Le nom du
fichier spécial de périphérique de
l'imprimante suit les mêmes règles:
/dev/lpt0
pour celle connectée
sur le premier port parallèle, etc.
Pour raccorder une imprimante utilisant une interface série, branchez le câble série adéquat sur l'imprimante et sur l'ordinateur. Les instructions accompagnant l'imprimante, l'ordinateur, ou les deux, devraient parfaitement vous renseigner.
Si vous n'êtes pas sûr de savoir quel est le bon câble, voici ce que vous pouvez essayer:
Un câble modem relie chacune des broches du connecteur depuis l'une des extrémités du câble directement à la broche lui correspondant dans le connecteur de l'autre extrémité. Ce type de câble est également connu sous le nom de câble « DTE-to-DCE ».
Un câble null-modem relie certaines des broches directement, en intervertit d'autres (par exemple, « émission de données » et « réception de données »), et en court-circuite d'autres en interne sur chacun des sertissages des connecteurs. Ce type de câble est également connu sous le nom de câble « DTE-to-DTE ».
Un câble série pour imprimante, requis par certaines imprimantes peu conventionnelles, ressemble au câble null-modem, à ceci près qu'il envoie certains signaux à l'autre extrémité au lieu de les court-circuiter en interne.
Vous devriez également définir les
paramètres de communication pour l'imprimante,
d'ordinaire en utilisant les contrôles sur la face
avant ou les commutateurs sur l'imprimante. Choisissez la
valeur la plus élevée de
bps
(bits par seconde, encore
appelés « vitesse de transmission »)
autorisée conjointement par votre ordinateur et
votre imprimante. Choisissez 7 ou 8 bits de
données; aucun contrôle de parité ou
un bit de parité paire ou impaire; et 1 ou 2 bits
d'arrêt. Choisissez également un protocole
de contrôle de flux: soit aucun, soit XON/XOFF
(également appelé « in-band », ou
encore « contrôle logiciel »). Retenez
ces paramètres pour la configuration logicielle,
dans la section qui suit.
Cette section détaille la configuration logicielle nécessaire pour imprimer sous FreeBSD avec le gestionnaire d'impression LPD.
Voici un aperçu des étapes à suivre:
Configurez le noyau, si nécessaire, pour utiliser le port sur lequel vous raccorderez votre imprimante; la section Configurer le noyau de FreeBSD vous donnera la marche à suivre.
Paramétrez le mode de communication du port parallèle si vous utilisez une imprimante de ce type; la section Paramétrer le mode de communication du port parallèle vous donnera les détails.
Configurez LPD pour qu'il
communique avec l'imprimante en renseignant le fichier
/etc/printcap
. Vous apprendrez
comment faire un peu plus loin dans ce chapitre.
Le noyau du système d'exploitation est compilé avec le support d'un certain ensemble de périphériques. Les interfaces série ou parallèle de votre imprimante en font partie. De ce fait, vous pourriez avoir à ajouter le support d'un port série ou parallèle supplémentaire si votre noyau n'a pas déjà été configuré en ce sens.
Pour savoir si le support d'une interface série est activé dans le noyau que vous êtes en train d'utiliser, entrez:
#
grep sioN /var/run/dmesg.boot
Où N
représente le numéro du port série,
en commençant à zéro. Si vous
obtenez un affichage similaire à:
sio2 at port 0x3e8-0x3ef irq 5 on isa sio2: type 16550A
alors le port est activé dans le noyau.
Pour savoir si le noyau supporte une interface parallèle, entrez:
#
grep ppcN /var/run/dmesg.boot
Où N
représente le numéro du port
parallèle, en commençant à
zéro. Si vous obtenez un affichage similaire
à:
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/8 bytes threshold
alors le port est activé dans le noyau.
Il se pourrait que vous ayez à reconfigurer le noyau afin que le système détecte et puisse utiliser un port parallèle ou série auquel vous avez connecté votre imprimante.
Pour ajouter le support d'un port série, voyez la section sur la configuration du noyau. Pour ajouter le support du port parallèle, voyez cette même section et celle qui suit.
Lorsque vous utilisez l'interface parallèle, vous avez le choix entre deux modes de communication avec l'imprimante: par interruption, ou par polling (interrogation régulière ou scrutation). Le pilote d'imprimante générique (lpt(4)) de FreeBSD utilise le système ppbus(4), qui contrôle le chipset du port via le pilote ppc(4).
Le mode par interruption est le mode par défaut avec un noyau GENERIC. De cette manière, le système d'exploitation utilise une ligne d'interruption (IRQ) pour déterminer si l'imprimante est prête à recevoir des données.
Le mode par scrutation enjoint au système d'exploitation d'interroger à intervalles réguliers l'imprimante pour savoir si elle est prête à recevoir d'autres données. Lorsqu'elle répond par l'affirmative, le noyau lui en envoie plus.
Le mode par interruption est en général nettement plus rapide, mais consomme une précieuse ligne d'interruption (IRQ). On rapporte que certaines imprimantes HP récentes ne fonctionneraient pas correctement en mode par interruption, apparemment à cause d'un problème (pas encore très bien identifié) d'horloge. Ces imprimantes nécessitent le recours au mode par scrutation. Utilisez celui des deux qui fonctionne. Certaines imprimantes fonctionnent dans les deux modes, mais s'avèrent désagréablement lentes en mode par interruption.
Vous pouvez choisir le mode de communication de deux manières différentes: en configurant le noyau ou en utilisant le programme lptcontrol(8).
Pour paramétrer le mode de communication en configurant le noyau:
Editez le fichier de configuration de votre noyau.
Cherchez une entrée ppc0
. Si
vous voulez configurer le deuxième port
parallèle, cherchez plutôt
ppc1
. Ou ppc2
pour le troisième, et ainsi de suite.
Si vous souhaitez activer le mode par interruption, éditez la ligne suivante:
hint.ppc.0.irq="N
"
dans le fichier
/boot/device.hints
et remplacez
N
par le numéro
d'IRQ approprié. Le fichier de configuration
du noyau doit également comporter le pilote
ppc(4):
device ppc
Si vous souhaitez activer le mode par
scrutation, ôtez la ligne suivante de votre
fichier
/boot/device.hints
:
hint.ppc.0.irq="N
"
Dans certains cas, positionner le port en mode scrutation sous FreeBSD n'est pas suffisant. La plupart du temps cela vient du pilote acpi(4), ce dernier étant capable de sonder et d'attacher des périphériques, et donc de contrôler le mode d'accès au port de l'imprimante. Vous devrez donc vérifier votre configuration acpi(4) pour résoudre ce problème.
Sauvegardez le fichier, puis configurez, compilez, et installez le noyau avant de redémarrer. Consultez la section configuration du noyau pour plus de détails.
Pour paramétrer le mode de communication avec lptcontrol(8):
Entrez:
#
lptcontrol -i -d /dev/lptN
pour sélectionner le mode par interruption
pour
lptN
.
Entrez:
#
lptcontrol -p -d /dev/lptN
pour sélectionner le mode par scrutation pour
lptN
.
Vous pouvez placer ces commandes dans votre fichier
/etc/rc.local
pour sélectionner
le mode à chaque démarrage du système.
Consultez lptcontrol(8) pour obtenir plus
d'informations.
Avant de passer à la configuration du gestionnaire d'impression, vous devriez vous assurer que le système d'exploitation fait parvenir avec succès des données à l'imprimante. Il est beaucoup plus facile de déboguer séparément la communication avec l'imprimante et la configuration du gestionnaire d'impression.
Pour tester l'imprimante, nous allons lui envoyer du texte. Pour les imprimantes qui peuvent immédiatement imprimer les caractères qui leur sont envoyés, le programme lptest(1) est parfait: il génère les 96 caractères ASCII imprimables sur 96 lignes.
Pour une imprimante PostScript® (ou basée sur un autre langage), il va nous falloir un test plus sophistiqué. Un petit programme PostScript®, tel que celui qui suit, devrait suffire:
%!PS 100 100 moveto 300 300 lineto stroke 310 310 moveto /Helvetica findfont 12 scalefont setfont (Is this thing working?) show showpage
Le code PostScript® ci-dessus peut être placé dans un fichier et utilisé comme indiqué dans les exemples qui apparaissent dans les sections suivantes.
Lorsque ce document fait référence à un langage d'imprimante, il suppose un langage comme PostScript®, et pas le PCL de Hewlett-Packard. Quoique PCL dispose de fonctionnalités intéressantes, il est possible de mélanger du texte simple avec des séquences d'échappement. PostScript® ne permet pas d'imprimer du texte clair, c'est le type de langage d'imprimante pour lequel nous devons prendre des mesures particulières.
Cette section vous apprendra à vérifier si FreeBSD peut communiquer avec une imprimante connectée sur un port parallèle.
Pour tester une imprimante connectée sur un port parallèle:
Passez en root
avec
su(1).
Envoyez des données à l'imprimante.
Si l'imprimante peut sortir du texte simple, alors utilisez lptest(1). Entrez:
#
lptest > /dev/lptN
Où N
est le
numéro du port parallèle, en
commençant à zéro.
Si l'imprimante comprend le PostScript® ou un autre langage d'imprimante, alors envoyez lui un petit programme. Entrez:
#
cat > /dev/lptN
Tapez ensuite le programme, ligne à
ligne et attentivement, car
vous ne pouvez plus éditer une ligne une
fois que vous avez appuyé sur la touche
Retour Chariot
ou
Entrée
. Une fois
terminé, faites
CONTROL+D
, ou la combinaison
correspondant à votre fin de
fichier.
Une autre manière de procéder est de placer le programme dans un fichier et d'entrer:
#
cat fichier > /dev/lptN
Où fichier
désigne le nom du fichier que vous
désirez envoyer à
l'imprimante.
Vous devriez voir quelque chose s'imprimer. Ne vous inquiétez pas si l'apparence du texte n'est pas satisfaisante; nous remédierons à ce genre de soucis plus tard.
Dans cette section vous apprendrez à vérifier si FreeBSD parvient à communiquer avec une imprimante connectée à un port série.
Pour tester une imprimante connectée sur un port série:
Passez en root
avec
su(1).
Editez le fichier
/etc/remote
. Ajoutez
l'entrée suivante:
printer:dv=/dev/port
:br#bps-rate
:pa=parity
Où port
représente le fichier de
périphérique du port série
(ttyd0
, ttyd1
,
etc.), bps-rate
représente la vitesse en bits-par-seconde
à laquelle l'imprimante communique, et
parity
représente la
parité réclamée par l'imprimante
(even
pour paire,
odd
pour impaire,
none
pour aucune, ou
zero
pour zéro).
Voici un exemple d'entrée pour une imprimante connectée à 19200 bps, sans parité, sur le troisième port série:
printer:dv=/dev/ttyd2:br#19200:pa=none
Connectez-vous à l'imprimante avec tip(1). Entrez:
#
tip printer
Si cette étape ne fonctionne pas,
éditez le fichier
/etc/remote
à nouveau et
essayez d'utiliser
/dev/cuaaN
au lieu de
/dev/ttydN
.
Envoyez des données à l'imprimante.
Si l'imprimante peut sortir du texte simple, alors utilisez lptest(1). Entrez:
%
$lptest
Si l'imprimante comprend le PostScript® ou
tout autre langage d'imprimante, envoyez-lui un
petit programme. Entrez-le ligne à ligne
et très attentivement,
dans la mesure où les touches
d'édition, comme retour-arrière,
peuvent revêtir une signification
particulière pour l'imprimante. Vous
pourriez également avoir besoin d'un
caractère de fin de fichier
(« EOF ») particulier pour que
l'imprimante sache qu'elle a reçu tout le
programme. Pour les imprimantes PostScript®,
appuyez sur CONTROL+D
.
Une autre manière de procéder est de placer le programme dans un fichier et d'entrer:
%
>fichier
Où fichier
est le nom du fichier contenant le programme.
Après avoir envoyé le fichier avec
tip(1), appuyez sur la touche de fin de
fichier appropriée.
Vous devriez voir quelque chose s'imprimer. Ne vous inquiétez pas si l'apparence du texte n'est pas satisfaisante; nous remédierons à ce genre de soucis plus tard.
A ce stade, votre imprimante doit être branchée, votre noyau configuré pour communiquer avec elle (si cela est nécessaire); et vous avez réussi à faire parvenir des données simples à l'imprimante. Nous sommes maintenant prêts à paramétrer LPD pour qu'il contrôle l'accès à l'imprimante.
LPD se paramètre en
éditant le fichier
/etc/printcap
. Le gestionnaire
d'impression LPD le lit à
chaque fois que le gestionnaire est solicité, donc
les mises à jour du fichier sont immédiatement
prises en compte.
Le format du fichier printcap(5) est explicite.
Utilisez votre éditeur favori pour modifier
/etc/printcap
. Le format est identique
aux autres fichiers de configuration comme
/usr/share/misc/termcap
et
/etc/remote
. Pour obtenir des
informations complètes concernant ce format,
consultez cgetent(3).
Le paramétrage simple du gestionnaire d'impression s'effectue selon les étapes suivantes:
Choisissez un nom (et quelques alias
appropriés) pour l'imprimante, et placez-les dans
/etc/printcap
; lisez la section
Nommer
l'imprimante pour plus d'informations sur le
nommage.
Désactivez les pages d'en-tête (elles
sont activées par défaut) en
insérant le paramètre
sh
; lisez la section Supprimer les pages
d'en-tête pour plus d'informations.
Créez un répertoire de file d'attente,
et précisez son chemin d'accès avec le
paramètre sd
; lisez la section
Créer le
répertoire de fil d'attente pour obtenir
plus d'informations.
Sélectionnez l'entrée
dev
à utiliser pour
l'imprimante, et notez la dans
/etc/printcap
avec le
paramètre lp
; lisez la section
Identifier le
périphérique d'imprimante pour
obtenir plus d'informations. De plus, si l'imprimante
est reliée par un port série,
précisez les paramètres de communication
avec le paramètre ms#
, qui est
détaillé dans la section Configurer les
paramètres de communication du gestionnaire
d'impression.
Installez un filtre d'entrée sous forme de fichier texte simple; lisez la section Installer le filtre texte pour obtenir plus de détails.
Testez la configuration en imprimant quelque chose avec la commande lpr(1). Vous trouverez plus de détails dans les sections Tester l'impression et Résolution des problèmes.
Les imprimantes basées sur un langage d'impression, telles les imprimantes PostScript®, ne peuvent imprimer du texte simple directement. La configuration simple esquissée ci-dessus et détaillée dans les sections suivantes présuppose que si vous installez ce genre d'imprimante vous n'imprimerez que des fichiers qu'elle peut comprendre.
Les utilisateurs s'attendent souvent à pouvoir imprimer du texte simple sur n'importe laquelle des imprimante installées sur votre système. Les applications qui s'en remettent à LPD pour imprimer s'y attendent en général elles aussi. Si vous installez ce genre d'imprimante et désirez pouvoir imprimer à la fois des travaux dans le langage de l'imprimante et des travaux en texte simple, vous êtes instamment prié d'ajouter une étape supplémentaire à la configuration simple esquissée ci-dessus: installez un programme de conversion automatique texte simple vers PostScript® (ou tout autre langage d'imprimante). La section Prendre en charge des travaux texte sur des imprimantes PostScript® vous apprendra à le faire.
La première étape (facile) est de choisir un nom pour l'imprimante. Que vous choisissiez un nom fonctionnel ou fantaisiste n'a aucune importance puisque vous pouvez également fournir une série d'alias.
Au moins l'une des imprimantes définies dans le
fichier /etc/printcap
devrait avoir
pour alias lp
. C'est le nom de
l'imprimante par défaut. Si les utilisateurs n'ont
pas positionné la variable d'environnement
PRINTER
et ne spécifient pas le nom
d'une imprimante lorsqu'ils utilisent une ligne de
commande relative à LPD,
lp
sera l'imprimante par défaut
utilisée.
Par ailleurs, l'usage commun veut que le dernier alias d'une imprimante en soit une description complète, en incluant le fabricant et le modèle.
Une fois le nom et des alias communs choisis,
placez-les dans le fichier
/etc/printcap
. Le nom de
l'imprimante devrait commencer dans la colonne la plus
à gauche. Séparez chaque alias par une
barre verticale et mettez le caractère deux-points
après le dernier alias.
Dans l'exemple suivant, nous commençons avec le
squelette d'un /etc/printcap
qui
définit deux imprimantes (une Diablo 630 et une
imprimante PostScript® laser Panasonic KX-P4455):
# # /etc/printcap for host rose # rattan|line|diablo|lp|Diablo 630 Line Printer: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:
Dans cet exemple, la première imprimante se
nomme rattan
et possède les
alias suivants: line
,
diablo
, lp
et
Diablo 630 Line Printer
. Puisque
l'alias lp
lui est attribué,
elle est également l'imprimante par défaut.
La seconde s'appelle bamboo
et
possède les alias suivants: ps
,
PS
, S
,
panasonic
et Panasonic
KX-P4455 PostScript v51.4
.
Par défaut, le gestionnaire d'impression LPD imprime une page d'en-tête pour chaque impression. Celle-ci mentionne le nom de l'utilisateur qui a demandé l'impression, la machine qui l'a envoyé, et le nom de l'impression, en grands et jolis caractères. Malheureusement, tout ce texte supplémentaire parasite le débogage d'une configuration simple de l'imprimante, aussi supprimerons-nous ces pages d'en-têtes.
Pour cela, ajoutez le paramètre
sh
à l'entrée de
l'imprimante dans /etc/printcap
.
Voici un exemple de /etc/printcap
où sh
a été
ajouté:
# # /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:
Observez la façon dont nous avons respecté le format correct: la première ligne commence dans la colonne la plus à gauche, et les lignes suivantes sont indentées. Toutes les lignes d'une entrée sauf la dernière se terminent par un antislash.
La prochaine étape dans la configuration simple du gestionnaire d'impression consiste à créer un répertoire de file d'attente, c'est à dire un répertoire où les travaux vont demeurer jusqu'à ce qu'ils soient imprimés, et où un certain nombre d'autres fichiers nécessaires au gestionnaire d'impression prennent place.
A cause de la nature variable des répertoires
de file d'attente, il est d'usage de les placer dans
/var/spool
. Il n'est pas non plus
nécessaire de sauvegarder leur contenu. Les
recréer est aussi simple que de faire un
mkdir(1).
Il est également d'usage de créer le répertoire avec un nom identique à celui de l'imprimante, comme dans l'exemple ci-dessous:
#
mkdir /var/spool/nom-de-l-imprimante
Toutefois, si votre réseau comporte beaucoup
d'imprimantes, vous pouvez préférer placer
les répertoires de file d'attente dans un unique
répertoire que vous réserverez à
l'impression avec LPD. C'est
ce que nous allons faire pour les deux imprimantes de
notre exemple, rattan
et
bamboo
:
#
mkdir /var/spool/lpd
#
mkdir /var/spool/lpd/rattan
#
mkdir /var/spool/lpd/bamboo
Si la confidentialité des travaux
imprimés par les utilisateurs vous importe, vous
souhaiterez certainement protéger le
répertoire de file d'attente afin qu'il ne soit
pas accessible par tout le monde. Les
répertoires de file d'attente doivent appartenir,
être accessibles en lecture et écriture et
pouvoir être parcourus par l'utilisateur
daemon
et le groupe
daemon
, et personne d'autre.
C'est ce que nous allons faire pour les deux imprimantes
de notre exemple:
#
chown daemon:daemon /var/spool/lpd/rattan
#
chown daemon:daemon /var/spool/lpd/bamboo
#
chmod 770 /var/spool/lpd/rattan
#
chmod 770 /var/spool/lpd/bamboo
Pour finir, vous devez avertir
LPD de l'existence de ces
répertoires en utilisant le fichier
/etc/printcap
. Vous spécifiez
le chemin du répertoire file d'attente avec le
paramètre sd
:
# # /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:
Notez que le nom de l'imprimante commence dans la première colonne mais que toutes les autres entrées décrivant l'imprimante doivent être indentées et que chaque fin de ligne doit être protégée par un antislash.
Si vous ne précisez pas de répertoire de
file d'attente avec sd
, le gestionnaire
d'impression utilisera /var/spool/lpd
par défaut.
Dans la section Entrées des
périphériques nous avons identifié
l'entrée du répertoire
/dev
que FreeBSD utiliserait pour
communiquer avec l'imprimante. Maintenant, nous allons
passer cette information à
LPD. Quand le gestionnaire
d'impression aura une impression à effectuer, il
ouvrira le périphérique
spécifié au nom du programme de filtre (qui
est responsable de la transmission des données
à l'imprimante).
Positionnez l'entrée pour le chemin
d'accès /dev
dans le fichier
/etc/printcap
en utilisant le
paramètre lp
.
Dans notre exemple, supposons que
rattan
est sur le premier port
parallèle, et que bamboo
est sur
un sixième port série; voici les ajouts
à apporter à
/etc/printcap
:
# # /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:
Si dans votre /etc/printcap
vous
ne précisez pas le paramètre
lp
pour une imprimante,
LPD utilisera
/dev/lp
par défaut. A l'heure
actuelle, il n'existe pas d'entrée
/dev/lp
sous FreeBSD.
Si l'imprimante que vous êtes en train d'installer est connectée à un port parallèle, vous pouvez directement vous rendre à la section Installer le filtre texte. Sinon, assurez-vous de suivre les instructions de la section qui suit.
Pour les imprimantes connectées au port série, LPD peut configurer la vitesse en bps, la parité, et d'autres paramètres de communication série, pour le compte du programme de filtre qui envoie les données à l'imprimante. C'est avantageux dans la mesure où:
Cela vous laisse essayer divers paramètres
simplement en éditant le fichier
/etc/printcap
; vous n'avez pas
besoin de recompiler le programme de filtre.
Cela permet au gestionnaire d'impression d'utiliser le même programme pour de multiples imprimantes qui peuvent avoir des paramètres de communication série différents.
Les paramètres
/etc/printcap
suivants
contrôlent les options de communication série
pour le périphérique spécifié
dans le paramètre lp
:
br#vitesse-bps
Positionne la vitesse de transmission du
périphérique à
vitesse-bps
, où
vitesse-bps
peut prendre
l'une des valeurs suivantes: 50, 75, 110, 134, 150,
200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200,
38400, 57600, ou 115200 bits par seconde.
ms#stty-mode
Positionne les options du périphérique de terminal après l'avoir ouvert. stty(1) présente les options disponibles.
Quand LPD ouvre le
périphérique spécifié par le
paramètre lp
, il positionne les
caractéristiques de ce périphérique
aux valeurs précisées par le
paramètre ms#
. Les modes
suivants, détaillés dans stty(1) sont
particulièrement intéressants:
parenb
, parodd
,
cs5
, cs6
,
cs7
, cs8
,
cstopb
, crtscts
, et
ixon
.
Peaufinons notre exemple pour l'imprimante qui est
connectée au sixième port série. Nous
allons paramétrer sa vitesse à 38400 bps.
Quant au mode, nous allons spécifier aucune
parité avec -parenb
, des
caractères 8 bits avec cs8
,
aucun contrôle modem avec clocal
et un contrôle de flux matériel avec
crtscts
:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:
Nous sommes maintenant en mesure de dire à
LPD quel filtre texte utiliser
pour envoyer les travaux à l'imprimante. Un
filtre texte, également connu
sous le nom de filtre
d'entrée, est un programme que
LPD lance lorsqu'il a une
impression à effectuer. Lorsque
LPD exécute le filtre
texte pour une imprimante, il redirige l'entrée
standard du filtre sur le travail d'impression, et la
sortie standard sur le fichier spécial de
périphérique spécifié par le
paramètre lp
. On attend du
filtre qu'il lise le travail d'impression sur son
entrée standard, effectue les transformations
nécessaires pour l'imprimante, et écrive le
résultat sur sa sortie standard, qui sera
imprimée. Pour plus d'informations sur les filtres
texte, lisez la section Filtres.
Pour notre configuration simple de l'imprimante, le
filtre texte peut être une petite procédure
d'interpréteur de commandes qui ne fera
qu'exécuter /bin/cat
pour
envoyer le travail d'impression à l'imprimante. Un
autre filtre est livré avec FreeBSD, nommé
lpf
, qui se charge de faire des
suppressions arrière et des soulignements pour les
imprimantes qui ne sauraient pas gérer correctement
ce genre de flux de caractères. Et bien sûr,
vous pouvez utiliser un autre filtre, quel qu'il soit. Le
filtre lpf
est détaillé
dans la section lpf: un filtre
texte.
Tout d'abord, composons le filtre
/usr/local/libexec/if-simple
qui sera
un simple filtre texte. Ecrivez ceci avec votre
éditeur de texte favori:
#!/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
Rendez le fichier exécutable:
#
chmod 555 /usr/local/libexec/if-simple
Et avertissez LPD qu'il
doit l'utiliser, en renseignant le paramètre
if
dans
/etc/printcap
. Nous l'ajouterons aux
deux imprimantes utilisées jusqu'ici dans notre
/etc/printcap
d'exemple:
# # /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:ms#-parenb cs8 clocal crtscts:\ :if=/usr/local/libexec/if-simple:
Vous trouverez une copie du filtre
if-simple
dans le répertoire
/usr/share/examples/printing
.
lpd(8) se lance depuis
/etc/rc
, avec la variable de
contrôle lpd_enable
. Cette
variable a NO
pour valeur par
défaut. Si vous ne l'avez pas déjà
fait, ajoutez la ligne:
lpd_enable="YES"
à votre /etc/rc.conf
, puis
relancez votre machine, ou lancez simplement
lpd(8).
#
lpd
Vous avez achevé la configuration simple de LPD. Malheureusement, les félicitations ne sont pas encore à l'ordre du jour, puisque nous devons encore tester la configuration et résoudre tout problème. Pour tester la configuration, essayez d'imprimer quelque chose. Pour imprimer avec le système LPD, vous devez utiliser la commande lpr(1), qui soumet un travail d'impression.
Vous pouvez combiner lpr(1) au programme lptest(1), que nous avons présenté à la section Vérifier la communication avec l'imprimante, pour produire du texte de test.
Pour tester la configuration simple de LPD
Entrez:
#
lptest 20 5 | lpr -Pnom-de-l-imprimante
Où
nom-de-l-imprimante
représente le nom (ou l'alias) d'une imprimante tel
que spécifié dans
/etc/printcap
. Pour tester
l'imprimante par défaut, tapez lpr(1) sans
aucun argument -P
. Encore une fois, si
vous faites ce test avec une imprimante qui s'attend
à recevoir du PostScript®, envoyez un programme
PostScript® au lieu d'employer lptest(1). Vous
pouvez le faire en plaçant le programme dans un
fichier et en entrant lpr
fichier
.
Pour une imprimante PostScript®, vous devriez obtenir le résultat du programme. Si vous utilisez lptest(1), alors votre sortie devrait ressembler à ça:
!"#$%&'()*+,-./01234 "#$%&'()*+,-./012345 #$%&'()*+,-./0123456 $%&'()*+,-./01234567 %&'()*+,-./012345678
Pour tester l'imprimante plus encore,
téléchargez des programmes (pour les
imprimantes basées sur un langage
spécifique) plus longs, ou lancez lptest(1)
avec des arguments différents. Par exemple,
lptest 80 60
produira 60 lignes de 80
caractères chacune.
Si l'impression ne fonctionne pas, lisez la section Résolution des problèmes.
Cette section décrit les filtres à utiliser pour imprimer des fichiers au formatage particulier, des pages d'en-tête, pour imprimer en réseau, et pour restreindre et comptabiliser l'utilisation de l'imprimante.
Bien que LPD gère les protocoles réseaux, les files d'attente, le contrôle d'accès et d'autres aspects de l'impression, la plus grande partie du véritable travail intervient dans les filtres. Les filtres sont des programmes qui communiquent avec l'imprimante et gèrent ses dépendances matérielles ainsi que ses besoins particuliers. Dans la configuration simple de l'imprimante, nous avons installé un filtre texte simple— un filtre particulièrement basique qui devrait fonctionner avec la plupart des imprimantes (voir la section Installer le filtre texte).
Toutefois, afin de profiter de la conversion de format, de la comptabilisation de l'utilisation de l'imprimante, de particularités matérielles, et ainsi de suite, il vous faut comprendre le fonctionnement des filtres. En dernier ressort, il incombera au filtre de gérer ces aspects. Et la mauvaise nouvelle, c'est que la plupart du temps, c'est vous qui devrez produire ces filtres vous-même. La bonne nouvelle, c'est que beaucoup existent déjà et que, sinon, ils sont en général assez faciles à écrire.
Par ailleurs, il en est un livré avec FreeBSD,
/usr/libexec/lpr/lpf
, qui fonctionne avec
beaucoup d'imprimantes capables d'imprimer du texte brut. (Il
gère les retours arrière et les tabulations dans
le fichier, effectue une comptabilisation, mais c'est à
peu près tout). Vous trouverez également
d'autres filtres et composants de filtres dans le catalogue
des logiciels portés de FreeBSD.
Voici ce que vous trouverez dans cette section:
La section Fonctionnement des filtres tâche de donner une vue générale du rôle des filtres dans le processus d'impression. Il vous faut lire cette section pour comprendre ce qui se passe « sous le capot » lorsque LPD utilise des filtres. Cette connaissance vous permettra d'anticiper et de résoudre les problèmes que vous pourriez rencontrer quand vous installerez de plus en plus de filtres pour chacune de vos imprimantes.
LPD s'attend à ce que toutes les imprimantes sachent imprimer du texte brut par défaut. Cela pose un problème pour les imprimantes PostScript® (ou les imprimantes basées sur un autre langage) qui ne peut pas imprimer du texte brut directement. La section Gérer les travaux d'impression de texte brut sur des imprimantes PostScript® vous indique la marche à suivre pour résoudre ce problème. Vous devrez lire cette section si vous avez une imprimante PostScript®.
PostScript® est un format de sortie courant pour beaucoup d'applications. Certaines personnes écrivent même du code PostScript® directement. Malheureusement, les imprimantes PostScript® sont onéreuses. La section Emuler du PostScript® sur les imprimantes non-PostScript® vous indiquera comment modifier un filtre texte pour qu'une imprimante non-PostScript® accepte et imprime du PostScript®. Vous devrez lire cette section si vous ne disposez pas d'une imprimante PostScript®.
La section
Filtres de
conversion vous apprendra à automatiser la
conversion de formats de fichiers spécifiques,
comme des graphiques ou des données de composition,
en formats compréhensibles par l'imprimante.
Après avoir lu cette section, vous serez en mesure
de configurer vos imprimantes de telle sorte que vos
utilisateurs pourront entrer la commande lpr
-t
pour imprimer du troff, ou lpr
-d
pour imprimer le format DVI produit par
TeX, ou lpr -v
pour imprimer des
images en mode point, etc. Nous recommandons la lecture
de cette section.
La section Filtres de sortie révèle tout d'une fonctionnalité peu utilisée de LPD: les filtres de sortie. A moins que vous n'imprimiez des pages d'en-têtes (voir la section Pages d'en-tête), vous pouvez probablement complètement ignorer cette section.
La section lpf:
un filtre texte détaille
lpf
, un filtre texte destiné aux
imprimantes en ligne (et aux imprimantes laser se
comportant comme telles) plutôt complet
malgré sa simplicité, et livré avec
FreeBSD. Si vous avez besoin de mettre rapidement en place
la comptabilisation de l'utilisation de l'imprimante pour
du texte brut, ou si vous avez une imprimante qui fume
lorsqu'elle voit passer des caractères de retour
arrière, vous devez vraiment penser à
lpf
.
Une copie des différents scripts
présentés ci-dessous se trouve dans le
répertoire /usr/share/examples/printing
.
Comme expliqué précédemment, un filtre est un programme exécutable lancé par LPD pour gérer la partie de la communication avec l'imprimante qui est dépendante du périphérique.
Lorsque LPD veut imprimer un
fichier d'un travail d'impression, il lance un programme de
filtre. Il redirige l'entrée standard du filtre sur
le fichier à imprimer, sa sortie standard vers
l'imprimante, et l'erreur standard vers le fichier journal
des erreurs (spécifié dans le paramètre
lf
du fichier
/etc/printcap
, ou
/dev/console
par défaut).
Le filtre lancé par
LPD ainsi que les
paramètres qui lui sont donnés
dépendent de ce qui est placé dans le fichier
/etc/printcap
et des paramètres
que l'utilisateur a passé sur la ligne de commande
lpr(1) pour ce travail d'impression. Par exemple, si
l'utilisateur a entré lpr -t
,
LPD aurait lancé le filtre
troff, précisé par la paramètre
tf
pour l'imprimante de destination. Si
l'utilisateur veut imprimer du texte brut, il lancerait le
filtre if
(c'est vrai la plupart du
temps: lisez la section Filtres de sortie pour
plus de détails).
Il existe trois types de filtres que vous pouvez
spécifier dans
/etc/printcap
:
Le filtre texte, confusément appelé filtre d'entrée dans la documentation LPD, gère l'impression de texte classique. Considérez-le comme le filtre par défaut. LPD s'attend à ce que toutes les imprimantes sachent imprimer du texte brut par défaut, et c'est au filtre texte de s'assurer que les retours arrière, tabulations et autres caractères spéciaux ne trompent pas l'imprimante. Si vous êtes dans un environnement où il vous faut rendre compte de l'utilisation de l'imprimante, le filtre texte doit également comptabiliser les pages imprimées, généralement en comptant le nombre de lignes imprimées et en le comparant avec le nombre de lignes par page supporté par l'imprimante. Le filtre texte est exécuté avec la liste de paramètres suivante:
nom_du_filtre
[-c] -w
largeur
-l
hauteur
-i
indentation
-n
utilisateur
-h
machine
fichier_comptabilité
où
-c
apparaît si le travail d'impression est
lancé par la commande lpr
-l
largeur
est la valeur du paramètre
pw
(« page width »,
pour « largeur de page »)
spécifié dans
/etc/printcap
, et
possédant la valeur par défaut
132.
hauteur
est la valeur du paramètre
pl
(« page length »,
pour « hauteur de page »), par
défaut: 66.
indentation
est le nombre d'indentations
inséré par lpr
-i
, par défaut: 0.
utilisateur
est le nom du compte de l'utilisateur imprimant le fichier.
machine
est le nom de la machine depuis laquelle le travail d'impression a été soumis.
fichier_comptabilité
est le nom du fichier de comptabilisation
spécifié par le paramètre
af
.
Un filtre de conversion convertit un format de fichier spécifique en un autre que l'imprimante saura imprimer sur papier. Par exemple, des données de composition ditroff ne peuvent être imprimées directement, mais il vous est possible d'installer un filtre de conversion ditroff afin de convertir ces données ditroff en une forme que l'imprimante sait ingérer et imprimer. La section Filtres de conversion vous dira tout sur ce sujet. Les filtres de conversion doivent également tenir des statistiques, si vous avez besoin de comptabiliser les impressions. Les filtres de conversion sont lancés avec les paramètres suivants:
nom-du-filtre
-x
largeur-en-pixels
-y
hauteur-en-pixels
-n
login
-h
hôte
fichier_comptabilité
où
largeur-en-pixels
est la
valeur du paramètre px
(0 par
défaut) et
hauteur-en-pixels
est la
valeur du paramètre py
(0 par
défaut).
Le filtre de sortie n'est utilisé que s'il n'y a pas de filtre texte, ou si les pages d'en-tête ont été activées. D'après notre expérience, les filtres de sortie sont rarement employés. La section Filtres de sortie les détaillera. Un filtre de sortie ne prend que deux paramètres:
nom-du-filtre
-w
largeur
-l
hauteur
qui sont identiques aux paramètres
-w
et -l
des filtres
textes.
Les filtres doivent également retourner avec le code de retour suivant:
Si le filtre a imprimé avec succès le fichier.
Si le filtre n'a pu imprimer le fichier, mais désire que LPD essaie de l'imprimer à nouveau. LPD relancera un filtre s'il retourne avec ce code.
Si le filtre n'a pu imprimer le fichier et ne veut pas que LPD retente l'impression. LPD rejettera le fichier.
Le filtre texte livré avec FreeBSD,
/usr/libexec/lpr/lpf
, tire parti des
paramètres de largeur et hauteur de page pour savoir
quand envoyer une instruction de saut de page et comment
comptabiliser l'utilisation de l'imprimante. Il utilise les
paramètres nom d'utilisateur, nom de machine, et
fichier de comptabilisation pour enregistrer les
entrées concernant la consommation.
Si vous recherchez des filtres, prenez garde à ce qu'ils soient compatibles avec LPD. Si c'est le cas, ils doivent se conformer à la liste de paramètres décrite ci-dessus. Si vous songez à écrire des filtres à usage général, alors faites en sorte qu'ils se conforment à ces mêmes listes de paramètres et de codes de retour.
Si vous êtes l'unique utilisateur de votre ordinateur et de votre imprimante PostScript® (ou basée sur un autre langage), et que vous promettez de ne jamais envoyer de texte brut à votre imprimante et de ne jamais utiliser les fonctionnalités des divers programmes qui voudraient lui en envoyer, alors vous pouvez tout à fait passer cette section l'esprit tranquille.
Toutefois, si vous désirez envoyer du
PostScript® et du texte brut à l'imprimante, alors
vous êtes instamment priés de compléter
la configuration de votre imprimante. Pour ce faire, nous
chargerons le filtre texte de détecter si le travail
d'impression est du texte brut ou du PostScript®. Tous les
travaux d'impression PostScript® doivent débuter par
%!
(en ce qui concerne les autres
langages, référez-vous à la
documentation de l'imprimante). Si ces deux
caractères sont les deux premiers du travail
d'impression, il s'agit de PostScript® et le reste du
travail d'impression peut être passé
directement à l'imprimante. Dans le cas contraire,
alors le filtre convertit le texte en PostScript® et
imprime le résultat.
Comment procéder?
Si vous disposez d'une imprimante série, une
bonne façon de faire est d'installer
lprps
. Il s'agit d'un filtre
d'impression PostScript® qui assure une communication en
duplex avec l'imprimante. Il met à jour le fichier
d'état de l'imprimante avec des informations
détaillées que cette dernière lui
fournit, de sorte que les utilisateurs et les
administrateurs puissent connaître
précisément l'état de l'imprimante (par
exemple niveau de toner bas ou
bourrage papier). Mais plus
important encore, il inclut un programme nommé
psif
qui détecte si le travail
d'impression qui vient d'arriver est du texte brut et lance
textps
(un autre programme fourni avec
lprps
) pour le convertir en PostScript®.
Il utilise alors lprps
pour envoyer le
travail d'impression à l'imprimante.
lprps
fait partie du catalogue des
logiciels portés FreeBSD (lisez la section Le catalogue des logiciels
portés). Vous pouvez installer un des deux
logiciels portés print/lprps-a4 et print/lprps-letter en fonction du
format de papier utilisé. Après avoir
installé lprps
, précisez
simplement le chemin vers le programme
psif
qui fait partie de
lprps
. Si vous avez installé
lprps
en recourant au catalogue des
logiciels portés, placez les valeurs suivantes pour
l'entrée de l'imprimante série PostScript®
dans /etc/printcap
:
:if=/usr/local/libexec/psif:
Vous devrez également renseigner le
paramètre rw
qui indique à
LPD de requérir
l'imprimante en mode lecture/écriture.
Si vous disposez d'une imprimante PostScript®
parallèle (et ne pouvez donc pas utiliser la
communication en duplex avec l'imprimante dont a besoin
lprps
), vous pouvez recourir à la
procédure suivante en tant que filtre texte:
#!/bin/sh # # psif - Imprime du PostScript ou du texte brut sur une imprimante PostScript # Version script; CECI N'EST PAS la version fournie avec lprps # Fichier /usr/local/libexec/psif # IFS="" read -r 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 brut, le convertir, puis l'imprimer. # ( echo "$first_line"; cat ) | /usr/local/bin/textps && printf "\004" && exit 0 exit 2 fi
Dans la procédure ci-dessus,
textps
est un programme que nous avons
installé séparément pour convertir du
texte en PostScript®. Vous pouvez recourir à
n'importe quel programme texte-vers-PostScript®, selon
votre désir. Le catalogue des logiciels
portés de FreeBSD (voir la section Le catalogue des logiciels
portés) comprend un programme de conversion
texte-vers-PostScript® complet nommée
a2ps
, qui pourrait vous
intéresser.
PostScript® est le standard de fait pour l'impression et la composition de haute qualité. Cependant, PostScript® est un standard onéreux. Heureusement, Aladdin Enterprises propose un succédané gratuit de PostScript® nommé Ghostscript qui fonctionne sous FreeBSD. Ghostscript peut lire la majorité des fichiers PostScript® et peut produire leurs pages sur une diversité de périphériques, incluant beaucoup de marques d'imprimantes non-PostScript®. En installant Ghostscript et en recourant à un filtre texte spécial, vous pouvez obtenir de votre imprimante non-PostScript® qu'elle se comporte comme une véritable imprimante PostScript®.
Ghostscript fait partie du catalogue des logiciels portés, de nombreuses versions sont disponibles, la version la plus couramment utilisée est print/ghostscript-gpl.
Pour émuler du PostScript®, il nous faut faire en sorte que le filtre texte détecte s'il imprime un fichier PostScript®. Si ce n'est pas le cas, alors le filtre doit passer le fichier directement à l'imprimante; sinon il recourra à Ghostscript pour tout d'abord le convertir dans un format que l'imprimante saura interpréter.
Voici un exemple: la procédure suivante est un
filtre texte pour les imprimantes Hewlett Packard Deskjet
500. Pour d'autres modèles, changez le
paramètre -sDEVICE
de la commande
gs
(Ghostscript). (Entrez
gs -h
pour obtenir une liste des
périphériques reconnus par l'installation
actuelle de Ghostscript).
#!/bin/sh # # ifhp - Imprime du PostScript émulé par Ghostscript sur une DeskJet 500 # Fichier /usr/local/libexec/ifhp # # Traite LF comme CR+LF (pour éviter l'"effet d'escalier" sur les # imprimantes HP/PCL): # printf "\033&k2G" || exit 2 # # Lit les deux premiers caractères du fichier # IFS="" read -r first_line first_two_chars=`expr "$first_line" : '\(..\)'` if [ "$first_two_chars" = "%!" ]; then # # Si c'est du PostScript; utiliser Ghostscript pour le convertir et l'imprimer # /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \ -sOutputFile=- - && exit 0 else # # Texte brut ou HP/PCL, donc impression directe; effectuer un # saut de page à la fin pour éjecter la dernière page. # echo "$first_line" && cat && printf "\033&l0H" && exit 0 fi exit 2
Pour finir, vous devez communiquer à
LPD le filtre utilisé en
positionnant le paramètre
if
:
:if=/usr/local/libexec/ifhp:
Voilà. Vous pouvez entrer lpr
texte.simple
et
lpr
peuimporte.ps
, et
chacune des deux commandes devrait imprimer avec
succès.
Après avoir mené à bien la configuration basique décrite à la section Configuration simple de l'imprimante, la première chose que vous souhaiterez probablement faire sera d'installer des filtres de conversion pour vos formats de fichiers favoris (le simple texte ASCII mis à part).
Les filtres de conversion facilitent l'impression de différentes sortes de fichiers. Par exemple, supposons que nous travaillions énormément avec le système de composition TeX, et que nous ayons une imprimante PostScript®. Chaque fois que nous générerons un fichier DVI à partir de TeX, nous ne pouvons l'imprimer directement avant d'avoir converti ce fichier DVI en PostScript®. La séquence de commandes serait la suivante:
%
dvips seaweed-analysis.dvi
%
lpr seaweed-analysis.ps
En installant un filtre de conversion pour fichiers DVI, nous pouvons à chaque fois nous passer de l'étape de conversion manuelle en chargeant LPD de le faire à notre place. Maintenant, à chaque fois que nous avons un fichier DVI, nous ne sommes plus qu'à un pas de l'impression:
%
lpr -d seaweed-analysis.dvi
Nous faisons en sorte que
LPD se charge de la conversion
du fichier DVI à notre place en positionnant
l'option -d
. La section Options de
conversion et de formatage donne la liste des
options de conversion.
Pour chacune des options de conversion que vous voulez
faire accepter par une imprimante, installez un
filtre de conversion et indiquez son
chemin d'accès dans
/etc/printcap
. Un filtre de
conversion ressemble au filtre texte de notre
configuration de base (voir la section Installer le filtre
texte), à ceci près qu'au lieu
d'imprimer du texte brut, le filtre convertit le fichier
en un format compréhensible par
l'imprimante.
Vous devez installer les filtres de conversion que vous vous attendez à utiliser. Si vous imprimez beaucoup de données DVI, alors un filtre de conversion DVI est dans la logique des choses. Si vous devez imprimer beaucoup de troff, alors vous aurez sûrement besoin d'un filtre troff.
Le tableau suivant récapitule les filtres avec
lesquels LPD fonctionne, leurs
paramètres /etc/printcap
, et
comment les invoquer avec la
lpr
:
Type de fichier | paramètre /etc/printcap
| option lpr |
---|---|---|
cifplot | cf | -c |
DVI | df | -d |
plot | gf | -g |
ditroff | nf | -n |
code FORTRAN | rf | -f |
troff | tf | -f |
image en mode point | vf | -v |
texte brut | if | aucune, -p , or
-l |
Dans notre exemple, utiliser lpr -d
veut dire que l'imprimante a besoin du paramètre
df
dans l'entrée
/etc/printcap
la concernant.
Aussi fortement que certains puissent s'en émouvoir,
des formats comme le code FORTRAN ou le plot sont probablement
obsolètes. Sur votre site, vous pouvez attribuer de
nouvelles significations à ces options ou à toute
autre option de formatage en installant simplement des filtres personnalisés. Par exemple,
supposons que vous aimeriez imprimer des fichiers Printerleaf
directement (fichiers issus du programme de publication assistée par ordinateur Interleaf),
mais jamais de fichiers plot. Vous pourriez alors installer un
filtre de conversion Printerleaf sous le paramètre
gf
et ensuite informer vos
utilisateurs que lpr -g
veut dire
« imprimer des fichiers Printerleaf ».
Etant donné que les filtres de conversion sont des
applications qui ne font pas partie du système FreeBSD
de base, vous devriez les installer dans
/usr/local
. Le répertoire
/usr/local/libexec
est une destination
de choix, car ce sont des programmes spécialisés
que seul LPD lancera; les
utilisateurs ordinaires ne devraient jamais avoir à
les lancer.
Pour activer un filtre de conversion, précisez son
chemin d'accès dans le paramètre relatif à
l'imprimante de destination dans
/etc/printcap
.
Dans notre exemple, nous allons ajouter le filtre de
conversion DVI pour l'imprimante nommée
bamboo
. Revoici le fichier
/etc/printcap
d'exemple, avec le nouveau
paramètre df
pour l'imprimante
bamboo
:
# # /etc/printcap pour la machine rose - ajout du filtre df pour 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:ms#-parenb cs8 clocal crtscts:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf:
Le filtre DVI est une procédure nommée
/usr/local/libexec/psdf
. En voici le
contenu:
#!/bin/sh # # psdf - filtre DVI vers imprimante PostScript # Fichier /usr/local/libexec/psdf # # Appelé par lpd quand l'utilisateur lance lpr -d # exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"
Cette procédure lance dvips
en mode filtre (cela
correspond au paramètre -f
) sur
l'entrée standard, qui est le travail d'impression
à exécuter. Ensuite, elle lance le filtre pour imprimante
PostScript® lprps
(voir la section
Gérer les
travaux d'impression de texte brut sur des imprimantes
PostScript®) avec les paramètres que
LPD lui a passés.
Le programme lprps
utilisera ces paramètres pour
comptabiliser les pages imprimées.
Il n'existe pas de procédure figée pour l'installation des filtres de conversion, des exemples fonctionnels sont présentés dans cette section. Inspirez-vous de ces exemples pour créer vos propres filtres. Utilisez les tels quels s'il s'avèrent adéquats.
Cet exemple présente un filtre de conversion d'image en mode point (en fait un fichier GIF) pour une imprimante Hewlett-Packard LaserJet III-Si:
#!/bin/sh # # hpvf - Convertit des fichiers GIF en HP/PCL, puis les imprime # Fichier /usr/local/libexec/hpvf PATH=/usr/X11R6/bin:$PATH; export PATH giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \ && exit 0 \ || exit 2
Son fonctionnement est le suivant: il convertit le fichier GIF en un format portable universel, puis en format portable en niveau de gris, et ensuite en bitmap portable, qu'il convertit enfin en données compatibles LaserJet/PCL.
Voici le /etc/printcap
comportant une
entrée pour une imprimante recourant au filtre
ci-dessus:
# # /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:\ :vf=/usr/local/libexec/hpvf:
La procédure suivante est un filtre de conversion de
données troff du système de composition groff pour
l'imprimante PostScript® bamboo
:
#!/bin/sh # # pstf - Convertit des données troff de groff en PS, puis imprime. # Fichier /usr/local/libexec/pstf # exec grops | /usr/local/libexec/lprps "$@"
La procédure ci-dessus emploie de nouveau
lprps
pour gérer la communication
avec l'imprimante. S'il s'agissait d'une imprimante sur port
parallèle, nous utiliserions plutôt la procédure
suivante:
#!/bin/sh # # pstf - Convertit des données troff de groff en PS, puis imprime. # Fichier /usr/local/libexec/pstf # exec grops
C'est tout. Voici l'entrée qu'il faut ajouter dans
/etc/printcap
pour activer le filtre:
:tf=/usr/local/libexec/pstf:
Voici un exemple qui pourrait faire rougir les vieux briscards
de FORTRAN. C'est un filtre de code FORTRAN pour toute
imprimante sachant imprimer du texte brut. Nous l'installerons
pour l'imprimante teak
:
#!/bin/sh # # hprf - filtre texte FORTRAN pour LaserJet 3si: # Fichier /usr/local/libexec/hprf # printf "\033&k2G" && fpr && printf "\033&l0H" && exit 0 exit 2
Et nous ajouterons cette ligne dans
/etc/printcap
pour l'imprimante
teak
afin d'activer le filtre:
:rf=/usr/local/libexec/hprf:
Voici un dernier exemple, quelque peu complexe. Nous allons
ajouter un filtre DVI pour l'imprimante LaserJet
teak
présentée ci-dessus. Tout
d'abord, la partie facile: mettre à jour
/etc/printcap
avec l'emplacement du
filtre DVI:
:df=/usr/local/libexec/hpdf:
Et maintenant, la partie difficile: écrire le filtre.
Pour cela, nous avons besoin d'un programme de conversion
DVI-vers-LaserJet/PCL. Le catalogue des logiciels portés
(voyez la section Le catalogue des logiciels
portés) en possède un: print/dvi2xx.
Installer ce logiciel porté nous fournira le programme
dont nous avons besoin, dvilj2p
, qui
convertit le DVI en code compatible LaserJet IIp, LaserJet III et
LaserJet 2000.
L'utilitaire dvilj2p
rend le filtre
hpdf
assez complexe, parce que
dvilj2p
ne sait pas lire l'entrée
standard. Il lui faut un nom de fichier. Pire encore, le nom du fichier doit se terminer par
.dvi
, ce qui rend l'utilisation de
/dev/fd/0
pour l'entrée standard
problématique. Nous pouvons contourner cette
difficulté en créant un lien symbolique temporaire
(se terminant par .dvi
) pointant vers
/dev/fd/0
, obligeant ainsi
dvilj2p
à lire l'entrée
standard.
Le seul petit accroc restant est que nous ne pouvons pas
utiliser /tmp
pour le lien temporaire. Les
liens symboliques ont pour propriétaire l'utilisateur et le
group bin
. Le filtre est lancé sous
l'utilisateur daemon
. Et le bit « sticky » est
positionné sur le répertoire
/tmp
. Le filtre peut créer le lien,
mais il ne pourra pas nettoyer lorsqu'il aura fini et supprimer
ce lien puisqu'il appartient à un utilisateur
différent.
Au lieu de ça, le filtre créera le lien dans
le répertoire courant, qui est le répertoire
de la file d'attente des travaux d'impression (précisé par le paramètre
sd
dans /etc/printcap
).
C'est l'endroit idéal pour faire travailler les filtres,
particulièrement parce qu'il y a (parfois) plus d'espace
disque libre dans ce répertoire que
sous /tmp
.
Voici, enfin, le filtre:
#!/bin/sh # # hpdf - Imprime des données DVI sur une imprimante HP/PCL # Fichier /usr/local/libexec/hpdf PATH=/usr/local/bin:$PATH; export PATH # # Définit une fonction de nettoyage de nos fichiers temporaires. Ils prennent place # dans le répertoire courant, qui sera le répertoire # de file d'attente # de l'imprimante. # cleanup() { rm -f hpdf$$.dvi } # # Définit une fonction de gestion des erreurs fatales: affiche le message # d'erreur et retourne 2. Ce code d'erreur de 2 indique à LPD # de ne pas essayer de réimprimer le travail d'impression # fatal() { echo "$@" 1>&2 cleanup exit 2 } # # Si l'utilisateur enlève le travail d'impression, LPD envoie SIGINT, donc # il faut capturer le signal SIGINT # (et quelques autres signaux) pour nettoyer après notre passage. # trap cleanup 1 2 15 # # Assurons-nous qu'il n'y ait pas conflit ce nom avec des fichiers existants. # cleanup # # Lien du fichier DVI vers l'entrée standard (fichier à imprimer). # ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0" # # Conversion LF = CR+LF # printf "\033&k2G" || fatal "Cannot initialize printer" # # Conversion et impression. Le code de retour de dvilj2p ne semble # pas fiable: ignorons-le. # dvilj2p -M1 -q -e- dfhp$$.dvi # # Nettoyage et sortie de la procédure # cleanup exit 0
Tous ces filtres de conversion apportent beaucoup à votre environnement d'impression, mais nécessitent que l'utilisateur précise (dans la ligne de commande lpr(1)) lequel utiliser. Si vos utilisateurs ne sont pas particulièrement versés en informatique, préciser une option de filtre sera problématique. Mais ce qui s'avère pire encore est qu'une option de filtre mal choisie peut lancer un filtre sur un type de fichier erroné et causer l'impression de centaines de pages.
Plutôt que d'installer quelque filtre de conversion
que ce soit, vous préférerez sans doute laisser
le filtre texte (puisque c'est le filtre par défaut)
déterminer le type de fichier qu'on lui a demandé
d'imprimer et lancer automatiquement le filtre de conversion
approprié. Des outils comme file
peuvent s'avérer utiles dans ce cas. Bien entendu, il sera
difficile d'établir les différences entre
certains types de fichiers—et vous
pouvez toujours, bien sûr, fournir des filtres de conversion
uniquement pour eux.
Le catalogue des logiciels portés FreeBSD contient un
filtre texte, nommé apsfilter
(print/apsfilter), qui
sait effectuer la conversion automatique. Il peut
reconnaître le texte brut, le PostScript® les
fichiers DVI et quasiment n'importe quelle sorte de
fichier, effectuer les conversions appropriées et
imprimer.
Le gestionnaire d'impression LPD reconnaît un autre type de filtre dont nous n'avons pas encore discuté: le filtre de sortie. Un filtre de sortie est destiné à l'impression de texte brut seulement, comme le filtre texte, mais avec de nombreuses simplifications. Si vous utilisez un filtre de sortie mais pas de filtre texte, alors:
LPD lance un filtre de sortie une seule fois par travail d'impression, au lieu d'une fois pour chacun des fichiers du travail d'impression.
LPD ne fournit rien pour permettre au filtre de sortie de repérer le début ou la fin des fichiers du travail d'impression.
LPD ne passe pas le nom de l'utilisateur ou le nom de la machine au filtre, qui n'est donc pas prévu pour effectuer la comptabilisation de l'impression. En fait, il ne reçoit que deux paramètres:
nom-du-filtre
-wlargeur
-lhauteur
Où largeur
provient du
paramètre pw
et
hauteur
du paramètre
pl
de l'entrée
/etc/printcap
pour l'imprimante en
question.
Ne vous laissez pas séduire par la simplicité d'un filtre de sortie. Si vous désirez que chaque fichier d'un travail d'impression commence sur une page différente, un filtre de sortie ne conviendra pas. Utilisez un filtre texte (également appelé filtre d'entrée); voir la section Installer le filtre texte. De plus, le filtre de sortie se révèle en fait plus complexe en ce sens qu'il doit examiner le flux d'octets qui lui est envoyé pour y rechercher des caractères spéciaux et qu'il doit s'envoyer à lui-même des signaux comme s'ils provenaient de LPD.
Toutefois, un filtre de sortie s'avère nécessaire si vous désirez des pages d'en-tête et avez besoin d'envoyer des séquences d'échappement ou d'autres chaînes d'initialisation afin de pouvoir imprimer la page d'en-tête. (Mais il est également futile si vous voulez imputer les pages d'en-tête au compte de l'utilisateur, puisque LPD ne livre pas d'information sur l'utilisateur ou la machine au filtre de sortie).
Sur une seule imprimante, LPD
permet à la fois un filtre de sortie et des filtres texte ou
autres. Dans de tels cas, LPD ne lancera
le filtre de sortie que pour imprimer la page d'en-tête
(consultez la section Pages
d'en-tête). LPD attend
alors que le filtre de sortie s'arrête
par lui-même en envoyant deux octets au filtre: ASCII 031 suivi
d'ASCII 001. Lorsqu'un filtre de sortie lit ces deux octets
(031,001), il devrait s'arrêter en s'envoyant à
lui-même un SIGSTOP
. Lorsque
LPD a fini d'exécuter les
autres filtres, il relance le filtre de sortie en lui envoyant
un SIGCONT
.
S'il y a un filtre de sortie mais aucun filtre texte et que LPD s'occupe d'un travail d'impression concernant du texte brut, alors LPD utilise le filtre de sortie pour réaliser ce travail d'impression. Comme exposé plus haut, le filtre de sortie imprimera chacun des travaux d'impression séquentiellement sans que des sauts de page ou autres formes d'avancement du papier ne surviennent, et ce n'est vraisemblablement pas ce que vous désirez. Dans presque tous les cas, il vous faut un filtre texte.
Le programme lpf
, que nous avons
présenté précédemment comme un filtre texte, peut
également fonctionner en tant que filtre de sortie. Si
vous avez besoin d'un filtre de sortie vite-fait-bien-fait mais
ne voulez pas écrire le code d'examen d'octets et d'envoi
de signal, essayez lpf
. Vous pouvez
également inclure lpf
dans une procédure
pour prendre en charge tout code d'initialisation qui pourrait
être requis par l'imprimante.
Le programme /usr/libexec/lpr/lpf
qui
est fourni avec la distribution binaire FreeBSD est un filtre texte
(un filtre d'entrée) qui sait indenter la sortie (un
travail d'impression soumis avec lpr -i
),
laisse passer les caractères littéraux (travail
d'impression soumis avec lpr -l
), ajuste la
position d'impression des retours arrière et des
tabulations dans le travail d'impression, et comptabilise les
pages imprimées. Il peut également servir
de filtre de sortie.
Le filtre lpf
convient à de nombreux
environnements d'impression. Et bien qu'il ne puisse pas envoyer de
séquences d'initialisation à une imprimante, il est
aisé d'écrire une procédure pour effectuer
l'initialisation nécessaire et ensuite exécuter
lpf
.
Afin que lpf
mène à bien la
comptabilisation des pages, il faut que des valeurs correctes
soient indiquées pour les paramètres
pw
et pl
dans le fichier
/etc/printcap
. Il utilise ces valeurs pour
déterminer combien de texte peut être imprimé
sur une page et combien de pages ont été
imprimées dans le travail d'impression d'un utilisateur.
Pour plus d'informations sur la comptabilisation de l'impression,
lisez la section
Comptabiliser l'utilisation
de l'imprimante.
Si vous avez beaucoup d'utilisateurs, et que tous utilisent des imprimantes diverses, alors vous allez certainement envisager les pages d'en-tête comme un mal nécessaire.
Les pages d'en-tête, également appelées bannières ou burst page, identifient à qui appartiennent les travaux d'impression après qu'ils aient été imprimés. Elles sont en général imprimées en caractères de grande taille et en gras, peuvent comporter des bordures décorées, de sorte qu'elles contrastent dans une pile d'impressions avec les véritables documents formant les travaux d'impression des utilisateurs. Elles leur permettent de retrouver facilement leurs travaux d'impression. L'inconvénient majeur d'une page d'en-tête est qu'elle représente une page supplémentaire à imprimer pour chacun des travaux d'impression, son utilité éphémère ne dépasse pas quelques minutes, et elle termine au recyclage du papier ou dans une corbeille. (Notez que une page d'en-tête est liée à chaque travail d'impression et non à chaque fichier dans un travail d'impression: il se pourrait donc que le gâchis de papier ne soit pas si grand.)
Le système LPD peut fournir des pages d'en-tête automatiquement pour vos impressions si votre imprimante sait imprimer directement du texte brut. Si vous disposez d'une imprimante PostScript®, il vous faudra un programme externe pour générer la page d'en-tête; lisez la section Les pages d'en-tête sur les imprimantes PostScript®.
Dans la section Configuration
simple de l'imprimante, nous avons désactivé
les pages d'en-tête en positionnant le paramètre
sh
(ce qui signifie « suppress
header », soit « suppression des
en-têtes ») dans /etc/printcap
.
Pour activer les pages d'en-tête sur une imprimante, il
suffit d'enlever ce paramètre
sh
.
Cela semble trop facile, n'est-ce pas?
C'est vrai. Il se pourrait que vous ayez à fournir un filtre de sortie pour envoyer des chaînes d'initialisation à l'imprimante. Voici un exemple de filtre sortie pour les imprimantes Hewlett-Packard compatibles-PCL:
#!/bin/sh # # hpof - filtre de sortie pour les imprimantes Hewlett Packard compatibles PCL # Fichier /usr/local/libexec/hpof printf "\033&k2G" || exit 2 exec /usr/libexec/lpr/lpf
Spécifiez le chemin d'accès au filtre de
sortie avec le paramètre of
. Lisez
la section Filtres de
sortie pour plus de détails.
Voici un fichier /etc/printcap
d'exemple pour l'imprimante teak
que nous
avons présentée plus haut; nous avons activé
les pages d'en-tête et ajouté le fichier de sortie
ci-dessus:
# # /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:
Désormais, lorsque les utilisateurs lancent des
travaux d'impression avec teak
, ils obtiennent
une page d'en-tête avec chaque travail d'impression. Si
vos utilisateurs désirent perdre du temps à
rechercher leurs impressions, ils peuvent omettre la page
d'en-tête en soumettant le travail d'impression avec la
commande lpr -h
; lisez la section
Options des pages
d'en-tête pour connaître plus d'options
lpr(1).
LPD imprime un
caractère de saut de page après une
page d'en-tête. Si votre imprimante utilise un
autre caractère ou séquence de
caractères différente pour éjecter une page,
précisez-le avec le paramètre
ff
dans
/etc/printcap
.
Une fois les pages d'en-tête activées,
LPD produira un en-tête
long, c'est à dire une page entière de
grands caractères identifiant l'utilisateur, le nom
de la machine et le travail d'impression. Voici un exemple
(kelly
a lancé le travail d'impression nommé
« outline » depuis la machine rose
):
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
LPD ajoute un saut de page
à ce texte de sorte que le travail d'impression commence
sur une nouvelle page (à moins que sf
(supprimer les sauts de page) ne soit dans l'entrée correspondant
à l'imprimante dans /etc/printcap
).
Si vous préférez, LPD peut
générer des en-tête courts; ajoutez
le paramètre sb
(en-tête court) dans le
fichier /etc/printcap
. La
page d'en-tête ressemblera à ceci:
rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995
Par défaut également,
LPD imprime d'abord la page
d'en-tête, puis le travail d'impression. Pour inverser ce
comportement, placez le paramètre hl
(en-tête à la fin) dans /etc/printcap
.
Utiliser les pages d'en-tête fournies par LPD provoque un comportement particulier lorsqu'il s'agit de comptabiliser l'utilisation de l'imprimante: les pages d'en-tête doivent être gratuites.
Pourquoi?
Parce que le filtre de sortie est le seul programme externe
pouvant tenir les comptes qui aura le contrôle lors de
l'impression de la page d'en-tête, et qu'aucune
information sur l'utilisateur ou le nom
de la machine ne lui est donnée ni aucun
fichier de comptabilisation, par conséquent il ne sait
pas à qui attribuer le coût de l'utilisation
de l'imprimante. Il ne suffit pas non plus de
simplement « ajouter une page » au filtre
texte ou un quelconque filtre de conversion (qui, eux,
possèdent des informations sur l'utilisateur et la
machine) puisque les utilisateurs peuvent supprimer les
pages d'en-tête avec lpr -h
. Ils
pourraient toujours se voir imputer des pages d'en-tête
qu'ils n'auraient pas imprimées. En somme,
lpr -h
demeurera l'option favorite des
utilisateurs soucieux de l'environnement, mais vous ne pouvez
aucunement les inciter à l'utiliser.
Il ne suffit pas non plus de
laisser chacun des filtres générer ses propres
pages d'en-tête (ce qui permettrait de savoir à
qui imputer les coûts). Si les utilisateurs
désiraient omettre les pages d'en-tête avec
lpr -h
, ils les obtiendraient quand
même et le coût leur serait attribué puisque
LPD ne donne aucun renseignement sur
l'emploi de l'option -h
à aucun des
filtres.
Alors, quelles sont les options à votre disposition?
Vous pouvez:
Accepter le comportement de LPD et la gratuité des pages d'en-tête.
Installer une alternative à LPD, comme LPRng. La section Alternatives au gestionnaire d'impression standard en dit plus au sujet des autres gestionnaires d'impression qui peuvent être substitués à LPD.
Ecrire un filtre de sortie
intelligent. Normalement, un filtre de
sortie n'est pas censé faire plus que d'initialiser
une imprimante ou exécuter une conversion simple de
caractères. Il convient aux pages d'en-tête
et aux travaux d'impression de texte brut (lorsqu'il n'y
a aucun filtre (d'entrée) texte). Mais, s'il
existe un filtre texte pour les travaux d'impression de texte, alors LPD ne lancera
le filtre de sortie que pour les pages d'en-tête. Le
filtre de sortie peut également analyser le texte
de la page d'en-tête généré par
LPD pour déterminer quels
sont l'utilisateur et la machine à qui il faut
attribuer le coût de cette page d'en-tête. Le
seul autre problème avec cette méthode est
que le filtre de sortie ne sait toujours pas quel fichier
de comptabilisation utiliser (le nom du fichier
spécifié par le paramètre
af
ne lui est pas fourni), mais si vous
disposez d'un fichier de comptabilisation bien
identifié, vous pouvez le coder en dur dans le
filtre de sortie. Afin de faciliter l'étape d'analyse,
utilisez le paramètre sh
(en-tête courte) dans /etc/printcap
. D'un
autre côté, tout cela pourrait bien
représenter beaucoup de dérangement, et les
utilisateurs apprécieront certainement davantage
l'administrateur généreux qui propose la
gratuité des pages d'en-tête.
Comme décrit précédemment, LPD est en mesure de générer des pages d'en-tête texte convenant pour de nombreuses d'imprimantes. Bien entendu, PostScript® ne peut pas imprimer du texte directement, donc la fonctionnalité de page d'en-tête offerte par LPD est inutilisable ou presque.
Une solution manifeste est de faire générer
la page d'en-tête par tous les filtres de conversion et
le filtre texte. Les filtres devraient employer les
paramètres utilisateur et nom de machine pour
générer une page d'en-tête convenable.
L'inconvénient de cette méthode est que les
utilisateurs obtiendront toujours une page d'en-tête,
même s'ils soumettent leurs travaux d'impression avec
lpr -h
.
Examinons cette méthode. La procédure ci-dessous prend trois paramètres (le nom de l'utilisateur, le nom de la machine et celui du travail d'impression) et réalise une page d'en-tête simple en PostScript®:
#!/bin/sh # # make-ps-header - génére une page d'en-tête PostScript sur la sortie standard # Fichier /usr/local/libexec/make-ps-header # # # Ce sont des unités PostScript (72 par pouce). A modifier pour A4 ou # tout autre format papier employé: # page_width=612 page_height=792 border=72 # # Vérification des paramètres # if [ $# -ne 3 ]; then echo "Usage: `basename $0` <user> <host> <job>" 1>&2 exit 1 fi # # Mémorisation des paramètres, pour la lisibilité du PostScript, plus bas. # user=$1 host=$2 job=$3 date=`date` # # Envoi du code PostScript sur stdout. # exec cat <<EOF %!PS % % Assurons-nous qu'il n'y a pas d'interférence avec le travail % utilisateur qui suivra % save % % Applique une grosse bordure désagréable autour % du bord 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 % % Affiche le nom de l'utilisateur, de façon jolie, grande et proéminente % /Helvetica-Bold findfont 64 scalefont setfont $page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto ($user) show % % Maintenant, les détails ennuyant: % /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
Désormais, chacun des filtres de conversion et le filtre texte peuvent appeler cette procédure pour d'abord générer la page d'en-tête, et ensuite imprimer le travail d'impression de l'utilisateur. Voici le filtre de conversion DVI déjà mentionné plus haut dans ce document, modifié afin de générer une page d'en-tête:
#!/bin/sh # # psdf - filtre DVI vers imprimante PostScript # Fichier /usr/local/libexec/psdf # # Appelé par lpd quand l'utilisateur lance 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
Observez que le filtre doit analyser la liste des paramètres pour déterminer le nom de l'utilisateur et celui de la machine. L'analyse menée par les autres filtres de conversion est identique. Toutefois, le filtre texte réclame un ensemble de paramètres légèrement différent (voyez la section Fonctionnement des filtres).
Comme précédemment exposé, cette solution,
quoique relativement simple, invalide l'option de
« suppression de page d'en-tête » (l'option
-h
) de lpr
. Si les
utilisateurs désiraient épargner la vie d'un
arbre (ou économiser quelques centimes, si vous faites
payer les pages d'en-tête), ils ne seraient pas en
mesure de le faire, puisque chaque filtre va imprimer une page
d'en-tête avec chaque travail d'impression.
Pour permettre aux utilisateurs de désactiver les
pages d'en-tête en fonction du travail d'impression,
il vous faudra recourir à l'une
des astuces de la section Comptabiliser
les pages d'en-tête: écrire un filtre de
sortie qui analyse la page d'en-tête
générée par LPD et produit une version
PostScript®. Si l'utilisateur soumet le travail d'impression
avec lpr -h
alors ni
LPD ni votre filtre de sortie ne
généreront de page d'en-tête. Sinon, votre
filtre de sortie lira le texte en provenance de LPD
et enverra la page d'en-tête PostScript® appropriée
à l'imprimante.
Si vous disposez d'une imprimante PostScript® sur une
interface série, vous pouvez utiliser
lprps
, qui est livré avec un filtre
de sortie, psof
, qui réalise ce que
nous venons d'exposer ci-dessus. Notez que
psof
n'assume pas la tenue de comptes pour
les pages d'en-tête.
FreeBSD gère l'impression via un réseau: c'est à dire en envoyant les travaux d'impression à des imprimantes distantes. L'impression via un réseau désigne deux choses différentes:
Accéder à une imprimante connectée à une machine distante. Vous installez une imprimante disposant d'une interface conventionnelle, série ou parallèle, sur une machine. Puis vous configurez LPD pour permettre l'accès à l'imprimante depuis d'autres machines du réseau. La section Imprimantes installées sur des machines distantes en détaillera la mise en œuvre.
Accéder à une imprimante directement connectée au réseau. L'imprimante dispose d'une interface réseau en plus (ou à la place) d'interfaces plus conventionnelles, série ou parallèle. Une imprimante de ce genre peut fonctionner ainsi:
Elle peut comprendre le protocole LPD et sait même gérer une file d'attente de travaux d'impression provenant de machines distantes. En ce cas, elle se comporte comme une machine normale qui exécuterait LPD. Suivez la même procédure que celle exposée à la section Imprimantes installées sur des machines distantes afin de configurer une imprimante de ce genre.
Elle peut savoir gérer un flux de données au travers d'une connexion réseau. Dans ce cas, vous pouvez « attacher » l'imprimante à l'une des machines du réseau en la rendant responsable de la gestion de la file d'impression et de l'envoi des travaux d'impression à l'imprimante. La section Imprimantes avec des interfaces utilisant des flux réseau donne quelque indications sur l'installation d'imprimantes de ce type.
Le gestionnaire d'impression LPD dispose des fonctions pour gérer l'envoi des travaux d'impression à d'autres machines exécutant également LPD (ou un système qui lui est compatible). Cette fonctionnalité vous permet d'installer une imprimante sur une machine, puis de la rendre accessible depuis les autres machines. Cela fonctionne également avec les imprimantes disposant d'interfaces réseau comprenant le protocole LPD.
Pour activer ce type d'impression à distance, installez d'abord une imprimante sur une machine, qui sera la machine d'impression, en suivant les instructions de configuration basique décrites à la section Configuration simple de l'imprimante. Réalisez toute étape de la configuration avancée de l'imprimante dont vous pourriez avoir besoin. Veillez à tester l'imprimante et vérifiez qu'elle fonctionne avec les paramètres de LPD que vous avez activés. Assurez-vous également que la machine locale est autorisée à utiliser le service LPD sur la machine distante (lisez la section Restreindre les impressions à distance).
Si vous utilisez une imprimante avec une interface réseau qui est compatible avec LPD, alors la machine d'impression dans le texte ci-dessous est l'imprimante elle-même, et le nom de l'imprimante est le nom que vous avez paramétré pour l'imprimante. Lisez la documentation livrée avec votre imprimante ou l'interface réseau-imprimante.
Si vous utilisez une Hewlett Packard Laserjet, alors le
nom d'imprimante text
réalisera
la conversion LF en CRLF automatiquement, de sorte que vous
n'aurez pas besoin de la procédure hpif
.
Ensuite, sur les autres machines pour lesquelles vous
désirez autoriser l'accès à l'imprimante,
créez une ligne dans leur
/etc/printcap
avec les paramètres
suivants:
Nommez cette entrée comme vous le voulez. Par souci de simplicité, cependant, vous préférerez certainement employer les mêmes nom et alias que ceux utilisés sur la machine de d'impression.
Laissez le paramètre lp
non-renseigné,
de manière explicite (:lp=:
).
Créez un répertoire de file d'impression et
indiquez son chemin d'accès dans le paramètre
sd
. C'est là où
LPD entreposera les travaux
d'impression avant leur envoi vers la machine
d'impression.
Indiquez le nom de la machine d'impression avec le paramètre
rm
.
Placez le nom de l'imprimante sur la
machine d'impression dans le paramètre
rp
.
C'est tout. Il n'est pas nécessaire de préciser
la liste des filtres de conversion, les dimensions de la page,
ou quoique ce soit d'autre dans le fichier
/etc/printcap
.
Voici un exemple. La machine rose
dispose
de deux imprimantes, bamboo
et
rattan
. Nous allons permettre aux utilisateurs
de la machine orchid
d'imprimer avec ces
imprimantes.
Voici le fichier /etc/printcap
pour
orchid
(apparu dans la section
Activer
les pages d'en-tête). Il contenait
déjà une entrée pour l'imprimante
teak
; nous avons ajouté celles pour
les deux imprimantes sur la machine rose
:
# # /etc/printcap pour la machine orchid - ajout d'imprimantes (distantes) # sur rose # # # teak est locale; 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; envoie les travaux pour rattan # à rose: # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: # # bamboo est également connectée à rose: # bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:
Ensuite, nous n'avons qu'à créer les
répertoires de file d'impression sur
orchid
:
#
mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo
#
chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo
#
chown daemon:daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo
Maintenant les utilisateurs d'orchid
peuvent imprimer sur rattan
et
bamboo
. Par exemple, si un utilisateur sur
orchid
entrait:
%
lpr -P bamboo -d sushi-review.dvi
le système LPD sur
orchid
copierait le travail d'impression dans le
répertoire de file d'impression
/var/spool/lpd/bamboo
et relèverait qu'il
s'agit d'un travail d'impression DVI. Dès que la machine
rose
dispose d'assez de place dans son
répertoire de file d'impression, les
deux LPD
transfèrent le fichier à rose
. Le
fichier reste en attente dans la file de rose
jusqu'à son impression. Il sera converti de DVI en
PostScript® (puisque bamboo
est une imprimante
PostScript®) sur rose
.
Bien souvent, lorsque vous achetez une carte d'interface réseau pour une imprimante, vous avez le choix entre deux versions: l'une qui émule un gestionnaire d'impression (la version la plus onéreuse), ou une autre qui ne vous permet que de lui envoyer des données comme s'il s'agissait d'un port série ou parallèle (c'est la version la moins chère). Cette section vous indique comment utiliser cette seconde version moins onéreuse. Pour la plus chère, lisez la section précédente Imprimantes installées sur des machines distantes.
Le format du fichier /etc/printcap
vous
permet de préciser quelle interface série ou
parallèle vous souhaitez utiliser, et (si vous employez
une interface série) à quelle vitesse de
transmission, s'il faut employer le contrôle de flux, les
temporisations pour les tabulations, la conversion des sauts de
lignes, et plus encore. Mais il n'existe aucun moyen de
préciser une connexion à une imprimante qui
écoute sur un port TCP/IP ou un autre port réseau.
Pour envoyer des données à une imprimante mise
en réseau, il vous faut développer un programme
de communication qui puisse être appelé par les
filtres textes et de conversion. Voici un exemple: la procédure
netprint
récupère toutes les données sur
l'entrée standard et les envoie à une imprimante
connectée au réseau. Nous précisons le nom de machine
de l'imprimante dans le premier paramètre et le
numéro de port auquel se connecter dans le
deuxième paramètre de netprint
.
Notez qu'il ne gère que la communication unidirectionnelle
(dans le sens FreeBSD vers imprimante); de nombreuses imprimantes
réseau supporte la communication bidirectionnelle, et
vous désirerez certainement en tirer parti (afin de
connaître le statut de l'imprimante, de comptabiliser
l'utilisation, etc.).
#!/usr/bin/perl # # netprint - Filtre texte pour imprimante connectée au 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 "Can't create TCP/IP stream socket: $!"; connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!"; while (<STDIN>) { print PRINTER; } exit 0;
Nous pouvons maintenant utiliser cette procédure avec
différents filtres. Supposons que nous ayons une
imprimante Diablo 750-N connectée au réseau. Elle
reçoit les données à imprimer sur le port
5100. Le nom de machine de l'imprimante est
scrivener
. Voici le filtre texte
pour cette imprimante:
#!/bin/sh # # diablo-if-net - Filtre texte pour l'imprimante Diablo `scrivener' écoutant # le port 5100. Fichier /usr/local/libexec/diablo-if-net # exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100
Cette section fournit des informations sur la restriction de l'utilisation de l'imprimante. Le système LPD vous permet de contrôler quels utilisateurs peuvent accéder à une imprimante, tant localement qu'à distance, s'il leur est autorisé d'imprimer en plusieurs exemplaires, quelles sont les tailles maximales de leurs travaux d'impression et des files d'impression.
Le système LPD facilite l'impression de
plusieurs copies d'un même fichier par les
utilisateurs. Ils peuvent imprimer leur travail
avec lpr -#5
(par exemple)
et obtenir cinq exemplaires de chaque fichier du travail
d'impression. Le fait de savoir s'il s'agit là d'une
bonne idée vous appartient.
Si vous estimez que les copies multiples provoquent
charge et usure inutiles pour vos imprimantes, vous
pouvez désactiver l'option -#
de
lpr(1) en ajoutant le paramètre sc
au fichier /etc/printcap
. Lorsque des
utilisateurs soumettront un travail d'impression avec l'option
-#
, ils obtiendront cet affichage:
lpr: multiple copies are not allowed
Notez que si vous avez mis en œuvre l'accès
à une imprimante distante (voir la section
Imprimantes
installées sur des machines distantes), il
faut que le paramètre sc
soit
positionné sur les /etc/printcap
distants également, sinon vos utilisateurs auront
toujours la possibilité d'imprimer des copies multiples
en passant par une autre machine.
Voici un exemple. C'est le /etc/printcap
pour la machine rose
. L'imprimante
rattan
est plutôt robuste, et
autorisera donc les copies multiples, par contre l'imprimante
laser bamboo
est quant à elle plus
délicate, nous interdiront donc les impressions multiples en ajoutant le
paramètre sc
:
# # /etc/printcap pour la machine rose - restreint les impressions en plusieurs exemplaires sur 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:ms#-parenb cs8 clocal crtscts:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf:
Maintenant, il nous faut également ajouter le
paramètre sc
dans le fichier
/etc/printcap
de orchid
(et tant que nous y sommes, désactivons les copies multiples
pour l'imprimante teak
):
# # /etc/printcap pour la machine orchid - pas d'impression en # plusieurs exemplaires pour # l'imprimante locale teak ou 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|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:
En recourant au paramètre sc
,
nous empêchons l'utilisation de lpr -#
,
mais cela n'empêche toujours pas les utilisateurs de
lancer lpr(1) à plusieurs reprises, ou de soumettre
le même fichier plusieurs fois en un seul travail, de
cette façon:
%
lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign
Il existe plusieurs moyens de prévenir ces abus (y compris les ignorer) que vous êtes libres d'essayer.
Vous pouvez contrôler qui a le droit d'imprimer sur
quelles imprimantes en utilisant le mécanisme des
groupes UNIX® et le paramètre rg
dans
/etc/printcap
. Placez simplement les
utilisateurs à qui vous voulez donner l'accès
à une imprimante dans un groupe, et précisez ce
groupe avec le paramètre rg
.
Les utilisateurs n'appartenant pas au groupe
(root
inclus) se verront gratifiés d'un
lpr: Not a member of the restricted group
s'ils essaient d'imprimer avec l'imprimante
contrôlée.
De même que pour le paramètre sc
(supprimer les exemplaires multiples), il vous faut activer rg
sur les machines distantes qui eux aussi ont
accès à vos imprimantes, si vous estimez que
c'est approprié (voir la section Imprimantes
installées sur des machines distantes).
Dans notre exemple, nous allons permettre l'accès
à rattan
à quiconque, mais
seuls les membres du groupe artists
pourront utiliser bamboo
. Voici l'habituel
/etc/printcap
pour la machine
rose
:
# # /etc/printcap pour la machine rose - restreint au groupe pour 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:ms#-parenb cs8 clocal crtscts:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf:
Ne nous préoccupons pas de l'autre fichier
/etc/printcap
(pour la machine
orchid
). Bien entendu, n'importe qui sur
orchid
peut imprimer avec
bamboo
. Selon le cas, nous pourrons autoriser
que certains utilisateurs sur orchid
, et
leur donner accès à
l'imprimante. Ou non.
Il ne peut exister qu'un seul groupe de restriction par imprimante.
Si beaucoup de vos utilisateurs accèdent aux imprimantes, vous aurez sans doute besoin de fixer une limite supérieure à la taille des fichiers qu'ils peuvent soumettre à l'impression. Après tout, le système de fichiers hébergeant les répertoires de file d'impression ne peut offrir que l'espace libre dont il dispose, et vous devez également vous assurer que de la place existe pour les travaux d'impression des autres utilisateurs.
LPD vous permet de fixer la
taille maximale en octets qu'un fichier d'un travail
d'impression peut atteindre avec le paramètre
mx
. Les unités sont exprimées
en blocs de BUFSIZ
, valant 1024 octets. Si
vous donnez la valeur 0 à ce paramètre, la
taille ne sera pas du tout limitée; en revanche, si
aucun paramètre mx
n'est
défini, alors une limite par défaut de
1000 blocs sera utilisée.
La limite s'applique aux fichiers dans un travail d'impression, et non pas à la taille totale du travail d'impression.
LPD ne refusera pas un fichier dont la taille excède la limite que vous fixez pour une imprimante. Au lieu de cela, il placera les octets du fichier dans la file jusqu'à ce que la limite soit atteinte, puis imprimera. Les octets supplémentaires seront ignorés. S'il s'agit là d'un comportement approprié est un choix qui vous appartient.
Ajoutons des limites pour nos imprimantes d'exemple,
rattan
et bamboo
. Puisque
les fichiers PostScript® des utilisateurs du groupe artists
ont tendance à
être volumineux, nous allons les limiter à cinq
mégaoctets. Nous ne fixerons aucune limite pour l'imprimante
texte:
# # /etc/printcap pour la machine rose # # # Pas de limite sur la taille des travaux: # 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: # # Limite de cinq mégaoctets: # 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:ms#-parenb cs8 clocal crtscts:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf:
Là encore, les limites ne s'appliquent qu'aux
utilisateurs locaux. Si vous avez mis en place un accès
distant à vos imprimantes, les utilisateurs distants ne
seront pas contraints par ces limites. Il vous faudra
positionner le paramètre mx
dans les
fichiers
/etc/printcap
distants également. Lisez
la section Imprimantes
installées sur des machines distantes pour
obtenir plus d'informations sur l'impression à
distance.
Il existe une autre manière spécifique pour limiter la taille des travaux d'impression sur les imprimantes à distance; lisez la section Restreindre les impressions à distance.
Le gestionnaire d'impression LPD propose plusieurs moyens de restreindre les travaux d'impression soumis depuis des machines distants:
Vous pouvez contrôler de quelles machines
distantes les requêtes seront acceptées par
un LPD local avec les fichiers
/etc/hosts.equiv
et
/etc/hosts.lpd
.
LPD vérifie qu'une
requête entrante provient d'une machine listée
dans l'un de ces deux fichiers. Si ce n'est pas le cas,
LPD refuse la requête.
Le format de ces fichiers est simple: un nom de machine
par ligne. Notez que /etc/hosts.equiv
est également utilisé par le protocole
ruserok(3), et qu'il a un impact sur des programmes
comme rsh(1) et rcp(1), aussi soyez prudent.
Par exemple, voici le fichier
/etc/hosts.lpd
présent sur la
machine
rose
:
orchid violet madrigal.fishbaum.de
Cela signifie que rose
accepte les
requêtes provenant des machines
orchid
, violet
et
madrigal.fishbaum.de
. Si une
quelconque autre machine tente d'accéder au
LPD de rose
,
le travail d'impression sera refusé.
Vous pouvez contrôler combien d'espace doit
demeurer libre sur le système de fichiers où
se trouve un répertoire de file d'impression.
Créez un fichier nommé
minfree
dans le répertoire de
file d'impression pour l'imprimante locale.
Placez dans ce fichier un nombre représentant combien
de blocs disques (de 512 octets) d'espace libre il
doit rester pour qu'un travail d'impression soit
accepté.
Cela vous permet de vous assurer que des utilisateurs
distants ne rempliront pas votre système de
fichiers. Vous pouvez également vous en servir pour
accorder une certaine priorité aux utilisateurs
locaux: ils pourront placer des travaux d'impression dans
la file bien après que l'espace libre soit tombé
sous le seuil indiqué dans le fichier
minfree
.
Par exemple, ajoutons un fichier
minfree
pour l'imprimante
bamboo
. Nous examinons
/etc/printcap
pour trouver le
répertoire de file d'impression pour cette
imprimante; voici l'entrée concernant
bamboo
:
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:ms#-parenb cs8 clocal crtscts:rw:mx#5000:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf:
Le répertoire de file d'impression est
précisé par le paramètre
sd
. Nous placerons à trois
méga-octets (soit 6144 blocs disque) la limite
d'espace libre devant exister sur le système de
fichiers pour que LPD accepte
les travaux d'impression distants:
#
echo 6144 > /var/spool/lpd/bamboo/minfree
Vous pouvez contrôler quels utilisateurs distants
ont le droit d'imprimer sur les imprimantes locales en
positionnant le paramètre rs
dans /etc/printcap
. Lorsque
rs
est présent dans
l'entrée d'une imprimante connectée
localement, LPD acceptera les
travaux d'impressions de machines distantes
si l'utilisateur soumettant le travail
possède également un compte sous le
même nom sur la machine locale. Sinon,
LPD refusera le travail
d'impression.
Ce paramètre se révèle
particulièrement utile dans un environnement
où (par exemple) existent plusieurs services
qui partagent un réseau, et que des utilisateurs
débordent les frontières de ces services. En
leur donnant des comptes sur vos systèmes, vous
leur permettez d'utiliser vos imprimantes depuis les
systèmes de leur propre service. Si vous
préférez les autoriser à n'utiliser
que vos imprimantes et pas les
autres ressources de l'ordinateur, alors vous pouvez leur
attribuer des comptes « bloqués », sans
répertoire de connexion et avec un interpréteur de
commandes
inutilisable comme /usr/bin/false
.
Donc vous voulez faire payer vos impressions. Et pourquoi pas? Le papier et l'encre coûtent de l'argent. Et puis, il y a les coûts de maintenance—les imprimantes sont constituées de pièces mobiles et ont tendance à tomber en panne. Vous avez étudié vos imprimantes, vos modes d'utilisation et factures de maintenance, et avez abouti à un coût par page (ou par pied, par mètre, ou par ce que vous voulez). Maintenant, comment commencer à comptabiliser les impressions, dans les faits?
Eh bien, la mauvaise nouvelle est que le gestionnaire d'impression LPD ne vous aide pas beaucoup dans ce domaine. La comptabilisation dépend fortement du type d'imprimante que vous employez, des formats que vous imprimez et de vos besoins pour ce qui est de faire payer l'utilisation de l'imprimante.
Pour mettre en œuvre la comptabilisation, il vous faut modifier le filtre texte de l'imprimante (pour faire payer les travaux d'impression de texte brut) et ses filtres de conversion (pour faire payer les autres formats de fichiers), pour compter les pages ou demander à l'imprimante combien elle en a imprimées. Vous ne pouvez pas vous en tirer en utilisant le filtre de sortie simple, puisqu'il ne peut pas gérer la comptabilisation. Voir la section Les filtres.
En général, il existe deux façons de procéder à la comptabilisation:
La comptabilisation périodique est la plus habituelle, probablement parce que la plus facile. Chaque fois que quelqu'un imprime un travail, le filtre enregistre l'utilisateur, la machine et le nombre de pages dans un fichier de comptabilisation. Tous les mois, semestres, années ou toute autre échéance que vous désirez, vous récupérez les fichiers de comptabilisation des diverses imprimantes, établissez les pages imprimées par les utilisateurs, et faites payer l'utilisation. Purgez ensuite tous les fichiers de comptabilisation, pour commencer à zéro la nouvelle période.
La comptabilisation à la volée est moins répandue, peut-être parce qu'elle s'avère plus difficile. Cette méthode laisse les filtres s'occuper de taxer les utilisateurs pour les impressions dès qu'ils utilisent les imprimantes. Tout comme les quotas disques, la comptabilisation est immédiate. Vous pouvez empêcher les utilisateurs d'imprimer quand leur compte est dans le rouge, et pourriez leur fournir un moyen de vérifier et ajuster leurs « quotas d'impression ». Cependant, cette méthode nécessite la mise en oeuvre d'une base de données afin de tracer les utilisateurs et leurs quotas.
Le gestionnaire d'impression LPD gère les deux méthodes facilement: puisque vous devez fournir les filtres (enfin, la plupart du temps), vous devez également fournir le code de comptabilisation. Mais il y a un bon côté: vous disposez d'une énorme flexibilité dans vos méthodes de comptabilisation. Par exemple, vous avez le choix entre les comptabilisations périodique et à la volée. Vous avez le choix des informations à tracer: noms d'utilisateurs, noms de machines, types des travaux d'impression, pages imprimées, surface de papier utilisée, durée d'impression du travail, etc. Et vous le faites en modifiant les filtres afin d'enregistrer ces informations.
Deux programmes sont livrés avec FreeBSD qui vous
permettent de mettre en place une comptabilisation
périodique simple immédiatement. Il s'agit du
filtre texte lpf
, détaillé dans
la section lpf: un
filtre texte, et de pac(8), un programme qui
rassemble et fait le total des entrées contenues dans des
fichiers de comptabilisation d'impressions.
Comme indiqué dans la section sur les filtres (Fonctionnement des filtres),
LPD lance les filtres texte et de
conversion avec le nom du fichier de comptabilisation à
employer fourni en argument. Les filtres peuvent
utiliser ce paramètre pour savoir où écrire
un enregistrement de comptabilisation. Le nom de ce fichier provient du
paramètre af
dans
/etc/printcap
, et si le chemin donné
n'est pas absolu, alors c'est un chemin d'accès relatif
au répertoire de file d'impression.
LPD lance lpf
avec les paramètres de largeur et hauteur de page (qui
correspondent aux paramètres pw
et
pl
). Le filtre lpf
les utilise
pour déterminer combien de papier sera consommé.
Après avoir envoyé le fichier à
l'imprimante, il enregistre ensuite une entrée dans le
fichier de comptabilisation. Les entrées ressemblent
à ceci:
2.00 rose:andy 3.00 rose:kelly 3.00 orchid:mary 5.00 orchid:mary 2.00 orchid:zhang
Vous devriez utiliser un fichier de comptabilisation
séparé pour chaque imprimante, lpf
ne disposant pas de mécanisme de verrouillage
des fichiers, deux lpf
pourraient
corrompre leurs entrées respectives s'ils essayaient
d'écrire dans le même fichier en même temps.
Une manière aisée de s'assurer d'un fichier de
comptabilisation séparé pour chaque imprimante est de
recourir au paramètre af=acct
dans
/etc/printcap
. Dès lors, un
fichier de comptabilisation, nommé
acct
, sera placé dans le
répertoire de file d'impression de chaque imprimante.
Lorsque vous serez prêts à faire payer les
utilisateurs pour leurs impressions, lancez le programme
pac(8). Placez-vous simplement dans le répertoire
de file d'impression de l'imprimante pour laquelle vous
voulez collecter les informations, et tapez
pac
. Vous obtiendrez un récapitulatif
en dollars ressemblant à ceci:
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
Voici les arguments attendus par pac(8):
-Pimprimante
Pour quelle imprimante
effectuer un récapitulatif. Cette option ne
fonctionne que si un chemin d'accès absolu est donné
dans le paramètre af
de
/etc/printcap
.
-c
Trier selon le coût plutôt qu'alphabétiquement par nom d'utilisateur.
-m
Ignorer le nom de la machine dans les fichiers de
comptabilisation. Avec cette option, l'utilisateur
smith
sur la machine
alpha
est le même que l'utilisateur
smith
sur la machine
gamma
. Sans elle, ils représentent
des utilisateurs distincts.
-pprix
Calculer le coût en comptant un
prix
en dollars par page ou par pied
au lieu du prix indiqué par le paramètre
pc
dans /etc/printcap
,
ou deux cents (la valeur par défaut). Vous pouvez
préciser le prix
en nombre
à virgule flottante.
-r
Inverser l'ordre du tri.
-s
Créer un fichier de rapport et tronquer le fichier de comptabilisation.
nom
…
N'imprimer des statistiques que pour les utilisateurs
dont les nom
s sont
donnés.
Dans le récapitulatif produit par défaut par
pac(8), vous pouvez lire le nombre de pages imprimées
par chaque utilisateur depuis les différentes machines. Si, sur votre
site, la machine n'a pas d'importance (parce que les utilisateurs
peuvent utiliser n'importe quelle machine), lancez
pac -m
, afin de produire le récapitulatif
ci-dessous:
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
Afin de calculer le montant dû en dollars, pac(8)
utilise le paramètre pc
de
/etc/printcap
(200 par défaut,
c'est à dire 2 cents par page). Précisez avec
ce paramètre le prix par page ou par pied, exprimé
en centièmes de cents, que vous voulez imputer aux
impressions. Vous pouvez spécifier cette valeur lorsque vous
lancez pac(8) avec l'option -p
. Cependant,
avec cette option, les unités sont exprimées en
dollars, et non en centièmes de cents. Par exemple,
#
pac -p1.50
fait en sorte que chaque page coûte un dollar et cinquante cents. Vous pouvez vraiment faire des bénéfices en utilisant cette option.
Enfin, lancer pac -s
enregistrera les
informations du récapitulatif dans un fichier, dont le
nom sera le même que le fichier de comptabilisation de
l'imprimante mais avec le suffixe _sum
. Il
procède alors à la troncature du fichier de
comptabilisation. Lorsque vous exécutez pac(8)
à nouveau, il relit le fichier récapitulatif pour
établir les totaux de départ, puis ajoute les
informations du fichier de comptabilisation normal.
Afin de réaliser une comptabilisation précise et cela même à distance, vous devez pouvoir déterminer combien un travail d'impression consomme de papier. C'est le problème principal de la comptabilisation des impressions.
Pour du texte brut, ce problème n'est pas compliqué à résoudre: vous comptez combien un travail d'impression comporte de lignes et comparez avec le nombre de lignes par page que gère votre imprimante. N'oubliez pas de tenir compte des retours arrière dans le fichier, qui superposent les lignes, ou des longues lignes qui s'étendent sur une ou plusieurs lignes physiques supplémentaires.
Le filtre texte lpf
(présenté
à la section lpf: un
filtre texte) prend ces éléments en
considération lorsqu'il effectue la comptabilisation. Si
vous écrivez un filtre texte qui doit effectuer une
comptabilisation, vous pouvez vous inspirer du code source de
lpf
.
Mais comment gérer les autres formats?
Eh bien, pour la conversion DVI-vers-LaserJet ou
DVI-vers-PostScript®, vous pouvez faire analyser les messages de sortie
de dvilj
ou dvips
par
votre filtre et regarder combien de pages ont été
converties. Vous devriez pouvoir procéder de
manière identique avec d'autres formats de
fichiers et programmes de conversion.
Mais ces méthodes connaissent un défaut: il se peut que l'imprimante n'imprime pas toutes ces pages. Par exemple, un bourrage peut se produire, l'imprimante peut arriver à cours d'encre, ou exploser — et l'utilisateur serait tout de même débité.
Alors, que pouvez-vous faire?
Il n'existe qu'une seule méthode sûre pour procéder à une comptabilisation précise. Prenez une imprimante qui sache dire combien de papier elle utilise, et reliez-la par un câble série ou une connection réseau. Presque toutes les imprimantes PostScript® gèrent cela. D'autres types et modèles également (les imprimantes laser réseau Imagen, par exemple). Modifiez les filtres pour ces imprimantes afin d'obtenir la consommation de pages après chaque travail d'impression et faites en sorte qu'elles enregistrent des informations de comptabilisation basées sur cette seule valeur. Nul besoin de compter les lignes ou d'une analyse de fichier susceptible d'être erronée.
Bien entendu, vous pouvez toujours être généreux et rendre toutes les impressions gratuites.
Version française de Marc Fonvieille
<blackend@FreeBSD.org>
.
FreeBSD fournit une compatibilité binaire avec Linux®, permettant aux utilisateurs d'installer et d'exécuter la plupart des applications Linux® sur un système FreeBSD sans avoir à modifier ces applications. On rapporte également que dans certaines situations, les binaires Linux sont plus performants sous FreeBSD que sous Linux®,.
Il existe cependant certaines caractéristiques spécifiques à Linux®, qui ne sont pas supportées sous FreeBSD. Par exemple, des binaires Linux® ne fonctionneront pas sous FreeBSD s'ils utilisent massivement des appels i386™ spécifiques, comme activation du mode virtuel 8086.
Le support de la compatibilité Linux® pour les binaires 64bits a été ajouté avec FreeBSD 10.3.
Après la lecture de ce chapitre, vous connaîtrez:
Comment activer la compatibilité binaire avec Linux® sur un système FreeBSD.
Comment installer des bibliothèques partagées Linux® supplémentaires.
Comment installer des application Linux® sur un système FreeBSD.
Les détails de l'implémentation de la compatibilité Linux® sous FreeBSD.
Avant de lire ce chapitre, vous devrez:
Savoir comment installer des logiciels tiers.
Par défaut, les bibliothèques Linux® ne sont pas installées et la compatibilité binaire avec Linux n'est pas activée. Les bibliothèques Linux® peuvent être installées soit manuellement soit à partir du catalogue des logiciels portés.
Avant de tenter de compiler un logiciel, charger le module du noyau Linux®, sinon la compilation risque d'échouer:
#
kldload linux
Pour une compatibilité en 64bits:
#
kldload linux64
Pour vérifier que le module est bien chargé:
%
kldstat
Id Refs Address Size Name 1 2 0xc0100000 16bdb8 kernel 7 1 0xc24db000 d000 linux.ko
Le logiciel précompilé emulators/linux_base-c7 ou la version compilée à partir du catalogue des logiciels portés est la méthode la plus simple pour installer l'ensemble des bibliothèques et binaires de base Linux® sur un système FreeBSD. Pour installer le logiciel porté:
#
pkg install emulators/linux_base-c7
Pour activer au démarrage la compatibilité Linux®, ajouter
ligne suivante au fichier
/etc/rc.conf
:
linux_enable="YES"
Sur les machines 64bits, /etc/rc.d/abi
chargera automatiquement le module pour l'émulation
64bits.
Depuis qu'à été ajouté le support pour l'exécution des binaires Linux® 32 et 64 bits à la couche de compatibilité Linux® (sur les hôtes 64 bits de type x86), il n'est plus possible d'ajouter l'émulation en statique dans un noyau personnalisé.
Si une application Linux® se plaint de l'absence d'une bibliothèque partagée après avoir configuré la compatibilité binaire Linux®, déterminez quelle est la bibliothèque partagée nécessaire au binaire Linux® et installez-la à la main.
A partir d'un système Linux®, la commande
ldd
peut être utilisée pour déterminer
quelles sont les bibliothèques partagées dont l'application a
besoin. Par exemple, pour contrôler quelles bibliothèques
partagées sont nécessaires à linuxdoom
,
exécuter cette commande à partir d'un système Linux® où est
installé Doom:
%
ldd linuxdoom
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
Ensuite, copier tous les fichiers mentionnés dans la
dernière colonne, du système sous Linux® vers
/compat/linux
sur le système FreeBSD. Une
fois copiés, créer les liens symboliques vers les noms de
fichiers donnés dans la première colonne. Cet exemple donnera
lieu aux fichiers suivants sur le système FreeBSD:
/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
Si une bibliothèque Linux® partagée existe avec le même
numéro de version majeure que celle indiquée par la première
colonne du résultat de la commande ldd
, il
est inutile de la copier vers le nom de fichier donné par la
dernière colonne, la bibliothèque déjà existante devrait
fonctionner. Il est cependant recommandé de copier malgré
tout la bibliothèque partagée si c'est une version récente.
L'ancienne version peut être supprimée, du moment que le lien
symbolique pointe sur la nouvelle.
Par exemple, les bibliothèques suivantes existent déjà sur le système FreeBSD:
/compat/linux/lib/libc.so.4.6.27 /compat/linux/lib/libc.so.4 -> libc.so.4.6.27
et ldd
indique qu'un binaire a besoin
d'une version plus récente:
libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29
Etant donné que la bibliothèque existante n'a qu'une ou
deux versions de retard sur le dernier digit, le programme
devrait fonctionner avec la version légèrement plus ancienne.
Il est, néanmoins, plus sûr de remplacer la
libc.so
existante avec la version plus
récente:
/compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Généralement, vous ne devrez cherchez à savoir de quelles bibliothèques partagées dépendent les binaires Linux® que les premières fois que vous installerez des programmes Linux® sur le système FreeBSD. Au bout d'un moment, il y aura un ensemble suffisant de bibliothèques partagées Linux® sur le système pour être en mesure d'exécuter les binaires Linux® nouvellement importés sans effort supplémentaire.
Une étape supplémentaire est parfois nécessaire pour les binaires ELF. Quand un binaire ELF non marqué est exécuté, une erreur sera générée:
%
./mon-binaire-elf-linux
ELF binary type not known Abort
Pour que le noyau FreeBSD puisse distinguer un binaire ELF FreeBSD d'un binaire Linux®, vous devez employer l'utilitaire brandelf(1):
%
brandelf -t Linux mon-binaire-elf-linux
Les outils GNU incorporent désormais automatiquement les marques nécessaires dans les binaires ELF, cette étape n'est généralement pas nécessaire.
Pour installer une application Linux® basée sur
RPM, installer en premier le logiciel
précompilé ou porté archivers/rpm4. Une
fois installé, root
peut utiliser la commande suivante pour installer un
.rpm
:
#
cd /compat/linux
#
rpm2cpio < /path/to/linux.archive.rpm | cpio -id
Si nécessaire, utiliser brandelf
sur
les binaires ELF installés. Il faut noter
que cela empêchera une desinstallation propre.
Si le DNS ne fonctionne pas, ou si cette erreur apparaît::
resolv+: "bind" is an invalid keyword resolv+: "hosts" is an invalid keyword
Vous devrez configurer un fichier
/compat/linux/etc/host.conf
contenant:
order hosts, bind multi on
Cela indique qu'il faut tout
d'abord regarder dans le fichier /etc/hosts
puis interroger le DNS. Quand le fichier
/compat/linux/etc/host.conf
n'existe pas,
les applications Linux® trouvent le fichier
/etc/host.conf
et se plaignent de
sa syntaxe FreeBSD incompatible. Supprimez
bind
si un serveur de noms n'est pas configuré
avec le fichier
/etc/resolv.conf
.
Cette section décrit comment la
compatibilité binaire avec Linux® fonctionne, et est basée
sur un courrier électronique
de Terry Lambert <tlambert@primenet.com>
envoyé à la liste de diffusion pour la discussion de sujets non-techniques en rapport avec FreeBSD (Message ID:
<199906020108.SAA07001@usr09.primenet.com>
).
FreeBSD possède une abstraction appelée “chargeur de classe d'exécution”. C'est une portion de l'appel système execve(2).
Historiquement, le chargeur UNIX® examinait le nombre magique (généralement les 4 ou 8 premiers octets du fichier) pour voir si c'était un binaire connu par le système, et si c'était le cas, invoquait le chargeur binaire.
Si ce n'était pas le type de binaire du système, l'appel execve(2) retournait un échec, et l'interpréteur de commandes tentait de l'exécuter comme une commande d'interpréteur. Cette hypothèse était celle par défaut « quelque soit l'interpréteur de commandes actuel ».
Plus tard, une modification a été faite sur
sh(1) pour examiner les deux premiers caractères,
et s'ils étaient :\n
, alors elle
invoquait l'interpréteur de commandes csh(1)
à la place.
FreeBSD possède désormais une liste de chargeurs, avec un
chargeur par défaut, #!
, pour exécuter les
interpréteurs ou les procédures de commandes.
Pour le support de l'ABI Linux®, FreeBSD voit le nombre magique comme un binaire ELF. Le chargeur ELF recherche une marque spécifique, qui se trouve dans une section de commentaires dans l'image ELF, et qui n'est pas présente dans les binaires SVR4/Solaris™ ELF.
Pour que les binaires Linux® puissent fonctionner, ils
doivent être marqués sous le
type Linux
avec brandelf(1):
#
brandelf -t Linux file
Lorsque le chargeur ELF voit le marquage
Linux
, le chargeur remplace un pointeur
dans la structure proc
. Tous les appels
système sont indexés par
l'intermédiaire de ce pointeur (dans un système
UNIX® traditionnel, cela serait la structure
sysent[]
, contenant les appels
système). De plus, le processus est marqué pour
une gestion spéciale du vecteur d'interruption
(“trap”) pour le signal de code
“trampoline”, et plusieurs autres corrections
(mineures) qui sont gérées par le noyau
Linux®.