Questions Fréquemment Posées sur FreeBSD 2.X, 3.X et 4.X

Le projet de documentation FreeBSD

Version: 8def749c53

Copyright © 1995-2002 Le projet de documentation FreeBSD

Copyright

Résumé

Ceci est la FAQ pour les versions de FreeBSD 2.X, 3.X et 4.X. Toutes les entrées sont relatives à FreeBSD 2.05 et les versions ultérieures. La dernière version de ce document est disponible en anglais à l'adresse suivante : FreeBSD World Wide Web server . Ce document est également disponible en un seul fichier HTML sur le serveur HTTP du projet, ou en texte, PostScript, PDF, etc. sur le serveur FTP de FreeBSD. Vous pouvez aussi, chercher dans cette FAQ.

N.d.T.: La version française est publiée sur le serveur World Wide Web du groupe de traduction en langue française de la documentation de FreeBSD.

N.d.T.: Contactez la liste de diffusion du groupe d'utilisateurs francophones de FreeBSD <freebsd-questions@FreeBSD-fr.org> si vous voulez collaborer à ce projet.

Version française de Sébastien Gioria <gioria@FreeBSD.ORG>.

Première version de Sébastien Gioria <gioria@FreeBSD.ORG> et Tuyet Tram Dang Ngoc <dntt@prism.uvsq.fr>

[ Multiples pages HTML / Page HTML unique ]

Chapitre 1. Préface. **Mise à jour en cours**

1.1. Quel est le but de cette FAQ ?

Comme toutes les FAQ Usenet, ce document contient les questions les plus fréquemment posées à propos du système d'exploitation FreeBSD, ainsi que leurs réponses. Bien que destinées, à l'origine, à réduire le trafic et éviter que les mêmes questions soient posées encore et encore, les FAQ sont maintenant reconnues comme de précieuses sources d'information.

Tous les efforts ont été apportés pour rendre cette FAQ la plus complète possible. Si vous avez des commentaires la concernant ou si vous voulez y contribuer, envoyez un e-mail au responsable de cette FAQ.

1.2. FreeBSD c'est quoi ?

Pour résumer, FreeBSD 2.X est un système d'exploitation UN*X basé sur la distribution 4.4BSD-lite de l'université de Berkeley pour des plate-formes i386. Il est aussi basé indirectement sur le portage de William Jolitz de la distribution Net/2 de l'université de Berkeley, plus connu sous le nom de 386BSD, mais très peu de code de 386BSD subsiste. Une description plus complète de ce qu'est FreeBSD et à quoi il peut vous servir, peut être trouvée à la page d'accueil de FreeBSD.

FreeBSD est utilisé par des sociétés commerciales, fournisseurs d'accès à l'Internet, chercheurs, professionnels de l'informatique, étudiants et particuliers à travers le monde entier pour travailler, apprendre et se divertir. Reportez-vous à la galerie FreeBSD pour vous faire une idée.

Pour plus de détails et d'informations sur FreeBSD, référez vous au manuel de FreeBSD

1.3. Quels sont les buts de FreeBSD ?

L'objectif du projet FreeBSD est de fournir un logiciel qui puisse être utilisé à n'importe quelle fin et sans aucun restriction. Nombre d'entre nous sont impliqués de façon significative dans le code (et dans le projet) et ne refuseraient certainement pas une petite compensation financière de temps à autre, mais ce n'est certainement pas dans nos intentions d'insister là dessus. Nous croyons que notre première et principale “mission” est de fournir du code à tout le monde, pour n'importe quel projet, de façon à ce que l'il soit utilisé le plus possible et avec le maximum d'avantages. C'est, nous le pensons, l'un des objectifs les plus fondamentaux du Logiciel Libre et l'un de ceux que nous soutenons avec enthousiasme.

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.

1.4. Pourquoi le nom FreeBSD ?

Il peut être utilisé gratuitement, même pour un usage commercial.

L'intégralité des sources est disponible gratuitement, et le moins de restrictions possible ont été placées sur son utilisation, sa distribution et son incorporation dans d'autres travaux (à des fins commerciales ou non).

N'importe quelle personne qui a une nouvelle fonctionnalité et/ou une correction de bogue peut soumettre une portion de code, qui pourra être inclus dans l'arbre de développement (moyennant une ou deux conditions évidentes).

Pour ceux de nos lecteurs dont la langue maternelle n'est pas l'anglais, il est important de rappeler que le mot "free" est utilisé ici de deux manières, l'une signifiant "gratuitement" et l'autre "vous pouvez faire ce que vous voulez". Excepté une ou deux choses que vous ne pouvez pas faire avec le code FreeBSD, par exemple prétendre que vous l'avez développé, vous pouvez réellement faire ce que vous en voulez.

1.5. Quelle est la dernière version de FreeBSD ?

La version 3.1 est la dernière version stable ; elle a été mise en circulation en février 1999. C'est aussi la dernière version RELEASE.

En quelques mots, la branche-stable est destinée aux fournisseurs d'accès à l'Internet et autres utilisateurs professionnels qui recherchent un système stable ainsi que des changements mineurs lors de la mise à jour de leur système en dernière version.

1.6. Qu'est-ce que FreeBSD-current ?

FreeBSD-current est la version de développement du système d'exploitation, qui deviendra en temps utile la version 4.0-RELEASE. Comme telle, cette version ne peut intéresser que les développeurs du noyau ainsi que certains passionnés. Voyez la section appropriée du manuel pour plus de détails sur l'utilisation de -current.

Si vous n'êtes pas familier avec ce système d'exploitation, ou que vous n'êtes pas capable de différencier un problème temporaire d'un problème critique, vous ne devez pas utiliser FreeBSD-current. Cette branche évolue assez rapidement et peut ne pas être compilée pendant un certain temps. Les personnes utilisant FreeBSD-current doivent être capables d'analyser n'importe quel problème et de ne rapporter que les erreurs utiles.

Assez souvent, une version de test est créée depuis la branche de développement -current et occasionnellement une distribution sur CDROM est disponible. Les buts de chaque version de test sont les suivants:

Tester la dernière version du programme d'installation.

Donner aux personnes voulant utiliser -current mais n'ayant pas le temps ou la bande passante pour suivre jour après jour les évolutions du système, une façon simple de faire évoluer leur système.

Garder un point de synchronisation pour les sources du système actuel, juste au cas ou nous casserions quelque chose plus tard d'une façon irrécupérable (Bien sur, CVS nous empêche normalement d'en arriver là :-).

Vérifier que toutes les nouvelles fonctionnalités nécessitant des tests ont le nombre maximum de testeurs potentiels.

Aucune garantie ne peut être donnée sur le fait que les versions de test puissent être considérées comme des versions "de production". Pour des systèmes en production, vous devez attendre la version finale.

Les versions de test sont directement téléchargeables depuis ce site et sont générées en moyenne une fois par jour pour les branches 4.0-current et 3.0-stable.

1.7. Quel est le concept de la branche FreeBSD-stable ?

Revenons un peu en arrière, lorsque la version 2.0.5 de FreeBSD fut livrée, nous avons décidé de scinder le développement en deux branches. Une nommée -stable, où nous avons décidé de n'inclure que les correctifs testés et contenant quelques ajouts de fonctionnalités (pour les fournisseurs d'accès ou les sociétés à vocation commerciale où les fonctionnalités expérimentales sont plus qu'indésirables). L'autre nommée -current qui nous emmènera jusqu'à la version 4.0-RELEASE (et audelà) depuis la livraison 2.0. Un dessin ASCII qui vous montre à quoi ressemble l'arbre de développement :

                   2.0
                    |
                    |
                    |  [2.1-stable]
*Nouvelle BRANCHE*   2.0.5 -> 2.1 -> 2.1.5 -> 2.1.6 -> 2.1.7.1 [fin de la branche 2.1-stable]
                    |                                 (Mars 1997)
                    |
                    |
                    |  [2.2-stable]
*Nouvelle BRANCHE*   2.2.1 -> 2.2.2-RELEASE -> 2.2.5 -> 2.2.6 -> 2.2.7 -> 2.2.8 [fin]
                    |(Mars 1997)   (Octobre 97) (Avril 98)  (Juillet 98)  (Décembre 1998)
                    |
                    |
                 3.0-SNAPs  (Debut 1er trimestre 1997)
                    |
                    |
                 3.0.0-RELEASE (Octobre 1998)
                    |
                    |  [3.0-stable]
*Nouvelle BRANCHE*   3.1  (Feb 1999) -> ... future 3.x releases ...
                    |
                    |
                   \|/
                    +
            [4.0-current continues]

Figure 1.1. L'arbre de développement

La branche -current progresse lentement vers la version 4.0 et au-delà, la branche 2.2-stable étant terminée avec la version 2.2.8. La branche 3.0-stable l'a maintenant remplacée, la prochaine version arrivant avec la 3.1 au début 1999 . La version 4.0-current est maintenant la "branche courante" avec les premières versions 4.0 apparaissant au premier trimestre 2000.

1.8. Quand sont livrées les versions de FreeBSD ?

Les nouvelles versions de FreeBSD sont livrées quand l'équipe principale de FreeBSD décide qu'il y a suffisamment de nouveautés et/ou de correctifs pour justifier d'une version, et lorsqu'ils sont satisfaits des modifications apportées et qu'elles ne compromettent pas la stabilité de la version. Beaucoup d'utilisateurs pensent que cela fait partie des meilleures choses de FreeBSD, même si cela peut être un peu frustrant d'attendre que les derniers ajouts soient disponibles.

Les versions sont livrées à peu près tous les 4 mois en moyenne.

Pour les personnes qui ont besoin (ou veulent) d'un peu plus de risques, il y a les versions SNAP qui sont livrées un peu plus souvent (à peu près tous les mois).

1.9. Sur quelles plate-formes, autre que les PC, est disponible FreeBSD ?

Actuellement FreeBSD 3.x tourne sur une plate-forme DEC Alpha aussi bien que sur les architecture x86. Un intérêt a été exprimé pour un portage sur UltraSPARC mais les détails de ce projet ne sont pas encore clairs.

Si vous disposez d'une autre architecture, nous vous conseillons d'aller voir aux URLs suivantes:

NetBSD

OpenBSD

1.10. Qui sont les responsables de FreeBSD ?

Les décisions concernant le projet FreeBSD, comme les directions que vont prendre le projet ainsi que les personnes autorisées à ajouter du code dans le noyau, sont fixées par l'équipe principale , composée d'environ 15 personnes. Il y a une équipe un peu plus large d'environ 150 personnes qui ont le droit d'effectuer des changements dans le code.

Bien sûr, la plupart des changements sont discutés au préalable dans les listes de messagerie, et il n'y a aucune restriction sur qui peut prendre part à la discussion.

1.11. Où peut-on trouver FreeBSD ?

Toutes les versions sont disponibles via un ftp anonyme sur le site ftp de FreeBSD

Pour la version 2.2-stable, 2.2.8R, voir le répertoire 2.2.8-RELEASE.

Pour la version 3.0-stable, 3.0-RELEASE, voir le répertoire 3.0-RELEASE.

Les versions de tests 2.2 sont compilées une fois par jour tout au long de la vie de la branche RELENG_2_2 (post 2.2.8). Sauf gros incident, la branche RELENG_2_2 est maintenue avec extrêmement d'attention (pas de changements expérimentaux, correctifs ajoutés après test dans la branche -current uniquement).

Les versions de test 3.0 sont compilées une fois par jour depuis la branche RELENG_3 (post 3.0-release)jusqu'à la 3.1-RELEASE.

Les versions de test 4.0 sont compilées une fois par jour depuis la branche -current, ce service étant juste là pour les personnes voulant la tester, ou les développeurs.

FreeBSD est aussi disponible par CDROM chez :

En France

Le Monde en Tique
6 rue du Maître Albert
75005 PARIS
FRANCE
Téléphone :01 55 42 73 73
Télécopie :01 55 42 73 74
WWW:Serveur WWW du Monde en Tique
Ouverture : Du lundi au samedi, de 9h30 à 19h30 sans interruption
Métro : Ligne 10 : Station Maubert - Mutualité
Rer B : Cluny - La Sorbonne, Sortie : Boulevard Saint-Michel - Boulevard Saint-Germain
Rer C : Saint Michel - Notre Dame, Sortie : Notre-Dame

Infothèque
32, rue de Moscou
75008 Paris
Téléphone:01 45 22 67 01
Télécopie:01 42 93 73 83
WWW: Serveur WWW de infotheque

Aux USA

Walnut Creek CDROM
4041 Pike Lane, Suite F
Concord, CA  94520  USA
Commandes:     +1 800 786-9907
Questions:  +1 925 674-0783
FAX:        +1 925 674-0821
email:      Commandes Walnut Creek
WWW:        Serveur WWW de Walnut Creek

En Australie chez :

Advanced Multimedia Distributors
Factory 1/1 Ovata Drive
Tullamarine, Melbourne
Victoria
Australia
Tel: +61 3 9338 6777

CDROM Support BBS
17 Irvine St
Peppermint Grove  WA 6011
Tel: +61 9 385-3793
Fax:   +61 9 385-2360

En Angleterre :

The Public Domain & Shareware Library
Winscombe House, Beacon Rd
Crowborough
Sussex. TN6 1UL
Tel: +44 1892 663-298
Fax:   +44 1892 667-473

1.12. Où trouver de l'information sur les listes de messagerie ?

Vous trouverez ces informations dans la section sur les listes de diffusion du manuel

1.13. Quels sont les forums de discussion disponibles sur FreeBSD ?

Tous les forums sont listés dans la section sur les forums de discussion du manuel

1.14. Existe-t-il des canaux IRC(Internet Relay Chat) sur FreeBSD ?

Oui, la plupart des réseaux IRC comportent un canal FreeBSD.

Le canal #FreeBSD sur EFNET est sûrement le plus populaire et est disponible sur irc.chat.org.

Le canal #FreeBSD sur DALNET est disponible sur irc.dal.net pour les US et sur irc.eu.dal.net pour l'Europe.

Le canal #FreeBSD sur UNDERNET est disponible sur us.undernet.org pour les US et sur eu.undernet.org pour l'Europe.

Enfin vous pouvez rejoindre #FreeBSD sur BSDNET, un petit serveur de chat BSD sur irc.FreeBSD.org

Tous ces canaux sont distincts et ne sont pas interconnectés entre eux. Les discussions sur chaque canal diffèrent, donc essayez-les tous avant de trouver celui qui vous convient.

1.15. Quels sont les livres parlant de FreeBSD ?

Le livre de Greg Lehey's « stalling and Running FreeBSD » est disponible chez Walnut Creek CDROM et comprend le CDROM de la version 2.2.8. Il y a aussi un livre plus important nommé « The Complete FreeBSD » qui est lui livré avec certaines pages de manuel et qui inclut aussi les CDROMs de la version 2.2.8. Ils devraient aussi etre disponibles dans toutes les bonnes librairies.

Il existe aussi un projet se nommant "FreeBSD Documentation Project", que vous pouvez contacter (ou mieux, joindre) sur la « liste de diffusion doc » <freebsd-doc@FreeBSD.ORG>. Cette liste a pour but de discuter sur la documentation de FreeBSD. Les questions plus générales sur FreeBSD sont à poser dans la "mailing list" <freebsd-questions@FreeBSD.ORG>.

Un ``manuel'' sur FreeBSD est disponible. Sachez, pour information, que ce manuel est en perpétuelle évolution, et que certaines parties peuvent être incomplètes.

Comme FreeBSD 2.2.X est basé sur la version 4.4.BSD-lite2, la plupart des manuels relatifs à 4.4BSD peuvent s'appliquer à FreeBSD. Des versions imprimées sont disponibles chez O'Reilly:

4.4BSD System Manager's Manual By Computer Systems Research Group, UC
Berkeley 1st Edition June 1994, 804 pages ISBN 1-56592-080-5

4.4BSD User's Reference Manual By Computer Systems Research Group, UC
Berkeley 1st Edition June 1994, 905 pages ISBN 1-56592-075-9

4.4BSD User's Supplementary Documents By Computer Systems Research
Group, UC Berkeley 1st Edition July 1994, 712 pages  ISBN 1-56592-076-7

4.4BSD Programmer's Reference Manual By Computer Systems Research
Group, UC Berkeley 1st Edition June 1994, 886 pages ISBN 1-56592-078-3

4.4BSD Programmer's Supplementary Documents By Computer Systems
Research Group, UC Berkeley 1st Edition July 1994, 596 pages ISBN 1-56592-079-1

Une courte description de ces livres est disponible via WWW à l'adresse suivante : http://gnn.com/gnn/bus/ora/category/bsd.html. Vu le peu de ventes, ces livres sont relativement difficiles a trouver.

Pour plus d'informations sur le noyau 4.4BSD vous pouvez vous reporter au livre suivant :

McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and John Quarterman.

The Design and Implementation of the 4.4BSD Operating System.
 Reading, Mass. : Addison-Wesley, 1996.
ISBN 0-201-54979-4

Un bon livre sur l'administration système:

Evi Nemeth, Garth Snyder, Scott Seebass & Trent R. Hein,
``Unix System Administration Handbook'', Prentice-Hall, 1995
ISBN 0-13-151051-7

Attention à bien acheter la deuxième édition, version avec la couverture rouge, et non pas la première.

Ce livre couvre les bases de l'administration système aussi bien que TCP/IP, le DNS, NFS, SLIP/PPP, sendmail, INN/NNTP, l'impression, etc... Il est assez onéreux (environ 300-350 FF) mais est indispensable. Il comprend en plus un CDROM contenant énormément d'outils, dont la plupart sont inclus sur les CDROM de FreeBSD.

1.16. Comment accèder à la base de données des problèmes ?

La base de données des problèmes est accessible (pour soumission ou interrogation) en utilisant votre navigateur WWW pour la soumission ou pour l'interrogation . La commande send-pr(1) peut aussi être utilisée pour soumettre des problèmes et des modifications par courrier électronique.

1.17. Où peut-on trouver des versions ASCII/PostScript de cette FAQ ?

La dernière version de cette FAQ est disponible sur le serveur WWW de FreeBSD ou sur tout serveur miroir en PostScript ou texte (ASCII 7 bits et Latin1 8 bits).

Le PostScript (environ 370Ko) :http://www.freebsd-fr.org/FAQ/FAQ.ps

En format texte ISO 8859-1 (environ 220Ko): http://www.freebsd-fr.org/FAQ/FAQ.txt

1.18. Où peut-on trouver des versions ASCII/PostScript du manuel ?

La dernière version du manuel est disponible sur le serveur WWW de FreeBSD ou sur tout serveur miroir en PostScript ou texte (ASCII 7 bits et Latin1 8 bits).

Le PostScript (environ 1.7Mo) :http://www.freebsd-fr.org/handbook/handbook.ps

En format texte ISO 8859-1 (environ : 1.1Mo) :http://www.freebsd-fr.org/handbook/handbook.txt

1.19. La version ASCII du manuel ne contient pas que du texte !

C'est vrai. Les versions ASCII et Latin1 de la FAQ et du manuel ne contiennent pas que du texte. Elles contiennent des soulignés et d'autres codes qui supposent que l'impression sera faite sur une imprimante matricielle. Si vous avez besoin de reformater ces fichiers sous une forme plus lisible, lancez la commande col sur le fichier :

$ col -b < fichierOrigine > fichierSortie

1.20. Je voudrais devenir un miroir WWW de FreeBSD !

Bien sûr ! Différents moyens permettent de synchroniser les pages WWW.

En utilisant CVSUP: vous pouvez retrouver les pages formatées en HTML en utilisant CVSUP depuis cvsup.freebsd.org. Ajoutez simplement cette ligne à votre fichier cvsup:

www release=current hostname=/home base=/usr/local/etc/cvsup
prefix=/usr/local/www/data/www.freebsd.org delete old use-rel-suffix

En utilisant rsync: voir la page sur les miroirs pour les informations.

En utilisant un miroir ftp: vous pouvez télécharger la copie sur serveur WWW se trouvant sur le serveur ftp. Les fichiers se trouvent à ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/www .

1.21. Je veux traduire la documentation en Javanais

On ne peut pas vous payer, mais on peut s'arranger pour vous envoyer un CDROM gratuit ou un T-shirt et une entrée dans la liste des contributeurs du Handbook si vous nous soumettez une traduction de la documentation.

1.22. Autres sources d'informations.

Les forums de discussion suivants se rapportent à FreeBSD

fr.comp.os.bsd (en francais)

comp.unix.bsd.freebsd.announce (en anglais - modéré)

comp.unix.bsd.freebsd.misc (en anglais)

comp.unix.bsd.misc (en anglais)

Ressources WWW:

La page principale de FreeBSD

La page principale de fr.FreeBSD

Si vous possédez un portable, vous devez visiter la page de Tatsumi Hosokawa's Mobile Computing au Japon

Pour plus d'informations sur SMP (Symmetric MultiProcessing) voyez la page du support SMP

Pour plus d'informations sur les applications multimedia FreeBSD , voyez la page multimédia. Si vous vous intéressez plus spécialement à la capture vidéo Bt848 suivez ce lien.

Le manuel de FreeBSD contient une section bibliographie plus importante, si vous recherchez d'autres livres ou informations.

Chapitre 2. Installation. **Mise à jour en cours**

2.1. Quels fichiers télécharger pour installer FreeBSD ?

Vous n'avez généralement besoin que d'une image-disque, le fichier floppies/boot.flp, que vous copiez sur une disquette 1.44 Mo et qui permet de démarrer pour pouvoir télécharger le reste (l'installation prend en charge votre connexion TCP/IP, votre lecteur de bandes, CDROM, disquettes, partitions DOS, tout ce est nécessaire pour le reste de l'installation).

Si vous avez besoin de télécharger la distribution par vous même (pour une installation depuis une partition DOS par exemple), voici quels sont les fichiers à récupérer:

Tout le répertoire bin

Tout le répertoire manpages

Tout le répertoire compat

Tout le répertoire doc

Tous les fichiers src/ssys.*

Vous trouverez les instructions complètes pour cette procédure et un peu plus au sujet de l'installation en général dans la section installation de FreeBSD du manuel.

2.2. A l'aide ! L'image-disque de démarrage ne tient pas sur une seule disquette !

Une disquette 3,5 pouces (1.44 Mo) peut contenir jusqu'à 1474560 octets de données. La taille du fichier image est exactement 1474560 octets.

Les erreurs courantes concernant la création de la disquette de démarrage sont les suivantes :

Vous n'avez pas téléchargé l'image-disque en mode binary en utilisant FTP

Certains clients FTP mettent par défaut le transfert en mode ASCII, et essayent de changer le caractère de fin de ligne reçu pour correspondre aux conventions utilisées par le système client. Cela altère presque inévitablement le fichier image. Vérifiez la taille du fichier image téléchargé: si elle n'est pas exactement la même que sur le serveur, alors le processus de téléchargement est suspect.

Une solution simple : tapez binary à l'invite FTP, après la connexion sur le serveur et avant le démarrage du téléchargement de l'image.

Vous avez utilisé la commande DOS copy (ou une commande équivalente) pour transférer l'image de démarrage sur la disquette.

Les programmes comme copy ne fonctionnent pas correctement avec les images, car ils ne peuvent créer une disquette de démarrage. L'image est le contenu exact de la disquette, piste à piste, et ne peut être copiée sur la disquette comme un fichier normal. Vous devez la transférer sur la disquette en mode brut {raw} en utilisant les outils de bas niveau {low-level} fdimage ou rawrite. Ces outils sont décrits dans la section installation de FreeBSD du manuel.

2.3. Où sont les instructions pour installer FreeBSD ?

Les instructions d'installation de FreeBSD se trouvent dans la section installation de FreeBSD du manuel.

2.4. De quoi ai-je besoin pour faire tourner FreeBSD ?

Vous avez besoin d'un PC 386 ou mieux, avec 5Mo ou plus de mémoire vive (RAM) et au moins 60Mo de disque dur. Il suffit d'une carte graphique MDA, mais pour utiliser X11R6, une carte video VGA ou mieux est nécessaire.

Voir aussi la section compatibilité matérielle.

2.5. Je n'ai que 4Mo de mémoire vive. Puis-je installer FreeBSD ?

FreeBSD 2.1.7 est la dernière version de FreeBSD que l'on peut installer sur des systèmes avec 4Mo de mémoire vive. Les nouvelles versions de FreeBSD, comme la version 2.2, ont besoin d'au moins 5Mo de mémoire vive pour être installées sur un nouveau système.

Toutes les versions de FreeBSD, y compris la version 3.0, peuvent fonctionner avec 4Mo de mémoire vive, mais ne peuvent pas exécuter le programme d'installation en 4Mo. Vous pouvez ajouter de la mémoire vive supplémentaire pour le processus d'installation, si vous voulez, et quand le système fonctionne, revenir à 4Mo. Ou vous pouvez placer votre disque sur un système disposant de plus de 4Mo, effectuer l'installation et l'échanger à nouveau.

Il y a malgré tout des situations dans lesquelles FreeBSD 2.1.7 ne peut s'installer avec 4Mo. Pour être exact : cette version de n'installe pas avec 640Ko de mémoire de base et 3Mo de mémoire étendue. Si votre carte mère peut réallouer quelques blocs mémoire « perdue » hors de la région entre 640Ko et 1Mo alors vous pourrez installer FreeBSD 2.1.7

Regardez dans la configuration de votre BIOS si vous disposez d'un option « remap ». Si oui, activez la. Vous devez aussi désactiver la copie miroir de la mémoire ROM.

Il est plus simple d'augmenter la mémoire vive à plus de 4Mo pour l'installation, construire un noyau contenant juste les options dont vous avez besoin, puis revenir à une configuration avec 4Mo.

Vous pouvez dans le pire des cas, installer la version 2.0.5 et effectuer une mise à jour de votre système en version 2.1.7 avec l'option upgrade du programme d'installation de la 2.1.7.

Après l'installation, si vous construisez un noyau sur mesure, cela tournera sans problème avc 4Mo. Certaines personnes ont même réussi a démarrer sur un système disposant de 2Mo de mémoire vive (bien sûr le système fut complétement inutilisable :-)).

2.6. Comment créer ma propre disquette d'installation ?

Actuellement il n'y a pas de solution pour créer *juste* une disquette d'installation personnalisée. Vous devez créer une distribution complète, qui contiendra votre disquette d'installation. Le code se trouvant dans /usr/src/release/floppies/Makefile peut laisser supposer que vous pouvez créer votre disquette, mais ce n'est pas le cas actuellement.

Pour créer votre propre version, suivez les instructions se trouvant là.

2.7. Puis-je avoir plus d'un système d'exploitation sur mon PC ?

Voyez la page du tutoriel sur la cohabitation de plusieurs systèmes d'exploitation.

2.8. Est-ce que Windows 95 peut coexister avec FreeBSD ?

Installez en premier Windows 95, puis FreeBSD. Le gestionnaire de démarrage de FreeBSD, vous permet de démarrer indifféremment sous Windows 95 ou FreeBSD. Si vous installez Windows 95 en second, il surchargera votre gestionnaire de démarrage sans même poser une question. Si cela arrive, voir la section suivante.

