Comment bien installer, configurer, utiliser, administrer, personnaliser et optimiser une distribution Debian GNU/Linux | ||
---|---|---|
Précédent | Suivant |
Tableau 1-1. Evolution de cet article
Date | Ajout(s) / Modification(s) |
---|---|
20 décembre 2003 | Version initiale issue de la fusion entre l'article de Patrice Vestel et d'Arnaud Fontaine et mon propre article. |
25 janvier 2004 | Mise à jour pour les noyaux 2.6.x. |
1er mars 2004 | Relecture. |
Le noyau d'un système d'exploitation est le centre du système, la partie la plus importante. C'est de lui que dépendent les performances, la stabilité, la rapidité, la sécurité, tout le fonctionnement. Il sert à gérer l'accès à la mémoire, à gérer les fichiers, les applications, les droits d'accès, etc...
Comme tous les systèmes, Linux a un noyau. Mais il a la particularité d'être très performant (d'où l'excellente stabilité de Linux), d'être recompilable (on peut mettre à jour son noyau en le recompilant, ce qui évite d'avoir à réinstaller tout le système), et d'être fourni avec son code source, ce qui permet un développement beaucoup plus rapide, et efficace. Tout le monde a accès au code source du noyau de Linux, et peut, s'il le désire, le modifier pour l'améliorer ou corriger les bugs qu'il rencontre.
Une distribution Debian GNU/Linux possède de nombreux avantages en termes de configuration et d'outils d'administration. Pour l'installation du noyau Linux il existe des paquets très utiles qui vont vous permettre d'installer votre noyau très rapidement.
La compilation d'un nouveau noyau peut rendre votre système non-amorçable ! | |
---|---|
Non ce n'est pas une blague ! La compilation d'un nouveau noyau sur votre système peut, si elle est mal employée rendre votre système inutilisable. Si vous ne comprenez pas une partie de cet article je vous déconseille vivement de continuer. Vous pouvez toujours m'écrire si une partie de cet article n'est pas très clair. |
Vous devez bien connaître le type de matériel que vous possédez sur votre machine pour déterminer les options de configuration à utiliser avec votre futur noyau.
Pour découvrir les options de configuration du noyau et pour savoir lequelles activer, consulter l'annexe Options du noyau
On va commencer par télécharger les sources du dernier noyau :
# apt-get install kernel-source-2.6.4 |
Ensuite on installe les outils de configuration propre à votre Debian GNU/Linux :
# apt-get install build-essential kernel-package fakeroot |
Une fois les paquets installés il va falloir décompresser les sources de votre futur noyau. Il est conseillé de déléguer les tâches de configuration du noyau à un utilisateur. Pour cela, l'utilisateur doit appartenir au groupe src. Pour ajouter par exemple l'utilisateur cedric cedric au groupe src :
# adduser cedric src |
Ensuite il faut décompresser les sources de votre noyau. On va décompresser les sources du noyau dans le répertoire de l'utilisateur et non dans le répertoire /usr/src comme trop de personnes à tendance à le faire. C'est Linus Torwarld lui meme qui recommende de traiter les sources du noyau dans le répertoire de l'utilisateur !
$ mkdir ~/src $ cd /usr/src $ tar xfvj kernel-source-2.6.4.tar.bz2 --directory ~/src |
On ajoute enfin le lien symbolique linux qui pointe vers le répertoire de vos sources. Ainsi suivant la version de nos sources on sait qu'elles se trouveront toujours dans le répertoire ~/src/linux :
$ cd ~/src $ ln -s kernel-source-2.6.4 linux |
Avant de passer à la compilation proprement dite de votre noyau vous allez dans un premier temps devoir choisir les options que vous allez y inclure. C'est un peu un choix à la carte. Vous ne prennez que ce dont vous avez besoin.
Les options du noyau peuvent s'intégrer de deux manières différentes.
Soit directement à ce dernier : on dit alors que l'on met l'option en dur.
Elles peuvent également être compilées séparement de ce dernier : on dit alors que l'on met l'option module.
Les options en modules permettent donc d'alléger votre noyau. Il faut savoir que plus un noyau a une taille importante et plus les performances du système vont diminuer.
Mais alors pourquoi ne pas mettre toutes les options du noyau en modules ? Et bien à causes de plusieurs raisons simples comprendre :
Certaines options n'existent qu'en dur.
Certaines options doivent figurer obligatoirement en dur si l'on veut que le système puisse fonctionner.
Prenons un exemple simple. Supposons que votre Debian GNU/Linux fonctionne sur un système de fichier Ext3. Vous allez devoir inclure dans la configuration de votre noyau ce système de fichier. Si vous mettez le système de fichier en module, le noyau ne pourra pas charger ce module pour la simple et bonne raison que le module se trouve sur votre partition et qu'il ne sait pas la lire.
Il faut donc faire très attention lors du choix de ces options de bien mettre celles qui sont vitales en dur.
Il existe plusieurs interface pour configurer votre noyau, je vais utiliser un interface console très austère mais très pratique. Pour lancer cette interface vous devez vous placer dans le répertoire qui contient les sources de votre futur noyau :
$ cd ~/src/linux make menuconfig |
Les autres interfaces possibles sont :
make config make oldconfig make gconfig make xconfig |
En voici une description sommaire :
L'interface config est une interface en ligne de commande.
L'interface oldconfig est une interface en ligne de commande qui conserve les choix présents dans votre fichier de configuration. Cette option est utile si vous souhaitez compiler un nouveau noyau et que vous ne voulez connaitre que les nouvelles options qui y sont apparus.
L'interface xconfig est une interface graphique simple pour l'envrionnement XWindow.
L'interface gconfig est une interface graphique améliorée pour l'environeement XWindow utilisation la bibliothèque graphique Gtk.
Une fois l'interface menuconfig lancée, vous pouvez naviguer au sein des menus à l'aide des touches de direction de votre clavier Vous vous apercevrez très rapidement qu'il y a beaucoup de choix possibles. On noteral que l'architecture des menus des noyaux 2.6.x a été revue. C'est beaucoup mieux organisées et l'on s'y retrouve donc plus facilement.
N'oubliez pas de consulter l'annexe : Options du noyau pour connaitre les options a activer si vous n'etes pas encore familier avec la centaines d'options mise à votre disposition.
Une fois la configuration de votre noyau terminée, n'oublier pas de sauvegarder la configuration de votre noyau
Fichier de configuration de votre noyau | |
---|---|
Le fichier de configuration de votre noyau se nomme .config. La configuration du noyau étant une opération longue et fastidieuse, je vous recommande vivement de copier ce fichier dans un autre répertoire pour éviter de devoir tout recommencer du début si par mégarde vous détruisiez le répertoire ~/src/linux. |
Maintenant que votre noyau a été configuré, tout est prêt pour construire le paquet Debian qui va vous permettre d'installer le noyau et ses modules. Voici la procédure :
$ cd ~/src/linux $ fakeroot make-kpkg clean $ fakeroot make-kpkg --append-to-version=-test001 kernel_image |
La commande fakeroot permet de simuler l'environnement root au programme make-kpkg pour que ce dernier puisse générer les paquets de votre futur noyau. Cela à l'avantage d'éviter de faire la compilation en tant que root.
Le cible clean passée à la commande make-kpkg permet de nettoyer l'arborescence des sources de votre noyau. Il faut le faire à chaque nouvelle compilation !
Le paramètre --append-to-version permet d'ajouter un numéro de version à votre noyau. Cela s'avère très utile si vous souhaitez utiliser en même temps plusieurs version d'un même noyau. Il faut savoir que lors de l'installation d'un noyau sur votre système, un répertoire portant le nom de votre noyau est créé en /lib/modules. Si vous installez un nouveau de même version, il va écraser ce répertoire. Ceest pas très pratique car si notre nouveau noyau s'avère défectueux, il n'y a plus aucun moyen de revenir en arrière. A moins bien entendu d'avoir un noyau d'une version différente installé sur sa machine.
Pour remédier à cela, on ajoute à la version de notre noyau une extension.
Ce paramètre n'accepte que les chiffres (0-9), les caractères minuscules (a-z), plus << + >>, moins << - >> et le point << . >> |
Lisibilité et nom du noyau | |
---|---|
Pour une meilleur lisibilité je vous conseilled'ajouter un tiret << - >> au début de la version de votre noyau, comme je l'ai fait dans mon exemple. Je vous conseille également de donner un nom significatif à votre noyau. Une bonne idée est de rajouter la date au format jjmmaaaa par exemple. Ce qui donnera des versions de noyau de la forme 2.6.4-02092003 |
On peut également spécifier un autre paramètre. Le paramètre --revision. Il sert à dpkg.
Lorsque vous avez deux numéros de même version dont un est déja installé, il va vérifier que le nouveau noyau à un numéro de révision supérieur avant de l'installer. Je ne trouve pas d'utilité à ce paramètre. Je l'ai mis ici pour être complet dans mon explication, mais je ne vous conseille pas de l'utiliser pour la suite car cela peut-être une source inutile de conflit entre vos paquets.
Ce paramètre n'accepte que les chiffres (0-9), les caractères minuscules(a-z), les signes plus << + >>, moins << - >> et le point << . >> |
Une fois la compilation de votre noyau terminée, vous obtiendez un paquet Debian (.deb) dans le répertoire ~/src. Ce fichier est au format : kernel-image-<kernel-version><--append-to-version>_<--revision>_<architecture>.deb
Dans notre exemple le nom de ce paquet est : kernel-image-2.6.4-test001_10.00.Custom_i386.deb
Pour l'installer :
# dpkg -i kernel-image-2.6.4-test001_10.00.Custom_i386.deb |
dpkg vous pose alors plusieurs questions :
Would you like to create a boot floppy now? : Répondez No
Install a boot block using the existing /etc/lilo.conf? : Répondez No
Wipe out your old LILO configuration and make a new one? : Répondez No
Si tout c'est bien passé dpkg ne devrait pas vous retourner de message d'erreur. Un nouveau répertoire a été créé dans /lib/modules qui porte le nom de votre nouveau noyau. Dans notre exemple c'est le répertoire 2.6.4-test001
Maintenant que votre noyau est fraichement installé, vous devez impérativement modifier le fichier de configuration de votre gestionnaire d'amorçage.
Dans ce guide de l'utilisateur j'utilise LILO. Si c'est également votre cas, éditez le fichier /etc/lilo.conf et ajouter à la fin de ce dernier les lignes suivantes :
Vous allez donc rajouter un nouveau bloc dans le fichier de configuration de Lilo pour prendre en compte de nouveau noyau
Pour cela, rajouter a la fin de votre fichier /etc/lilo.conf les lignes suivantes :
image=/boot/vmlinuz-2.6.4-test001 label=2.6.4-test001 read-only |
Le paramètre image spécifie l'emplacement de l'image de votre nouveau noyau.
Le paramètre label contient la description de votre noyau qui est affiché dans LILO .
Attention, la taille de ce paramètre est limitée !
Note concernant la modification du fichier de configuration de LILO | |
---|---|
Lors de l'installation de votre noyau sur votre Debian GNU/Linux dpkg vous a proposé de modifier le fichier de configuration de LILO. Je vous ai demandé de répondre No à cette question. En effet, il faut savoir que si vous aviez accepté ce choix, dpkg n'aurait pas réelement crée une nouvelle section dans le fichier de configuration de LILO comme nous venons de le faire. dpkg aurait simplement fait une copie de lien symbolique /vmlinuz (qui pointe initialement vers le noyau d'installation de votre Debian GNU/Linux) en /vmilnuz.old. Puis il aurait fait un nouveau lien symbolique /vmlinuz qui aurait pointé vers votre nouveau noyau en modifiant ce qu'il faut dans le fichier /etc/lilo.conf pour pouvoir accéder à votre noyau de base. C'est pratique lorsque l'on installe un seul noyau. Mais si l'on en installe plusieurs, on perd lors de l'amorçage du système le choix des autres noyaux. |
Après avoir enregistré les modifications, n'oubliez pas de mettre à jour LILO :
# lilo -v |
Il ne vous reste plus qu'à redémarrer votre machine et tester votre nouveau noyau.
# reboot |
make-kpkg est un programme très puissant qui vous permet de faire beaucoup de chose lors de la compilation de votre noyau. Vous pouvez ainsi créer des paquets Debian pour installer sur votre noyau certains modules, comme par exemple les drivers Nvidia qui ne sont pas encore inclus dans le noyau ou encore patcher ce dernier pour lui ajouter de nouvelles options de configuration telle que l'utilisation d'image graphique au démarrage.
Pour l'ajout de patches, vous devez installer un paquetage supplémentaire :
#apt-get install kernel-package |
Le paramètre --added_modules indique à make-kpkg de générer des paquets Debian pour l'installation de modules installer séparement du noyau.
Attention : ces modules doivent être issus de paquets Debian. |
Ce paramètre peut prendre plusieurs modules séparés par une virgule << , >>. Les noms des modules que vous pouvez ajouter sont ceux qui correspondent aux noms des répertoires présents dans /usr/src/modules.
Si vous êtes posseseur d'une carte graphique à base de chipset Nvidia GeForce vous pouvez compiler le driver de cette carte lors de la compilation de votre noyau.
Vous devez télécharger le paquet nvidia-kernel-source :
# apt-get install nvidia-kernel-source |
Une fois les paquets téléchargés, vous devez comme d'habitude les décompresser. Ces derniers s'installeront dans le répertoire /usr/src/modules :
$ cd /usr/src tar xfvz nvidia-kernel-src.tar.gz tar xfvz nvifia-glx-src.tar.gz |
Il ne vous reste plus qu'à ajouter lors de la compilation de votre noyau le paramètre :
--added_modules=nvidia-kernel |
Reportez vous à l'article Installer les pilotes Nvidia pour le serveur X pour terminer l'installation de votre carte graphique.
Si vous utiliser l'architecture ALSA pour votre carte son, et un noyau de la série des 2.4.x vous devez télécharger le paquet alsa-source :
# apt-get install alsa-source |
Une fois le paquet téléchargé, vous devez le décompresser :
$ cd /usr/src tar xfvz alsa-source.tar.gz |
Il ne vous reste plus qu'à ajouter lors de la compilation de votre noyau le paramètre :
--added_modules=alsa-driver |
Reportez vous à l'article Installer une carte son à l'aide des pilotes ALSA pour terminer l'installation de votre carte son.
Le paramètre --added_patches indique à make-kpkg d'inclure des patches à votre noyau.
Attention : ces modules doivent être issus de paquets Debian. |
Ce paramètre peut prendre plusieurs patches séparés par une virgule << , >>. Les noms des patches que vous pouvez ajouter sont ceux qui correspondent aux noms des répertoires présents dans /usr/src/kernel-patches/all/apply.
Lorsque vous patcher votre noyau, les nouvelles options de configuration disponibles sont automatiquement affichées et l'on vous demande si vous souhaitez les inclure à votre noyau.
Le patch debianlogo vous permet de remplacer le pingouin que vous trouvez au démarrage de votre Debian GNU/Linux par un beau logo aux couleurs de Debian.
Pour cela vous devez télécharger le paquet kernel-patch-debianlogo :
# apt-get install kernel-patch-debianlogo |
Il ne vous reste plus qu'à ajouter lors de la compilation de votre noyau le paramètre :
--added_patches=debianlogo |
Les patches preempt et lowlatency vous permettent de donner plus de réactivité à votre station de travail qui utilise un noyau de la série 2.4.x. Les noyaux 2.6.x intégrent nativement cette option.
Enfin il ne faut pas utiliser ces patches si votre Debian GNU/Linux est utilisé en tant que serveur.
Vous devez télécharger les paquets kernel-patch-2.4-preempt et kernel-patch-2.4-lowlatency :
# apt-get install kernel-patch-2.4-preempt kernel-patch-2.4-lowlatency |
Il ne vous reste plus qu'à ajouter lors de la compilation de votre noyau le paramètre :
--added_patches=preempt,lowlatency |
Vous pouvez supprimer aussi facilement que vous venez de l'installer le noyau que vous venez de configurez. Cependant, il ne faut pas que ce soit le noyau qui est en cours d'exécution car vous allez rendre votre système instable.
Pour supprimer le noyau que je viens d'installer :
# apt-get remove --purge kernel-image-2.6.4-test001 |
Retrouvez le nom du paquet de son noyau | |
---|---|
On remarquera qu'il ne faut pas spécifier le nom du paquet Debian que l'on a utilisé lors de l'installation, mais qu'il faut respecter le format kernel-image-<kernel-version> |
Précédent | Sommaire | Suivant |
Administrer votre Debian GNU/Linux | Niveau supérieur | Gérer les services lancés au démarrage |