IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ BSDConsultez toutes les FAQ

Nombre d'auteurs : 6, nombre de questions : 127, dernière mise à jour : 20 novembre 2007  Ajouter une question

 

Cette FAQ a été réalisée à partir des contributions des membres du forum Unix de developpez.com et de l'équipe de rédaction.

Organisation : cette FAQ se compose de deux grandes parties. Une première, Questions générales, qui regroupe toutes les questions qui trouvent une réponse, commune ou non, pour l'ensemble des systèmes BSD. La deuxième est découpée en autant de sous-parties qu'il y a de systèmes BSD soit parce que la question est spécialisée soit parce que la réponse est incomplète pour qu'elle concerne chacun de ces systèmes.

Participer : nous sommes perpétuellement à l'écoute de vos suggestions et corrections, aussi mineures soient-elles. N'hésitez pas à nous en faire part par l'intermédiaire de la discussion prévue à cet effet .

Note : l'exactitude des informations figurant dans la présente FAQ sont autant que possible vérifiée avant intégration. Cependant, nous ne pouvons garantir l'absence de toute erreur, c'est pourquoi les auteurs ne pourront en aucun cas être tenus pour responsables.

SommaireQuestions généralesSystèmeNoyau (4)
précédent sommaire suivant
 

  • FreeBSD :

    Rendez-vous dans le répertoire /usr/src/sys/i386/conf. S'il n'existe pas, vous n'avez probablement pas installé les sources pendant l'installation. Dans ce cas, lancez sysinstall(8), allez dans "Configure - Do post-install configuration of FreeBSD", "Distributions - Install additional distribution sets", et cochez la case " src - Sources for everything". Une nouvelle fenêtre apparaît vous permettant de choisir quelles sources vous souhaitez installer. Cochez "base - top-level files in/usr/src" et "sys -/usr/src/sys (FreeBSD kernel)", puis validez.
    Le dossier /usr/src/sys/i386/conf contient divers fichiers. Faites une copie du fichier GENERIC (ne modifiez pas ce fichier !). Pour des raisons historiques, il est recommandé d'utiliser un nom en majuscules. Modifiez votre fichier comme nécessaire.

    Code linux : Sélectionner tout
    1
    2
    3
    cp /usr/src/sys/`uname -p`/conf/GENERIC ~/SMORTEX 
    ln -s ~/SMORTEX /usr/src/sys/`uname -p`/conf/ 
    vi ~/SMORTEX
    A ce stade, votre fichier de configuration est modifié (et généralement, beaucoup de choses sont en commentaire par rapport au fichier GENERIC initial).
    Il ne reste plus qu'à compiler et installer le kernel :

    Code linux : Sélectionner tout
    1
    2
    3
    cd /usr/src 
    make buildkernel KERNCONF=SMORTEX 
    make installkernel KERNCONF=SMORTEX
  • NetBSD :

    Vous disposez des sources du noyau et vous souhaitez le modifier. Premièrement, nous allons nous rendre dans le répertoire /usr/src/sys/arch/`uname -p`/conf/ :

    Code linux : Sélectionner tout
    cd /usr/src/sys/arch/`uname -p`/conf/
    Nous copions ensuite la configuration générique sous un autre nom avant de la modifier :

    Code linux : Sélectionner tout
    1
    2
    3
    cp GENERIC ~/NBSDBOX 
    ln -s ~/NBSDBOX /usr/src/sys/arch/`uname -p`/conf/ 
    vi ~/NBSDBOX
    Les modifications faites, nous recompilons le noyau. Il existe pour cela deux méthodes :

    • Le script build.sh qui permet d'automatiser le processus :

      Code linux : Sélectionner tout
      1
      2
      cd /usr/src 
      ./build.sh (-u) kernel=NBSDBOX
      L'option u permet de ne pas procéder au nettoyage des fichiers objets qui est fait par défaut.

      Nous terminons par installer ce nouveau noyau tout en conservant le précédent en le renommant :

      Code linux : Sélectionner tout
      1
      2
      mv /netbsd /netbsd.old 
      cp /usr/src/sys/arch/`uname -p`/compile/obj/NBSDBOX/netbsd /
    • La méthode "traditionnelle" :

      Code linux : Sélectionner tout
      1
      2
      3
      4
      config NBSDBOX 
      cd ../compile/NBSDBOX 
      make depend 
      make
      Copiez le nouveau noyau ainsi obtenu après avoir renommé le précédent sur lequel nous pourrions démarrer en cas de problème :

      Code linux : Sélectionner tout
      1
      2
      mv /netbsd /netbsd.old 
      cp netbsd /


    Redémarrez la machine pour utiliser ce nouveau noyau à l'aide de la commande shutdown -r now par exemple.
  • OpenBSD :

    Pour une architecture x86, nous nous rendons dans le répertoire /usr/src/sys/arch/i386/conf/ :

    Code linux : Sélectionner tout
    cd /usr/src/sys/arch/`machine`/conf/
    Nous copions ensuite la configuration générique sous un autre nom en vue d'y apporter nos modifications :

    Code linux : Sélectionner tout
    1
    2
    3
    cp GENERIC ~/OBSDBOX 
    ln -s ~/OBSDBOX /usr/src/sys/arch/`machine`/conf/ 
    vi ~/OBSDBOX
    Après avoir terminé nos changements, nous pouvons passer à la compilation proprement dite :

    Code linux : Sélectionner tout
    1
    2
    3
    config OBSDBOX 
    cd /usr/src/sys/arch/`machine`/compile/OBSDBOX # Ou cd ../compile/OBSDBOX 
    make clean && make depend && make
    Nous achevons le travail en installant manuellement le noyau en vue de son usage :

    Code linux : Sélectionner tout
    1
    2
    3
    4
    make install 
    # Ou si vous souhaitez le faire vous-mêmes 
    cp /bsd /bsd.old 
    cp bsd /bsd
    Pour profiter de ce noyau personnalisé vous devez redémarrer votre machine.
  • DragonFlyBSD :

    Les fichiers de configuration du noyau de situent dans le répertoire /usr/src/sys/config/. Pour les versions moins récentes il s'agira en revanche de /usr/src/sys/ARCHITECTURE/conf/. Nous allons, pour commencer, nous y rendre :

    Code linux : Sélectionner tout
    1
    2
    3
    cd /usr/src/sys/config/ 
    # Voir pour les versions moins récentes de DragonFlyBSD 
    cd /usr/src/sys/ARCHITECTURE/conf/
    Nous copions la configuration générique qui nous servira de base :

    Code linux : Sélectionner tout
    1
    2
    3
    cp GENERIC ~/DFBSDBOX 
    ln -s ~/DFBSDBOX /usr/src/sys/config/ # Pour les anciennes versions le chemin sera : /usr/src/sys/ARCHITECTURE/conf/ 
    vi ~/DFBSDBOX
    Nous pouvons ensuite passer à la recompilation du noyau :

    Code linux : Sélectionner tout
    1
    2
    cd /usr/src 
    make kernel KERNCONF=DFBSDBOX
    Il pourra vous être demandé de recompiler d'abord le monde avant de pouvoir effectuer celle du noyau. Auquel cas, il sera nécessaire d'exécuter la commande suivante avant :

    Code linux : Sélectionner tout
    1
    2
    cd /usr/src 
    make buildworld