2.9. Windows 95 a effacé mon gestionnaire de démarrage ! Comment le récupérer ?

Vous pouvez ré-installer le gestionnaire de démarrage de FreeBSD de deux manières :

Sous DOS, allez dans le répertoire tools de votre distribution FreeBSD et cherchez un programme bootinst.exe. Il vous l'exécutez ainsi:

c:\tools>bootinst.exe boot.bin

et le gestionnaire de démarrage sera ré-installé

Démarrez à nouveau sous FreeBSD avec la disquette de démarrage et allez dans le menu Custom installation. Choisissez Partition Sélectionnez le disque devant contenir le gestionnaire de démarrage (probablement le premier) et quand vous arrivez dans l'éditeur de partition, la première chose à faire (c'est à dire n'effectuer aucun changement) sélectionnez (W)rite. Vous serez interrogé pour confirmation, répondez yes, et quand vous obtenez le menu de sélection du gestionnaire de démarrage, assurez vous de bien sélectionner Boot manager. Cela re-écrit le gestionnaire de démarrage sur le disque. Ensuite quittez le programme d'installation et redémarrez à partir du disque dur normalement.

2.10. Peut-on installer FreeBSD sur un disque comportant des secteurs défectueux ?

La gestion des secteurs défectueux (voir la commande bad144) de FreeBSD n'est pas fiable à 100% ; il serait plus juste de dire que si vous disposez d'un disque IDE ou ESDI avec énormement de bad blocks, alors FreeBSD n'est pas pour vous ! En fait FreeBSD tourne sur des centaines de systèmes à base de disques IDE, il vaut mieux essayer avant de vous décourager.

Si vous avez un disque SCSI comportant des secteurs défectueux, voyez cette réponse

2.11. Il se passe des choses étranges lorsque je démarre depuis la disquette d'installation !

Si vous détectez des choses comme : un blocage de la machine, un redémarrage inopiné de votre système avec la disquette d'installation, posez vous les 3 questions suivantes :

Avez-vous utilisé une disquette neuve, sans erreurs (préférez une disquette sortie de la boîte plutôt qu'une disquette provenant du dernier magazine oublié sous votre lit depuis trois ans) ?

Avez vous téléchargé l'image en mode binaire (ne vous offusquez pas, même les meilleurs d'entre nous, ont téléchargé des fichiers en mode ASCII au moins une fois) ?

Si vous utilisez des systèmes d'exploitation récents comme Windows 95 ou Windows NT, avez vous arrété le système et redémarré en DOS simple et honnête ? Il semble que ces systèmes peuvent interférer avec des programmes qui écrivent directement sur le matériel, comme c'est le cas des programmes de création de disquette ; même en l'exécutant dans une fenêtre DOS de windows cela peut causer ces problèmes.

Certaines informations mentionnant que Netscape pose des problèmes en téléchargeant l'image de la disquette de démarrage, donc utilisez un client FTP différent si vous pouvez.

2.12. Je n'arrive pas à installer à partir de la bande

Si vous installez la version 2.1.7R à partir d'une bande, vous devez créer la bande en utilisant un facteur de blocage de 10 (5120 octets). Le facteur de blocage par défaut de tar est 20 (10240 octets), et les bandes crées en utilisant cette valeur par défaut ne peuvent pas être utilisées pour installer la version 2.1.7R ; avec ce type de bande vous obtiendrez une erreur disant que la taille des enregistrements est trop grande.

2.13. Connecter deux systèmes FreeBSD par les ports parallèle (PLIP)

Trouvez un câble "laplink". Vérifiez que les deux ordinateurs ont un noyau avec le support de pilote lpt.

      $ dmesg | grep lp
      lpt0 at 0x378-0x37f irq 7 on isa
      lpt0: Interrupt-driven port
      lp0: TCP/IP capable interface

Installez le câble "laplink" sur les ports parallèlle.

Configurez les paramètres de l'interface réseau pour lp0 des deux côtés en tant que root.

Par exemple, si vous voulez connecter l'ordinateur max avec moritz :

                 max <-----> moritz
IP Address    10.0.0.1      10.0.0.2

sur max, démarrez :

	# ifconfig lp0 10.0.0.1 10.0.0.2

sur moritz, démarrez :

	# ifconfig lp0 10.0.0.2 10.0.0.1

C'est tout ! Lisez aussi les manpages lp(4) and lpt(4).

Vous devez aussi ajouter les deux adresse dans /etc/hosts :

     127.0.0.1               localhost.my.domain localhost
     10.0.0.1                max.my.domain max
     10.0.0.2                moritz.my.domain moritz

Pour vérifier le bon fonctionnement faire :

sur max :

$ ifconfig lp0
lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000

$ netstat -r
Routing tables

Internet:
Destination        Gateway            Flags     Refs     Use     Netif Expire
moritz               max              UH          4   127592       lp0

