TP Administration Système : Compilation d'un noyau Linux 2.6.x.y



Documents pareils
Installation et prise en main

REPUBLIQUE ISLAMIQUE DE MAURITANIE

Vous y trouverez notamment les dernières versions Windows, MAC OS X et Linux de Thunderbird.

Utiliser Glary Utilities

Client Kiwi Backup : procédures d'installation et de mise à jour. Gilles Arnoult, Clément Varaldi

Atelier Migration. Mohamadi ZONGO Formateur assistant Kassim ASSIROU Atelier Migration.

MI03 TP. Objectifs du TP 1ère séance. 2ème séance. Construction d'un système linux embarqué complet

Tune Sweeper Manuel de l'utilisateur

TD séance n 2c Mise à jour des Systèmes

Installation et Réinstallation de Windows XP

Département de génie électrique. ELE784 - Ordinateurs et programmation système. Laboratoire #1

L'accélération 3D sous Linux

Virtualisation de serveur grâce à Linux-

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC!

Tutorial Ophcrack. I) Ophcrack en API. (ou comment utiliser Ophcrack pour recouvrir un mot de passe sous Windows XP et Windows Vista)

Maintenance de son PC

Titre: Version: Dernière modification: Auteur: Statut: Licence:

TABLE DES MATIERES...

Un serveur web, difficile?

Virtualisation de Windows dans Ubuntu Linux

Maintenir Debian GNU/Linux à jour

Gestion des utilisateurs : Active Directory

SAUVEGARDER SES DONNEES PERSONNELLES

[Serveur de déploiement FOG]

Exportation d'une VM sur un périphérique de stockage de masse USB

Windows 8 Installation et configuration

Panda Managed Office Protection. Guide d'installation pour les clients de WebAdmin

Machine virtuelle W4M- Galaxy : Guide d'installation

Version janvier Manuel d'utilisation. Adaptateur Ethernet rapide 10/100 USB 2.0

OpenMediaVault installation

Mise en place d un système de Téléphonie sur IP basé sur le logiciel Asterisk

La création d un paquet Debian. Aurélien Jarno. Journées du Logiciel Libre. 15 octobre 2005

Mises à jour des logiciels Manuel de l'utilisateur

Ajouter de la mémoire à son ordinateur

Utilisation d'un réseau avec IACA

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Qlik Sense Desktop. Qlik Sense Copyright QlikTech International AB. Tous droits réservés.

Projet serveur OwnCloud

TP 7, 8 & 9 : Installation et Gestion de GLPI et Télédéploiement SISR 1 HUBERT JULIEN LABBE RICHARD DAY MICKAEL DOGNY CHRISTOPHE

Backup & Recovery 10 Suite. Guide de démarrage rapide

Télécom Nancy Année

Comment utiliser Vijeo Designer avec les produits de machine virtuelle

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Sauvegarde et restauration d'un système d'exploitation Clonezilla

TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname

Installer Windows 8 depuis une clé USB

NOUVEAU! MultiSystem vous présente la première clé USB MultiBoot du marché! Le LiveUSB MultiBoot par excellence.

"! "#$ $ $ ""! %#& """! '& ( ")! )*+

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Projet Semestre2-1SISR

Chi rement des postes PC / MAC / LINUX

Aide d'active System Console

FreeNAS Shere. Par THOREZ Nicolas

56K Performance Pro Modem

PARAGON SYSTEM BACKUP 2010

Symantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide

Acronis Backup & Recovery 10 Server for Linux. Guide de démarrage rapide

Mise à jour de version

Utilisation et création de la clé USB OSCAR

Architecture de la plateforme SBC

Maintenance régulière de son ordinateur sous Windows

Atelier : Virtualisation avec Xen

Utiliser des logiciels Windows sous Linux Ubuntu

Edutab. gestion centralisée de tablettes Android

JetClouding Installation

Situation professionnelle n X

OnDemand Version 1.7. Manuel d installation et d utilisation. AST Technology. Sophienstrasse Herford Allemagne

