interco.kernel.q(2).pdf

(117 KB) Pobierz
Configuration des fonctions réseau & compilation du
noyau Linux
http://www.inetdoc.net
philippe.latu(at)inetdoc.net
Philippe Latu
Résumé
Dans ce support de travaux pratiques, on se propose de préparer un système GNU/Linux pour être
utilisé comme équipement d'interconnexion réseau. Après avoir passé en revue les fonctions réseau
utiles du noyau Linux et sélectionné les pilotes des périphériques effectivement présents sur la
plateforme matérielle, on construit un paquet de noyau Linux à partir de ses sources.
Table des matières
1. Copyright et Licence ............................................................................................................... 1
1.1. Méta-information .......................................................................................................... 1
1.2. Conventions typographiques ......................................................................................... 2
2. Le noyau courant et son arborescence ..................................................................................... 2
3. Les sources du noyau Linux .................................................................................................... 3
4. La configuration du noyau Linux ............................................................................................. 3
5. La compilation & l'installation du nouveau noyau Linux ........................................................... 4
6. Documents de référence ......................................................................................................... 4
1. Copyright et Licence
Copyright (c) 2000,2015 Philippe Latu.
Permission is granted to copy, distribute and/or modify this document under the
terms of the GNU Free Documentation License, Version 1.3 or any later version
published by the Free Software Foundation; with no Invariant Sections, no
Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included
in the section entitled "GNU Free Documentation License".
Copyright (c) 2000,2015 Philippe Latu.
Permission est accordée de copier, distribuer et/ou modifier ce document selon
les termes de la Licence de Documentation Libre GNU (GNU Free Documentation
License), version 1.3 ou toute version ultérieure publiée par la Free Software
Foundation ; sans Sections Invariables ; sans Texte de Première de Couverture,
et sans Texte de Quatrième de Couverture. Une copie de la présente Licence est
incluse dans la section intitulée « Licence de Documentation Libre GNU ».
1.1. Méta-information
Ce document est écrit avec
DocBook
1
XML sur un système
Debian GNU/Linux
2
. Il est disponible en
version imprimable au format PDF :
interco.kernel.q.pdf
3
.
Toutes les commandes utilisées dans ce document ne sont pas spécifiques à une version particulière
des systèmes UNIX ou GNU/Linux. C'est la distribution
Debian GNU/Linux
qui est utilisée pour les tests
présentés. Voici une liste des paquets contenant les commandes :
• coreutils - The GNU core utilities
• procps - The /proc file system utilities
• pciutils - Linux PCI Utilities
• module-init-tools - tools for managing Linux kernel modules
1
2
http://www.docbook.org
http://www.debian.org
3
http://www.inetdoc.net/pdf/interco.kernel.q.pdf
Configuration des fonctions réseau & compilation du noyau Linux
1
Configuration des fonctions réseau
& compilation du noyau Linux
• make - The GNU version of the "make" utility
• libncurses5 - shared libraries for terminal handling
• libncurses5-dev - developer's libraries and docs for ncurses
• kernel-package - A utility for building Linux kernel related Debian packages
• fakeroot - Gives a fake root environment
1.2. Conventions typographiques
Tous les exemples d'exécution des commandes sont précédés d'une invite utilisateur ou
prompt
spécifique au niveau des droits utilisateurs nécessaires sur le système.
• Toute commande précédée de l'invite
$
ne nécessite aucun privilège particulier et peut être utilisée
au niveau utilisateur simple.
• Toute commande précédée de l'invite
#
nécessite les privilèges du super-utilisateur.
2. Le noyau courant et son arborescence
Avant d'attaquer la compilation d'un nouveau noyau à partir de ses sources, on doit identifier et
localiser les différents composants du noyau en cours d'exécution sur le système.
Le jeu de questions ci-dessous suppose que la configuration système est directement issue de
l'installation de la distribution
Debian GNU/Linux.
Le noyau courant exécuté est fourni via un paquet
de la distribution.
Q1.
Quelle est la commande
UNIX
usuelle qui identifie le noyau et sa version ?
Effectuer une recherche dans les pages de manuels des commandes installées sur le système
avec une requête du type :
apropos informations, système
.
Q2.
Où est placée l'image de la partie monolithique du noyau courant ?
Repérer le paquet
Debian
correspondant au noyau et retrouver l'image dans la liste des fichiers
de ce paquet.
Q3.
Où sont placés les fichiers des modules correspondant au noyau courant ?
Comme dans le cas précédent, la liste des fichiers du paquet permet de retrouver l'arborescence
de stockage des modules.
Q4.
Dans quels cas de figure utilise-t-on l'arborescence ou le disque RAM ?
Il faut bien différencier l'utilisation du disque RAM
initrd-*
de l'arborescence installée sur le
disque du système.
Q5.
Q6.
Que contiennent les arborescences
/proc
et
/sys
?
Consulter les documents ressource
sysfs
4
et
Linux Filesystem Hierarchy
5
Quelle est la commande qui permet de lister les modules chargés en mémoire ? À quel paquet
appartient elle ?
Rechercher dans la base de données des paquets de la distribution les informations relatives aux
manipulations sur les modules à l'aide d'une interrogation du type :
aptitude search ~imodule
.
Q7.
Quelles sont les commandes qui permettent de charger un module en mémoire
«manuellement» ? Identifier celle qui traite automatiquement les dépendances entre modules.
Rechercher les informations dans la liste des fichiers du paquet ainsi que dans les pages de
manuels des commandes.
4
5
http://en.wikipedia.org/wiki/Sysfs
http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/
Configuration des fonctions réseau & compilation du noyau Linux
2
Q8.
Configuration des fonctions réseau
& compilation du noyau Linux
Quelles sont les commandes qui permettent de retirer un module de la mémoire
«manuellement» ? Identifier les options de la commande qui traite automatiquement les
dépendances entre modules.
Rechercher les informations dans les pages de manuels des commandes.
3. Les sources du noyau Linux
Dans cette partie, on s'appuie pas sur le gestionnaire de paquets de la distribution et on télécharge
directement les sources du noyau Linux à partir du dépôt défini dans la liste des sources (fichier
/etc/
apt/sources.list
).
Il faut bien reconnaître que s'attaquer à toutes les options de configuration du noyau Linux en partant
de zéro est une tâche particulièrement ardue. Pour rendre la démarche plus aisée, on se propose de
partir de la configuration fournie avec le paquet de la distribution. En procédant par modifications
élémentaires à partir de cette configuration réputée sûre puisque permettant le fonctionnement du
système actuel, on limite ainsi les possibilités d'erreurs.
Les versions stables du noyau évoluent fréquemment. Les questions ci-dessous sont basées sur la
version courante de la série 2.6.xx.
Q9.
Quels sont les principaux canaux de diffusion des sources du noyau Linux ?
Rechercher un site web, un dépôt de code en ligne et le nom du paquet de la distribution.
Q10.
Quels sont les modes de téléchargement des sources qui permettent de s'affranchir d'une
interface graphique ?
La grande majorité des téléchargements se font via le protocole HTTP. Pour trouver l'outil
permettant de lancer un téléchargement HTTP, on peut faire une requête par mot clé dans les
pages de manuels des outils installés sur le système :
apropos "network download"
.
Q11.
À quel groupe doit appartenir l'utilisateur normal pour pouvoir effectuer les opérations de
compilation de modules ou du noyau ?
Rechercher dans la liste des groupes système, celui consacré à la manipulation des sources.
Q12.
Quel est le répertoire de l'arborescence système dédié au stockage des sources du noyau Linux ?
Faire une recherche dans le document
Linux Filesystem Hierarchy
6
.
Q13.
Quelles sont les commandes «rituelles» d'installation des sources du noyau Linux ?
Pour chaque commande, expliquer les opérations réalisées et justifier le choix des options.
Il faut consulter les ressources suivantes :
Debian Linux Kernel Handbook
7
et
Manuel de
référence Debian - Chapitre 9
8
.
4. La configuration du noyau Linux
On se propose de configurer un système d'interconnexion. Le noyau correspondant doit donc
comprendre les éléments suivants.
• Un cœur système monolithique : microprocesseur, périphériques non réseau et système de fichiers,
• Le support des fonctions réseau nécessaires au routage.
• Le support du filtrage netfilter sous forme modulaire.
• Un pilote d'interface réseau Ethernet sous forme modulaire,
• Les fonctions de l'ancien sous-système RNIS sous forme modulaire,
6
7
http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/
http://kernel-handbook.alioth.debian.org/
8
http://www.debian.org/doc/manuals/debian-reference/ch09.fr.html#_the_kernel
Configuration des fonctions réseau & compilation du noyau Linux
3
Configuration des fonctions réseau
& compilation du noyau Linux
• Un pilote d'interface RNIS sous forme modulaire,
Q14.
Quelle est la commande utilisée pour les opérations de configuration et de compilation ?
Q15.
Comment obtenir la liste des options de cette commande ?
Q16.
Quelles sont les 3 options de configuration du noyau ?
Préciser les différences entre ces 3 options.
Q17.
Sans opération préalable, quel est le fichier contenant les options de configuration du noyau
utilisé ?
Q18.
Une fois la commande de configuration exécutée, comment identifier la version du noyau à
compiler ?
Q19.
Quelles sont les options indispensables et facultatives des rubriques Networking Support puis
Networking options ?
Q20.
Quelles sont les options indispensables et facultatives des rubriques Device Drivers puis
Network device support ?
Q21.
Quelles sont les options indispensables et facultatives de la rubrique ISDN subsystem ?
5. La compilation & l'installation du nouveau noyau Linux
Q22.
Quel est le paquet qui contient les outils de construction de paquet de noyau ?
Rechercher le mot clé
kernel
à l'aide du gestionnaire de paquets. Installer le paquet
correspondant
Q23.
Quelles sont les commandes de compilation du noyau ?
Rechercher les commandes dans le support
Manuel de référence Debian - Chapitre 9
9
et donner
la signification de chacune des commandes.
Q24.
Quelles sont les étapes d'installation du noyau compilé ?
Quel outil faut-il utiliser pour gérer les paquets localement sur le système ?
Q25.
Que faut-il faire pour que le gestionnaire de démarrage propose le nouveau noyau compilé lors
de l'initialisation du système ?
Identifier le gestionnaire d'amorce installé sur le système.
Une fois toutes ces étapes franchies, il ne reste plus qu'à relancer le système et vérifier que le noyau
exécuté est bien celui qui a été recompilé à partir des sources.
6. Documents de référence
Debian Linux Kernel Handbook
Debian Linux Kernel Handbook
10
: guide sur les techniques de construction d'un paquet Debian
de noyau Linux.
Manuel de référence Debian
Manuel de référence Debian - Chapitre 9
11
: La section 9.7 traite des opérations de configuration
et de compilation d'un noyau Linux.
9
http://www.debian.org/doc/manuals/debian-reference/ch09.fr.html#_the_kernel
http://kernel-handbook.alioth.debian.org/
11
http://www.debian.org/doc/manuals/debian-reference/ch09.fr.html#_the_kernel
10
Configuration des fonctions réseau & compilation du noyau Linux
4
Zgłoś jeśli naruszono regulamin