$ ping -c 4 moritz
PING moritz (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms

--- moritz ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms

2.14. Peut-on effectuer une installation par le port parallèle (PLIP)

Connectez les deux ordinateurs avec un cable parallèle "Laplink"

             +----------------------------------------+
             |A-name A-End   B-End   Descr.  Port/Bit |
             +----------------------------------------+
             |DATA0  2       15      Data    0/0x01   |
             |-ERROR 15      2               1/0x08   |
             +----------------------------------------+
             |DATA1  3       13      Data    0/0x02   |
             |+SLCT  13      3               1/0x10   |
             +----------------------------------------+
             |DATA2  4       12      Data    0/0x04   |
             |+PE    12      4               1/0x20   |
             +----------------------------------------+
             |DATA3  5       10      Strobe  0/0x08   |
             |-ACK   10      5               1/0x40   |
             +----------------------------------------+
             |DATA4  6       11      Data    0/0x10   |
             |BUSY   11      6               1/0x80   |
             +----------------------------------------+
             |GND    18-25   18-25   GND -            |
             +----------------------------------------+

Figure 2.1. Cable parallèle

Voir aussi cette note sur la page de FreeBSD pour les portables

2.15. Quelle géométrie dois-je utiliser pour un disque ?

(Par le mot "géométrie" d'un disque, nous pensons aux nombres de cylindres, têtes et secteurs par pistes sur un disque - Nous dirons par la suite C/H/S. C'est de cette façon que le BIOS des PC arrive à écrire ou lire une zone du disque).

Cela peut préter à confusion pour différentes raisons. Premièrement, la géométrie physique d'un disque SCSI ne veut rien dire, de la façon dont FreeBSD utilise les blocs disques. En fait, on ne peut parler de « la » géométrie physique, la densité des secteurs variant sur le disque -ce que les fabricants appellent la « vraie » géométrie physique, c'est la géométrie qu'ils ont détérminé, pour avoir le moins d'espace perdu. Pour les disques IDE, FreeBSD voit en terme de C/H/S, mais tous les disques récents convertissent cela en blocs eux-mêmes.

Tout cela est, en fait, la géométrie logique   la réponse que le BIOS reçoit lorsqu'il demande « quelle est votre géométrie ? » et qu'il utilise pour accéder au disque. Comme FreeBSD utilise le BIOS pour démarrer, il est très important qu'elle soit juste. En particulier, si vous avez plus d'un système d'exploitation sur votre disque, ils doivent être d'accord sur la géométrie, sinon vous rencontrerez de graves problèmes au démarrage du système.

Pour les disques SCSI, la géométrie à utiliser dépend du support de translation étendu activé sur votre contrôleur (ou encore appelé « support pour les disques DOS >1Go » ou similaire). S'il n'est pas activé, utilisez N cylindres, 64 têtes et 32 secteurs par pistes, ou 'N' est la capacité du disque en Mo. Par exemple, pour un disque de 2Go vous devez utiliser 2048 cylindres, 64 têtes et 32 secteurs par piste.

Si cette option est active (c'est le cas la plupart du temps pour permettre de passer outre certaines limitations de MSDOS) et que le disque a une capacité de plus de 1Go, utilisez M cylindres, 63 têtes (et *pas* 64), et 255 secteurs par piste, où M correspond à la capacité en Mo divisé par 7.844238 (!). Donc, en prenant un disque de 2Go nous obtenons 261 cylindres, 63 têtes et 255 secteurs par piste.

Si vous n'êtes pas sûr de point, ou si FreeBSD n'arrive pas à détecter la géométrie correctement au moment de l'installation, la façon la plus simple de faire, est de créer une petite partition DOS sur le disque. La géométrie correcte sera alors détectée (et vous pourrez toujours retirer la partition DOS dans l'éditeur de partitions si vous ne voulez pas la garder ou conservez la pour la programmation de cartes réseau).

Une autre solution est d'utiliser un outil disponible librement distribué avec FreeBSD appelé pfdisk.exe (il se trouve dans le répertoire tools du CDROM de FreeBSD ou sur les sites ftp), qui permet de voir quelle géométrie utilisent les autres systèmes sur ce disque. Vous pourrrez ensuite entrer cette géométrie dans l'éditeur de partitions.

2.16. Y a-t-il des restrictions sur la façon de partitionner le disque ?

Oui. Vous devez vous assurer que la partition « / » « {root} » se trouve dans les 1024 premiers cylindres, pour permettre au BIOS de trouver le noyau. (Notez que c'est une limitation dûe au BIOS des PC et non pas à FreeBSD).

Dans le cas d'une disque SCSI, cela implique que la partition « / » « {root} » soit dans les 1024 premiers Mo (ou dans les 4096 premiers si la translation est en place - voir la question précédente). Pour un disque IDE, il faut qu'elle se trouve dans les 504 premiers Mo.

2.17. A propos des gestionnaires de disque ? Ou bien, j'ai un disque de grande capacité !

FreeBSD reconnait le gestionnaire "Ontrack Disk Manager" et le tolère. Les autres gestionnaires de disque ne sont pas supportés.

Si vous voulez utiliser le disque uniquement avec FreeBSD, vous n'avez pas besoin de gestionnaire de disque. Configurez simplement le disque pour utiliser le maximum de place reconnue par le BIOS (la plupart du temps 504Mo), et FreeBSD trouvera de lui même la capacité de votre disque. Si vous utilisez un vieux disque avec un controlleur MFM, vous devrez donner explicitement à FreeBSD le nombre de cylindres à utiliser.

Si vous voulez utiliser le disque avec FreeBSD et un autre système d'exploitation, vous n'aurez pas besoin d'un gestionnaire de disque: assurez vous que la partition de démarrage de FreeBSD et les tranches pour les autres systèmes d'exploitation se trouvent dans les 1024 premiers cylindres. Si vous êtes prudent, une partition de démarrage de 20Mo doit suffire.

2.18. Lors du démarrage de FreeBSD j'obtiens "Missing Operating System"

C'est le symptôme classique où FreeBSD et DOS, ou un autre système d'exploitation, sont en conflit à propos de la géométrie du disque. Vous devez alors réinstaller FreeBSD, en faisant attention à toutes les informations qui vous sont présentées.

2.19. Je ne peux pas aller plus loin que le message `F?' du gestionnaire de démarrage.

Ceci est un autre symptôme du problème décrit à la question précédente. La géométrie trouvée par le BIOS et celle de FreeBSD ne sont pas les mêmes. Si votre contrôleur ou votre BIOS supporte la translation de cylindres (souvent indiquée comme "Support des disques >1Go"), essayez de changer les paramètres et réinstallez FreeBSD.

2.20. Je dispose de plus de 16Mo de RAM. Est-ce que cela peut poser un problème ?

Mis à part les problèmes de performances, non. FreeBSD 2.X inclus des « bounce buffers » permettant à votre bus principal d'accéder à plus de 16Mo de mémoire. (Notez que cela n'est vrai que pour les périphériques ISA, et quelques périphériques EISA ou VLB).

Voyez aussi la section parlant des ordinateurs plus de 64Mo de RAM, si vous avez autant de mémoire, ou si vous utilisez un ordinateur Compaq ou un autre BIOS qui donne de mauvaises informations sur la mémoire disponible.

2.21. Dois-je installer tous les sources ?

La plupart du temps, non. Malgré tout, nous vous conseillons fortement d'installer, au minimum, les sources de base (sbase) ainsi que les sources du noyau (ssys). Il n'y a rien dans le système qui nécessite la présence des sources, sauf si vous désirez reconfigurer le noyau du système. A l'exception du noyau, notre structure de compilation est faite pour vous permettre de visualiser les sources (même en lecture seule) et de construire alors de nouveaux binaires. (En raison de la restriction des sources du noyau, nous vous recommandons de monter les sources ailleurs que dans /usr/src en créeant les liens symboliques appropriés permettant de dupliquer la structure complète des sources).

En ayant les sources à votre disposition et en sachant comment l'on construit un système avec, cela permettra d'avoir une façon très simple pour mettre à jour votre système vers les prochaines versions de FreeBSD.

Pour n'installer qu'une partie des sources, utilisez le menu Custom quand vous êtes dans le menu Distributions du programme d'installation. Le script src/install.sh peut installer aussi certains éléments des sources, en fonction des arguments que vous lui passez.

2.22. Suis-je obligé de construire un nouveau noyau ?

Construire un nouveau noyau, était encore, il y a quelque temps, une étape à peu près obligatoire après l'installation de FreeBSD, mais les nouvelles versions ont bénéficié d'un utilitaire de configuration du noyau plus sympathique. Au démarrage de FreeBSD et après l'invite de démarrage (boot:) utilisez le paramètre -c et vous aurez alors accès au menu de configuration visuel, qui vous permet de configurer les paramètres de la plupart des cartes ISA.

Il est encore recommandé construire un nouveau noyau contenant juste les pilotes dont avez besoin, seulement pour économiser un peu de RAM, mais ce n'est plus une exigence stricte pour la plupart des systèmes.

2.23. Je réside en dehors des Etats-Unis. Puis-je utiliser le DES ?

Si la méthode de cryptage DES ne vous est pas absolument nécessaire, alors vous pouvez utiliser le système de cryptage fourni par défaut avec FreeBSD et qui vous apporte une bien meilleure sécurité, sans aucune restriction d'exportation. Le cryptage des mots de passe par défaut de FreeBSD 2.0 est maintenant basé sur MD5, qui est plus difficile à casser que DES, avec un outil automatisé en raison de sa forte demande en temps de calcul, et qui permet aussi d'utiliser des mots de passe plus longs. La seule raison pour laquelle vous ne pouvez pas utiliser le cryptage basé sur MD5 est, si vous désirez utiliser la même entrée du fichier des mots de passe sur des systèmes FreeBSD et non-FreeBSD.

Comme l'algorithme de cryptage DES ne peut pas être légalement exporté en dehors des Etats-Unis, tout utilisateur non américain ne doit pas télécharger les logiciels l'incluant (se trouvant dans le répertoire sec des sites FTP américains)

Il y a cependant une librairie de remplacement disponible, libcrypt, basée sur des sources écrit en Australie par David Burren. Le code est maintenant disponible sur certains sites ftp miroirs en dehors des Etats-Unis. Les sources, ainsi que les binaires des programmes l'utilisant peuvent être téléchargés sur les sites ftp suivants:

Afrique du Sud:

ftp://ftp.internat.freebsd.org/pub/FreeBSD

ftp://storm.sea.uct.ac.za/pub/FreeBSD

Brésil:

ftp://ftp.iqm.unicamp.br/pub/FreeBSD

Finlande:

ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt

Cette distribution non-US peut être directement utilisée à la place de la distribution américaine. Ce paquetage s'installe de la même façon que le paquetage américain (regardez les notes d'installation du paquetage pour plus de détails). Si vous désirez installer le cryptage DES, vous devez l'installer le plus tôt possible, avant l'installation de tout autre logiciel.

Les utilisateurs ne résidant pas aux Etats-Unis ne doivent télécharger aucun programme de cryptage sur un site américain. Cela pourrait entrainer, pour les responsables du site depuis lequel le logiciel est téléchargé, de graves problèmes juridiques.

Une distribution non-US de Kerberos est aussi en cours de développement, et les versions courantes peuvent généralement être obtenues depuis un site FTP anonyme braae.ru.ac.za

Il existe aussi une liste de messagerie discutant de tous les logiciels non-US de cryptage. Pour plus d'informations, envoyez un email contenant le mot "help" dans le corps du message à <majordomo@braae.ru.ac.za>

2.24. La disquette de démarrage se bloque sur le message "Probing Devices..."

Si vous disposez d'un disque ZIP ou JAZ, retirez-le et recommencez. La disquette d'installation a des problèmes avec ce genre de disque. Une fois le système installé, vous pouvez reconnecter le disque. Si tout va bien ce problème sera fixé dans une version ultérieure.

2.25. J'obtiens le message "panic: cant mount root" lors du redémarrage de mon système après l'installation.

Cette erreur indique un conflit entre les blocs de démarrage du système et la connaissance du noyau sur les disques. Cette erreur arrive fréquemment dans le cas d'un système disposant de deux disques IDE, avec chaque disque installé en maître ou périphérique unique sur des contrôleurs séparés, avec FreeBSD installé sur le contrôleur IDE secondaire. Le programme de démarrage pense que le système est installé sur wd1 (le second disque vu par le BIOS) alors que le noyau affecte wd2 au premier disque du deuxième contrôleur. Après le test de tous les périphériques, le noyau essaye de « monter » ce que le programme de démarrage pense être le disque de démarrage, wd1, alors qu'il s'agit en fait de wd2 et échoue.

Pour résoudre ce problème, effectuez les opérations suivantes :

Au message de démarrage tapez : 1:wd(2,a)kernel puis Entrée. Si le système démarre, lancez la commande echo "1:wd(2,a)kernel" > /boot.config pour affecter la bonne chaîne de démarrage.

Déplacez le disque FreeBSD sur le controleur primaire, les disques sont alors vus de façon contigus.

Reconstruisez un noyau en modifiant les lignes de configuration wd pour avoir:

controller      wdc0    at isa? port "IO_WD1" bio irq 14 vector wdintr
disk            wd0     at wdc0 drive 0
# disk            wd1     at wdc0 drive 1 # comment out this line

controller      wdc1    at isa? port "IO_WD2" bio irq 15 vector wdintr
disk            wd1     at wdc1 drive 0 # change from wd2 to wd1
disk            wd2     at wdc1 drive 1 # change from wd3 to wd2

Puis installez le nouveau noyau. Si vous avez déplacé vos disques et vous voulez restaurer la configuration précédente, placez les disques dans la configuration désirée puis redémarrez. Votre système doit démarrer correctement.

2.26. Quelles sont les limites mémoire ?

Pour la mémoire, la limite est (en théorie) 4Go. Un essai a été fait avec un Go ; vous ne pourrez probablement pas acheter des PC i386 pouvant supporter plus que cela.

2.27. Quelles sont les tailles limites pour les systèmes de fichiers FFS ?

La taille maximum théorique d'un système de fichiers FFS est de 8 téraoctets (2G blocs) ou de 16To avec la taille de bloc par défaut de 8K. Il y a en pratique une limite logicielle à 1 téraoctet mais, avec quelques modifications, il est possible d'avoir des systèmes de fichiers de 4 téraoctet (et il en existe).

La taille maximum d'un fichier FFS est d'environ 1G blocs (4To), quand la taille de bloc est de 4K.

                         taille de fichier maximum
                 -----------------------------------------
                 2.2.7    3.0
taille de bloc   -stable  -current  marche  devrait marcher
--------------   -------  --------  ------  ---------------
4K               4T-1       4T-1    4T-1    4+T
8K               32+G       8T-1    32+G    16T-1
16K              128+G      16T-1   128+G   32T-1
32K              512+G      32T-1   512+G   64T-1
64K              2048+G     64T-1   2048+G  128T-1

Quand la taille du bloc est de 4K, l'adressage du bloc par indirection triple fonctionne et la limite devrait être définie par le plus grand numéro de bloc qui peut être reprété avec une indirection triple (approximativement 1K^3 + 1K^2 + 1K), mais la limite effective est en fait donnée par une valeur (erronée) de 1G-1 pour le nombre de blocs maximum. Cette valeur devraite être de 2G-1. Il y a des bogues avec les blocs dont le numéro est voisin de 2G-1, et ces blocs ne peuvent être adressés quand la taille du bloc est de 4K.

Pour les tailles de blocs de 8K et plus, tout devrait être limité par la valeur de 2G-1 pour les numéros de blocs, mais l'est en fait par la valeur maximum de 1G-1, hormis sous -stable, les blocs adressés par indirection triple ne peuvent être atteints, la limite est donc donnée par le plus grand numéro de bloc qui peut être adressé par une double indirection (approximativement (taille du bloc/4)^2 + (taille du bloc/4)), et dépasser cette limite sous -current peut poser des problèmes. Utiliser la valeur correcte de 2G-1 blocs posent à coup sûr des problèmes.

2.28. Comment puis-je mettre des fichiers de 1To sur une disquette ?

J'en ai plusieurs - virtuels - sur disquette :-). La taille maximum d'un fichier n'a pas de lien étroit avec la dimension maximum d'un disque. Un disque peut avoir jusqu'à un 1To. Il est fonctionnellement possible d'avoir un fichier plus grand que le disque.

L'exemple suivant crée un fichier de 8T-1 occupant 32K d'espace disque. (3 blocs indirects et 1 bloc de données) sur une petite partition racine. Il faut pour cela une version de la commande dd qui fonctionne sur de gros fichiers.

ttyv0:bde@alphplex:/tmp/q> cat foo
df .
dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1
ls -l z
du z
df .
ttyv0:bde@alphplex:/tmp/q> sh foo
Filesystem  1024-blocks     Used    Avail Capacity  Mounted on
/dev/sd0a         64479    27702    31619    47%    /
1+0 records in
1+0 records out
1 bytes transferred in 0.000187 secs (5346 bytes/sec)
-rw-r--r--  1 bde  bin  8796093022207 Sep  7 16:04 z
32	z
Filesystem  1024-blocks     Used    Avail Capacity  Mounted on
/dev/sd0a         64479    27734    31587    47%    /
ttyv0:bde@alphplex:/tmp/q> exit

Bruce Evans, September 1998

Chapitre 3. Compatibilité matérielle. **Mise à jour en cours**

3.1. Quels sont les types de disques durs supportés par FreeBSD ?

FreeBSD supporte les disques EIDE et SCSI (pour les contrôleurs compatibles, voir la section suivante), ainsi que tous les disques utilisant l'interface originale "Western Digital" (MFM, RLL, ESDI et bien sûr IDE). Quelques contrôleurs ESDI utilisant des interfaces propriétaires peuvent ne pas marcher: utilisez les interfaces WD1002/3/6/7 et leurs clones.

3.2. Quels sont les contrôleurs SCSI supportés ?

Voir la liste complète dans le Handbook.

3.3. Quels sont les lecteurs CD-ROM supportés par FreeBSD ?

N'importe quel lecteur SCSI connecté à un contrôleur supporté est supporté.

Les interfaces CD-ROM propriétaires suivantes sont aussi supportées:

Mitsumi LU002 (8 bits), LU005 (16 bits) et FX001D (16 bits double vitesse).

Sony CDU 31/33A

CD-ROM Sound Blaster Non-SCSI

CD-ROM Matsushita/Panasonic

CD-ROM ATAPI compatible IDE

Toutes les cartes non-SCSI sont connues pour être extrêmement lentes par rapport aux lecteurs SCSI, et certains CDROM ATAPI peuvent ne pas être pris en charge.

A partir de la version 2.2, le CD-ROM FreeBSD de Walnut Creek permet de démarrer directement FreeBSD depuis le CD.

3.4. Est-ce que FreeBSD supporte les lecteurs ZIP ?

FreeBSD supporte bien sûr les lecteurs ZIP SCSI de base  - out of the box. Les lecteurs ZIP ne peuvent être réglés que pour marcher sur les cibles SCSI d'adresse 5 ou 6, mais si le BIOS de votre adaptateur SCSI hôte le permet, vous pourrez même démarrer à partir du ZIP. Je ne sais pas quel adaptateur SCSI hôte vous permet de démarrer depuis des cibles autres que 0 ou 1... regardez votre documentation (et dites moi si cela marche pour vous).

Les ZIP ATAPI (IDE) sont pris en charge par FreeBSD 2.2.6 ainsi que par les versions ultérieures.

FreeBSD 3.0-STABLE contient le support pour lecteur ZIP sur port parallèle, mais pour cela, vous aurez à construire un nouveau noyau avec support pour ppbus (Parallel Port Bus) afin d'utiliser le ZIP. Prendre le fichier de configuration LINT comme exemple.

Regarder aussi cette note traitant des disques amovibles, ainsi que celle sur le 'formatage'.

3.5. Est-ce que FreeBSD supporte JAZ, EZ et autres disques amovibles ?

A part la version IDE du lecteur EZ, ce sont tous des périphériques SCSI, alors pour FreeBSD, ils sont considérés comme des disques SCSI, et le lecteur IDE EZ est considéré comme un lecteur IDE.

Je ne suis pas sûr que FreeBSD supporte correctemement un changement de media en cours de fonctionnement. Vous devrez bien sûr démonter le lecteur avant l'échange, et vous assurer que les unités externes soient allumées pendant le démarrage du système de sorte que FreeBSD puisse les voir.

3.6.  Quelles sont les cartes séries multi-ports prises en charge par FreeBSD ?

Une liste est disponible à la section périphériques divers du handbook.

A notre connaissance, certaines cartes clone sans marque sont connues pour fonctionner, en particulier celles qui se disent être compatibles AST.

Regarder la page de manuel sio pour plus d'informations sur la configuration de telles cartes.

3.7. J'ai une souris bus inhabituelle. Comment la configurer ?

FreeBSD supporte les souris bus et les souris bus InPort de constructeurs tels que Microsoft, Logitech et ATI. Le contrôleur du bus est compilé dans le noyau GENERIC par défaut. Si vous construisez un noyau personalisé avec le contrôleur de souris bus, assurez-vous d'avoir bien mis la ligne suivante dans le fichier de configuration du noyau :

device mse0 at isa? port 0x23c tty irq5 vector mseintr

La souris bus vient souvent avec une interface dédiée. Cela vous permet de mettre une adresse de port et un numéro d'IRQ autres que ceux donnés ci-dessus. Reportez-vous au manuel de votre souris et à la page de manuel mse pour plus d'informations.

3.8. Comment utiliser ma souris PS/2 (``port souris'' ou ``clavier'') ?

Si vous utilisez une version de FreeBSD post-2.2.5, le pilote nécessaire, psm, est inclu et activé dans le noyau. Le noyau devrait détecter votre souris PS/2 au moment du démarrage.

Si vous utilisez une version précédente mais assez récente de FreeBSD (2.1.x ou mieux), alors vous pouvez simplement l'activer dans le menu de configuration du noyau à l'installation, ou plus tard avec -c à l'invite du démarrage (boot). Il est désactivé par défaut, c'est pourquoi vous aurez à l'activer explicitement.

Si vous utilisez une version plus ancienne du noyau, alors vous aurez à ajouter la ligne suivante dans la configuration de votre noyau, et compiler un nouveau noyau :

device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr

Voir la section du Handbook sur la configuration du noyau si vous n'avez aucune expérience dans la construction d'un noyau.

Un fois que vous aurez un noyau détectant correctement psm0 au moment du démarrage, assurez vous qu'une entrée pour psm0 existe bien dans /dev. Vous pouvez le faire en tapant :

cd /dev; sh MAKEDEV psm0

une fois loggué sous root.

3.9. Puis-je utiliser ma souris en dehors de X Window ?

Si vous utilisez le pilote de console par défaut, syscons, vous pourrez utiliser un curseur souris dans les consoles texte pour couper et coller du texte. Lancer le démon (de gestion de la) souris : moused, et déclencher le curseur de souris dans la console virtuelle.

moused -p /dev/xxxx -t yyyy
vidcontrol -m on

Où xxxx est le nom du périphérique souris et yyyy le type de protocole pour la souris. Voir la page de manuel moused pour les types de protocoles supportés.

Peut-être préférez-vous lancer le démon gérant la souris au moment du démarrage du système. Dans la version 2.2.1, positionnez les variables suivantes dans /etc/sysconfig.

mousedtype="yyyy"
mousedport="xxxx"
mousedflags=""

Dans les versions 2.2.2 et plus, positionnez les variables suivantes dans /etc/rc.conf.

moused_type="yyyy"
moused_port="xxxx"
moused_flags=""

A partir de la version 2.2.6 de FreeBSD, le démon souris est capable de déterminer le type de protocole approprié automatiquement à moins que votre souris série ne soit d'un modèle relativement ancien. Spécifiez ``auto'' comme protocole pour activer la détection automatique.

Quand le démon souris tourne, l'accès à la souris doit être coordonné entre le démon souris et les autres programmes comme X-Window. Se référer à une autre section de ce document.

3.10. Comment puis-je couper et coller du texte avec ma souris dans ma console texte ?

Une fois que vous aurez réussi à lancer le démon souris (voir section précédente), appuyez en le maintenant sur le bouton 1 (bouton de gauche) et déplacez la souris afin de sélectionner une partie du texte. Puis, appuyez (clicquez) sur le bouton 2 (bouton du milieu) ou bouton 3 (bouton de droite) pour le coller à l'endroit du curseur texte.

Dans les versions 2.2.6 et plus, un clic sur le bouton 2 collera le texte. Un clic sur le bouton droit ``étendra'' la partie de texte sélectionné. Si votre souris n'a pas de bouton du milieu, vous pouvez l'émuler ou redéfinir les boutons en utilisant les options de la souris. Se reporter à la page de référence moused pour plus de détails.

3.11. Ma souris a une roulette et des boutons ésotériques. Puis-je les utiliser sous FreeBSD ?

Malheureusement, la réponse est: ``Cà dépend''. Ces souris avec des fonctionnalités supplémentaires ont besoin de pilotes spéciaux dans la majorité des cas. Alors, à moins que le pilote de la souris ou que le programme utilisateur ait un support spécifique pour cette souris, la souris se comportera comme une souris standard 2 ou 3 boutons.

3.12. Comment utiliser la souris/trackball/touchpad de mon portable ?

Se référer à la réponse à la question précédente, ainsi qu'à cette section sur les ordinateurs portables.

3.13. Quels types de lecteurs de bandes sont supportés ?

FreeBSD supporte les lecteurs de bandes magnétique SCSI, QIC-36 (avec une interface QIC-02) et QIC-40/80 (basés sur l'interface Floppy). Ceci inclut les lecteurs 8-mm (connus sous le nom d'Exabyte) et lecteurs DAT. Les lecteurs QIC-40/80 sont connus pour être lents.

Parmi les premiers lecteurs 8-mm, quelques-uns ne sont pas tout à fait compatibles SCSI-2, et peuvent de ce fait ne pas très bien marcher avec FreeBSD.

3.14. FreeBSD supporte-t-il les changeurs de bandes ?

FreeBSD 2.2 gère les changeurs SCSI en utilisant le périphérique ch ainsi que la commande chio. Pour avoir plus de détails sur le contrôle du changeur, lisez la page du manuel chio.

Si vous n'utilisez pas AMANDA ou un autre produit qui gère déjà les changeurs, souvenez-vous qu'ils ne savent que déplacer une bande d'un point à un autre. Par conséquent, vous devrez garder une trace de l'emplacement dans lequel une bande est mise, ainsi que celui où la bande courante devra revenir.

3.15. Quelles sont les cartes son supportées par FreeBSD ?

FreeBSD prend en charge les cartes son: SoundBlaster, SoundBlaster Pro, SoundBlaster 16, Pro Audio Spectrum 16, AdLib et Gravis UltraSound. Il y a aussi un support limité pour les cartes MPU-401 et compatible MIDI. Les cartes conformes aux spécifications Microsoft Sound System sont aussi supportées par l'intermédiaire du pilote pcm.

Note:

Ceci n'est valable que pour les sons! Ce pilote ne supporte pas les CD-ROMs, SCSI ou joysticks sur ces cartes, excepté pour la SoundBlaster. L'interface SCSI SoundBlaster et quelques CD-ROM non-SCSI sont aussi supportés. Mais vous ne pourrez pas démarrer depuis ces périphériques.

3.16. Quels sont les cartes réseau supportées par FreeBSD ?

Regarder la section cartes éthernet du handbook pour une liste complète.

3.17. Je n'ai pas de coprocesseur arithmétique. Est-ce un problème ?

Note:

Cela ne touche que ceux qui ont un 386/486SX/486SLC - toutes les autres machines en ont déjà un intégré dans la CPU.

En règle générale, il n'y a pas d'inconvénient, mais il existe des circonstances dans lesquelles cela peut causer des problèmes aussi bien au niveau des performances qu'au niveau de la précision du code d'émulation arithmétique (voir la section sur l'émulation FP). En particulier, le dessin de courbes sous X sera TRES lent. Il est hautement recommandé d'acheter un coprocesseur arithmétique : c'est quand même mieux avec !

Note:

Certains coprocesseurs mathématiques sont meilleurs que d'autres. Cela nous peine de le dire, mais personne n'a jamais été licencié pour avoir acheté de l'Intel. A moins que d'être sûr qu'ils fonctionnent avec FreeBSD, méfiez-vous des clones !

3.18. Quels autres périphériques la version 2.X supporte-t-elle ?

Lire le Handbook pour obtenir la liste des périphériques supportés.

3.19. FreeBSD supporte-t-il le gestionnaire d'énergie de mon portable ?

FreeBSD supporte l'APM sur certaines machines. Regardez dans le fichier de configuration du noyau LINT, et cherchez le mot-clef APM.

3.20. Solutions de contournement pour des problèmes matériels particuliers.

Cette section traite de solutions de contournement pour des problèmes rencontrés par nos utilisateurs sur certains matériels particuliers.

3.20.1. Les systèmes Micron sont suspendus au moment du démarrage.

Certaines cartes mères Micron ont des implémentations non-conformes de PCI BIOS, ce qui peut poser des problèmes lorsque FreeBSD démarre car les périphériques PCI ne sont pas configurés à l'adresse annoncée.

Désactivez l'option "Système d'exploitation Plug and Play" dans le BIOS pour contourner ce problème. Des compléments d'informations peuvent être trouvés à "http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron"

3.21. J'ai un nouveau contrôleur Adaptec, et FreeBSD ne le reconnait pas.

Les nouvelles puces de la série Adaptec AIC789x sont supportées dans le cadre du CAM SCSI qui démarre avec la 3.0. Des patches pour la version 2.2-STABLE sont disponibles à ftp://ftp.freebsd.org/pub/FreeBSD/cam/ Une disquette d'amorce avec CAM est disponible à http://www.freebsd.org/~abial/cam-boot/. Dans les deux cas, lisez le fichier README avant toute chose.

3.22. J'ai un modem interne plug'n play, et FreeBSD ne le reconnait pas.

Vous devez ajouter l'ID PnP du modem à la liste des ID PnP dans le pilote série. Pour activer le support Plug & Play, il faut compiler un nouveau noyau avec controller pnp0 dans le fichier de configuration, puis redémarrer le système. Le noyau affichera alors l'ID PnP de tous les périphériques qu'il trouvera. Copier alors l'ID PnP du modem dans le tableau de /sys/i386/isa/sio.c, vers la ligne 1200. Cherchez la chaîne de caractère "SUP1310" dans la structure "siopnp_ids[]" pour trouver le tableau. Construire à nouveau le noyau, installer, redémarrer, et votre modem devrait être reconnu.

Vous pouvez configurer manuellement les périphériques PnP en utilisant la commande `pnp' à la configuration au moment du démarrage, avec une commande du style :

pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8

pour afficher le modem.

3.23. Comment puis-je obtenir l'invite de commande ``boot:'' sur la console série ?

Construire un noyau avec options COMCONSOLE.

Créer un fichier /boot.config avec pour seul contenu -P

Déconnecter le clavier du système.

Redardez /usr/src/sys/i386/boot/biosboot/README.serial pour plus d'informations.

3.24. Pourquoi ma carte réseau 3Com PCI ne marche pas avec mon Micron ?

Certaines cartes mères Micron ont une implémentation non-conforme du BIOS PCI qui ne configure pas les périphériques PCI à l'adresse annoncée. Cela cause des problèmes quand FreeBSD démarre.

Pour contourner ce problème, désactiver l'option "Système d'exploitation Plug and Play" dans le BIOS.

Pour plus d'informations sur ce problème, allez voir à l'URL: http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron

3.25. FreeBSD supporte-t-il les Multiprocesseurs Symétriques (SMP) ?

SMP n'est supporté que dans la version 3.0-STABLE et les versions suivantes.

Chapitre 4. Résolutions des incidents. **Mise à jour en cours**

4.1. J'ai des secteurs défectueux sur mon disque dur !

Pour les disques SCSI, le disque devrait être capable de réallouer ceux-ci automatiquement. Quoiqu'il en soit, beaucoup de disques sont livrés avec cette fonctionnalité désactivée, pour une raison mystérieuse...

Pour l'activer, vous aurez à éditer le first device page mode, ce qui peut être fait sur FreeBSD en tapant la commande (sous root)

	scsi -f /dev/rsd0c -m 1 -e -P 3

et en changeant la valeur de AWRE et ARRE de 0 à 1 :

	AWRE (Auto Write Reallocation Enbld):  1
	ARRE (Auto Read Reallocation Enbld):  1

Les paragraphes suivants ont été soumis par Ted Mittelstaedt :

Pour les disques IDE, le moindre secteur défectueux est habituellement un signe d'incident potentiel. Tous les disques IDE modernes sont livrés avec la réallocation des secteurs défectueux activée. Tous les fabriquants de disques durs IDE offrent aujourd'hui des garanties étendues et remplaceront les disques possédant des secteurs défectueux.

Si vous voulez toutefois essayer de récupérer un disque IDE avec des secteurs défectueux, vous pouvez essayer de télécharger le programme de diagnostic du fabriquant de disque IDE et de le faire exécuter sur le disque. Quelquefois, ces programmes peuvent être configurés pour forcer l'électronique du disque à rebalayer le disque pour les secteurs défectueux et leur inhibition.

Pour les disques ESDI, RLL et MFM, les secteurs défectueux font partie de la vie normale du disque et ne sont pas signes d'incidents, généralement. Avec un PC, la carte contrôleur de disque et le BIOS prennent en charge la tâche d'inhibition des secteurs défectueux. C'est bien pour les systèmes d'exploitation comme DOS qui utilisent le code du BIOS pour accéder au disque. Toutefois, le driver de disque FreeBSD ne passe pas par le BIOS, aussi un mécanisme, bad144, existe pour remplacer cette fonctionnalité. bad144 ne fonctionne qu'avec le driver wd, il ne peut pas être utilisé avec le SCSI. bad144 fonctionne en entrant tous les secteurs défectueux trouvés dans un fichier spécial.

Un inconvénient avec bad144 -  le fichier spécial des secteurs défectueux est placé sur la dernière piste du disque. Comme ce fichier contient peut-être une liste de secteurs dont l'un serait près du début du disque, où le fichier noyau /kernel serait aussi localisé, il doit donc être accéssible au progamme d'amorce (bootstrap) qui utilise les appels du BIOS pour lire le fichier du noyau. Cela signifie qu'un disque géré avec bad144 ne peut dépasser 1024 cylindres, 16 têtes et 63 secteurs. Cela place une limite effective de 500Mo sur un disque qui est réalloué avec bad144.

Pour utiliser bad144, positionnez simplement le balayage des secteurs défectueux Bad Block à ON dans le menu fdisk de FreeBSD lors de l'installation initiale. Cela marche jusqu'à la version 2.2.7 de FreeBSD. Le disque doit avoir moins de 1024 cylindres. Il est généralement recommandé de laisser tourner préalablement le disque pendant plus de 4 heures avant cette opération, pour tenir compte de la dilatation thermique et des pistes errantes.

Si le disque a plus de 1024 cylindres (comme un gros disque ESDI), le contrôleur ESDI utilise un mode de translation spécial pour le faire fonctionner sous DOS. Le driver wd comprend ces modes de translation, si vous entrez la géométrie "translatée" avec la commande set geometry dans fdisk. De plus, vous ne devez pas utiliser le mode dangerously dedicated de création d'une partition FreeBSD, parce qu'il ignore la géométrie. De plus, même si fdisk va utiliser votre géométrie surchargée, il continue à connaître la vrai taille du disque et va tenter de créer une partition FreeBSD trop grande. Si la géométrie du disque est remplacée par la géométrie translatée, la partition doit être créée manuellement avec le nombre de secteurs.

Un truc rapide à utiliser est d'initialiser le gros disque ESDI avec le contrôleur ESDI, le démarrer avec un disque DOS et le formatter avec une partition DOS. Puis, démarrez l'installation FreeBSD et dans le menu fdisk, lire depuis l'écran et écrire à côté la taille et le nombre de secteurs de la partition DOS. Puis, réinitilisez la géométrie comme celle de DOS en détruisant la partition DOS et en créant une partition FreeBSD cooperative avec la taille précédemment notée. Puis positionnez la partition pour être amorçable et autorisez le balayage des secteurs défectueux. Pendant l'installation réelle, bad144 passera en premier, avant la moindre création de systèmes de fichiers (vous pouvez le voir avec un Alt-F2). S'il a le moindre problème pour créer le fichier des secteurs défectueux, vous avez initialisé une géométrie de disque trop grande - redémarrez le système et recommencez tout depuis le début (y compris le repartitionnement et reformattage en DOS).

Si la réallocation est autorisée et que vous voyez des secteurs défectueux, envisagez un remplacement du disque. Les secteurs défectueux ne feront que s'aggaver au fil du temps.

4.2. FreeBSD ne reconnait pas ma carte EISA SCSI Bustek 742a !

Cette information est spécifique à la 742a, mais peut aussi couvrir les autres cartes Buslogic (Bustek = Buslogic).

Il y a 2 ``versions'' générales de la carte 742a. Ce sont les révisions matérielles A-G et H - et plus. La lettre de révision est placée après le numéro d'assemblage sur le bord de la carte. La 742a possède 2 puces ROM dessus, l'une est la puce BIOS et l'autre est la puce Firmware. Si FreeBSD ne fait pas attention à la version de la puce BIOS que vous avez, il le fait par contre pour la version de la puce Firmware. Buslogic vous enverra des ROMs de mise à jour si vous appelez leur support technique. Les puces BIOS et Firmware sont appariées. Vous devez avoir la ROM Firmware la plus en cours dans votre carte d'adaptatation pour votre révision de matériel.

Les cartes REV A-G ne peuvent recevoir que les versions de BIOS/Firmware 2.41/2.21. Les cartes REV H - et plus peuvent accepter les plus récente versions de BIOS/Firmware 4.70/3.37. La différence entre ces jeux de firmware est que le 3.37 supporte l'allocation tournante (``round robin'').

Les cartes Buslogic ont aussi un numéro de série inscrit. Si vous avez une vieille révision de carte, vous pouvez appeler le département Buslogic RMA et leur donner le numéro de série afin d'essayer d'échanger celle-ci contre une révision plus récente. Si votre carte n'est pas trop vieille, il l'échangeront.

FreeBSD 2.1 ne supporte que les versions firmware 2.21 et plus. Si vous avez une version Firmware plus vieille, votre carte ne sera pas reconnue comme une carte Buslogic. Elle peut malgré tout être reconnue comme une carte Adaptec 1540. La vieille carte firmware contient un mode ``émulation'' AHA1540. Quoiqu'il en soit, ce n'est pas une bonne chose pour une carte EISA.

Si vous avez une vieille révision de carte et que vous obtenez le firmware 2.21, vous aurez à vérifier la position du cavalier (jumper) W1 à B-C ; par défaut, il est positionné à A-B.

Les cartes EISA 742q n'ont jamais eu le problème ``>16Mo'' mentionné dans la section sur les machines >16 Mo . Ceci est un problème qui apparaît avec les cartes SCSI Buslogic Vesa-Local.

4.3. Mon contrôleur SCSI HP Netserver n'est pas détecté !

C'est à la base un problème connu. Le contrôleur SCSI-EISA intégré sur la carte mère des machines HP Netserver occupe le slot EISA numéro 11, aussi tous les ``vrais'' slots EISA se retrouvent devant lui. Malheureusement, l'espace d'adressage pour les slots EISA >= 10 se retrouve en conflit avec l'espace d'adressage assigné aux slots PCI, et l'auto-configuration de FreeBSD ne peut actuellement pas très bien gérer cette situation.

Donc, pour le moment, le mieux que vous ayez à faire, est de prétendre qu'il n'y a pas de conflit de plage d'adresse :-), en propulsant l'option du noyau EISA_SLOTS à la valeur 12. Configurez et compilez un noyau comme décrit dans le manuel de référence sur la configuration du noyau.

Bien sûr, cela se présente comme le problème bien connu de la poule et de l'oeuf lorsque l'on installe sur une telle machine. Afin de pouvoir contourner ce problème, un hack spécial est disponible au moment de la configuration utilisateur (UserConfig). Ne pas utiliser l'interface ``visual'', mais l'interface en mode texte. Tapez simplement :

eisa 12
quit

au prompt, et installez le système comme d'habitude. Quoiqu'il en soit, il est recommandé de compiler et d'installer un noyau adapté.

dset comprend aussi maintenant qu'il faut sauver cette valeur.

Heureusement, les versions futures auront une solution appropriée à ce problème.

Note:

Vous ne pouvez pas utiliser un disque *dangereusement dédié* (dangerously dedicated) avec un Netserver HP. Voir cette note pour plus d'informations.

4.4.  Que se passe-t'il avec le contrôleur CMD640 IDE controller?

Il ne marche pas, Il ne peut pas manipuler des commandes sur les deux canaux simultanément.

Il y a un détour disponible à présent, et elle s'active automatiquement si votre système utilise cette puce. Pour plus de détails, référez-vous à la page de manuel du driver de dique (man 4 wd).

Si vous lancez déjà FreeBSD 2.2.1 ou 2.2.2 avec un contrôleur IDE CMD640 et que vous voulez utiliser le deuxième canal, construisez un nouveau noyau avec les options options "CMD640" activé. Il est mis par défaut pour FreeBSD 2.2.5 et plus.

4.5.  Je n'arrête pas de voir ``ed1: timeout''.

Cela est généralement causé par un conflit d'interruption (par exemple , 2 cartes utilisant le même IRQ). FreeBSD avant 2.0.5R était tolérant et fonctionnait même en cas de conflit d'IRQ. Mais à partir du 2.0.5R, les conflits ne sont plus tolérés. Booter avec l'option -c et changer l'ed0/de0/... pour se conformer à votre carte.

Si vous utilisez un connecteur BNC sur votre carte réseau, vous pouvez aussi voir des timeouts sur les périphériques à cause de mauvaise terminaison. Pour le vérifier, attachez un terminateur directement au NIC (sans câble) et regardez si les messages d'erreurs disparaissent.

Certaines cartes compatibles NE2000 donneront une telle erreur s'il n'y a pas de liaison sur le port UTP ou si le cable est déconnecté.

4.6.  Quand je monte le CD-ROM, j'obtiens ``Incorrect super block''.

Vous devez spécifier à mount le type de périphérique que vous voulez monter. Par défaut, mount supposera que le système de fichier est de type ``ufs''. Vous pouvez vouloir monter un système de fichier CDROM, et vous pouvez le faire en spécifiant l'option ``-t cd9660'' à mount . Cela suppose évidemment que le CDROM contienne un système de fichier ISO 9660 , qui est celui qu'ont presque tous les CDROM. Comme pour le 1.1R, FreeBSD comprend automatiquement les extensions Rock Ridge (nom long).

Par exemple, si vous voulez monter le lecteur CDROM ``/dev/cd0c'', sous le répertoire /mnt, vous aurez à exécuter :

mount -t cd9660 /dev/cd0c /mnt

Bien noter que le nom du périphérique (``/dev/cd0c'' de cet exemple peut être différent suivant l'interface du CDROM. Noter que l'option ``-t cd9660'' ne fait qu'exécuter la commande ``mount_cd9660'', c'est ainsi que l'exmple pourrait être simplifié en :

mount_cd9660 /dev/cd0c /mnt

4.7.  Quand je monte un CDROM, j'obtiens ``Device not configured''.

Cela veut généralement dire qu'il n'y a pas de CDROM dans le lecteur de CDROM, ou que le lecteur n'est pas visible du bus. Mettez un disque dans le lecteur, et/ou vérifiez son état maître/esclave si c'est un IDE (ATAPI). Cela peut prendre quelques secondes pour le lecteur CDROM pour s'apercevoir qu'il y a un disque, alors, soyez patient.

De temps en temps, un lecteur CD-ROM SCSI peut être manqué car il n'a pas eu assez de temps pour répondre à la réinitialisation du bus. Si vous avez un lecteur CDROM SCSI, essayez d'ajouter la ligne suivante dans votre fichier de configuration du noyau, et recompilez.

options "SCSI_DELAY=15"

4.8.  Mon imprimante est extrêmement lente, que puis-je faire ?

Si c'est du parallèle, et que le seul problème est qu'elle est terriblement lente, essayez de positionner votre port imprimante en mode ``poller'':

lptcontrol -p

Certaines nouvelles imprimantes HP sont soupçonnées de ne pas fonctionner correctement en mode interruption, apparemment, cela est dû a certains problème de timing (mais cela n'est pas encore exactement compris).

4.9. Mes programmes se tuent souvent avec l'erreur ``Signal 11''.

Cela peut-être causé par du mauvais matériel (mémoire, carte mère...). Essayez de lancer un programme de test de mémoire sur votre PC. Notez que même si chaque programme de test de mémoire essayeront de vous dire que tout va bien, il est possible que certaines rares zones de mémoire passent tous les tests mémoires, mais échouent pourtant durant certaines conditions d'opération (comme pendant qu'un bus maîtrise l'accès direct à la mémoire depuis un contrôleur SCSI comme l'Adaptec 1542, quand vous chargez la mémoire en compilant le noyau, ou quand le système tourne dans des conditions très critiques)

La FAQ sur SIG11 (listée ci-dessous) dénonce les mémoires lentes comme étant le problème le plus courant. Augmentez le nombre d'états d'attente dans votre configuration du BIOS ou récupérez de la mémoire plus rapide.

Pour moi, la partie incriminée a été une mauvaise mémoire cache, ou un mauvais contrôleur cache. Essayez de désactiver le cache secondaire dans la setup BIOS, et regardez si cela résoud le problème.

Il y a une FAQ plus détaillée sur la FAQ du problème SIG11

4.10.  Quand je boote, l'écran devient noir, et perd sa synchronisation

Ceci est un problème connu avec les cartes vidéo ATI Mach 64. Le problème est que cette carte utilise l'adresse 2e8, et que le quatrième port série aussi. Dû à un bug (une fonctionnalité ?) dans le driver sio.c , cela touchera ce port même si vous n'avez pas ce quatrième port série, et *même* si vous désactives sio3 (le quatrième port) qui utilise normalement cette adresse.

Jusqu'à ce que ce bug soit fixé, vous pouvez utiliser cette astuce :

Entrez -c à l'invite. (Cela mettra le noyau en mode configuration).

Désactivez sio0, sio1, sio2 and sio3 (tous). De cette manière, le driver sio ne sera pas activé. et donc plus de problèmes.

Tapez exit et continuez le rebootage.

Si vous voulez pouvoir utiliser les ports séries, vous aurez à construire un nouveau noyau avec les modifications suivantes : Dans /usr/src/sys/i386/isa/sio.c cherchez la seule occurence de la chaîne 0x2e8 et enlevez cette chaîne et la virgule précédente (gardez la virgule de liaison). Puis suivre la procédure normale de la construction d'un nouveau noyau.

Même après avoir appliqué toutes ces astuces, vous pouvez trouver que X Window ne marche pas correctement, Certaines nouvelles cartes vidéo ATI Mach 64 (notamment ATI Mach Xpression) ne marche pas avec la version actuelle de XFree86; l'écran devient noir quand vous démarrez X Window, ou alors il marche avec des problèmes étranges. Vous pouvez obtenir la version beta d'un nouveau serveur X qui marche mieux. Regardez sur le site XFree86 site et suivez les liens à la nouvelle beta release. Récupérez les fichiers suivants :

AccelCards, BetaReport, Cards, Devices, FILES, README.ati, README.FreeBSD, README.Mach64, RELNOTES, VGADriver.Doc, X312BMa64.tgz

Remplacez les vieux fichiers avec ceux de la nouvelle version et vérifiez que vous lancez bien : xf86config à nouveau.

4.11.  J'ai 128 MB de RAM mais le système n'en voit que 64 MB.

Dûe à la façon dont FreeBSD récupère la taille de la mémoire depuis le BIOS, il ne peut seulement détecter qu'une taille dont la valeur est codée en kilo-octets par 16 bits (65535 Ko = 64MB) (ou moins... certains BIOS tronque la taille de la mémoire à 16Mo). Si vous avez plus de 64 Mo, FreeBSD tentera de le détecter, mais il se peut que cette tentative échoue.

Pour contourner ce problème, vous devez utiliser l'option du noyau donnée ci-dessous. Il y a une manière de récupérer les informations complète de la mémoire depuis le BIOS, mais nous n'avons pas assez de place sur les blocks de boot pour le faire. Un jour, quand le manque de place sur les blocs de boots sera résolu, nous utiliserons les fonctions du BIOS étendu pour récupérer l'information complète sur la mémoire... mais pour l'instant, nous utilisons cette option du noyau. options "MAXMEM=<n>" Où n est votre mémoire en KiloOctet. Pour une machine à 128Mo, vous pouvez utiliser 131072.

4.12.  FreeBSD 2.0 panique avec ``kmem_map too small!''

Note : Le message peut aussi être ``mb_map too small!''

La panique indique que le système n'a plus de mémoire virtuelle pour les buffers réseau (spécialement mbuf clusters). Vous pouvez augmenter la quantité de mémoire virtuelle disponible pour les clusters mbuf en ajoutant :

options "NMBCLUSTERS=<n>"

dans votre configuration du kernel, où <n> est un nombre compris entre 512 et 4096, suivant le nombre de connexions concurrentes TCP que vous aurez à supporter. Je vous recommande d'utiliser 2048 - cela devrait vous débarasser complètement de cette panique. Vous pouvez contrôler le nombre de clusters mbuf alloué/en cours d'utilisation sur votre système, avec netstat -m . La valeur par défaut pour NMBCLUSTERS est 512 + MAXUSERS * 16/.

4.13.  ``CMAP busy panic'' au moment d'un reboot avec un nouveau noyau.

La logique permettant de détecter un fichier obsolète /var/db/kvm_*.db peut parfois échouer et utiliser un fichier non approprié peut alors conduire à cette panique.

Si cela arrive, rebooter en mode single-user et faites :

rm /var/db/kvm_*.db

4.14. ahc0: brkadrint, Illegal Host Access at seqaddr 0x0

C'est un conflit avec l'adaptateur hôte Ultrastor SCSI.

Durant la procédure de boot, entrez dans le menu de configuration du noyau et désactivez uha0" qui est à la cause de ce problème.

4.15. Sendmail me dit ``mail loops back to myself''

Cela est répondu dans la FAQ sendmail de la façon suivante :

* Je reçois des messages "Local configuration error" messages, comme:

553 relay.domain.net config error: mail loops back to myself
554 <user@domain.net>... Local configuration error

Comment puis-je résoudre ce problème ?

Vous avez demandé que les mails adressés au domaine (par exemple domain.net)
soient dirigés vers un hôte spécifique (dans ce cas relay.domain.net) en
utilisant un enregistrement MX, mais la machine de relai ne s'est pas reconnu
lui-même comme domain.net. Ajoutez domain.net à /etc/sendmail.cw
(si vous utilisez FEATURE(use_cw_file)) ou ajoutez "Cw domain.net" à
/etc/sendmail.cf.

La version actuelle de la FAQ sendmail n'est plus maintenue avec la release sendmail. Mais elle est de toute façon postée régulièrement à : comp.mail.sendmail , comp.mail.misc , comp.mail.smail , comp.answers , et news.answers . Vous pouvez aussi en recevoir une copie par courrier électronique, en envoyant un mail à : mail-server@rtfm.mit.edu avec la commande with the command "send usenet/news.answers/mail/sendmail-faq" comme corps de message.

4.16.  Les applications plein-écran sur des machines distantes se comportent étrangement.

La machine distante peut régler votre type de terminal à autre chose que le type de terminal cons25 utilisé par la console FreeBSD.

Il y a un certains nombres de contournement de ce problème :

Après s'être loggué sur la machine distante, positionnez votre variable d'environnement TERM à soit ansi soit sco.

Utilisez localement un émulateur VT100 comme . screen screen permet la possibilité de lancer plusieurs sessions concurentes depuis un terminal.

Installez l'entrée cons25 du terminal dans la base de données sur la machine distante.

fire up X et login vers la machine distante depuis un xterm.

Chapitre 5. Applications commerciales. **Mise à jour en cours**

NOTE : Cette section est encore très clairsemée, car nous espérons naturellement, que les industries y contribueront :-) L'organisation FreeBSD n'a aucun intérêt financier dans aucune des sociétés énumérées ici, mais les liste simplement comme service public (et estime que l'intérêt commercial dans FreeBSD peut avoir des effets très positifs sur la viabilité à long terme de FreeBSD). Nous encourageons les constructeurs de logiciel commerciaux à envoyer leurs références ici pour inclusion. Voir les pages des constructeurs pour une liste plus complète.

5.1.  Où puis je obtenir Motif pour FreeBSD ?

Contactez Apps2go pour une distribution ELF Motif 2.1 pour FreeBSD.

Cette distribution comprend :

OSF/Motif manager, xmbind, panner, wsm.

Les librairies ELF statiques et dynamiques (utilisables avec FreeBSD 3.0 et supérieur).

Kit de développement avec les fichiers uil, mrm, xm, xmcxx, include et Imake.

Des applications de démonstration.

Soyez sûr d'indiquer que vous voulez la version de FreeBSD de Motif lors de la commande ! Des versions pour NetBSD et OpenBSD sont également vendues par Apps2go. Vous avez actuellement juste la possiblité de télécharger en FTP.

        Pour plus d'informations
        Serveur WWW de Apps2go

        Ou les addresse de messageries du département des ventes  ou encore
        du support

        Tél: (817) 431 8775  ou +1 817 431-8775

Contactez Metro Link pour une distribution a.out ou ELF Motif 2.1 pour FreeBSD.

Cette distribution comprend :

OSF/Motif manager, xmbind, panner, wsm.

Kit de développement avec les fichiers uil, mrm, xm, xmcxx, include et Imake.

Les librairies a.out et ELF statiques et dynamiques (utilisables avec FreeBSD 3.0 et supérieur pour les librairies ELF et 2.2.8 et supérieur pour les librairies a.out ).

Des applications de démonstration.

Les pages de manuel préformattées

Soyez sûr d'indiquer que vous voulez la version de FreeBSD de Motif lors de la commande ! Des versions pour Linux sont également vendues par Metro Link. La distribution est disponible par téléchargement FTP ou sur un CDROM.

Contactez Xi Graphics pour une distribution a.out Motif 2.0 pour FreeBSD.

Cette distribution comprend :

OSF/Motif manager, xmbind, panner, wsm.

Les librairies a.out statiques et dynamiques (utilisables avec FreeBSD 2.2.8 et supérieur).

Kit de développement avec les fichiers uil, mrm, xm, xmcxx, include et Imake.

Des applications de démonstration.

Les pages de manuel préformattées

Soyez sûr d'indiquer que vous voulez la version de FreeBSD de Motif lors de la commande ! Des versions pour BSDI et Linux sont également vendues par Xi Graphics. La distribution comprend actuellement 4 disquettes. Dans le futur il y aura un CD comme pour CDE.

5.2.  Où puis-je avoir CDE pour FreeBSD?

Contactez Xi Graphics pour une distribution CDE 1.0.10 pour FreeBSD. Cela inclut Motif 1.2.5, et peut être utilisé avec Motif 2.0.

C'est une distribution CDROM uniforme pour FreeBSD et Linux.

5.3.  Y a-t-il des serveurs X commerciaux haute-performance ?

Oui, Xi Graphics et Metro Link vendent leur produit Accelerated-X pour FreeBSD et autres systèmes basés sur Intel.

Le serveur X de Metro Link offre une configuration facile grace a l'utilisation des outils de gestion des packages de FreeBSD, supporte de multiples cartes vidéos et est distribué en forme binaire seulement, par FTP. N'oublions pas de mentionner que Metro Link offre se serveur a un prix raisonnable de 39$.

Metro Link vend aussi une version ELF et a.out de Motif (voir ci-dessus).

        Pour plus d'informations
        Serveur WWW de Metro Link

        Ou les addresse de messageries du département des ventes  ou encore
        du support

        Tél:  (954) 938-0283  or +1 954 938-0283

Xi Graphics offre un serveur X haute performances comportant une facilité de configuration et supportant des cartes vidéos multiples. La distribution est sous forme binaire, et est au format disquette pour FreeBSD et Linux. Xi Graphics offre aussi un serveur haute performances pour les portables.

Il y a une "démo de compatibilité" disponible et gratuite de la version 5.0.

Xi Graphics vends aussi Motif et CDE pour FreeBSD (voir ci-dessus).

Pour plus d'informations :
 Xi Graphics WWW page
ou par courrier électronique aux adresses suivantes :
 Ventes
ou
 Support
ou encore par téléphone au
(800) 946 7433  ou +1 303 298-7478.

5.4.  Y a-t-il un système de bases de données pour FreeBSD?

Oui ! Conetic Software Systems a porté leur système de bases de données C/base and C/books pour FreeBSD 2.0.5 et plus, et Sleepycat Software vend une version commerciale supportée de leur librairie de base de données DB.

Pour plus d'informations : Conetic Software Systems ou envoyez un courrier électronique à Information E-mail address et Sleepycat Software

Chapitre 6. Applications. **Mise à jour en cours**

6.1. Ou puis-je trouver toutes les applications utilisateurs?

Allez voir sur la page des ports pour plus d'informations sur les packages portés sur FreeBSD. La liste complète inclut plus de 1000 ports, et grossit chaque jours, donc vérifiez souvent cette liste, ou souscrivez à la mailing liste freebsd-announce pour vous tenir au courant des mises à jour.

La plupart des ports sont disponibles pour la branche 2.2 et 3.0, et la plupart d'entre eux sont susceptibles de fonctionner sur des systèmes 2.1.x. A chaque fois qu'une version de FreeBSD est livrée, une version des ports, au moment de la livraison de la version, est incluse dans le répertoire ports .

FreeBSD supporte aussi le concept de ``package'', qui n'est rien de plus qu'une distribution binaire compressée avec quelques informations en plus, permettant de l'installer très simplement. Un ``package'' peut être installé et désinstallé facilement, sans avoir besoin de savoir les détails sur les fichiers qu'il inclut.

Il vous suffit d'utiliser le menu d'installation des ``package'' du programme /stand/sysinstall ou servez vous de la commande pkg_add(1) pour installer les ``packages'' que vous désirez. Les fichiers des ``packages'' sont très simple à identifiés de part leur suffixe .tgz . Les personnes disposant d'une distribution sur CDROM les trouveront dans le répertoire packages/All . Ils sont aussi disponibles sur ces différents serveurs ftp:

Pour les versions 2.1.x-release: ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.1.7/

Pour les versions 2.2.6-release/2.2.-stable: ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.2.6/

Pour la version 3.0-current: ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-3.0/

ou sur un site mirroir.

Notez, que tous les ports ne sont pas obligatoirement disponibles sous forme de ``package''. C'est une bonne idée de vérifier régulièrement la disponibilité des différents packages sur le site principal de FreeBSD

6.2. Ou trouver la librairie libc.so.3.0?

Cela veut dire que vous essayez d'utiliser un ``package'' compilé pour des versions 2.2/3.0 sur un système 2.1.x. Voyez la section précedente et retrouvez le port/package correct pour votre système.

6.3.  ghostscript m'affiche énormément d'erreurs sur mon 386/486SX.

Vous n'avez pas de coprocesseur mathématique, n'est-ce pas ? Vous devez absolument compiler l'émulateur mathématique fournit dans votre noyau; il vous suffit d'ajouter la ligne suivante dans votre fichier de configuration du noyau:

 options GPL_MATH_EMULATE

NOTE: Vous devez retirer la ligne contenant l'option MATH_EMULATE si vous activez la précédente.

6.4. Lorsque je lance des applications SCO/iBCS2, elles plantent sur socksys

Vous devez en tout premier éditer le fichier /etc/sysconfig (ou /etc/rc.conf ) et positionner la variable suivante sur YES :

# à positionner sur YES si vous voulez que l'émulation ibcs2(SCO) soit chargée au démarrage
ibcs2=NO

Cela activera le module ibcs2 au démarrage.

Vous devrez aussi créer le répertoire /compat/ibcs2/dev et mettre en place ce qui suit :

lrwxr-xr-x  1 root  wheel         9 Oct 15 22:20 X0R@ -> /dev/null
lrwxr-xr-x  1 root  wheel         7 Oct 15 22:20 nfsd@ -> socksys
-rw-rw-r--  1 root  wheel         0 Oct 28 12:02 null
lrwxr-xr-x  1 root  wheel         9 Oct 15 22:20 socksys@ -> /dev/null
crw-rw-rw-  1 root  wheel   41,   1 Oct 15 22:14 spx

Il suffit de faire pointer socksys vers /dev/null pour tromper les open & close. Le code, dans la version -current, fera le reste. Si vous avez besoin du driver spx pour la connexion d'une socket X, définissez SPX_HACK lors de la compilation de votre système.

6.5. Comment dois-je configurer INN (Internet News) pour mon système ?

Après avoir installé le package ou le port de inn, la meilleur façon de commencer est de voir la page de Fabien TASSIN sur INN, ou vous trouverez la FAQ de INN.

6.6. Quelle version de Microsoft FrontPage dois-je utiliser ?

Utilisez les ports ! Une pré-version patchée pour Apache est disponible dans les ports

Chapitre 7.  Configuration du noyau. **Mise à jour en cours**

7.1.  J'aimerais personnaliser mon noyau. Est-ce difficile ?

Pas du tout ! Jetez un coup d'oeil à la section de la configuration du noyau du manuel de référence.

NOTE : Je vous recommande de faire une sauvegarde datée de votre noyau dans kernel.YYMMDD dès que vous arrivez à tout faire marcher. Ainsi, si jamais en jouant avec votre configuration du noyau, vous mélangez tout, vous pourrez démarrer sur ce noyau plutôt que de repartir depuis kernel.GENERIC. Ceci est particulièrement important si vous démarrez actuellement depuis un contrôleur qui n'est pas supporté par le noyau GENERIC (oui, c'est une expérience personelle).

7.2.  Ma compilation du noyau échoue car &hw&float manque.

Laissez-moi deviner. Vous avez supprimé npx0 de votre fichier de configuration du noyau car vous n'avez pas de coprocesseur arithmétique, c'est ça ? Faux ! :-). Le périphérique npx0 est *OBLIGATOIRE*. Même si vous n'avez pas de coprocesseur arithmétique, vous *devez* inclure le périphérique npx0.

7.3.  Conflits d'interruption avec le code multi-port série.

Q. Quand je compile le noyau avec du code multi-port série, cela me dit que seul le premier port est examiné et le reste est ignoré à cause des conflits d'interruption. Comment puis-je résoudre cela ?

R. Le problème ici, est que FreeBSD a du code intégré pour éviter au noyau de se planter à cause d'un conflit matériel ou logiciel. La façon de fixer ce problème est d'ignorer le réglage des IRQ sur tous les ports sauf un. Voici un exemple :

        #
        # Multiport high-speed serial line - 16550 UARTS
        #
        device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr
        device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr
        device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr
        device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr

7.4.  Comment puis-je activer le support des disques QIC-40/80 ?

Vous supprimez le commentaire de la ligne suivante du fichier générique de configuration (ou ajoutez la à votre fichier de configuration), ajoutez un ``flags 0x1'' à la ligne fdc et recompilez.

controller  fdc0  at isa? port "IO_FD1" bio irq 6 drq 2 flags 0x1 vector fdintr
disk        fd0   at fdc0 drive 0                       ^^^^^^^^^
disk        fd1   at fdc0 drive 1
#tape       ft0   at fdc0 drive 2
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Puis, vous créez un périphérique appelé /dev/ft0 en allant dans le répertoire /dev et en lançant la commande suivante :

 sh ./MAKEDEV ft0

pour le premier périphérique. ft1 pour le second, et ainsi de suite.

Vous aurez un périphérique appelé /dev/ft0, où vous pourrez écrire par l'intermédiaire d'un programme spécial appelé ``ft'' - Voir la page de manuel ft pour plus de détails.

Les versions précédentes de -current ont aussi quelques problèmes avec certaines cartouche ddfectueuses. Si vous avez des problèmes où ft semble aller et venir indéfiniment, essayez de récupérer la dernière version de ft depuis /usr/src/sbin/ft dans -current et essayez le.

Chapitre 8. Administration système. **Mise à jour en cours**

8.1. Où sont les fichiers de démarrage du système ?

De la version 2.0.5R à la version 2.2.1R, le fichier de configuration principal était /etc/sysconfig . Toutes les options sont spécifiées dans ce fichier et les autres fichiers comme /etc/rc et /etc/netstart ne font que l'inclure.

Regardez dans le fichier /etc/sysconfig et changez les valeurs nécessaires pour configurer votre système. Ce fichier inclut des commentaires indiquant les valeurs à mettre.

Pour les versions 2.2.1 et suivantes, le fichier /etc/sysconfig a été renommé en rc.conf et a été épuré au passage. Le fichier /etc/netstart a aussi été renommé en rc/network comme cela tous les fichiers peuvent être copiés grâce à une seule commande : cp /usr/src/etc/rc* /etc.

Le fichier /etc/rc.local existe toujours et peut être utilisé pour démarrer des services additionnels comme INN ou pour positionner certaines valeurs.

Le fichier /etc/rc.serial permet d'initialiser les ports série (par exemple mettre en place les caractéristiques du port, etc..).

Le fichier /etc/rc.i386 est spécifique aux paramètres des plateformes Intel, comme l'émulation iBCS2 ou la configuration de la console système d'un PC.

Avec la version 2.1.0R, vous pouvez définir des fichiers de démarrage "locaux" se trouvant dans un répertoire spécifié dans le fichier /etc/sysconfig (ou le fichier /etc/rc.conf ):

# Emplacement des fichiers de démarrage locaux
local_startup=/usr/local/etc/rc.local.d

Chaque fichier se terminant par .sh sera éxécuté dans l'ordre alphabétique.

Si vous voulez vous assurez d'un certain ordre de démarrage sans changer le nom des fichiers, vous pouvez utiliser un schéma similaire à celui qui suit, en faisant précéder chaque fichier de chiffres pour assurer l'ordre de démarrage:

10news.sh
15httpd.sh
20ssh.sh

Cela peut vous sembler un peu laid (ou SysV :-)) mais cela fournit une façon simple pour les packages locaux ajoutés sans être obligé d'éditer /etc/rc.local . La plupart des ports ou des packages assument que le répertoire /usr/local/etc/rc.d permet le démarrage des programmes locaux.