Mis à jour le 1er août 2007 julp Smortex

  • FreeBSD : au menu de démarrage, sélectionnez 6. Escape to loader prompt puis saisissez la commande suivante :

    Code linux : Sélectionner tout
    boot kernel.old # Nom de l'ancien noyau par convention
  • NetBSD : au démarrage appuyer rapidement sur une touche quelconque autre que "Entrée" afin d'avoir accès à la ligne de commande du chargeur de démarrage. Puis saisissez une commande similaire à celle-ci :

    Code linux : Sélectionner tout
    boot netbsd.old # Nom de l'ancien noyau par convention
  • OpenBSD : appuyer sur une touche différente de "Entrée" pour obtenir la main sur un prompt où vous saisirez une commande similaire à la suivante :

    Code linux : Sélectionner tout
    boot bsd.old # Nom de l'ancien noyau par convention


Votre clavier sera de type américain à ce stade.

Mis à jour le 1er août 2007 julp

Le noyau doit tout d'abord pouvoir être autorisé à charger des modules, ceci requiert éventuellement deux conditions :

  • Activer cette fonctionnalité dans le noyau. Ceci se fait via l'option LKM sur NetBSD et OpenBSD.
  • Le niveau de sécurité du noyau doit être strictement inférieur à 1 au moment du chargement