MANUEL. de l application «CdC Online» pour Windows. Table des matières

[Serveur de déploiement FOG]

Symantec Backup Exec TM 11d for Windows Servers. Guide d'installation rapide

Initiation maintenir son ordinateur en forme

MANUEL UTILISATEUR KIWI BACKUP V 3

Monitor Wall 4.0. Manuel d'installation et d'utilisation

SweetyPix, mode d'emploi

Installation software

TD 1 - Installation de système UNIX, partitionnement

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Mettre Linux sur une clé USB bootable et virtualisable

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

SOMMAIRE. Chapitre 1 - principe 3 Téléphonique 4 PC/Configuration logicielle 4 PC/Configuration matérielle: 4 Pabx 4

Guide pas à pas. McAfee Virtual Technician 6.0.0

Protéger ses données dans le cloud

Manuel de l utilisateur de Samsung Auto Backup

HP Data Protector Express Software - Tutoriel 3. Réalisation de votre première sauvegarde et restauration de disque

Cours Langage C/C++ Programmation modulaire

Ce tutoriel ne fera pas de vous un expert sur le déploiement via WDS, mais il vous permettra de comprendre un peu les rouages de ce système.

Messages d'erreurs. Redémarrez votre PC en cliquant sur Démarrer, en sélectionnant ensuite Arrêter puis en cochant Redémarrer

Sage 50 Version 2014 Guide d installation. Sage Suisse SA

Ophcrack - Windows XP/Vista

UBUNTU Administration d'un système Linux (4ième édition)

1. Introduction Sauvegardes Hyper-V avec BackupAssist Avantages Fonctionnalités Technologie granulaire...

1. Installation du Module

Certificats Electronique d AE sur Clé USB

Éléments d'architecture des ordinateurs

Transcription:

TP Administration Système : Compilation d'un noyau Linux 2.6.x.y 29 septembre 2005 Mickaël Marchand <mmarcha@ujf-grenoble.fr> Sébastien Varrette <Sebastien.Varrette@imag.fr> Bernard Parisse <Bernard.Parisse@ujf-grenoble.fr> 1 Introduction Compiler un noyau linux (aussi appelé kernel) n'est pas chose facile pour le débutant. Cela requiert de bien connaître le matériel qui constitue votre ordinateur et d'avoir une expérience avec les options que le noyau vous propose. Nous allons voir dans ce TP, deux manières de créer un noyau et de l'installer : la méthode standard compatible avec toutes les distributions Linux et la méthode debian, plus simple et plus rapide. Généralement les distributions Linux modient le noyau qu'ils fournissent, soit pour corriger des bugs de sécurité, soit pour améliorer ou ajouter des fonctionnalités. Debian modie généralement très peu le noyau (uniquement pour la sécurité), ici nous utiliserons un noyau Linux vanilla, c'est-à-dire sans modications. D'autres personnes fournissent des versions modiées du noyau, par exemple pour tester des nouvelles fonctionnalités, corriger des bugs, améliorer les performances sous certaines conditions... On trouve la plupart de ces modications sur le site http://www.kernel.org, n'hésitez pas à explorer ce site pour découvrir tout ce qui s'y cache (c'est une mine d'or pour le noyau). Nous verrons aussi comment éviter de recompiler un noyau entier lorsque l'ajout d'un pilote est nécessaire, en utilisant les modules (chargeables dynamiquement). Les noyaux Linux ont vu récemment un changement dans leur numérotation, ainsi les versions ocielles sont numérotées 2.6.13 et des versions de correction sont rajoutées au fur et à mesure : 2.6.13.1 puis 2.6.13.2... Ces sous-versions ne contiennent que des correctifs de bugs et de sécurité. Dans la mesure du possible, il faudra toujours utiliser le noyau le plus récent. L'objectif de ce TP est donc de mettre à jour votre machine avec un noyau 2.6 plus récent que le noyau par défaut. Le passage d'un noyau 2.4 à un noyau 2.6 apporte plusieurs avantages dont pour ne citer qu'eux : de meilleurs performances, plus de pilotes pour le matériel, des corrections de bugs,... 1