8.2. Comment ajouter simplement un utilisateur ?

Utilisez la commande adduser

Il existe aussi un autre outil nommé ``new-account'' écrit en Perl par Ollivier Robert. Demandez le lui. Cet outil est actuellement en cours de développements supplémentaires

Pour retirer un utilisateur, utilisez la commande rmuser.

8.3. Comment ajouter un nouveau disque dur à mon système FreeBSD ?

Voyez le tutoriel sur le formatage des disques dur.

8.4. Comment utiliser mon nouveau disque amovible ?

Que ce soit un disque amovible de type ZIP ou EZ (ou même une disquette), ou un disque dur, une fois installé et reconnu par le système et que vous avez inséré une cartouche/disquette, la manipulation est la même pour tous les périphériques.

(Cette section est basée sur la FAQ des lecteurs ZIP de Mark Mayo)

Si c'est un disque ZIP ou une disquette DOS, il y a déjà un système de fichier DOS installé, vous pouvez utilisez les commandes suivantes:

mount -t msdos /dev/fd0c /floppy

s'il s'agit d'une disquette; ou:

mount -r msdos /dev/sd2s4 /zip

s'il s'agit d'un lecteur ZIP dans sa configuration d'origine.

Pour les autres types de disques, voyez leur partitionnement en utilisant fdisk ou /stand/sysinstall .

Les exemples qui suivent supposent que vous disposez d'un disque ZIP sur sd2, le troisième disque SCSI.

Si votre disque amovible n'est pas une disquette, ou tout autre disque amovible que vous ne désirez par partager avec d'autres personnes, il vaut mieux mettre un système de fichiers BSD dessus. Vous pourrez avoir des noms longs, une amélioration de performances et une meilleur stabilité. Pour commencer, vous devez effacer la partition ou le système de fichiers DOS. Vous pouvez utiliser l'utilitaire fdisk ou /stand/sysinstall , ou pour un disque d'une petite capacité, détruire la table des partitions FAT et utiliser le partitionnement BSD standard :

dd if=/dev/zero of=/dev/rsd2 count=2
disklabel -Brw sd2 auto

Vous pouvez utiliser disklabel ou /stand/sysinstall pour créer plusieurs partitions BSD. Vous effectuerez probablement ces opérations si vous ajoutez de l'espace de "swap" sur un disque fixe, mais il est inconcevable de le faire sur un disque amovible ZIP.

Pour finir construisez un nouveau système de fichier, utilisant tout l'espace disponible sur votre lecteur ZIP :

newfs /dev/rsd2c

et montez le :

mount /dev/sd2c /zip

C'est surement une bonne idée d'ajouter la ligne suivante au fichier /etc/fstab , cela vous permettra de ne taper que "mount /zip" par la suite :

/dev/sd2c /zip ffs rw,noauto 0 0

8.5. Comment monter une partition DOS étendue ?

Les partitions DOS étendues se trouvent après la fin de toutes les partitions primaires. Par exemple, si vous avez une partition "E" en tant que partition DOS étendue sur le deuxième disque SCSI, vous devez créer le fichier spécial pour la partition 5 dans /dev et monter /dev/sd1s5 :

# cd /dev
# ./MAKEDEV sd1s5
# mount -t msdos /dev/sd1s5 /dos/e

8.6. Puis-je monter d'autres systèmes de fichiers sous FreeBSD ?

Les CDROM Digital UNIX au format UFS peuvent être montés directements sous FreeBSD. Il peut être très difficile, par contre, de monter des partitions disques de Digital UNIX, ou d'autres systèmes supportant l'UFS. Cela dépend des partitionnements effectués sur le système en question.

Linux: Les version 2.2 et supérieures incluent le support des partitions ext2fs . Pour plus d'informations voyez la page de manuel de mount_ext2fs .

Toute autre information sur le sujet est appréciée.

8.7. Comment utiliser le programme de démarrage de NT pour démarrer FreeBSD ?

Il faut pour cela copier le premier secteur de votre partition FreeBSD dans un fichier sur une partition DOS/NT. Nous supposerons qu'il s'appelle c:\bootsect.bsd (équivalent de c:\bootsect.dos ). Il suffit d'éditer le fichier c:\boot.ini pour qu'il ressemble à ceci:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"
C:\BOOTSECT.BSD="FreeBSD"
C:\="DOS"

Cette procédure implique que DOS, NT ou FreeBSD soient installés sur le même disque. Dans mon cas DOS et NT sont installés respectivement sur la première partition du disque et FreeBSD sur la seconde. FreeBSD est aussi configuré pour démarrer depuis sa partition et non depuis le MBR du disque.