Le chargement d'un module dynamique peut être fait manuellement :

  • FreeBSD, avec la commande kldload :

    Code linux : Sélectionner tout
    kldload <module>.ko
  • NetBSD et OpenBSD, avec la commande modload :

    Code linux : Sélectionner tout
    modload <module>.o


Ou pour certains de manière automatique :

  • FreeBSD, en ajoutant des variables dans le fichier de configuration /boot/loader.conf, un peu à la manière de /etc/rc.conf :

    Code : Sélectionner tout
    <nom_module>_load="YES"
    Il existe sur le même principe des directives permettant de
    gérer les dépendances des modules (module_before et
    module_after), de définir ses paramètres
    (module_flags), ... Vous trouverez ces informations
    dans la page de manuel de loader.conf(5).
  • NetBSD, renseignez le fichier /etc/lkm.conf qui se présente sous cette forme :

    Code : Sélectionner tout
    1
    2
    3
    # path              options         entry           postinstall     output      when 
    # Exemple avec Packet Filter : 
    /usr/pkg/lkm/pf.o   -               -               -               -           AFTERMOUNT
    Les différents champs sont :

    • path : le chemin du module. Si ce chemin n'est pas complet, il sera cherché dans les répertoires /lkm ou /usr/lkm.
    • options : permet d'indiquer les options de la commande modload lors du chargement.
    • entry : le nom de la fonction C utilisée comme point d'entrée du module.
    • postinstall : le script à exécuter après le chargement du module.
    • output : le fichier de trace
    • when : le moment précis du processus de démarrage auquel sera chargé le module. Les possibilités sont : avant la mise en place du réseau (BEFORENET, valeur par défaut), avant le montage des partitions non système (BEFOREMOUNT), après le montage de toutes les partitions (AFTERMOUNT).

    La valeur spéciale - indique l'usage du comportement par défaut.

    Pour que le fichier /etc/lkm.conf soit utilisé il faut avoir ajouté dans /etc/rc.conf :

    Code : Sélectionner tout
    1
    2
    # Chargement dynamique des modules 
    lkm=YES

Mis à jour le 20 novembre 2007 julp

Afin de bien distinguer les messages provenant du noyau, nous les ferons apparaître en rouge sur fond noir dans la console en rajoutant à la configuration de votre noyau :

  • FreeBSD :

    Code : Sélectionner tout
    1
    2
    options         SC_KERNEL_CONS_ATTR=(FG_RED|BG_BLACK) 
    options         SC_KERNEL_CONS_REV_ATTR=(FG_BLACK|BG_RED)
  • NetBSD :

    Code : Sélectionner tout
    1
    2
    options         WS_KERNEL_FG=WSCOL_RED 
    options         WS_KERNEL_BG=WSCOL_BLACK
  • OpenBSD :

    Code : Sélectionner tout
    1
    2
    option          WS_KERNEL_FG=WSCOL_RED 
    option          WS_KERNEL_BG=WSCOL_BLACK

Note : il est possible de faire de même pour l'affichage en temps normal.

Mis à jour le 1er août 2007 julp

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2022 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.