Vous serez sans doute fréquemment amené à compiler des modules et/ou recompiler un noyau Linux pour supporter diérents matériels. Généralement, on a besoin de mettre à jour son noyau pour qu'un PC récent puisse fonctionner (ou fonctionner mieux) ou pour rajouter une fonctionnalité spécique. Les compilations pouvant être assez longues, ne perdez pas de temps! 2 Vérications préalables Avant de se pencher sur le noyau lui-même, il va falloir préparer le système à compiler et utiliser un noyau de la série 2.6.x. Les Debian que vous avez installé utilisent par défaut des noyaux 2.4.x. Quelques mises à jour peuvent être nécessaires. Commencez par télécharger le dernier noyau Linux stable de la série 2.6 depuis le site http://www.kernel.org. Le chier doit s'appeler linux-2.6.13.2.tar.bz2 ou linux-2.6.13.2.tar.gz. Sur ce site, vous pourrez trouver tout l'historique du noyau Linux depuis sa création. Vous pourrez également trouver l'historique des changements (aka ChangeLog) qui indique quelles modications ont été apportées à chaque évolution du noyau. Chaque changement, si inme soit-il, est soigneusement noté, cela permet une totale transparence entre les équipes qui développent le noyau. Décompressez ce chier : tar zxf linux-2.6.13.2.tar.gz ou tar jxf linux-2.6.13.2.tar.bz2 selon le chier que vous avez téléchargé. Cela doit créer un répertoire linux-2.6.13.2. A l'intérieur de ce répertoire se trouve tout le code source du noyau Linux. Consultez le chier Documentation/Changes, vous y trouverez une liste de logiciels et de versions. Vériez bien que votre système à ces outils avec les bonnes versions (ou des versions supérieures). Par exemple, il est indiqué que gcc 2.95.3 est nécessaire, la commande gcc --version nous indiquera si nous avons la bonne version. Certains de ces logiciels ne nous seront pas utiles (comme pcmcia qui est spécique aux portables, xfsutils, isdn4k-utils,jfsutils,ppp,oprole), vous n'avez donc pas à les installer ou à les mettre à jour. Les deux logiciels importants à installer lorsqu'on migre en noyau 2.6 sont les paquets : udev et module-init-tools. Si vous les oubliez, votre nouveau noyau ne saura pas lancer correctement le système. Un package hotplug est également très utile, il se chargera de détecter et de charger une bonne partie des modules du noyau nécessaires au matériel de la machine pendant le démarrage. Son installation est donc recommandée (mais pas indispensable). Enn pour pouvoir congurer le noyau, il nous faudra une interface en mode console ou graphique, nous utiliserons ici l'interface console (plus claire que l'interface graphique) : apt-get install libncurses5-dev 3 Conguration du noyau 3.1 Présentation du système d'options Avant de lancer la compilation du noyau, il va falloir le congurer et ca n'est pas chose facile. Le noyau ore des dizaines d'options et si on ne choisit pas la 2

bonne ou si on en oublie, le noyau résultant peut ne pas démarrer du tout. Nous n'allons pas détailler toutes les options (il y en a bien trop;) il vous faudra donc faire des choix judicieux. Généralement, le plus simple consiste à reprendre la conguration du noyau existant et à la modier pour rajouter les options que l'on veut. C'est simple et plutôt ecace. Dans le cas d'une migration d'un noyau 2.4 à un noyau 2.6, c'est plus complexe, il vaut mieux tout refaire à la main en choisissant les options une à une. C'est long et fastidieux. Pour vous simplier le travail, un chier de conguration type est à votre disposition, il vous donnera une conguration de base que vous n'aurez plus qu'à adapter. Vous pouvez le télécharger depuis http://www-fourier.ujf-grenoble.fr/~mmarcha/config-base-2.6. Enregistrez ce chier sous le nom.config dans le répertoire. En règle générale, on essaye d'intégrer en dur (c'est-à-dire compiler dans le noyau lui-même) les composants qui sont indispensables au démarrage de la machine (pilote du disque dur, pilote du système de chiers racine,...) et de compiler en modules tout le reste (carte son, USB,...). Exécutez maintenant la commande : make menuconfig Cette commande lance un menu en mode texte, vous permettant de modi- er les options de conguration du noyau (utiliser la touche tabulation et les èches pour vous déplacer dans les menus, et la touche espace pour sélectionner, valider). Généralement, 3 choix vous sont oerts pour chaque option : compiler dans le noyau l'option (*), compiler en module (M) ou ne pas intégrer la fonctionnalité du tout. Certaines options peuvent se présenter sous forme de listes également (choix du processeur par exemple). Ce menu classe les options du noyau en plusieurs catégories : Code maturity level options, General setup, Loadable module support, Processor type and features, Power management options (ACPI, APM), Bus options (PCI, PCMCIA, EISA, MCA, ISA), Executable file formats, Device Drivers, File systems, Profiling support, Kernel hacking, Security options, Cryptographic options, Library routines. Nous n'en modierons que quelques unes. 3.2 Sélection des composants du noyau L'objectif sera maintenant de rajouter les bons composants en dur dans la conguration pour obtenir un noyau capable de démarrer le système. An de vous aider dans ces choix, quelques commandes vous seront utiles pour déterminer les composants matériels de votre ordinateur : lspci vous achera une liste du matériel détecté. La commande cat /proc/cpuinfo vous donnera des informations sur le type de processeur. Comme point de départ, essayez de choisir le bon processeur, d'activer le support des disques durs (IDE/ATA-2 dans notre cas) et de rajouter le support pour les systèmes de chiers ext3. Toutes ces options doivent être compilées en dur dans le noyau. Vous trouverez ces options dans les menus : Processor type and features, Device Drivers->ATA/ATAPI/MFM/RLL et File systems 3

Il y a plusieurs options à activer pour les disques durs, n'en oubliez pas ou le noyau ne pourra pas initialiser le système. Il faut également activer le support générique du chipset IDE. Vériez également que la carte réseau est bien sélectionnée soit en dur soit en module ( dans le menu Device Drivers->Networking Support->Ethernet (10 or 100Mbit) ). N'hésitez pas à demander de l'aide en cas de doute sur une option. 4 Compilation du noyau Une fois la conguration terminée, il ne restera plus qu'à compiler le noyau. Il existe deux manières de procéder : - la méthode standard qui fonctionne sur toutes les distributions Linux - la méthode Debian qui permet d'installer un noyau simplement sur de nombreuses machines similaires, cette méthode est la méthode recommandée sur une machine sous Debian. 4.1 Méthode de compilation standard Cette fois, c'est l'ordinateur qui va travailler, lancez la commande : make all Les scripts du noyau vont tout prendre en charge pour compiler correctement vos choix. Plusieurs chiers seront générés : le noyau, les modules, un chier de description des symboles du noyau... Lorsque la compilation sera nie, vous n'aurez plus qu'à passer en mode administrateur (si vous ne l'êtes pas déjà) et installer le noyau : su (entrez le mot de passe root) make install modules_install update-grub Cette dernière commande va mettre à jour le bootloader grub pour qu'il vous permette de démarrer votre nouveau noyau. Il ne vous reste plus qu'à redémarrer votre machine pour tester votre noyau personnalisé. Si votre noyau ne démarre pas correctement, regardez bien les messages indiqués par celui-ci, ils peuvent vous indiquer pourquoi le démarrage à échouer, puis redémarrez la machine et utilisez le noyau 2.4.27 pour démarrer avec un système stable. Vous pouvez alors réssayer de congurer votre noyau en réparant les erreurs. Les compilations successives seront plus rapides, seules les parties modiées par vos choix seront recompilées. 4.2 Méthode Debian Commencez par nettoyer les sources du noyau (pour enlever les chiers compilés précédemment) : make clean Nous garderons le même chier de conguration que précédemment. 4

L'objectif ici est de construire un noyau et de le transformer en paquet Debian (chier.deb) que l'on pourra copier sur plusieurs machines pour l'installer. Pour ce faire, Debian met à disposition des outils : apt-get install kernel-package fakeroot Le paquet kernel-package fournit plusieurs scripts permettant d'automatiser la création du paquet. Il sut maintenant d'exécuter une seule commande pour créer un paquet Debian d'un noyau : make-kpkg --rootcmd fakeroot -rev csci.1 kernel-image L'option -rev permet de rajouter un numéro de version personnalisé au paquet qui va être généré. Si nous devions mettre à jour ce noyau, nous pourrions recompiler avec un -rev csci.2 par exemple. Cela vous permet de garder une trace et un suivi des évolutions de votre noyau. L'option --rootcmd fakeroot permet de ne pas être en root pour compiler (elle simule le compte root avec la commande fakeroot). Lorsque la création du paquet sera terminée vous trouverez un chier kernelimage-2.6.13.2_csci.1_i386.deb dans le répertoire parent. Il sut maintenant d'installer ce chier avec la commande pour installer le noyau sur votre machine : dpkg -i kernel-image-2.6.13.2_csci.1_i386.deb 5 Compilation d'un module externe Dans certains cas, vous pourrez être amené à compiler un module supplémentaire pour faire fonctionner un matériel particulier. Un exemple typique est les cartes graphiques Nvidia. Nvidia fournit son propre pilote et il faut le compiler soit-même pour pouvoir l'utiliser. Debian dispose d'outils simpliant la compilation de ce genre de modules. Pour l'exemple, nous installerons ici le module nvidia même s'il ne sera pas utilisé sur ces machines. Commencez par récupérer l'outil Debian permettant de compiler automatiquement le module : apt-get install module-assistant Lancer maintenant la commande : m-a a-i nvidia-kernel La commande m-a (module-assistant) va lancer automatiquement la compilation du module nvidia. Cela va créer et installer un chier.deb contenant le module nvidia adapté pour le noyau qui est actuellement utilisé. Vous n'aurez plus qu'à charger le module avec la commande : modprobe nvidia (ici la commande renvoit l'erreur No such device ce qui est normal car les ordinateurs n'ont pas ce périphérique). Si vous exécutez la commande m-a seule, vous obtiendrez un système de menus vous permettant de choisir et de compiler divers modules supplémentaires disponibles dans Debian. Il est également possible de rajouter un paramètre à la commande m-a pour lui spécier de construire un module pour un noyau diérent que le noyau actuel. Pour cela, il faut rajouter l'option -k /chemin/jusqu'aux/sources/du/noyau/à/utiliser ce qui peut donner quelque chose comme : m-a a-i nvidia-kernel -k /usr/src/linux-2.6.10 5

si on souhaitait préparer le module nvidia pour un noyau 2.6.10. 6 Plus d'informations sur la compilation du noyau Linux... Il vous faudra sans doute un certain temps pour vous familiariser avec les options du noyau. Il est rare de réussir à obtenir un noyau qui fonctionne dès le premier essai car il est très facile de faire une erreur au niveau des choix des options. Pour vous aider à comprendre comment tout cela fonctionne vous pouvez commencer par la documentation écrite par Kwan Lowe http: //www.digitalhermit.com/linux/kernel-build-howto.html qui détaille les diverses options et manières de compiler un noyau. La documentation spécique à Debian est également une bonne source d'informations http://www.debian.org/doc/manuals/reference/ch-kernel.fr. html. Un site personnel qui contient beaucoup d'informations sur Linux : http: //people.via.ecp.fr/~alexis/formation-linux/config-noyau.html. Le noyau lui-même contient beaucoup de documentation dans le répertoire Documentation. C'est une mine d'informations en cas de problèmes avec certains pilotes et options possibles pour vous assister. 6