Monter une disquette préformatée DOS (si vous cette partition n'est pas en FAT, mais en NTFS) sous /mnt .

dd if=/dev/rsd0a of=/mnt/bootsect.bsd bs=512 count=1

Redémarrez en mode DOS ou NT. Si vous avez une partition NTFS copiez le fichier bootsect.bsd de la disquette dans le répertoire C:\. Modifiez les attributs (permissions) du fichier boot.ini.

attrib -s -r c:\boot.ini

Ajoutez la ligne correcte au fichier boot.ini et restaurez les anciens attributs.

attrib -s -r c:\boot.ini

Si FreeBSD démarre depuis le MBR, restaurez-le avec la commande DOS fdisk /MBR après avoir reconfiguré FreeBSD pour démarrer depuis sa partition native.

8.8. Comment démarrer FreeBSD et Linux grace à LILO ?

Si vous avez installé FreeBSD et Linux sur le mème disque, suivez les instructions du manuel de LILO pour démarrer sur d'autres systèmes que Linux. En résumé il faut :

Démarrer sous Linux et ajouter les lignes suivantes au fichier /etc/lilo.conf :

other=/dev/hda2
table=/deb/hda
label=FreeBSD

(l'exemple précédant suppose que la partition FreeBSD est connue par linux sous le nom /dev/hda2 . Ensuite lancez lilo sous root, et c'est fini.

Si FreeBSD se trouve sur un autre disque vous devez ajouter loader=/boot/chain.b au fichier de configuration de lilo :

other=/dev/sdb4
table=/dev/sdb
loader=/boot/chain.b
label=FreeBSD

Dans certains cas, vous devez spécifier le numéro du disque connu par le BIOS au programme de démarrage de FreeBSD pour démarrer sur le deuxième disque. Par exemple, si votre disque SCSI contenant FreeBSD est trouvé par le BIOS comme disque numéro 1, vous devez taper la ligne suivante au prompt du programme de démarrage:

Boot: 1:sd(0,a)/kernel

Vous pouvez configurer le programme de démarrage de FreeBSD version 2.2.5 ou supérieure pour prendre cette chaine par défaut.

Le document Linux+FreeBSD mini-HOWTO est une très bonne référence sur l'interopérabilité entre FreeBSD et Linux.

8.9. Comment démarrer FreeBSD et Linux depuis BootEasy ?

Il faut installer LILO au début de votre partition de démarrage de Linux au lieu du MBR. Vous pouvez alors démarrer LILO depuis BootEasy.

Si vous utilisez Linux et Windows-95, c'est la meilleur façon d'installer LILO si vous voulez continuer à démarrer Linux après avoir réinstallé Windows-95 (qui lui ne tient pas contre des autres systèmes et se croit seul sur le MBR).

8.10. Est-ce dangereux d'utiliser un disque dédié ?

La procédure d'installation vous permet de choisir deux façons différentes pour partitionner vos disques. Par défaut, elle permet de les rendre compatibles avec d'autres systèmes d'exploitation se trouvant sur votre ordinateur en utilisant les entrées des tables de fdisk (appelés "slices" sous FreeBSD), en faisant en sorte qu'une "slice" FreeBSD corresponde à une partition. Vous pouvez aussi installer un selecteur de démarrage pour choisir de démarrer sous un autre système d'exploitation.

Comme ceci correspond à la plupart des cas de personnes venant des PC, les personnes venant d'Unix et qui désirent mettre en place une machine pour y faire tourner FreeBSD et juste FreeBSD, utilisent la procédure classique d'installation d'Unix, ou Unix utilise le disque au complet, du premier secteur au dernier. Une véritable table pour fdisk n'est d'aucune utilité dans le vas d'une machine utilisant FreeBSD 24h/24, 7jours sur 7, car aucun autre système d'exploitation ne sera démarré. Donc si vous sélectionnez ``A)ll FreeBSD '' dans l'éditeur de partition du programme d'installation et répondez ``No'' à la question qui suit, vous serez dans ce cas. Notez que cela implique que le programme de démarrage BSD correspond au MBR de ce disque. N'essayez pas d'en réinstaller un sous peine de détruire le précédent.

Donc pourquoi est-ce donc ``dangereux'' ? Un disque configuré de la sorte ne contient pas de table fdisk valides, pour la plupart des utilitaires PC. Suivant la façon dont ils ont été conçus, ils vous avertissent ou tout simplement ne disent rien et détruisent le programme de démarrage BSD sans avertissement. Certains systèmes d'exploitation très utilisés sur PC, sont connus pour agir de la sorte (bien sûr, ils agissent de la sorte sous le couvert de système "orienté-utilisateur"). Au moins un BIOS de chez Award, qui est par exemple utilisé sur les HP Netserver (mais sur d'autre systèmes aussi), est connu pour ignorer tout disque dur n'ayant pas de table fdisk valide. Lorsque votre machine démarre il ignore tout simplement de tels disques, tente de démarrer sur une disquette, et vous affiche un ``Read error''. Très impressionnant, non ?. C'est ce que certains appellent un système "orienté-utilisateur".

Les avantages de ce partitionnement sont : FreeBSD utilise le disque au complet, il n'y a donc pas de besoin de garder quelques 'pistes' au début du disque qui ne servaient à rien sauf pour un modèle de partitionnement vieux et simpliste qui n'a maintenant plus aucun sens. Ces contraintes étant ce que l'on peut appeler la plus grosse prise de tête lors de l'installation des systèmes d'exploitations sur PS, et qui menaient le plus souvent à deux façon complètement redondantes de stockage des informations dans les tables fdisk. Voyez le chapitre sur ``Missing Operating System''. Dans le cas d'un disque ``dangereusement dédié'', le programme de démarrage BSD commence au secteur 0, qui est le seul secteur ne changeant de valeur C/H/S, pour les valeurs du disque du BIOS. Vous pouvez donc, dans ce cas, interchanger des disques entre plusieurs controleurs ou systèmes utilisant des schémas de translation différents sans vous poser de questions.

Pour passer d'un disque ``dangereusement dédié'' à un disque normal de PC, il y a deux solutions simples. La première est de recouvrir le MBR d'octets vides, pour permettre de faire croire que le disque est vierge. Pour pouvez le faire de la façon suivante:

dd if=/dev/zero of=/dev/rds0 count=15

Ou en utilisant une fonctionnnalité non-documentée de DOS :

 fdisk /mbr

qui installe aussi un nouveau MBR, en recouvrant le programme de démarrage BSD.

8.11. Comme faire pour ajouter plus de "swap" ?

La meilleur façon de faire, est d'augmenter la taille de votre partition de swap, ou de prendre cette excuse pour ajouter un autre disque.

Ajouter du "swap" sur un autre disque permet plus d'augmenter la rapidité que d'en ajouter sur le même disque. Par exemple, si vous compilez des fichiers qui se trouvent sur un disque et que le "swap" se trouve sur un autre disque, cela va beaucoup plus vite d'avoir le "swap" et les sources sur le même disque. Ceci est spécialement vrai pour les disques SCSI.

Les disques IDE ne permettent pas l'accès à deux disques sur le même canal au même moment (FreeBSD ne supporte pas le mode 4, donc toutes les entrées/sorties disques sont ``programmées''). Je vous suggère de mettre le "swap" sur un autre disque aussi. Les disques durs sont si peu couteux, que cela ne vaut pas le coup de tout mettre sur un.

C'est une très mauvaise idée de mettre le fichier de "swap" sur une partition NFS, sauf si vous disposez d'un environnement réseau extrèmement rapide, et d'un très bon serveur NFS.

Voici un exemple pour ajouter 64Mo de swap en utilisant un fichier se nommant /usr/swap0 .

Assurez vous que votre noyau est compilé avec la ligne

pseudo-device vn 1 # #Vnode driver (turns a file into a device)

Le noyau GENERIC la contient par défaut.

Créez un vn-device :

cd /dev
sh./MAKEDEV vn0

Créez le fichier de "swap" (/usr/swap0).

 dd if=/dev/zero of=/usr/swap0 bs=1024k count=64

Activez le fichier de "swap" dans le fichier /etc/rc.conf

swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.

Rebootez la machine

Pour activer le fichier de "swap" immédiatement, tapez

vnconfig -ce /dev/vn0c /usr/swap0 swap

8.12. J'ai des problèmes pour installer mon imprimante.

Référez-vous à la section sur les imprimantes du Handbook. Elle couvre l'essentiel des problèmes que l'on peut rencontrer.

8.13. Le clavier est mal configuré sur mon ordinateur.

Le programme kbdcontrol comporte une option permettant de charger une configuration clavier différente. Vous trouverez dans /usr/share/syscons/keymaps différents fichiers de configuration. Choisissez celle voulue et chargez la :

 kbdcontrol -l fr.iso

Dans tous les cas le programme kbdcontrol recherche dans /usr/share/syscons/keymaps un fichier se terminant par .kbd.

Vous pouvez le configurer dans le fichier /etc/sysconfig (ou rc.conf). Regardez les commentaires apropriés dans ce fichier.

Pour les versions 2.0.5 et suivantes, tout ce qui est relatif aux fontes du texte, à la configuration du clavier se trouve dans /usr/share/syscons.

Actuellement les configurations de claviers suivantes sont supportées :

Belgian ISO-8859-1

Brazilian 275 keyboard Codepage 850

Brazilian 275 keyboard ISO-8859-1

Danish Codepage 865

Danish ISO-8859-1

French ISO-8859-1

German Codepage 850

German ISO-8859-1

Italian ISO-8859-1

Japanese 106

Japanese 106x

Latin American

Norwegian ISO-8859-1

Polish ISO-8859-2 (programmer's)

Russian Codepage 866 (alternative)

Russian koi8-r (shift)

Russian koi8-r

Spanish ISO-8859-1

Swedish Codepage 850

Swedish ISO-8859-1

Swiss-German ISO-8859-1

United Kingdom Codepage 850

United Kingdom ISO-8859-1

United States of America ISO-8859-1

United States of America dvorak

United States of America dvorakx

8.14. Comment faire en sorte que les quotas utilisateurs fonctionnent correctement ?

Ne mettez pas de quotas sur '/',

Mettez le fichier des quotas sur le système de fichiers qui en dispose, par ex :

Système de fichier	Emplacement du fichier des quotas
/usr				/usr/admin/quotas
/home				/home/admin/quotas
...

8.15. Qu'est-ce qui ne va pas avec ma configuration de ccd ?

Le symptome est le suivant :

# ccdconfig -C
ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format
#

Ceci apparait la plupart du temps lorsque vous essayez de concaténer les partitions ``c'', qui par défaut ont comme type ``unused''. Le gestionnaire de disque ccd nécessite que le type de la partition soit de type FS_BSDFFS. Dans ce cas, éditez le label des disques à concaténer et changez le type des partitions en type ``4.2BSD''.

8.16. Pourquoi je ne peux pas éditer le label de mes disques concaténés ?

Le symptome est le suivant :

# disklabel ccd0
(ça affiche quelque chose de particulier ici, donc essayons de l'éditer)
# disklabel -e ccd0
(édition, sauvegarde, sortie)
disklabel: ioctl DIOCWDINFO: No disk label on disk;
use "disklabel -r" to install initial label
#

Cela apparait souvent lorsque le label retourné par le gestionnaire de disques concaténé est un faux, un qui n'est pas véritablement sur le disque. Pour résoudre ce problème il faut écrire explicitement sur le disque, comme ceci :

# disklabel ccd0 > /tmp/disklabel.tmp
# disklabel -Rr ccd0 /tmp/disklabel.tmp
# disklabel -e ccd0
(maintenant cela doit fonctionner correctement)

8.17. Est-ce que FreeBSD supporte les communications inter-processus de type Système V (IPC) ?

Oui, FreeBSD supporte les communications inter-processus de type Système V, IPC. Cela inclue la mémoire partagée, les files de messages et les sémaphores. Vous devez ajouter les lignes suivantes à votre fichier de configuration du noyau pour les activer :

options    SYSVSHM
options    "SHMMAXPGS=64"   # 256Ko de mémoire partagée
options    SYSVSEM          # activation des sémaphores
options    SYSVMSG          # activation des files de messages

Recompilez le noyau et installez le.

Note : Vous aurez sûrement besoin d'augmenter SHMMAXPGS à un nombre plus élevé, comme 4096 (16M!) si vous avez besoin d'utiliser GIMP. 256Ko est largement suffisant pour la mémoire partagée dont à besoin X11R6.

8.18. Comment configurer sendmail pour fonctionner avec UUCP ?

La configuration de sendmail fournie avec FreeBSD, correspond à un site directement connecté à l'Internet. Les sites qui utilisent UUCP pour échanger du courrier électronique doivent installer un autre fichier de configuration pour sendmail.

Modifier directement le fichier /etc/sendmail.cf est réservé la plupart du temps aux gourous. La version 8 de sendmail dispose d'une interface m4 de génération du fichier de configuration, qui encapsule le fichier de configuration dans un format abstrait de haut niveau. Vous devez trouvez les différents fichiers de configuration dans le répertoire /usr/src/usr.sbin/sendmail/cf .

Si vous n'avez pas installé tous les sources du système, vous pouvez trouver les différents fichiers de configuration de sendmail dans un fichier séparé des autres sources sur le CD-ROM. Si vous avez monté le CD-ROM exécutez les commandes suivantes :

cd /usr/src
tar -xvzf /cdrom/dists/src/ssmailcf.aa

Cela correspond juste à une centaine de kilo-octets. Le fichier README dans le répertoire cf vous explique rapidement comment fonctionnne m4.

Pour utiliser UUCP, vous devez utiliser la fonctionnnalité mailertable. Elle permet à sendmail de constituer une base de données pour lui permettre de router le courrier correctement.

Pour commencer, vous devez créer une fichier de configuration .mc. Tous ces types de fichiers se trouvent dans le répertoire /usr/src/usr.sbin/sendmail/cf/cf. Il y a quelques fichiers d'exemples dans ce répertoire pouvant vous aider. En supposant que vous avez appelé ce fichier foo.mc, tout ce que vous devez faire pour le convertir en un fichier valide de configuration de sendmail, sendmail.cf est :

cd /usr/src/usr.sbin/sendmail/cf/cf
make foo.cf
cp foo.cf /etc/sendmail.cf

Un fichier classique ressemble à ceci:

include(`../m4/cf.m4')
VERSIONID(`Votre numéro de version)
OSTYPE(bsd4.4)
FEATURE(nodns)
FEATURE(nocanonify)
FEATURE(mailertable)

define(`UUCP_RELAY', nom.du.relai.uucp)
define(`UUCP_MAX_SIZE', 200000)

MAILER(local)
MAILER(smtp)
MAILER(uucp)

Cw    alias.de.votre.nom.de.machine
Cw    votrenomdenoeuduucp.UUCP

Les directives nodnset nocanonify forcent sendmail à ne pas utiliser le DNS lors de l'envoi du courrier. La directive UUCP_RELAY est utilisée pour des raisons assez bizarres; ne posez pas de questions et utilisez-la. Mettez juste un nom de machine capable de recevoir du courrier en UUCP. La plupart du temps il faut mettre le nom du serveur de messagerie de votre fournisseur d'accès.

Après avoir défini tout ceci, vous avez besoin d'un fichier /etc/mailertable. Voici un exemple de ce type de fichier :

#
# makemap hash /etc/mailertable.db < /etc/mailertable
#
horus.interface-business.de   uucp-dom:horus
.interface-business.de        uucp-dom:if-bus
interface-business.de         uucp-dom:if-bus
.heep.sax.de                  smtp8:%1
horus.UUCP                    uucp-dom:horus
if-bus.UUCP                   uucp-dom:if-bus
.			      uucp-dom:sax

Les trois premières lignes font en sorte d'envoyer le courrier à des serveurs UUCP ``voisins'' et non pas au serveur par défaut, pour permettre de racourcir le temps d'envoi des messages. La ligne suivante permet d'envoyer le courrier sur le domaine local en protocole SMTP. Et pour finir, les ``voisins'' UUCP sont mentionner dans la la notation de domaine .UUCP, permettant au format de mail ``voisin-uucp!destinataire'' d'écraser les règles par défaut. La dernière ligne doit toujours être un ``.'', qui représente toutes les destinations, qui doit correspondre à un serveur de messagerie UUCP voisin, et qui sert de passerelle de courrier éléctronique vers le reste du monde. Tous les noms de noeuds se trouvant après le mot clé uucp-dom:doivent être des noms valides de voisins UUCP, que vous pouvez vérifier en utilisant la commande uuname

Pour vous rappeler que ce fichier doit être converti en fichier DBM pour pouvoir être utilisé, la ligne de commande nécessaire à sa création est rappelée dans les commentaires du fichier mailertable. Vous devez lancer cette commande à chaque fois que vous changez quelque chose dans ce fichier.

Pour finir : si vous n'etes pas certain de votre configuration d'envoi de messages électroniques, rappellez-vous l'option -bt de sendmail. Cela lance sendmail en mode test ; entrez simplement ``0 '' suivi de l'adresse que vous voulez tester. La dernière ligne vous indiquera alors le type d'agent utilisé pour l'envoi, la machine auquelle l'agent enverra le courrier, et l'adresse à laquelle il l'enverra. Pour quitter ce mode tapez Control-D.

j@uriah 191% sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 0 foo@interface-business.de
rewrite: ruleset  0   input: foo @ interface-business . de
...
rewrite: ruleset  0 returns: $# uucp-dom $@ if-bus $: foo \
< @ interface-business . de >
> ^D
j@uriah 192%

8.19. Comment mettre en oeuvre le courrier électronique avec une connexion temporaire à un réseau ?

Si vous disposez d'un adresse IP statique, vous ne devez rien changer. Definissez juste votre nom de machine pour qu'il corresponde à votre nom de machine internet et sendmail s'occupera du reste.

Dans le cas ou vous disposez d'une adresse IP dynamiquement assignée et que vous utilisez une connexion ppp pour accèder à l'internet, vous diposez probablement d'une boite aux lettres chez votre fournisseur d'accès. Prenons comme exemple que le domaine de votre fournisseur soit monISP.com, que votre nom d'utilisateur soit monlogin, que votre nom de machine soit bsd.perso et que votre fournisseur vous aie indiqué la machine relai.monISP.com comme serveur relai de messagerie électronique.

Pour pouvoir recevoir votre courrier depuis votre boite à lettres, vous devez installer un agent de rapatriement de mail.Fetchmail est un bon choix, car il supporte la plupart des protocoles de messagerie. La plupart du temps, votre fournisseur offre l'accès à travers le protocole POP3. Si vous avez décidé d'utiliser la partie utilisateur de ppp, vous pouvez automatiquement rapatrier votre courrier lorsque la connexion vers le réseau est établie en ajoutant la ligne suivante au fichier /etc/ppp/ppp.linkup :

MYADDR:
!bg su monlogin -c fetchmail

Ici nous assumons que vous disposez d'un compte nommé monlogin sur la machine bsd.perso. Vous devez alors créer un fichier .fetchmailrc dans votre répertoire principal contenant :

poll monISP.com protocol pop3 fetchall pass monPasswd:

Naturellement, ce fichier ne doit être lisible que par l'utilisateur monlogin car il contient le mot de passe monPasswd.

Pour permettre d'envoyer du courrier avec l'entête from: correcte, vous devez configurer sendmail pour utiliser l'adresse monlogin@monISP.com plutôt que monlogin@bsd.perso. Vous devez aussi dire à votre sendmail d'envoyer tout le courrier via le serveur relai.monISP.com, permettant au courrier d'être envoyé plus rapidement.

Le fichier de configuration .mc suivant doit convenir :

VERSIONID(`bsd.perso.mc version 1.0')
OSTYPE(bsd4.4)dnl
FEATURE(nouucp)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Cwlocalhost
Cwbsd.perso
MASQUERADE_AS(`monISP.com')dnl
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(nocanonify)dnl
FEATURE(nodns)dnl
define(SMART_HOST, `relai.monISP.com')
Dmbsd.perso
define(`confDOMAIN_NAME',`bsd.perso')dnl
define(`confDELIVERY_MODE',`deferred')dnl

Reférez-vous à la section précédente pour l'explication détaillée de conversion du fichier .mcen fichier sendmail.cf. N'oubliez pas non plus de redémarrer sendmail après avoir modifié le fichier /etc/sendmail.cf

8.20. Horreur !! J'ai perdu le mot de passe de root !!

Ne paniquez pas! Redémarrez tout simplement le système en tapant -s au "prompt" Boot: pour passer en mode mono-utilisateur. A la question sur le shell à utiliser, appuyez sur ENTREE. Vous obtiendrez alors un prompt "#". Tapez la commande mount -u pour remonter votre partition primaire en lecture/écriture et lancez la commande mount -a pour remonter tous les systèmes de fichiers. Tapez passwd root pour changer le mot de passe root puis tapez exit pour continuer le processus de démarrage du système.

8.21. Comment empècher le redémarrage du système en appuyant sur les touches Control-Alt-Delete ?

Editez le fichier de configuration du clavier que vous utilisez pour la console et remplacez le mot clé boot par nop. Le fichier de configuration du clavier utilisé par défaut est /usr/share/syscons/keymaps/us.iso.kbd. Vous pouvez changer la configuration en éditant le fichier /etc/rc.conf. Bien sur si vous utilisez une autre configuration, il faut éditer le fichier de configuration la décrivant.

8.22. Comment transformer les fichiers textes au format DOS en fichiers UNIX ?

Utilisez tout simplement la commande perl suivante :

perl -i.bak -pe 's/\r\n/\n/g' fichier.dos ...

fichier.dos étant le fichier à modifier. Cette commande remplace dans le fichier et sauvegarde l'ancien sous le nom fichier.dos.bak.

8.23. Comment tuer un processus par son nom ?

Utilisez killall(1)

8.24. Pourquoi la commande su me dit sans arrêt que je ne suis pas dans les ACL de root ?

Cette erreur vient du système d'authentification distribué Kerberos. Ceci n'est pas un problème très grave. Un palliatif consiste à utiliser l'option "-k" de su ou de désinstaller Kerberos comme expliqué à la section suivante.

8.25. Comment désinstaller Kerberos ?

Pour désinstaller Kerberos de votre système, vous devez réinstaller la distribution bin depuis votre version de FreeBSD. Si vous disposez d'un CDROM, vous devez monter le cd (la plupart du temps dans /cdrom) et lancer :

cd /cdrom/bin
./install.sh

8.26. Comment ajouter des pseudo-terminaux au système ?

Si vous avez un grand nombre de telnet, ssh, X, or screen users, vous risquez probablement de manquer de pseudo-terminaux. Voici comment en ajouter plusieurs :

Créer et installer un nouveau noyau avec la ligne

       pseudo-device pty 256

dans le fichier de configuration.

Exécuter la commande :

     # cd /dev
     # ./MAKEDEV pty{1,2,3,4,5,6,7}

pour créer 256 device nodes pour les nouveaux terminaux.

Editer /etc/ttys et jouter une ligne pour chacun des 256 terminaux. Elles doivent correspondre à la forme des entrées existantes. c'est à dire ressembler à :

       ttyqc none network

L'ordre des lettres de désignation est tty[pqrsPQRS][0-9a-v], en utilisant une expression régulière.

Démarrez le système avec le nouveau noyau et vous êtes prêts à travailler.

Chapitre 9.  Le système X-Windows et les consoles virtuelles. **Mise à jour en cours**

9.1.  Je veux lancer X, comment dois-je faire ?

La manière la plus simple est de spécifier au moment de l'installation que l'on veut utiliser X.

Puis, lire la documentation suivante sur l'outil xf86config , qui vous aidera dans la configuration de XFree86(tm) pour vos cartes graphiques, souris etc...

Vous pouvez aussi regarder du côté du serveur Xaccel qui est disponible pour un prix très raisonnable/ Voir la section sur Xi Graphics pour plus de détails.

9.2.  Pourquoi ma souris ne marche pas sous X ?

Si vous utilisez syscons (le driver par défaut de la console), vous pouvez configurer FreeBSD de telle sorte qu'il puisse supporter un pointeur de souris sur chacun des écrans virtuels. Afin d'éviter des conflits avec X, les supports syscons un périphérique virtuel nommé ``/dev/sysmouse''. Tous les évènement liés à la souris sont écrit vers le périphérique sysmouse, en utilsant le protocole MouseSystems. Si vous voulez utiliser votre souris sur une console virtuelle ou plus, et utiliser X, la configuration suivante est recommandée.

/etc/rc.conf:
moused_type=ps/2          # or whatever your actual type is
moused_port=/dev/psm0     # or whatever your real port is
moused_flags=

/etc/XF86Config
Section Pointer
Protocol "MouseSystems"
Device   "/dev/sysmouse"
.....

Certaines personnes préfèrent utiliser ``/dev/mouse'' sous X. Ppour le faire marcher, ``/dev/mouse'' devrait être un lien symbolique pour /dev/sysmouse

 cd /dev
 rm -f mouse
 ln -s sysmouse mouse

9.3.  les menus X Window et les boîtes de dialogue ne marchent pas bien!

Essayez de désactiver la touche Num Lock.

Si votre touche Num Lock est activée par défaut au moment du boot, vous pouvez ajouter la ligne suivante dans la section ``Keyboard'' du fichier XF86config.

 Let the server do the NumLock processing.  This should only be
 required when using pre-R6 clients
ServerNumLock

9.4.  Qu'est ce qu'une console virtuelle, et comment puis-je en avoir plus ?

En gros, les consoles virtuelles vous permettent d'avoir plusieurs sessions simultanées sur la même machine sans faire de trucs compliqués du genre monter un réseau, ou lancer X.

Quand le système démarre, il vous affichera une invite de login sur le moniteur juste après avoir affiché les messages du boot. Vous pouvez taper votre login et votre mot de passe et commencer à travailler (ou à jouer !) sur la première console virtuelle.

A un moment, vous voudrez probablement ouvrir une autre session, par exemple pour lire la documentation d'un programme que vous êtes en train d'exécuter, ou alors lire le courrier en attendant qu'un transfert FTP se termine. Fais juste Alt-F2 (Appuyez en maintenant la touche Alt puis, pressez F2), et vous trouverez une invite de login vous attendant sur la seconde ``console virtuelle ''! Quand vous voudrez revenir à la session de départ, faites Alt-F1.

L'installation par défaut de FreeBSD a 3 consoles virtuelles activées, et Alt-F1, Alt-F2, et d Alt-F3 vous permettra de basculer entre ces consoles virtuelles. Pour en activer plus, éditez /etc/ttys et ajoutez les entrées pour ``ttyv4'' à ``ttyvc'' après les commentaires sur les ``terminaux virtuels'':

 Edit the existing entry for ttyv3 in /etc/ttys and change
 "off" to "on".
ttyv3   "/usr/libexec/getty Pc"         cons25  on secure
ttyv4   "/usr/libexec/getty Pc"         cons25  on secure
ttyv5   "/usr/libexec/getty Pc"         cons25  on secure
ttyv6   "/usr/libexec/getty Pc"         cons25  on secure
ttyv7   "/usr/libexec/getty Pc"         cons25  on secure
ttyv8   "/usr/libexec/getty Pc"         cons25  on secure
ttyv9   "/usr/libexec/getty Pc"         cons25  on secure
ttyva   "/usr/libexec/getty Pc"         cons25  on secure
ttyvb   "/usr/libexec/getty Pc"         cons25  on secure

Utilisez en autant que vous voulez/ Mais plus vous avez de terminaux virtuels, plus vous utilisez de ressources; cela peut-être important si vous avez 8Mo de RAM ou moins. Vous pouvez aussi changer ``secure'' to `` insecure''.

NOTE IMPORTANTE si vous voulez lancer un serveur X, vous DEVEZ avoir au moins un terminal virtuel non utilisé (ou désactivé)afin qu'il puisse l'utiliser. Tout cela pour dire que si vous voulez une invite de prompt pour les tous les 12 de vos touches Alt-fonctions, pas de chance, vous pourrez le faire que pour 11 d'entre eux si vous voulez aussi lancer un serveur X sur cette machine.

La meilleure façon de désactiver une console est de la déselectionner. Par exemple, si vous avez alloué tous les 12 terminaux mentionné ci-dessus, et que vous voulez lancer X, vous aurez à changer le réglage pour le terminal virtuel 12 de :

ttyvb   "/usr/libexec/getty Pc"         cons25  on secure

à:

ttyvb   "/usr/libexec/getty Pc"         cons25  off secure

Si votre clavier n'a que 10 touches de fonctions, vous pouvez terminer par :

ttyv9   "/usr/libexec/getty Pc"         cons25  off secure
ttyva   "/usr/libexec/getty Pc"         cons25  off secure
ttyvb   "/usr/libexec/getty Pc"         cons25  off secure

(Vous pouvez aussi juste effacer ces lignes)

Une fois que vous avez édité /etc/ttys" , l'étape suivante est de s'assurer que vous avez assez de périphériques de terminaux virtuels. La plus simple manière de procéder est :

 cd /dev
 ./MAKEDEV vty12                 # For 12 devices

Ensuite, la plus simple (et plus propre) manière d'activer la console virtuelle est de rebooter. Malgrè tout, si vous voulez vraiment ne pas avoir è rebooter, vous pouvez juste arrêter le système X Window et exécuter root.

kill -HUP 1

Il est impératif d'arrêter complètement X Window s'il est en train de marcher, avant de lancer cette commande. Si vous ne le faite pas, votre système, se trouvera probablement suspendu/bloqué après le lancement de la commande kill.

9.5. Comment accéder à mes consoles virtuelles depuis X ?

Si la console est actuellement en train d'afficher X Window, vous pouvez utiliser Ctrl-Alt-F1, etc. pour passer d'une console à une autre. Notez cependantm qu'une fois que vous avez basculé depuis X Window vers un terminal virtuel, vous ne pouvez utiliser seulement les touches de fonctions Alt- pour passer à un autre terminal virtuel ou revenir è X Window. Vous n'avez pas à maintenir enfoncé la touche Ctrl. Si vous utilisez la touche contrôle pour revenir a X sur certaines vieilles versions, vous pouvez retrouver votre console texte bloquée en mode ``control-lock'' Taper la touche contrôle à nouveau pour le débloquer.

9.6. Comment démarrer XDM au boot ?

Il y a deux écoles de pensée à propos du démarrage de xdm Une école démarre xdm epuis /etc/ttys en utilisant l'exemple fourni. tandis que l'autre lance simplement xdm depuis rc.local depuis un script X.sh dans /usr/local/etc/rc.d. Les deux approches sont valides, et suivant les situations, une méthode peut marcher et pas l'autre. Dans les deux cas, le résultat est le même : X fera apparaître une incite de login graphique.

La méthode du ttys a l'avantage de documenter quel vty X va démarrer et en passant la responsabilité de redémarrer le serveur X au logout pour s'initialiser. La méthode rc.local rend la destruction par un kill de xdm très facile si jamais un problème de démarrage du serveur X était rencontré.

Si xdm est chargé depuis /etc/rc.local, il peut-être démarré avec n'importe quel argument (i.e comme un démon).

Une version précédente de la FAQ disait d'ajouter les vt que vous vouliez que X utilise dans le fichier /usr/X11R6/lib/X11/xdm/Xservers. Cela n'est pas nécessaire, et X utilisera le premier vt qu'il trouvera.

9.7.  Quand je lance xconsole, j'obtiens ``Couldn't open console''

Si vous démarrez X avec startx, les permissions sur /dev/console ne seront pas changé, ce qui entraînera que xterm -C et xconsole ne marcheront pas.

Cela est dû à la manière dont les droits sur la consoles sont fixés par défaut. Sur un système multi-utilisateur, on ne veut pas nécessairement que n'importe quel utilisateur ait la possibilité d'écrire sur la console système. Pour les utilisateurs qui se logguent directement sur la machine avec un VTY, le fichier fbtab est là pour résoudre ce problème.

En pratique, assurez vous d'avoir une ligne décommenté de la forme :

/dev/ttyv0 0600 /dev/console

dans/etc/fbtab et cela assurera que quiconque se logguera sur /dev/ttyv0 obtiendra les droits sur la console.

9.8. Ma souris PS/2 ne se comporte pas bien sous X.

Votre souris et votre pilote de souris ont dû se désynchroniser

Dans les versions 2.2.5 et avant, passer de X à un termical virtuel et revenir à X ensuite , peuvent les re-synchroniser. Si le problème apparaît souvent, vous pouvez ajouter l'option suivante dans votre fichier de configuration du noyau, et recompiler.

options PSM_CHECKSYNC

voir la section sur la construction du noyau si vous n'avez aucune expérience dans la recompilation de noyau.

Avec cette option, vous aurez moins de chance d'avoir de problème de synchronisation entre la souris et le pilote. Si, malgrès tout, vous aviez ce problème, cliquez sur un bouton quelconque de la souris en maintenant la souris jusqu'à resynchroniser la souris et le pilote.

Notez que malheureusement cette option peut ne pas marcher avec tous les systèmes et vide la fonctionnalité ``TAP'' du périphérique ALPS GlidePoint attaché auport souris PS/2

Dans les versions 2.2.6 et plus, la vérification de la synchronisation est un peu mieux faite et est standard avec les pilotes souris PS/2. Cela devrait même marcher avec GlidePoint. (comme le code de vérification est devenu une fonctionnalité standard, l'option PSM_CHECKSYNC n'est pas disponible dans ces versions). Malgrès il y a des rares cas où le pilote peut de façon erronée repporter des problèmes de synchronisation, et vous pourrez alors voir le message :

psmintr: out of sync (xxxx != yyyy)

et voir que votre souris ne marche pas correctement.

Si cela arrive, désactiver le mode de vérification de la synchronization en positionnant le drapeau pour les pilotes de souris PS/2 à 0x100. Entrez dans UserConfig en tapant ``-c'' option à l'invite du boot.

boot: -c

Puis en ligne de comande de UserConfig, tapez :

UserConfig>flags psm0 0x100
UserConfig>quit

9.9. Ma souris PS/2 mouse de MouseSystems ne marche pas

Certains ont rapportés que certains modèles de souris PS/2 de MouseSystem ne marchaient que lorsqu'ils étaient mis en mode ``haute résolution''. D'un autre côté, le curseur de souris peut sauter d'une extrémité de l'écran à l'autre très souvent.

Malheureusement, il n'y a pas de solution pour les versions 2.0.X et 2.1.X. Dans les versions 2.2 à 2.2.5, ajouter le patch suivant à /sys/i386/isa/psm.c et reconstruisez le noyau. Voir la section sur la construction d'un noyausi vous n'avez aucune expérience dans la construction des noyaux,

diff -u psm.c.orig psm.c
@@ -766,6 +766,8 @@
if (verbose >= 2)
log(LOG_DEBUG, "psm%d: SET_DEFAULTS return code:%04x\n",
unit, i);
+    set_mouse_resolution(sc->kbdc, PSMD_RES_HIGH);
+
if 0
set_mouse_scaling(sc->kbdc); 	/* 1:1 scaling */
set_mouse_mode(sc->kbdc);		/* stream mode */

Dans les versions 2.2.6 et plus, spécifier le drqpeau 0x04 au pilote de souris PS/2 afin de mettre la souris en mode haute résolution. Entrez dansUserConfig en spécifiant l'option ``-c'' à l'invite du boot.

boot: -c

puis, dans la ligne de commande deUserConfig tapez :

UserConfig>flags psm0 0x04
UserConfig>quit

Voir les sections précédentes pour les autres causes possibles de problèmes avec la souris.

9.10. Lorsque je construis une application X, imake dit qu'il ne trouve pas Imake.tmpl. Où est-t-il ?

Imake.tmpl est une partie du paquetage Imake, un outil de développement standart sous X. Imake.tmpl,tout comme plusieurs fichiers d'en-tête qui sont requis lors de la construction d'applications X est contenu dans la distribution de programmes X. Vous pouvez l'installer depuis sysinstall ou manuellement à partir des fichiers de distributions X.

9.11. Comment puis-je inverser les boutons de la souris ?

Lancez la commande xmodmap -e "pointer = 3 2 1" depuis votre .xinitrc ou .xsession.

Chapitre 10. Réseaux. **Mise à jour en cours**

10.1. Où puis-je trouver des informations sur le ``boot sans disque''?

Le ``boot sans disque'' veut dire que la machine sous FreeBSD est bootée depuis le réseau, et lit les fichiers nécessaires depuis un serveur et non depuis son disque dur. Pour plus de détails, lisez la section du Handbook sur le Diskless booting

10.2.  Une machine sous FreeBSD peut-elle être utilisée comme routeur dédié ?

Les standards de l'Internet et de bonnes pratiques techniques nous interdisent de faire par défaut du routage de paquets avec FreeBSD. Mais vous pouvez néamoins activer cette fonctionnalité en changeant la variable suivante à YES dans rc.conf:

gateway_enable=YES  # L'hote agira comme routeur s'il est positionne a YES

Cette option mettra la variable sysctl net.inet.ip.forwarding à 1.

Dans la plupart des cas, vous aurez aussi à lancer un processus de routage afin de renseigner les autres systèmes sur votre routeur. FreeBSD est fourni avec le démon de routage standard BSD routed, ou pour des situations plus complexes, vous pouvez essayer GaTeD (disponible par FTP depuis ftp.gated.Merit.EDU) qui supporte FreeBSD depuis 3_5Alpha7.

Nous nous devons de vous prévenir que lorsque FreeBSD est configuré de cette manière, il ne correspond pas tout à fait aux requis standards de l'Internet sur les routeurs. Néamoins, il s'en rapproche assez pour un usage ordinaire.

10.3.  Puis-je connecter ma machine sous Win95 à l'Internet via FreeBSD ?

Typiquement, les gens qui posent cette questions sont ceux qui ont 2 PC à la maison, un avec FreeBSD et un avec Win95. L'idée est d'utiliser la machine sous FreeBSD pour se connecter à l'Internet et puis pouvoir ensuite accéder à l'Internet depuis la machine sous Windows 95 via la machine sous FreeBSD. Ce n'est en réalité qu'un cas particulier de la question précédente.

Il y a un document très pratique qui explique comment configurer FreeBSD comme routeur par connexion PPP

NOTE: Cela requiert que vous ayez au moins deux adresses IP fixes, et probablement 3 ou plus, cela dépend du travail que vous voulez effectuer pour pouvoir mettre en place la machine sous Windows. Comme alternative, si vous n'avez pas d'adresse IP fixe, vous pouvez utiliser une des adresses IP privés et installer des proxies comme SQUID et le TIS firewall toolkit sur la machine sous FreeBSD.

Voir aussi la section sur natd .

10.4.  Pourquoi la recompilation du dernier BIND de ISC échoue-t-elle ?

Il y a un conflit entre le fichier ``cdefs.h'' de la distribution et celui fourni par FreeBSD. Vous n'avez qu'à enlever compat/include/sys/cdefs.h.

10.5. FreeBSD supporte-t-il SLIP et PPP?

Oui, regardez les pages de manuel slattach, sliplogin, pppd et ppp. pppd et ppp permettent les connexions entrantes et sortantes Sliplogin ne peut s'utiliser qu'avec des connexions entrantes et slattach qu'avec des connexions sortantes.

Ces programmes sont décrits dans les sections suivantes du handbook:

référence du handbook sur SLIP (côté serveur)

référence du handbook sur SLIP (côté client)

référence du handbook sur PPP (mode noyau)

référence du handbook sur PPP (mode utilisateur)

Si vous avez accès à l'Internet à travers un "compte shell" vous pouvez jeter un coup d'oeil au paquetage slirp. Il peut vous fournir un accès (limité) aux services tels que ftp et http directement depuis votre machine locale.

10.6.  Est-ce que FreeBSD supporte NAT ou le Masquerading ?

Si vous avez un sous-réseau local (une ou plusieur machines), mais qu'une seule adresse IP vous a été allouée (même si ce n'est qu'une adresse IP dynamique), vous pouvez regarder le programme natd . Natd vous permet de connecter un sous-réseau entier à l'Internet en n'utilisant qu'une seule adresse IP.

Le programme ppp a des fonctionnalités similaires construit par l'intermédiaire de l'option -alias switch. La bibliothèque alias est utilisée dans les deux cas.

10.7.  Je n'arrive pas à faire marcher ppp. Où me suis-je trompé ?

Vous devriez tout d'abord lire la page de manuel ppp et la section du handbook sur ppp. Activer le logging avec la commande

set log Phase Chat Connect Carrier lcp ipcp ccp command

Cette commande peut-être tapée à l'invite de commande de ppp ou peut-être entrée dans le fichier de configuration /etc/ppp/ppp.conf. (le début de la section par défaut default est l'endroit idéal pour le mettre). Assurez vous que le fichier /etc/syslog.conf contienne les lignes

!ppp
*.*              /var/log/ppp.log

et que le fichier /var/log/ppp.log existe. Vous pouvez aussi tirer pas mal de renseignements sur ce qui se passe en lisant les fichiers log. Ne vous inquiétez pas même si cela vous semble dénué de sens, si vous obtenez de l'aide de quelqu'un, pour lui, cela aura un sens.

Si votre version de ppp ne comprend pas la commande "set log" vous devriez charger la dernière version. Il pourrra se construire sur FreeBSD version 2.1.5 et plus.

10.7.1. Ppp se bloque quand je le lance

Cela est usuellement dû au fait que votre nom d'hôte ne peut être résolu. La meilleure solution pour résoudre ce problème est de s'assurer que votre /etc/hosts est consulté en premier par votre résolveur en éditant /etc/host.conf et en mettant la ligne hosts en premier. Puis, ajoutez simplement une entrée pour votre machine locale dans /etc/hosts. Si vous n'avez pas de réseau local, changez simplement votre ligne localhost :

127.0.0.1	foo.bar.com	foo	localhost

Sinon, ajoutez simplement une autre entrée pour votre hôte. Consultez les pages de manuels appropriées pour plus de détails. Vous devrez être alors capable de réussir à faire un ping -c1 `hostname` quand vous aurez fini.

10.7.2. Ppp ne veut pas communiquer en mode -auto

Tout d'abord, vérifiez que vous avez bien un routage par défaut en lançant netstat -rn, vous devriez voir deux entrées comme suivent :

Destination        Gateway            Flags     Refs     Use     Netif Expire
default            10.0.0.2           UGSc        0        0      tun0
10.0.0.2           10.0.0.1           UH          0        0      tun0

ici, on supposera que vous avez utilisé les adresses données en exemple dans le handbook, les pages man ou depuis le fichier ppp.conf.sample. Si vous n'avez pas de routage par défaut, c'est peut-être parce que vous utilisez une vieille version de ppp qui ne comprend pas le mot HISADDR dans le fichier ppp.conf. Si votre version de ppp est antérieure à FreeBSD 2.2.5, changer la ligne

add 0 0 HISADDR

par celle-ci :

add 0 0 10.0.0.2

Une autre raison au fait que la ligne du routage par défaut soit manquante est que vous avez pu régler un routage par défaut erroné dans le fichier /etc/rc.conf (ce fichier est appelé /etc/sysconfig avant la release 2.2.2), et que vous avez oublié la ligne suivante :

delete ALL

from ppp.conf. Si cela est le cas, revenez à la section du handbook sur la configuration finale du système section of the handbook.

10.7.3.  Que veut dire "No route to host" ?

Cette erreur est usuellement dûe à une omission de la section

MYADDR:
delete ALL
add 0 0 HISADDR

dans votre fichier /etc/ppp/ppp.linkup. Cela est seulement nécessaire si vous avez une adresse IP dynamique ou que vous ne savez pas l'adresse de votre routeur. Si vous utilisez le mode interactif, vous pouvez taper les lignes suivantes après être entré en mode paquet (le mode paquet est indiqué par le PPP en majuscule à l'invite):

delete ALL
add 0 0 HISADDR

Se référer à la section du handbook sur PPP et les adresses IP dynamiques pour plus de détails.

10.8. Ma connexion se termine au bout de 3 minutes

La limite de temps (timeout) par défaut de ppp est de 3 minutes. Cela peut-être ajusté avec les lignes :

set timeout NNN

où NNN est le nombre de secondes d'inactivité avant que la connexion ne soit fermée. Si NNN est égal à zero, la connexion ne sera jamais fermée pour cause de limite de temps écoulée. Il est possible de mettre cette commande dans le fichier ppp.conf, ou de la taper à l'invite en mode interactif. Il est également possible de l'ajuster au vol alors que la ligne est active, en se connectant à la socket du serveur ppp en utilisant telnet ou pppctl. Se réferer à la page de manuel de ppp pour plus de détails.

10.8.1. Ma connexion se termine lors de gros chargements.

Si vous avez activé le report de la qualité de connexion (Link Quality Reporting (LQR)), il est possible ce soit parce que que trop de paquets LQR sont perdus entre la machine et son interlocuteur. PPP en déduit que la ligne doit être trop mauvaise, et se déconnecte. Avant la version 2.2.5 de FreeBSD, LQR était activé par défaut. Il est maintenant désactivé par défaut. LQR peut-être désactivé avec la ligne suivante :

disable lqr

10.8.2.  Ma connexion se termine après un certain temps aléatoire.

Parfois, sur une ligne de téléphone avec des parasites, ou même sur une ligne avec des attentes d'appels activées, le modem peut se suspendre parce qu'il pense (de manière erronée) qu'il y a une perte du support de connexion (lost carrier)

Il y a un réglage sur la plupart des modems qui déterminent le degré de tolérance sur la perte temporaire de la ligne porteuse. Sur un USR Sportster par exemple, cela est mesuré par le registre S10 en dixième de secondes. Pour rendre votre modem plus tolérant, vous pouvez ajouter la séquence envoi-attente suivante à votre chaîne de connexion :

set dial "...... ATS10=10 OK ......"

Se référer au manuel de votre modem pour plus de détails.

10.8.3.  Rien ne se passe après le message Login Ok!

Avant la version 2.2.5 de FreeBSD, une fois la ligne établie, ppp devait attendre que ce soit l'autre parti (peer) qui initialise le protocole de contrôle de ligne (Line Control Protocol (LCP). Or, plusieurs ISPs ne débuteront pas la négociation et attendront du client qu'il le fasse. Pour forcer ppp à initialiser le LCP, utiliser la ligne suivante :

set openmode active

Note: Cela ne fait pas de dégats si chacun des deux parties initialisent tous les deux la connexion, c'est pourquoi openmode est à présent activé par défaut. Quoiqu'il en soit, la prochaine section expliquera quand est-ce ce que cela peut gêner.

10.8.4.  Je n'arrête pas de voir des erreurs à propos de magic being the same

De temps en temps, juste après la connexion, vous pouvez voir des messages dans le log qui dit "magic is the same". Parfois ces messages sont sans conséquences, et parfois l'un ou l'autre des partis quitte. La plupart des implémentations ppp ne peuvent survivre à ce problème, et même si la ligne semble venir, vous verrez régulièrement des demandes de configuration et des accusés de réception de configuration dans le fichier log à moins que ppp abandonne et ne ferme la connexion.

Cela apparaît normallement sur les machines serveurs avec des disques lents qui diffusent un getty sur le port, et qui exécute ppp depuis un script ou programme de login après le login. J'ai aussi eu vent de cela arrivant lorsqu'on utilise slirp. La raison est qu'entre le temps où getty quitte et que ppp commence, le ppp côté-client commence par envoyer des paquets Line Control Protocol (LCP). Parce que l'ECHO est toujours actif sur les ports du côté serveur, le client ppp verra ces paquets qui lui seront "reflèté".

Une partie de la négociation LCP est d'établir un nombre magique (magic number) de chaque côté de la ligne, ceci afin que les "réflexions" soient détectées. Le protocole dit que lorsque l'autre parti essaye de négocier le même nombre magique, un NAK devrait être envoyé et un nouveau nombre magique choisi. Durand la période où le serveur où le port serveur a l'ECHO activé, le client ppp envoie des paquets LCP, voit le même nombre magique dans les paquets reflètés et il le "NAK". Il voit aussi les reflexions de NAK (qui veut aussi dire que ppp devrait changer son nombre magique). Cela produit potentiellement un énorme nombre de nombre magiques à changer, chacun d'entre eux tous s'empilant joyeusement dans le buffer stty du serveur. Aussitôt que ppp démarre sur le serveur, il est innondé par des changement de nombre magique et souvent décide qu'il a assez essayé de négociation LCP et abandonne. Pendant ce temps, le client qui ne voit alors plus de réflexions, se réjouit juste le temps de voir que le serveur l'a déconnecté.

Cela peut-être évité en autorisant l'autre parti à démarrer la négociation avec la ligne suivante dans le fichier ppp.conf

set openmode passive

Cela dit à ppp d'attendre que le serveur débute la négociation LCP. Certains serveurs toutefois peuvent ne jamais initier la négociation. Si cela est le cas, vous pouvez faire quelque chose du genre :

set openmode active 3

Cela dit à ppp de rester passif pendant 3 secondes, et puis commencer à envoyer les requêtes LCP/ Si l'autre parti commence à envoyer des requêtes durant cette période, ppp répondra immédiatement plutôt qu'en attendant que la période des 3 secondes se termine.

10.8.5.  Les négociations LCP continuent jusqu'à ce que la connexion soit fermée.

Cela est pour l'instant un défaut d'implémentation dans ppp où il n'associe pas les réponses LCP, CCP & IPCP avec leur requête originale. Comme conséquence, si l'une des implémentations ppp est 6 secondes plus lente que l'autre côté, l'autre côté enverra 2 requêtes de configuration LCP supplémentaire. Cela est fatal. Soient 2 implémentations, A et B. A commence à envoyer des requêtes LCP immédiatement après s'être connecté et B met 7 secondes à démarer. Quand B démarre, A a envoyé 3 requêtes LCP. Nous supposons que la ligne a désactivée l'ECHO, car dans le cas contraire nous verrions des problèmes de nombres magiques comme décrit dans la section précédente. B envoi un REQ, puis un ACK au premier REQ de A. Le résultat est que A entre dans l'état OPENED et envoie un ACK (le premier) en retour à B. Pendant ce temps, B renvoi 2 ACK de plus en réponse au 2 REQ supplémentaires envoyés par A avant B que B n'ait commencé. B reçoit alors le premier ACK de A et entre dans l'état OPENED. A reçoit le deuxième ACK de B et revient à l'état REQ-SENT, et envoie un autre (quatrième) REQ comme décrit dans la RFC. Il envoie alors un troisième ACK et entre dans l'état OPENED. Durant ce moment, B reçoit le quatrième REQ de A, par conséquent, revient dans l'état ACK-SENT et envoie un autre (second) REQ et (quatrième) ACK as per the RFC. A reçoit le REQ, va dans l'état REQ-SENT et envoie un autre REQ. Il reçoit alors immédiatement le ACK suivant et entre dans l'état OPENED.

Cela continue tant qu'un des partis ne s'aperçoive qu'ils n'iront nulle part comme cela et abandonne.

La meilleure façon d'éviter cela est de configurer un côté comme étant passif - cela fait, faire de telle sorte qu'un des côtés attende que l'autre commence la négociation. Cela peut-être fait par la commande :

set openmode passive

Faire attention avec cette option, vous devriez aussi utiliser la commande

set stopped N

afin de limiter la durée avant que ppp attende de l'autre parti de commencer la négociation. D'une autre façon, la commande

set openmode active N

(où N est le nombre de secondes qu'il faut attendre avant que le démarrage de la négociation ne soit faite). Regardez les pages de manuels pour plus de détails.

10.8.6.  Ppp se verrouille peu après la connexion.

Avant la version 2.2.5 de FreeBSD, il était possible que votre ligne soit désactivée peu après la connexion, dûe à une mauvaise négociation de compression Predictor1 de ppp Cela ne devrait arriver que si deux côtés essayent de négocier des protocoles de contrôle de compression ( Compression Control Protocols (CCP) différents. Ce problème est à présent résolu, mais si vous utilisez toujours une vieille version de ppp, le problème peut-être sauté avec la ligne

disable pred1

10.8.7.  Ppp se verrouille quand je "shell" pour le tester.

Quand vous exécutez le shell ou la commande !, ppp exécute un shell (ou si vous avez passé des arguments, ppp exécutera ces arguments). Ppp attendra que la commande se termine avant de continuer. Si vous avez l'intention d'utiliser la connexion ppp pendant que vous lancez la commande, la connexion apparaîtra alors comme ayant été gelée. Cela parce que ppp attend que la commande se termine.

Si vous voulez exécuter des commandes comme cela, utilisez plutôt la commande !bg. Cela exécutera la commande en arrière plan, et ppp pourra continuer de servir la connexion.

10.8.8.  Ppp sur un null-modem ne quitte jamais.

Il n'y a aucune manière pour que ppp détermine automatiquement qu'une connexion directe s'est achevée. Cela est dû aux lignes utilisées dans un câble série null-modem. Quand on utilise cette sorte de connexion, LQR devrait être toujours activé avec la ligne :

enable lqr

LQR est accepté pas défaut si négocié par l'autre parti.

10.9.  Pourquoi ppp tente de se connecter sans raison em mode -auto ?

Si ppp tente de se comnnecter sans raison aucune, vous devez en déterminer la cause et mettre en place des filtrages d'appels (dfilters) pour prévenir de tels appels.

Afin d'en déterminer la cause, utilisez la ligne suivant :

set log +tcp/ip

Cela tracera tous le trafic à travers une connexion. La prochaine fois que la connexion se mettra en place de manière inattendue, vous verrez la raison tracé avec le moment où cela s'est produit à côté.

Vous pouvez à présent désactiver les appels sous ces circonstances. D'habitude, ces sortes de problèmes arrivent à cause des DNS lookup. Pour empêcher le DNS lookup d'établir une connexion (cela n'empêchera pas ppp de passer les paquets à travers une connexion établie), utilisez les lignes suivantes :

set dfilter 1 deny udp src eq 53
set dfilter 2 deny udp dst eq 53
set dfilter 3 permit 0/0 0/0

Cela ne convient pas toujours puisqu'il enlèvera effectivement vos fonctionnalités de demandes d'appels - la plupart des programmes auront besoin du DNS lookup avant de faire quelque chose ayant un rapport avec le réseau.

Dans le cas DNS, vous pouvez essayer de déterminer qui est-ce qui essaye actuellement de résoudre le nom de l'hôte. La plupart du temps, c'est sendmail le coupable. Vous devez vous assurer que vous avez dit à sendmail de ne faire aucun DNS lookup dans ses fichiers de configuration, regardez la section sur la configuration du mail pour les détails de comment créer son propre fichier de comfiguration, et qu'est ce qu'on doit mettre dedans. Vous pouvez aussi vouloir ajouter les lignes suivantes dans votre fichier .mc :

define(`confDELIVERY_MODE', `d')dnl

Cela fera que sendmail mettra tout en file d'attente jusqu'à ce que la file soit lancée (habituellement, sendmail est invoqué avec ``-bd -q30m'', lui disant de lancer la file d'attente toutes les 30 minutes) ou jusqu'à ce que un ``sendmail -q'' soit effectué (peut-être dans votre fichier ppp.linkup).

10.9.1.  Que veulent dire ces erreurs CCP ?

Je n'arrête pas de voir les erreurs suivantes dans mon fichier log :

CCP: CcpSendConfigReq
CCP: Received Terminate Ack (1) state = Req-Sent (6)

Ceci est obtenu parce que ppp est en train de négocier la compression Predictor1 et que l'autre parti ne veut pas du tout négocier de compression. Ces messages sont sans conséquences aucune, mais si vous voulez les enleverm vous pouvez désactiver la compression Predictor1 aussi en local.

disable pred1

10.9.2. Ppp se bloque durant les transferts de fichiers avec une erreur IO.

Sous FreeBSD 2.2.2 et avant, il y avait un bug dans le driver tun qui stoppait tous les paquets entrants d'une taille plus grande que la taille MTU de l'interace tun. La réception de paquets plus grands que la taille du MTU résultait en une erreur IO qui était alors tracé avec syslogd,

Les spécifications ppp disent qu'un MTU de 1500 devrait toujours être accepté comme un minimum, ceci quelque soit la négociation LCP. Il est toutefois possible que vous diminuez le MTU à moins de 1500, votre ISP vous transmettra des paquets de 1500 sans s'en préoccuper, et cela vous bloquera, gelant ainsi la ligne.

Ce problème peut être contourné en ne réglant jamais un MTU en dessous de 1500 sous FreeBSD 2.2.2 et avant.

10.9.3.  Pourquoi ppp ne trace-t-il pas ma vitesse de connexion ?

La façon de tracer toutes les lignes de la ``conversation'' de votre modem est d'activer :

set log +connect

Cela permettra à ppp de tout tracer jusqu'à la dernière chaîne de requête d'"attente"

Si vous voulez voir votre vitesse de connexion et que vous utilisez PAP ou CHAP (et donc ne rien avoir avec "chat" après le CONNECT dans le script dial - pas de script "set login"), vous devez vous assurer que vous prévenez ppp de s'attendre tout la ligne CONNECT, quelque chose comme :

set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"

Ici, nous avons notre CONNECT, ne rien envoyer, et puis attendre un saut de ligne, forçant ppp à lire toute la réponse CONNECT.

10.9.4. Ppp ignore le caractère `\' dans mon script chat

Ppp parse chacune des lignes de votre fichier de configuration, de telle sorte qu'il puisse interprêter des chaines comme set phone "123 456 789" correctement (et réaliser qu'il n'y a que un seul argument. Pour pouvoir spécifier un caractère ``"'', vous devez l'échapper avec un backslash (``\'').

Quand l'interprêteur chat parse chaque argument, il re-interprête l'argument de telle sorte à trouver des séquences de caractères d'échappement comme ``\P'' ou ``\T'' (voir les pages de manuel). En conséquence de ce double-parsing, vous devez vous souvenir d'utiliser le nombre correct d'échappement.

Si vous voulez envoyer un caractère ``\'' à votre modem, vous aurez besoin de faire quelque chose comme :

set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"

qui se résultera en la séquence suivante :

ATZ
OK
AT\X
OK

ou encore

set phone 1234567
set dial "\"\" ATZ OK ATDT\\T"

résultera en la séquence suivante :

ATZ
OK
ATDT1234567

10.9.5. Ppp reçoit une erreur de segmentation, mais je ne trouve pas de fichier ppp.core

Ppp (ou n'importe quel programme dans le même cas) ne devrait jamais faire de coredump. Parce que ppp tourne avec une identité d'utilisateur effectif de 0, le système d'exploitation n'écrira pas d'image du core sur le disque avant de l'avoir terminé. Si, malgrè tout, ppp se termine actuellement à cause d'une violation de segmentation, ou n'importe quel autre signal qui cause normalement un core dump, et que vous êtes sûr que vous utilisez la dernière version (voir le début de cette section), alors vous devriez faire la chose suivante :

$ tar xfz ppp-*.src.tar.gz
$ cd ppp*/ppp
$ echo STRIP= >>Makefile
$ echo CFLAGS+=-g >>Makefile
$ make clean all
$ su
make install
chmod 555 /usr/sbin/ppp

Vous aurez alors une version déboguable de ppp installé. Vous aurez à être root pour lancer ppp puisque tous ses privilèges auront été révoqués. Quand vous démarrez ppp, retenez soigneusement le répertoire courant dans lequel vous étiez.

A présent, si et quand ppp recevra une violation de segmentation, cela crééra un fichier core nommé ppp.core. Vous aurez alors à faire la chose suivante :

$ su
gdb /usr/sbin/ppp ppp.core
(gdb) bt
.....
(gdb) f 0
.....
(gdb) i args
.....
(gdb) l
.....

Toutes ces informations devront être données suivant votre question, rendant ainsi possible le diagnostique de votre problème.

Si vous êtes familier avec gdb, vous pouvez vouloir trouver d'autres techniques pour trouver ce qui a causé le dump, et les adresses et valeurs des variables concernées.

10.9.6.  Le processus qui force un appel en mode auto ne se connecte jamais.

Cela est un problème connu quand ppp est réglé de telle sorte à négocier une adresse IP dynamique avec son homologue. Quand ce programme initial appelle connect(2) , l'adresse IP de l'interface tun est assignée à l'extrêmité de la socket. Le noyau crée le premier paquet sortant et l'écrit sur le périphérique tun. Ppp lit alors le paquet et établit alors la connexion. Si, comme résultat de l'assignation dynamique de ppp, l'adresse de l'interface est changée, l'extrêmité originale de la socket sera invalide. Tout paquet envoyé à l'autre parti sera alors en principe perdu. Et même s'il ne l'était pas, toute réponse ne pourrait pas être renvoyée à la machine originelle puisque l'adresse IP ne serait plus possèdée par cette machine.

Théoriquement, il y a plusieurs manières d'aborder ce problème. Le mieux serait que l'homologue re-assigne la même adresse IP si possible :-)

La meilleure méthode de notre côté, serait de ne jamais changer l'adresse IP de l'interface tun, mais à la place, changer tous les paquets sortant de telle sorte que les adresses IP de la source soient changées de l'interface Ip à l'IP négocié au vol. C'est essentiellement ce que libalias(3) (et l'option -alias de ppp) font actuellement.

Une autre alternative (et probablement la plus sûre); est d'implémenter un appel système qui change tous les sockets reliées depuis une adresse IP à une autre. Ppp utiliserait cet appel pour modifier la socket de tous les programmes existant lorsqu'une nouvelle adresse IP est négociée.

Une troisième possibilité est d'autoriser à une interface de s'activer sans adresse IP. Les paquets sortant auront une adresse IP de 255.255.255.255 jusqu'à ce que le premier SIOCAIFADDR ioctl soit fait. Cela reviendrait à lier entièrement la socket, et ça serait à ppp de changer l'adresse IP source, mais seulement si il est à 255.255.255.255, et seulement si le numéro IP et le checksum IP doivent être changés. Quoiqu'il en soit, c'est de la bidouille puisque le noyau enverra des paquets invalides à une interface mal configurée, en supposant que d'autres mécanismes seront capables de réparer les choses retrospectivement.

Aucune de ces solutions n'a (encore) été implémentée.

10.9.7. Pourquoi la plupart des jeux ne marchent pas avec l'option -alias ?

La raison pour laquelle les jeux et assimilés ne marchent pas avec libalias est que la machine extérieure essaye d'ouvrir une connexion ou envoyer des paquets UDP (non sollicités) à la machine interne. Le logiciel packet alias ne sait alors pas qu'il faut envoyer ces paquets à une machine interne.

Pour que ça marche, assurez vous que la seule chose qui tourne est le logiciel avec lequel vous avez des problèmes, puis alors, soit vous lancez tcpdump sur votre interface tun de votre routeur, soit vous activez le login ppp tcp/ip (``set log +tcp/ip'') sur votre routeur.

Quand vous démarrez le logiciel incriminé, vous devriez voir les paquets passer à travers la machine routeur. Quand quelque chose revient depuis l'extérieur, il sera retiré (c'est ça le problème). Noter le numéro de port de ces paquets, puis arrêtez le logiciel incriminé. Faite ceci quelques fois pour voir si les numéro de ports sont consistants. Si ils le sont, alors la ligne suivante dans la section appropriée de /etc/ppp/ppp.conf rendra le logiciel fonctionnel.

alias port proto internalmachine:port port

où ``proto'' est soit ``tcp'' ou ``udp'', ``internalmachine'' est la machine à laquelle vous voulez que les paquets soient envoyés et ``port'' le numéro de port de destination des paquets.

Vous ne pourrez pas utiliser le logiciel sur d'autres machines sans changer la commande du dessus, et lancer le logiciel sur 2 machines internes en même temps est hors de question - après tout, le monde extérieur voit tout votre réseau entier comme une seule machine.

Si les numéros de ports ne sont pas consistants, il y a 3 autres options :

1) Soumettre le support dans libalias. Des exemples de ``cas spéciaux'' peuvent être trouvés dans /usr/src/lib/libalias/alias_*.c (alias_ftp.c iest un bon prototype). Cela implique habituellement la lecture de certains paquets sortant reconnus, identification des instructions qui dit à la machine extérieure d'initialiser la connexion en retour vers machine interne sur un port (aléatoire) spécifique, et mettre en place une ``route'' dans la table d'alias de telle sorte que les paquets concernés sachent où aller.

C'est la solution la plus difficile, mais c'est la meilleure et permettra au logiciel de marcher sur plusieurs machines

2) Utiliser un proxy. L'application peut pouvoir supporter socks5 par exemple, ou (comme dans le cas de ``cvsup'') peut avoir une option ``passive'' qui évite d'avoir à toujours demander que l'autre parti ouvre une connexion en retour sur la machine locale.

3) Tout rediriger vers une machine interne utilisant ``alias addr''. C'est l'approche "bourrin".

10.9.8. Rien de cela ne marche - je suis désespéré !

Si tout le reste échoue, envoyer autant d'informations que vous pouvez, y compris vos fichiers de configuration, comment vous avez démarré ppp, les parties pertinentes de votre fichier log, et la sortie de la commande netstat -rn (avant et après connexion) à la liste de diffusion freebsd-questions@FreeBSD.org ou au newsgroup comp.unix.bsd.freebsd.misc, et quelqu'un devrait vous orienter dans la bonne direction.

10.10. Je ne peux pas créer un périphérique /dev/ed0 !

Dans le cadre des réseaux Berkeley, les interfaces réseaux sont seulement directement accessibles par le code du noyau. Regarder le fichier /etc/rc.network et les pages de manuels pour les différents programmes réseaux mentionnés ici pour plus d'informations. Si cela vous est complètement confus, vous devriez prendre un livre décrivant l'administration réseaux sur un autre système d'exploitation relatif à BSD; à quelques exceptions mineures, administrer un réseau sous FreeBSD est basiquement la même chose que sur un SunOS 4.0 ou un Ultrix.

10.11. Comment puis-je régler les alias éthernet ?

Ajouter ``netmask 0xffffffff'' à votre ligne de commande ifconfig comme ci-dessous :

ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff

10.12.  Comment puis-je faire pour que mon 3C503 utilise l'autre port réseau ?

Si vous voulez utiliser les autres ports, vous avez à spécifier un paramêtre supplémentaire dans la ligne de commande ifconfig. Le port par défaut est``link0''. Pour utiliser le port AUI à la place du BNC,utiliser ``link2''. Ces paramêtres devraient être spécifiés en utilisant les variables de ifconfig_* variables dans /etc/rc.conf.

10.13. J'ai des problèmes avec NFS depuis/vers FreeBSD.

Certaines cartes réseaux sont meilleures que d'autres et peuvent causer quelquefois des problèmes lors d'applications réseaux intensives comme NFS.

Regarder la partie du Handbook sur NFS pour plus d'informations à ce sujet.

10.14.  Pourquoi ne puis-je pas monter par NFS depuis une machine sous Linux ?

Certaines versions du code NFS de Linux ne peuvent accepter des requêtes de montages que depuis un port privilègié; essayez

mount -o -P linuxbox:/blah /mnt

10.15.  Pourquoi ne puis-je pas monter un NFS depuis une machine Sun ?

Les stations de travail Sun sous SunOS 4.X n'acceptent seulement des requêtes de montage que depuis un port privilègié; essayez

mount -o -P sunbox:/blah /mnt

10.16. J'ai des problème pour parler PPP à des machines NeXTStep.

Essayer de désactiver l'extension TCP dans /etc/rc.conf en changeant la variable à NO :

tcp_extensions=NO

les machines Xylogic's Annex ne marchent pas non plus dans ce contexte, et vous devez changer de même que ci-dessus pour pouvoir vous connecter au travers d'elles.

10.17. Comment activer le support multicast IP ?

Les opérations multicast sont entièrement supportées par FreeBSD 2.0 et plus par défaut. Si vous voulez que votre machine marche comme un routeur multicast, vous devez recompiler votre noyau avec l'option MROUTING et lancer mrouted. FreeBSD 2.2 et plus démarrera mrouted au moment du boot si l'option mrouted_enable est mis à "YES" dans /etc/rc.conf.

Les outils MBONE tools sont disponibles dans leur propre catégorie de ports, mbone. Si vous cherchez les outils de conférence vic et vat, c'est là qu'il faut voir !

Pour plus d'informations, regarder le web d'information Mbone.

10.18. Quelles cartes réseaux sont basées sur le chipset DEC PCI ?

Voici une liste compilée par Glen Foster, avec quelques ajouts récents :

Vendor          Model
----------------------------------------------
ASUS            PCI-L101-TB
Accton          ENI1203
Cogent          EM960PCI
Compex          ENET32-PCI
D-Link          DE-530
Dayna           DP1203, DP2100
DEC             DE435
Danpex          EN-9400P3
JCIS            Condor JC1260
Linksys         EtherPCI
Mylex           LNP101
SMC             EtherPower 10/100 (Model 9332)
SMC             EtherPower (Model 8432)
TopWare         TE-3500P
Zynx            ZX342

10.19.  Pourquoi dois-je utiliser le FQDN pour les hôtes de mon site ?

Vous verrez probablement que l'hôte est actuellement dans un domaine différent; par exemple, si vous êtes dans foo.bar.edu et que vous voulez atteindre un hôte nommé ``mumble'' dans le domaine bar.edu domain, vous aurez à vous y référer par son nom de domaine entièrement qualifié, ``mumble.bar.edu'', à la place de juste ``mumble''.

Traditionellement, cela était autorisés par les résolveurs BSD BIND. Malgrè tout, la version courante de bind qui est fournie avec FreeBSD ne fournit plus d'abbréviation par défaut pour un domaine non entièrement qualifié; autre que le domaine dans lequel vous êtes. Ainsi, un hôte non-qualifié mumble doit soit être trouvé comme mumble.foo.bar.edu, ou alors il sera cherché dans le domaine racine.

Cela est différent du comportement décrit auparavant, où la recherche continuait à travers mumble.bar.edu, et mumble.edu. Jetez un coup d'oeil à la RFC 1535 pour savoir pourquoi cela est considéré comme une mauvaise pratique, ou encore même un trou de sécurité.

Comme détour, vous pouvez placer la ligne :

search foo.bar.edu bar.edu

à la place de la précédente :

domain foo.bar.edu

dans votre fichier /etc/resolv.conf . Quoiqu'il en soit, assurez vous que l'ordre de recherche ne vas pas en dehors des ``limites entre l'administration locale et publique'', comme appelée dans la RFC 1535.

10.20. ``Permission denied'' pour toutes les opérations réseaux.

Si vous avez compilé votre noyau avc l'option IPFIREWALL, vous devez être prévenu, que la politique par défaut depuis le 2.1.7R (cela a changé durant le développement du 2.1-STABLE) est de refuser tous les paquets qui ne sont pas explicitement autorisés.

Si vous avez inintentionnellement mal configuré votre système pour le firewall, vous pouvez rétablir les fonctionnalité réseaux en tapant la commande suivante sous root :

ipfw add 65534 allow all from any to any

Vous pouvez aussi régler "firewall_type='open'" dans /etc/rc.conf.

Pour plus d'informations sur la configuration d'un firewall FreeBSD, voir la section correspondante du handbook.

10.21. Combien d'overhead, IPFW implique-t-il ?

La réponse à ceci dépend pour la plupart à votre ensemble de règle et à votre vitesse de processeur. Pour la plupart des applications utilisant ethernet et de petits ensembles de règles, la réponse est : négligeable. Pour tous ceux d'entre vous qui veulent des mesures actuelles pour satisfaire leur curiosité, continuez à lire :

Les mesures suivantes ont été réalisées en utilisant 2.2.5-STABLE sur un 486-66. IPFW a été modifié pour mesurer le temps écoulé par l'intermédiaire de la routine ip_fw_chk en affichant les résultats sur la console tous les 1000 paquets.

2 ensembles de règles, chacun avec 1000 règles ont été testés. Le premier ensemble a été conçu pour démontrer le scénario du pire des cas en répétant la règle :

ipfw add deny tcp from any to any 55555

Cela démontre le pire des cas en faisant que chaque paquet IPFW entraine l'exécution de la routine de vérification qui finallement décide que le paquet ne correspond pas aux règles (en vertu du numéro de port)? Apès la 999eme itération de cette règle, il y avait un allow ip from any to any.

Le second ensemble de règles a été conçu pour annuler la vérification de règle très rapidement :

ipfw add deny ip from 1.2.3.4 to 1.2.3.4

Les adresses IP des sources non correspondantes aux règles énoncées ci-dessus font que ces règles sont sautées très rapidement. Comme auparavant, la 1000eme règle était un allow ip from any to any.

L'étude par paquet dans le premier cas a été approximativement de 2.703ms/paquet, soit en gros 2.7 microseconds par règle . Ainsi, la limite théorique d'étude de paquet avec ces règles est de 370 paquets par secondes. En supposant un éthernet 10Mbps et des paquets d'environ 1500 bytes, nous ne pourrons être capable que d'obtenir une utilisation de la bande passante de 55.5%

Pour le dernier cas, chaque paquet a été étudié en approximativement 1.172ms, soit en gros 1.2 microseconds par règle. La limite théorique de l'étude des paquets ici, serait d'environ de 853 paquets par secondes, ce qui pourrait consommer une bande passante d'un éthernet 10Mbps.

Le nombre excessif de règle testés, et la nature de ces règles ne fournissent pas un scénario du monde réel -- ils ont été utilisés que pour générer les informations de temps présentés ici.Voici certaines choses à garder à l'esprit pour construire un ensemble de règles efficaces :

Placer une règle d'`établissement' très tôt afin de pouvoir gérer la majorité du trafic TCP. Ne mettre aucun allow tcp avant cette règle.

Placer les règles souvent sollicitées le plus au début de l'ensemble des règles plutôt que celles rarement utilisées (sans changer la permissivité du firewall , bien sûr). Vous pourrez voir quels sont les règles les plus souvent utilisées en examinant les statistiques des comptages des paquets avec ipfw -a l.

10.22. Comment puis-je rediriger les requêtes de services d'une machine vers une autre ?

Vous pouvez rediriger des requêtes FTP (et autre services) avec le paquetage 'socket', disponible dans l'arbre des ports dans la catégorie 'sysutils'. Remplacer simplement la ligne de commande de service pour appeler socket à la place, ainsi:

ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.foo.com ftp

où 'ftp.foo.com' et 'ftp' sont les hôtes et les ports où se diriger respectivement.

Chapitre 11. Communications par port série. **Mise à jour en cours**

Cette section comporte les réponses aux différentes questions sur la communication par port série sur FreeBSD. Les protocoles PPP et SLIP sont couverts dans la section Réseaux.

11.1. Comment savoir si FreeBSD a trouvé mes ports séries ?

Lorsque FreeBSD démarre, il recherche les ports série sur votre machine qui sont configurés dans le noyau. Vous pouvez voir ces ports en regardant avec attention au moment du démarrage les messages affichés, ou en lançant la commande suivante:

dmesg | grep sio

Lorsque votre système a démarré. Voici quelques exemples de l'affichage de la commande précédente.

sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A

Vous voyez alors apparaitre deux ports série. Le premier se trouve à l'adresse 0x3f8 sur l'IRQ 4 et est composé d'une puce de type 16550A. Le second est de meme type que le premier, mais se trouve lui à l'adresse 0x2f8 sur l'IRQ 3. Les cartes modems internes sont traités comme des ports série -- sauf qu'ils ont toujours un modem sur le port.

Le noyau GENERIC comprends le support pour deux ports série dont les adresses et les IRQ sont les memes que celles ci-dessus. Si ces valeurs ne vous conviennent pas, ou si vous avez des cartes modems additionnelles ou des cartes série, reconfigurez un noyau. Voyez la section sur la reconstruction d'un noyau pour plus de détails.

11.2. Comment savoir si FreeBSD a trouvé mes cartes modems

Référez vous à la section précédente

11.3. Je viens de mettre à jour ma machine en 2.0.5 et mes tty0x ont diparus !

Ne vous inquitez pas, ils sont été remplacés par les devices ttydX. Vous devrez donc changer toutes vos anciennes configurations pour utiliser ces devices.

11.4. Comment accéder aux ports série sous FreeBSD ?

Le troisième port série sio2 (aussi appelé COM3 sous DOS), s'appelle /dev/cuaa2 en sortie, et /dev/ttyd2 en entrée. Quelle est la différence entre ces deux classes de devices ?

Vous devez utiliser ttydX pour des appels sortants. Lorsque vous ouvrez /dev/ttydX en mode bloquant, un processus attend, sur le device cuaaX correspondant, qu'il soit inactif, et attends alors de détecter la porteuse sur la ligne. Lorsque vous ouvrez le port cuaaX , un processus vérifie déjà que le port ttydX correspondant est disponible. Si le port est disponible, alors il se l'approprie depuis le port ttydX . Le port cuaaXX ne tient pas compte de la détection de porteuse. Graçe a cette fonctionnalité et un modem, vous pouvez avoir des utilisateurs se logguant sur votre machine tout en vous laissant appeller via le meme modem, c'est le système qui se préocupera de gérer les conflits.

11.5. Comment activer le support pour les cartes séries multiports

Encore une fois, reportez vous à la section sur la configuration du noyau. Pour une carte série multiports placez une ligne sio pour chaque port série de la carte dans le fichier de configuration du noyau. Ne mettez pour une valeur l'irq et le vecteur d'adresse de la carte. Tous les ports de la cartes doivent partager la même irq. Pour des raisons de cohérence, spécifiez l'irq pour le dernier port. N'oubliez pas d'ajouter l'option COM_MULTIPORT .

L'example suivant correspond à une carte série 4ports AST sur l'irq 7

options "COM_MULTIPORT"
device sio4 at isa? port 0x2a0 tty flags 0x781
device sio5 at isa? port 0x2a8 tty flags 0x781
device sio6 at isa? port 0x2b0 tty flags 0x781
device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr

Les drapeaux (flags) indiquent que le port maitre à un nombre mineur de 7 (0x700), que nous désirons afficher les diagnostics (0x080) et que tous les ports partagent la même irq (0x001).

11.6. Est-ce que FreeBSD sait gérer les cartes séries multiports en partageant les IRQ ?

Pas pour le moment. Vous devez utiliser une IRQ différente pour chaque carte.

11.7. Puis-je définir les paramètres par défaut de la liaison série pour un port?

Les périphériques ttydX (ou cuaaX) sont des périphériques normaux que vous pouvez ouvrir dans vos applications. Lorsqu'un processus ouvre le périphérique, il utilise les paramètres par défaut d'entrées sorties de terminal. Vous pouvez voir ces paramètres en utilisant la commande:

stty -a -f /dev/ttyd1

Lorsque vous changez les paramètres du périphérique, ces paramètres sont effectifs jusqu'au moment ou vous arreterez de vous servir de ce périphérique. S'il est ouvert de nouveau, il reprendra les paramètres par défaut. Pour changer les paramètres par défaut , vous devez ouvrir le périphérique et changer les paramètres de l'``état initial'' du périphérique. Par exemple pour définit un mode LOCAL, 8 bits et un controle de flux XON/XOFF par défaut sur le ttyd5, voud devez :

stty -f /dev/ttyd5 clocal cs8 ixon ixoff

Le mailleur endroit pour effectuer ceci est le fichier de démarrage /etc/rc.serial. Maintenant lorsqu'une application ovrira ttyd5 elle obtiendra les valeurs ci-dessus.

Vous pouvez empecher certaines valeurs d'etre modifiées en utilisant le fonction de ``lock'' du périphérique. Par exemple pour forcer la vitesse à 57600bauds sur ttyd5 :

stty -f /dev/ttyd5 57600

Maintenant lorsqu'un programme ouvrira ttyd5 et tentera de changer la vitesse du port, il obtiendra toujours 57600 bauds.

Bien sur, vous devez laisser la possibilité de changer les états initiaux et de lock que pour l'utilisateur root. Le script MAKEDEV ne le fait pas par défaut lorsqu'il crée les noeuds.

11.8. Comment mettre en place un login dialup sur mon modem?

Vous voulez devenir fournisseur d'accès à l'Internet ? Pour commencer vous devez disposer de plus d'un modem pouvant répondre automatiquement. Votre modem doit pouvoir detecter une émission de porteuse lorsque qu'elle se présente et ne doit pas en détecter constemment. Il doit aussi etre capable de racrocher la ligne lorsqu'il détecte le passage de 1 à 0 du signal DTR. Il doit aussi utiliser un controle de flux de type RTS/CTS ou aucun controle de flus. Enfin, il doit etre capable de négocier la vitesse de transmission entre lui-même et le modem distant tout en gardant une vitesse constante vis à vis de l'ordinateur.

Pour la plupart des modems comprennant les commande Hayes, cette commande met en place les bonnes valeurs et les enregistre en mémoire morte:

AT &C1 &D3 &K3 &Q6 S0=1 &W

Voyez la section sur l'envoi direct de commandes AT, pour savoir comment les mettre en place sans avoir besoin de lancer un émulateur de terminal sous MS-DOS.

Ensuite créez une entrée dans /etc/ttys pour le modem. Ce fichier comporte tous les ports sur lesquels le système d'exploitation attend des commandes de login. Ajoutez une ligne ressemblant à celle ci:

 ttyd1 "/usr/libexec/getty std.57600" dialup on insecure

Cette ligne indique que sur le deuxième port série (/dev/ttyd1) est attaché un modem dialoguant à 57600 bauds sans parité (std.57600) se trouvant dans le fichier /etc/gettytab ). Le type de terminal est ``dialup''. Le port est ``on'' et ``insecure'' -- ce qui veut dire que les logins sous root ne sont pas autorisés sur ce port. Pour utiliser d'autres ports en entrée, utilisez les autres entrées ttydX .

Il est d'usage courant d'utiliser ``dialup'' comme type de terminal. Beaucoup d'utilisateurs affichent un prompt dans leur .profile ou .login si le type de terminal est ``dialup''. L'exemple ci-dessus affecte au port le mode ``insecure''. Pour passer root, vous devez donc vous logguer en temps qu'utilisateur ordinaire et utiliser la commande su pour devenir root. Si vous définissez le port en tant que ``secure'', alors vous pourrez vous logguer sous root directement.

Après avoir effectué les modifications au fichier /etc/ttys , vous devez envoyer un signal HUP au processus init

 kill -HUP 1

Cela force le processus init à relire le fichier /etc/ttys. Le processus init démarrera donc des processus getty sur tous les ports marqués comme « on ». Vous pouvez alors vérifiez que le login est possible sur le port en tapant :

ps -ax | grep '[t]tyd1'

Et vous devez voir apparaitre quelque chose comme ceci:

747 ??  I      0:00.04 /usr/libexec/getty std.57600 ttyd1

11.9. Comment connecter un terminal sur mon système FreeBSD?

Si vous utilisez un autre ordinateur en tant que terminal, vous devez vous procurer un cable null modem pour relier les deux ports série. Si vous utilisez un vrai terminal (de type WYSE-50), suivez les instructions du manuel

Ensuite, modifez /etc/ttys comme expliqué à la section précedente. Par exemple, pour un terminal WYSE-50 connecté sur le 5ème port série, utilisez une entrée ressemblant à la suivante:

ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure

Cet exemple assume que le port /dev/ttyd4 est connecté sur un terminal wyse50 à la vitesse de 38400 bauds sans parité (std.38400 se trouvant dans le fichier /etc/gettytab) et les logins root sont permis (mot clé secure)

11.10. Pourquoi ne puis-je pas executer tip ou cu?

Sur votre système, les programmes tip et cu ne sont probablement executable que par l'utilisateur uucp et par le groupe dialer. Le groupe dialer vous permet de controler qui a accès à votre modem ainsi qu'aux systèmes distants. Ajoutez vous dans ce groupe pour pouvoir utiliser ces commandes.

Sinon, vous pouvez autoriser tous les utilisateurs de votre système à utiliser les programmes tip et cu en tapant:

# chmod 4511 /usr/bin/cu
# chmod 4511 /usr/bin/tip

11.11. Mon modem Hayes n'est pas supporté; que dois-je faire ?

Pour l'instant la page de manuel de tip n'est pas à jour. Il existe un support générique des commandes Hayes intégré dans le programme. Il suffit de mettre la ligne suivante ar=hayes dans votre fichier /etc/remote

Le gestionnaire Hayes ne sait pas reconnaitre les fonctions avancées des nouveaux modems. Des messages comme BUSY, NO DIALTONE, CONNECT 115200 ne sont pas reconnus. Vous devez absolument désactiver ces messages lorsque vous utilisez tip (en tapant ATX0&W).

De plus le timeout de tip est de 60 secondes. Votre modem doit absolument utiliser une valeur plus faible, sinon tip pensera qu'il y a un problème de communication. Essayez la commande ATS7=45&W

Le version de tip livrée ne comporte pas toutes ces fonctionnalités. La solution est d'éditer le fichier tipconf.h se trouvant dans le répertoire /usr/src/usr.bin/tip/tip. Bien sur cela nécessite que vous ayez installé les sources.

Remplacez alors la ligne #define HAYES 0 par #define HAYES 1. Puis tapez make et make install. Tout doit marcher correctement après cela.

11.12. Comment faire pour entrer certaines commandes AT ?

Créez une entrée de type direct dans votre fichier /etc/remote. Par exemple, si votre modem est attaché sur le premier port série, /dev/cuaa0, ajoutez la ligne suivante:

cuaa0:dv=/dev/cuaa0:br#19200:pa=none

Utilisez le taux maximum, de transfert de votre modem, pour la fonctionnalitée br. Ensuite tapez tip cuaa0 et vous serez alors connecté sur votre modem.

S'il n'existe pas de fichier /dev/cuaa0 sur votre système, executez la commande suivante:

# cd /dev
# ./MAKEDEV cuaa0

Sinon utilisez la commande cu sous root de la façon suivante.

# cu -l``port'' -s``vitesse''

Avec « port » le nom du port série(ex:/dev/cuaa0) et « vitesse »(la vitesse maximum de votre modem)(ex:57600). Lorsque vous avez entrer les commandes AT apropriées, tapez ~. pour quitter

11.13. Le symbole @ pour la fonctionnalité pn ne marche pas!

Le symbole @ dans le numéro de téléphone demande à tip de regarder dans le fichier /etc/phones pour trouver le numéro aproprié. Mais le symbole @ est aussi un caractère spécial pour le fichier /etc/remote. Mettez un backslash devant pour qu'il soit correctement interprété.

pn=\@

11.14. Comment composer un numéro de téléphone depuis la ligne de commande?

Mettez une ligne « generic » dans le fichier /etc/remote. Par exemple:

tip115200|Dial any phone number at 115200 bps:\
  :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
  :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:

Vous pourrez alors utilisez la commande suivante « tip -115200 5551234  ». Si vous préferez cu à tip, utilisez une ligne générique pour cu:

cu115200|Use cu to dial any number at 115200bps:\
  :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:

et utilisez la commande « cu 5551234 -s 115200 ».

11.15. Dois-je spécifier la vitesse en bauds à chaque connexion

Mettez une ligne tip1200 ou cu1200, mais mettez la vitesse que vous voulez pour la fonctionnalité br.tip pense que la vitesse par défaut est de 1200 bauds, donc il cherche une entrée « tip1200 ». Bien sur, vous n'etes pas obligez d'utiliser cette vitesse.

11.16. J'ai accès à plusieurs machines depuis mon serveur de terminal

Plutot que d'attendre d'etre connecté et de taper la commande CONNECT <host> chaque fois, utilisez la fonctionnalité cm de tip. Voyez, par exemple, les entrèes suivantes du fichier /etc/remote:

pain|pain.deep13.com|Forrester's machine:\
  :cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
  :cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
  :dv=/dev/cua02:br#38400:at=hayes:du:pa=none:pn=5551234:

Cela vous permet de taper directement tip pain ou tip muffin pour vous connectez sur les machines pain ou muffin, et tip deep13 pour accéder au serveur de terminaux.

11.17. Est-ce que tip peut utiliser plusieurs numéros de téléphones pour se connecter à un site?

C'est un problème courant lorsqu'une université a plusieurs lignes pour les modems et plusieurs milliers d'étudiants qui les utilisent.

Créez une ligne pour votre université dans le fichier /etc/remote et utilisez \@ comme valeur pour la fonctionnalité pn.

big-university:\
  :pn=\@:tc=dialout
dialout:\
  :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:

Ensuite listez tous les numéros de téléphones de l'université dans le fichier /etc/phones

big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114

tip essaiera alors tous les numéros de téléphones dans l'ordre de la liste puis s'arretera. Si vous voulez qu'il réessaye à l'infini, lancez tip dans une boucle sans fin

11.18. Pourquoi dois-je appuyer deux fois sur CTRL+P pour envoyer un CRTL+P?

CTRL+P est le caractère par défaut pour tip, pour lui dire que le caractère suivant est une donnée brute. Vous pouvez changez ce caractère en n'importe quel autre en utilisant la séquence d'échappement ~s, qui équivaut à « set a variable ».

Tapez « ~sforce=<single-char> » suivit d'un saut de ligne. <single-char> correspondant à un simple caractère.Si vous laissez <single-char> vide, alors le caractère de ``force'' est le caractère nul, que vous pouvez obtenir par CTRL+2 ou CTRL+SPACE. La meilleur valeur pour ce caractère est SHIFT+CTRL+6, que je n'ai vu que utilisé que sur peu de terminaux.

Vous pouvez affecter la valeur que vous voulez pour ce caractère en le spécifiant dans le fichier $HOME/.tiprc:

force=<single-char>

11.19. Tout d'un coup, tout ce que je tape est en majuscule?

Vous devez avoir pressé CTRL+A, le caractère ``raise'' de tip, spécialement concus pour les gens n'ayant pas de caps-lock. Utilisez comme auparavant, ~s, et fixez la variable « raisechar » a une valeur plus raisonnable. En fait, vous pouvez le mettre à la meme valeur que le caractère de ``force'', si vous ne désirez jamais utiliser ces fonctionnalités.

Voici un exemple de fichier .tiprc pour les utilisateurs d'Emacs qui utilisent beaucoup CTRL+2 et CTRL+A:

force=^^
raisechar=^^

Le caractère ^^ correspond à SHIFT+CTRL+6.

11.20. Comment effectuer des transferts de fichiers en utilisant tip?

Si vous dialoguez avec un autre système UNIX, vous pouvez envoyer et recevoir des fichiers en utilisant la commande ~p(put) et ~t(take). Ces commandes utilisent les commandes cat et echo sur le système distant pour recevoir et envoyer les fichiers. La syntaxe de ces commandes est:

~p <fichier-local> [<fichier-distant>]
~t <fichier-distant> [<fichier-local>]

Il n'y a aucun controle d'erreur, donc il vaut mieux utiliser un autre protocol comme zmodem.

11.21. Comment dialoguer en zmodem avec tip?

Il faut, pour commencer, installer un des programmes zmodem depuis les ports(un de ceux de la catégorie comms lrzsz ou rzsz).

Pour recevoir un fichier, démarrez le programme d'envoi des données sur le système distant. Ensuite pressez entrée puis tapez « ~C rz » (ou « ~C lrz » si vous avez installé lrzsz) pour recevoir le fichier.

Pour envoyer des fichiers, démarrez le programme de réception sur le système distant. Ensuite tapez entrée et tapez « ~C sz <files> »(ou « ~C lsz <files> ») pour envoyer le fichier.

11.22.  FreeBSD ne trouve pas mes ports séries, même avec les bonnes valeurs de configuration .

Certaines cartes mères et les cartes comportant des Composants UART Acer, ne sont pas reconnues correctement par le programme de détection de FreeBSD. Un patch est disponible à www.lemis.com pour résoudre votre problème.

Chapitre 12.  Questions diverses. **Mise à jour en cours**

12.1.  FreeBSD utilise beaucoup plus d'espace swap que Linux. pourquoi ?

Non. Vous voulez peut-être dire "pourquoi mon swap semble être plein ?". Si cela est vraiment ce que vous voulez dire, c'est en fait parce que mettre les choses dans le swap plutôt que les mettre de côté rend toujours plus facile sa récupération que si le pager devait aller chercher à travers tout le système de fichier afin de récupérer des blocs propres (non modifié) d'un exécutable.

La quantité actuelle de pages "sales" que vous pouvez avoir dans le noyau en même temps n'est pas réduit, les pages propres sont déplacées si nécessaires.

12.2.  Pourquoi utiliser (qu'est-ce) a.out et les formats exécutables ELF ?

Afin de comprendre pourquoi FreeBSD utilise le format a.out, vous devez d'abord savoir quelques trucs sur les 3 formats exécutables courant "dominants" pour UNIX :

a.out Le vieux et `classique' format des objets unix. Il utilise un court et compact en-tête avec un nombre magique au début, qui est souvent utilisé pour caractériser le format (voir 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.

COFF Le formats des objets SVR3. L'en-tête comprend une table de section, de telle sorte que vous avez plus de sections que juste .text, .data, et .bss.

ELF 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 le fait qu'il y qu'un seul ABI par architecture système. Cette hypothèse est assez incorrecte, et même dans le monde SYSV (qui a au moins 2 ABIs : SVR4, Solaris, SCO) cela ne se vérifie pas.

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. Regardez la page de manuel pour brandelf pour plus d'informations.

FreeBSD vient du camp "classique" et utilise traditionnellement le format a.out, une technologie esssayée et éprouvée à travers des générations de releases BSD. Bien qu'il a aussi été quelques fois possible de construire et de lancer des binaires natifs ELF (et noyau) sur un système FreeBSD, FreeBSD a initiallement résisté à la "pression" de passer à ELF comme format par défaut. Pourquoi ? Bien, quand le camp Linux ont fait leur difficile transition vers ELF, il ne suffisait pas de fuir le format exécutable a.out. mais leur mécanisme de librairies partagées basé sur des table de sauts inflexible ce qui rendait la construction de librairies partagées difficiles pour les vendeurs et développeurs. Depuis comme les outils ELF offrent une solution au problème des librairies partagées et semblent en général perçus comme "la voie du progrès" de toute façon, le coût de migration a été entendu comme nécessaire, et la transition a été réalisée.

Dans le cas FreeBSD, notre mécanisme de librairie partagée se rapproche plus des style de mécanisme de librairie partagée des SunOS de Sun, et de la sorte, est très simple à utiliser. Quoiqu'il en soit, à partir de 3.0, FreeBSD supportera officiellement les binaires ELF comme format par défaut. Même si les formats exécutables a.out nous ont beaucoup servis, les gens du GNU auteurs des outils de compilation que nous utilisons ont arrêté leur supports pour le format a.out. Cela nous a forcé à maintenir des versions divergentes du compilateur et de l'éditeur de liens, et nous a empêché de bénéficier des derniers efforts du développement GNU. Et puis, les demandes de ISO-C++, notemment pour les constructeurs et les destructeurs, nous ont aussi conduit à supporter de l' ELF natif pour les futures release de FreeBSD.

12.3.  Pourquoi chmod ne veulent pas changer les permissions sur les liens symboliques ?

Vous devez utiliser soit ``-H'' ou ``-L'' ensemble avec l'option ``-R'' pour que cela marche. Regardez les pages de manuels de chmod et symlink.

ATTENTION l'option ``-R'' fait un chmod RECURSIF chmod. Faites attention en spécifiant le répertoire ou les liens symboliques vers les repertoires où vous lancerez chmod. Si vous voulez changer les permissions d'un répertoire référencé par un symlink, utiliser chmod sans aucune option et suivre le lien symbolique avec un slash final (``/''). Par exemple, si ``foo'' est un lien symbolique vers le répertoire ``bar'', et que vous voulez changer les permissions de ``foo'' (actuellement ``bar''), vous devrez sans doute faire quelque chose comme :

chmod 555 foo/

Avec un slash final, chmod suivra le lien symbolique, ``foo'', pour changer les droits sur le répertoire ``bar''.

12.4.  Pourquoi les noms de logins sont encore restreints à 8 caractères ?

Vous pouvez penser qu'il est assez simple de changer UT_NAMESIZE et de reconstruire tout le monde, et que tout marcherait. Malheureusement, il y a souvent une escouade d'applications et d'utilitaires (y compris les outils systèmes) qui ont codé en dur les petits nombres (pas toujours "8" ou "9", mais d'autres plus étranges comme "15" ou "20") dans les structures et les buffers. Non seulement cela vous donnera des fichiers logs qui seront altérés (à cause des longueurs des variables enregistrés là où des enregistrement de taille fixées sont attendus), mais cela peut planter les clients NIS de Sun, et potentiellement causer d'autres problèmes lors de l'interaction avec d'autres systèmes UNIX.

Dans FreeBSD 3.0 et plus, la longueur maximale des noms a été augmentée à 16 caractères et tous ces divers utilitaires avec des tailles de noms codés en dur ont été trouvés et corrigés. Le fait que cela touche tant de domaines du système explique en fait pourquoi le changement n'a pas été fait avant la 3.0.

Si vous êtes absolument confiant dans votre habileté à trouver et à corriger ces sortes de problèmes par vous-même quand ils arrivent, vous pouvez augmenter la taille des noms de login dans les releases précédentes en éditant /usr/include/utmp.h et en changeant en fonction de la taille que vous voulez donner, la variable UT_NAMESIZE. Vous devez aussi mettre à jour la variable MAXLOGNAME dans /usr/include/sys/param.h pour correspondre au changement de UT_NAMESIZE. Au final, si vous construisez depuis les sources, n'oubliez pas que /usr/include est mis à jour à chaque fois ! Changer les fichiers appropriés dans /usr/src/... à la place.

12.5. Puis-je lancer des binaires DOS sous FreeBSD?

Oui, à partir de la version 3.0, vous pouvez utiliser rundos l'émulateur DOS de BSDI, qui a été intégré et perfectionné. Envoyez un courrier électronique à la liste de discussion sur les émulations de FreeBSD si cela vous interesse de vous joindre à cet effort en progression.

Pour les systèmes pre-3.0, il y a un bel utiltaire appelé pcemu dans la collection de pports, qui émule un 8088 et assez de services BIOS pour pouvoir lancer des applications DOS en mode texte. Cela requiert le système X Windows (fourni comme XFree86).

12.6.  Qu'est ce ``sup'', et comment l'utilise je ?

SUP veut dire Software Update Protocol, et a été développé par CMU pour pouvoir synchroniser leurs arbres de développement. Nous l'utilisons pour garder les sites distants en synchronisation avec nos sources centraux de développement

SUP n'est pas très ami avec la bande passante et a été retiré. La méthode actuelle recommandé pour pouvoir garder vos sources à jour est Handbook entry on CVSup

12.7. Jusqu'à quel point FreeBSD est-il cool ?

Q. Quelqu'un a-t-il déjà fait des tests de température de FreeBSD ? Je sais que Linux tourne moins chaudement que DOS, mais je n'ai jamais vu aucune mention sur FreeBSD. Ca semble tourner vraiment très chaudement.

A. Non, mais nous avons effectué de nombreux tests gustatifs sur des volontaires ayant les yeux bandés et aussi 250 microgrammes de LSD-25 administré préalablement. 35%des volontaires ont dit que FreeBSD avait un goût d'orange, alors que Linux avait un goût de purple haze. Aucun des groupes n'a mentionné une variance de température particulière (si je me souviens bien). Nous avons de toute façon dû jeter tous les résultats quand nous nous sommes aperçu que de nombreux volontaires s'étaient promené en dehors de la salle durant les tests, faussant ainsi les résultats. Je pense que la plupart des volontaires sont à présent chez Apple, travaillant pour leur nouveau GUI 'scratch and sniff'. C'est un drôle de monde dans lequel nous vivons !

Sérieusement, FreeBSD et Linux utilisent tous les deux l'instruction ``HLT'' (halt) quand le système est idle de telle sorte à baisser leur consommation d'énergie et donc la chaleur que cela génère. Et aussi, si vous avez APM (automatic power management) configuré, alors FreeBSD peut aussi mettre le CPU dans un mode basse énergie.

12.8. Qui est-ce qui fait grésiller mes banques mémoires ?

Q. Y a t il quelque chose d'"étrange" que fait FreeBSD quand il compile le noyau qui pourrait faire que la mémoire fasse un grésillement ? Quand ça compile (et pour un bref moment après avoir reconnu le lecteur de disquette au démarrage), un étrange grésillement émane depuis ce qui semble être les banques mémoire.

A. Oui! Vous verrez des fréquentes références aux "démons" dans la documentation BSD, et ce que les gens ne savent pas, c'est que cela se réfère aux entités non-corporelle qui possède à présent votre ordinateur. Le grésillement venant de la mémoire est en fait le murmure échangé entre les démons lorsqu'ils débattent sur les différentes tâches de l'administration système.

Si le bruit vous parvient, un bon ``fdisk /mbr'' depuis le DOS vous en débarassera, mais ne soyez pas surpris s'il réagissent et qu'ils essayent de vous contrer. De plus, si jamais à un moment de l'opération, vous entendez la voix satanique de Bill Gates vous parvenant du haut-parleur interne, continuez, et ne regardez jamais en arrière ! Délivré de l'influence contre-balançante des démons BSD, les démons jumeaux de DOS et Windows pourront alors prendre le contrôle totale de votre machine jusqu'à la damnation éternelle de votre âme. S'il fallait choisir, je pense que je préfèrerais m'habituer au grésillement !

12.9. Que veut dire 'MFC' ?

MFC est un acronyme pour 'Merged From -CURRENT.' C'est utilisés dans les logs CVS pour noter quand un changement a migré depuis un CURRENT vers une branche STABLE

Chapitre 13. Pour les passionnés. **Mise à jour en cours**

13.1. Que sont les SNAP et RELEASE

Il y a actuellement 3 branches actives/semi-actives dans l'entrepot CVS des sources de FreeBSD:

RELENG_2_1_0 encore appelée 2.1-stable ou branche 2.1

RELENG_2_2 encore appelée 2.2-stable ou branche 2.2

HEAD encore appelée -current ou 3.0-current

HEAD n'est pas vraiment une branche, comparée aux deux autres, c'est juste une valeur symbolique constante pour désigner le répertoire de la version courante(ou version de développement), auquel nous nous référerons sous le nom de -current.

Actuellement -current est la branche de développement de la version 3.0 résultant de la séparation de la branche 2.2-stable(RELENG_2_2) en Novembre 1996.

La branche 2.1-stable, RELENG_2_1_0, s'étant séparée de -current en Septembre 1994.

13.2. Comment créer ma propre version

Pour créer votre propre version, vous devez effectuer trois choses. Premièrement, vous devez avoir un noyau contenant le gestionnaire vn. Ajoutez la ligne suivante au fichier de configuration du noyau, puis reconstruisez le.

 pseudo-device vn         #Vnode driver (turns a file into a device)

Ensuite, vous devez disposer de l'arbre CVS au complet. Pour l'obtenir, vous pouvez utiliser CVSUP et remplissez votre fichier de configuration de cvsup de la façon suivante:

*default prefix=/home/ncvs
*default base=/a
*default host=cvsup.FreeBSD.org
*default release=cvs
*default delete compress use-rel-suffix

## Main Source Tree
src-all
src-eBones
src-secure

# Other stuff
ports-all
www
doc-all

Ensuite lancez la commande cvsup -g fichier_de_configuration_de_cvsup pour rapatrier tous les sources sur votre machine

Pour finir, vous devez disposez de beaucoup de place sur vos disque pour compiler le tout. Disons que cela se trouve dans le répertoire /tres/gros/systeme/de/fichiers et que l'arbre CVS se trouve dans /home/ncvs

setenv CVSROOT /home/ncvs   # ou export CVSROOT=/hom/ncvs (pour du sh)
cd /usr/src/release
make release
BUILDNAME=3.0-MY-SNAP CHROOTDIR=/tres/gros/systeme/de/fichiers

Une distribution complète sera alors crée dans le répertoire /tres/gros/systeme/de/fichiers et vous disposerez d'un programme d'installation ftp utilisant ce répertoire par défaut. Vous pouvez aussi décider de compiler autre chose que la version -current en donnant au paramètre RELEASETAG une autre valeur. Par exemple pour compiler une version 2.2, il suffit de passer la valeur RELEASETAG=RELENG_2_2 à la ligne de commande de make.

13.3. Comment créer une disquette d'installation personnalisée?

Le processus de création, des disquettes d'installation ainsi que des archives binaires, est automatisé par différentes cibles dans le fichier /usr/src/release/Makefile. Ce fichier doit etre votre point de départ pour plus d'informations. Bien sur, cela veut dire que vous devrez faire un « make world » et que cela demande beaucoup d'espace disque et de temps.

13.4. « make world » remplace-t-il tous les binaires déja installés?

Oui.Comme son nom le suggère,« make world » recompile tout le système depuis les sources, donc vous pouvez etre sur d'avoir un système sain et cohérent à la fin (cela peut prendre énormément de temps pour y arriver).

Si la variable DESTDIR est définie lorsque vous éxecutez « make world » ou « make install », les binaires seront installés dans la même arborescence que votre système sauf que la racine du nouveau système sera ${DESTDIR}. Différentes combinations dans la modification des librairies partagées et dans les programmes, peut entrainer une erreur du « make world ».

13.5. Lorsque le système démarre, il affiche « (bus speed defaulted) »

Les cartes SCSI Adaptec 1542 permettent d'accéder à la configuration de la vitesse du bus par logiciel. Les anciennes versions du gestionnaire de périphérique 1542 essayaient de déterminer la vitesse maximale utiliable et de configurer la carte à cette valeur. Nous avons trouvé que cela pouvait casser certains systèmes, donc vous devez définir l'option TUNE_1542 dans le fichier de configuration du noyau, pour que cela soit actif. En l'utilisant sur des systèmes ou la carte le supporte, cela vous permettra d'avoir une meilleur vitesse pour vos disques, mais sur des système ne le supportant pas vous obtiendrez des données corrompues.

13.6. Puis-je me tenir à jour par rapport à -current si j'ai un accès limité à l'Internet?

Oui, vous pouvez le faire sans télécharger l'arbre complet des sources en utilisant la fonctionnalitée CTM

13.7. Comment faire pour couper la distribution en fichiers de 240Ko?

Les systèmes BSD récents diposent d'une option « -b » pour vous permettre de découper les fichiers binaires en plusieurs parties

Voici un exemple, tiré de /usr/src/Makefile.

bin-tarball:
	(cd ${DISTDIR}; \
        tar cf - . \
        gzip --no-name -9 -c | \
        split -b 240640 - \
        ${RELEASEDIR}/tarballs/bindist/bin_tgz.)

13.8. J'ai écrit une extension pour le noyau, comment l'incorporer?

Regardez la partie du handbook sur la façon de soumettre du code

Et encore merci pour tout.

13.9. Comment sont détectées les cartes plugs and play ISA?

Contribution de Frank Durda IV

Il y a un certains nombres de ports d'entrées/sorties sur lesquels la plupart des cartes PnP répondent lorsqu'une machine interroge le bus ISA. Donc, lorsque la routine de détection PnP s'execute, elle interroge les cartes PnP sur ces ports pour savoir lesquelles sont présentes. Dans ce cas toutes les cartes répondent en indiquant leur modèle et la routine de détection reçoit alors une valeur qui est soit « oui » soit rien. Au minimum un bit est mis à 1 lors de la réponse. Alors le code de détection peut essayer de dialoguer avec les cartes, graçe aux numéros de modèle de cartes (définis par Microsoft/Intel), inférieurs à X pour leur dire de s'arréter. Il vérifie alors qu'aucune autre carte ne répond à la question précedente. Si la réponse est 0 alors il considère qu'aucune carte n'a d'ID au dessus de X. Ensuite il interroge le bus pour obtenir la liste des cartes sous « X ». S'il en trouve alors il interroge le bus pour avoir la liste des celles ayant un ID supérieur à X-(limit/4). Et répète ainsi de suite l'algorithme, qui consiste à diviser l'intervalle de recherche par deux. Avec cet algorithme, les cartes seront découvertes avec un maximum d'itération de 2^64.

Les Identifiants de cartes sont codés sur 32 bits + 8 bit de checksum. Les 32 premiers bits représentent le code de la carte pour le constructeur de cette carte. Il arrive de trouver plusieurs cartes du meme constructeur ayant différents code de carte. L'idée de coder sur 32 bits le nom du constructeur serait un peu excessif.

Les 32 bits de poids faibles sont le numéro de série de la carte; l'adresse ethernet , ou quelque chose rendant la carte unique par ce numéro. Le constructeur ne doit jamais produire une deuxième carte ayant ce meme numéro tout en ayant le meme nombre représenté sur les 32 premiers bits. Vous pouvez dons avoir plusieurs cartes du meme type dans votre ordinateur , et l'ensemble des 64 bits permet de rendre chacune unique.

Les groupes de 32 bits ne peuvent en aucun cas etre tous à zéro. Cela permet d'effectuer le « OU » pour afficher les bits non nuls lors de la première recherche dicotomique.

Lorsque le système à détecter toutes les cartes présentes, ils les réactivent une à une, et recherche les ressources dont elles ont besoin, quels sont les choix possibles pour les interruptions, etc. Un « scan » de toutes les cartes est effectué pour collecter toutes ces informations.

Cette information est combinée avec l'information recueillie des fichiers ECU se trouvant sur le disque dur ou dans le BIOS. Le support ECU et BIOS du plug-and-play pour le matériel est très simple, et les périphérique n'ont pas besoin d'etre vraiment PnP. Mais en examinant les informations du BIOS et des fichiers ECU, les routines d'interrogations peuvent permettre aux périphériques PnP « to avoid those devices the probe code cannot relocate.  »

Alors les périphériques PnP sont encore interrogés, et renvoient leur IRQ, adresse mémoire, ports d'entrée/sorties et DMA. Les périphériques sont alors activés, en prenant en compte ces valeurs, et le reste jusqu'au prochaine redémarrage du système. Bien sur rien de vous empeche de les retirer, si le matériel le permet :-).

Ceci n'explique pas toute la complexité de détection, mais c'est une explication simple du processus de détection.

13.10. Est-ce que FreeBSD va supporter d'autres architectures matérielles?

Différentes personnes sont interressées sur un support multi-architecture pour FreeBSD, et certaines personnes sont en train de porter FreeBSD sur la plateforme ALPHA, en coopération avec DEC. Pour plus d'informations sur les nouvelles architectures utilisez la mailling liste <freebsd-platforms@FreeBSD.ORG>

13.11. J'ai besoin d'un « major number » pour un gestionnaire de périphérique que je viens d'écrire

Ceci dépend du fait que vous vouliez ou non rendre public ce gestionnaire. Si vous le désirez, envoyez nous une copie code source du gestionnaire et les modifications nécessaires à apporter au fichier files.i386, un fichier de configuration et le code du fichier MAKEDEVnécessaire pour créer les fichiers spéciaux dont le gestionnaire à besoin. Si vous ne désirez pas rendre plublic le code, ou si vous ne pouvez pas à cause de certaines restrictions de votre license, alors utilisez le « major number » 32 (pour les gestionnaires de type caractère) et le « major number » 8 (pour les gestionnaires de type blocs), qui sont réservés à ce type de chose. Dans les deux cas nous sommes interessés par votre gestionnaire, discutez à son propos sur la mailling liste <freebsd-hackers@FreeBSD.ORG>.

Chapitre 14.  REMERCIEMENTS. **Mise à jour en cours**

Si vous voyez un problème avec cette FAQ, ou que vous voulez rajouter une entrée, mailez nous à <FAQ@FreeBSD.ORG> Nous apprécions tout commentaire, et seul votre aide nous permettra d'améliorer cette FAQ !

                             FreeBSD Core Team

          Version originale

Jordan Hubbard : Ocasionnellement des mises à jour et des corrections de la FAQ

Doug White : Les services ci-dessus et plus qu'il n'en faut sur freebsd-questions

Joerg Wunsch : Les services ci-dessus et plus qu'il n'en faut sur Usenet

Garrett Wollman : Réseaux et format

Jim Lowe : Informations Multicast

Peter da Silva : Tapage de la FAQ FreeBSD.

The FreeBSD Team : Soumission d'information...

           L'équipe de traduction Francaise:

Renaud BREARD

Robert Brive

Sébastien GIORIA

Frédéric Haby

Stéphane LEGRAND

Philippe Nolin

Philippe REGNAULD

Pierre Yves RITSCHARD

Tuyêt Trâm DANG NGOC

Et pour tous les autres que nous avons oubliés, mille excuses, et merci de tout coeur !