E. RAMAT (ramat@lisic.univ-littoral.fr) LISIC/ULCO http://www-lisic.univ-littoral.fr/~ ramat. Détermination de la configuration de la machine cible



Documents pareils
Virtualisation de serveur grâce à Linux-

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Installation software

Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre

Administration de Parc Informatique TP07 : Installation de Linux Debian

INSTALLATION LINUX/DEBIAN WOODY 3.0.R0. par. G.Haberer, A.Peuch, P.Saadé

Chapitre 10 : Logiciels

Personnes ressources Tice. Académie de Rouen

Session 8: Android File System

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Parallels Transporter Lisez-moi

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

Installation de VirtualPOPC-1 sur Ubuntu Server LTS 64bits

Mise en place d un serveur trixbox sur un domaine Kwartz. Version 1.0 du 25 juin 2012 Lycée Polyvalent d Artois, Noeux les Mines Adrien Bonnel

Tutorial uclinux ARM7 Development Starter Kit. Pragmatec Produits et services dédiés aux systèmes embarqués. uclinux - Mise en oeuvre

Projet Administration Réseaux

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

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

Enoncé du TP 8 Système

VirtualBox : Installation de Backtrack-4 en machine virtuelle TABLE DES MATIÈRES. I. Préface. II. Prérequis 1. INTRODUCTION

TP1 - Prise en main de l environnement Unix.

Architecture de la plateforme SBC

L'accélération 3D sous Linux

Cluster Linux Openmosix

Guide d'installation de la base de données ORACLE 10g ( ) pour linux FEDORA CORE 4.

C.M. 1 & 2 : Prise en main de Linux

Howto: Comment faire cohabiter Backtrack et un Windows?

Installation de la WOODY

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

REPUBLIQUE ISLAMIQUE DE MAURITANIE

Mon premier rpm. 7 juin Avant de commencer RPM URPMI RPMBUILD... 2

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

IFT Systèmes d exploitation - TP n 1-20%

TD 1 - Installation de système UNIX, partitionnement

Installation d ORACLE 10g sous Debian Etch

FICHE TECHNIQUE. Linux Tutoriel. Installer une imprimante multifonction HP PSC 1315 sous Linux. TUTORIEL Starinux Imprimante multifonction HP PSC 1315

Effectuer un triple boot sur un Mac

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5

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

Créer son premier package.deb. 19 août

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

Outils pour la pratique

Bac Professionnel Systèmes Electroniques Numériques

Installation et Réinstallation de Windows XP

OpenMediaVault installation

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

MANUEL UTILISATEUR KIWI BACKUP V 3

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Epreuve E4 Conception et maintenance de solutions informatiques DESCRIPTION D UNE SITUATION PROFESSIONNELLE

En ce moment (24/01/2014), Super bon plan: Micro Serveur HP Proliant G7 N54L à 159 ttc Plus d'informations sur dealabs.com

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

Utilisation et création de la clé USB OSCAR

EN Télécom & Réseau S Utiliser VMWARE

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

Maintenir Debian GNU/Linux à jour

Préparation à l examen 101 pour la certification de l Institut professionnel de Linux, niveau junior (LPIC-1)

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

Raccourcis ajoutés (alias) Dans Terminal (accès rapide avec la combinaison de touches Ctrl + Alt + T )

Chi rement des postes PC / MAC / LINUX

VMware ESX : Installation. Hervé Chaudret RSI - Délégation Centre Poitou-Charentes

Virtualisation et le hosting. Christophe Lucas Sébastien Bonnegent rouen.fr>

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Installation Oracle 10g : Installation sur Solaris 10 x86

Debian Lenny - Virtualisation avec Libvirt/KVM Debian GNU/Linux

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

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

Atelier : Virtualisation avec Xen

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

TP 4 de familiarisation avec Unix

Quelques éléments de compilation en C et makefiles

Principe. Technologies utilisées. 1. Linux et LVM. Les snapshots (instantannés) sous Linux et FreeBSD. Présentation de LVM. Organisation de LVM

PROCEDURE ESX & DHCP LINUX

NFS-Root client et serveur HowTo

Ophcrack - Windows XP/Vista

Tutoriel : Clonezilla, pour sauvegarder et restaurer son disque dur

PROCÉDURE D'INSTALLATION

Gérard Castagnoli OSU PYTHEAS 25/06/2013 VVT2013 1

Documentation FOG. 3. Choisir le nom de la machine, le nom d utilisateur et le mot de passe correspondant (par exemple : fog, password)

Fiche Pratique. Présentation du problème. Installation du logiciel. Etape 1. MAJ le 17/10/2011

1 Démarrage de Marionnet

Installation et prise en main

DOCUMENTATION ADMINISTRATEUR

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

EN Télécom & Réseau S Utiliser VMWARE

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

Installation d un Serveur de Messagerie

Installation d'un serveur FTP géré par une base de données MySQL

Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT

!" #$$%& Disque dur 2.5 pouces Firewire Apple MacOS FR V2.4 - Page 1/17

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

Sommaire. Promo 39 B WINDOWS 2003 SERVER PART 1

Systèmes Embarqués Libres

LINUX - ADMINISTRATION PROGRAMME DE FORMATION

Configuration matériel. Tâche 2 : Installation proprement dite de l application sur un serveur de test virtualisé sous VmWare Workstation.

EXTRACTION ET RÉINTÉGRATION DE COMPTA COALA DE LA PME VERS LE CABINET

Sauvegarde sur un serveur Scribe

Sauvegardes par Internet avec Rsync

Transcription:

Licence Informatique 3 ème Année (L3 info) Module Administration système et réseaux Année 2011-2012 TP N 2 : [Re-]Compilation d un noyau de Linux Debian 1 E. RAMAT (ramat@lisic.univ-littoral.fr) LISIC/ULCO http://www-lisic.univ-littoral.fr/~ ramat Ce document est une liste de commandes, extraites des transparents «de cours». Je suppose pour la suite que vous êtes logués sous «root». Toutes les recommandations/vérifications reprises sur les transparents de cours ne figurent pas dans ce document. Avant de commencer, plusieurs vérifications doivent être effectuées : - uname r donne la version du noyau actuel (par exemple 2.6.32-5-686) - uname v donne la version/révision du noyau actuel (notamment la date de création) - cat /etc/debian_version donne la version installée de Debian (par exemple squeeze/sid) Vérifiez si les sources du noyau ne sont pas déjà dans un sous-répertoire de /usr/src ainsi que la place disponible (df h /usr/src) car il faut prévoir 62Mo à plus de 720Mo!!! Faites le ménage dans les paquets via apt-get clean Vérifiez que les outils de base nécessaires sont disponibles : - dpkg l binutils doit indiquer la version installée ( ) sinon téléchargez le via apt-get install binutils - dpkg l bzip2 doit indiquer la version installée ( ) sinon téléchargez le via apt-get install bzip2 Si c est la première compilation d un noyau sur votre machine, ne lisez pas la suite de ce paragraphe En revanche, si un noyau a déjà été recompilé à partir de ses sources sur votre machine, alors avant d effectuer une nouvelle compilation du noyau, assurez-vous que le lien vers /usr/src/linux existe, que vous vous trouvez dans le répertoire /usr/src/linux, que vous avez effectué une sauvegarde de votre fichier de configuration du noyau (/usr/src/linux/.config) et que l arborescence a été nettoyée (via make mrproper). Détermination de la configuration de la machine cible Avant de vous lancer dans la compilation du noyau, il est préférable de bien connaître les constituants de votre machine préférée si vous voulez un noyau performant, en adéquation avec votre machine C est maintenant qu il faut sortir toutes les documentations (techniques si possible) de votre matériel si vous voulez vraiment «customiser» votre noyau. Attention aux surprises parfois! C est comme dans d autres domaines, le «vrai» tuning est un art! De nombreuses commandes/outils peuvent vous aider pour configurer correctement votre système, parmi lesquelles : dmesg less lsmod cat /proc/meminfo free -mt cat /proc/cpuinfo lspci cat /proc/ioports lspci -v cat /proc/iomem lspci -vv cat /proc/dma lsusb cat /proc/filesystems lsusb -v ls -r /proc/irq/* lsscsi cat /sys/devices/pnp0/00:00/resources fouillez dans /proc et /sys fdisk -l dmidecode Il existe de nombreux paquets dédiés à la détection des cartes réseau (+/-wifi) des périphériques usb, des périphériques scsi, des cartes vidéo Juste un exemple au travers du paquet «hal» qui provoque l installation de plusieurs paquets dont il dépend : Tapez «apt-get install hal» Ce paquet provoque l installation de divers outils (gestion de l énergie «apm» ) et installe un daemon «hald». Il fournit notamment la commande : 1 D'après les versions de J. C. Soulié et D. Duvivier E. RAMAT L3 INFO 1

lshal avec ça vous avez toutes les infos en vrac! Téléchargement et préparation des sources pour la recompilation du noyau 0) apt-cache search ^linux-source donne la liste des versions disponibles 1) apt-get install linux-source-3.2 transfère les sources dans le fichier /usr/src/linux-source-3.2.tar.bz2 (j'utilise aptitude et non apt-get pour faciliter l'installation des paquets comportant des dépendances avec les sources, mais vous pouvez utiliser apt-get si vous voulez, il faudra vérifier si les outils requis sont bien installés par la suite en ce cas). 2) cd /usr/src NE QUITTEZ PAS CE REPERTOIRE POUR LES COMMANDES SUIVANTES 3) tar jxf linux-source-3.2.tar.bz2 dépacte les sources 4) chmod 700 linux-source-3.2 protège le répertoire des regards indiscrets 5) apt-get remove linux-source-3.2 puis apt-get clean fait le ménage proprement (en utilisant le système de paquets) 6) ln -s /usr/src/linux-source-3.2 linux crée un lien «standard» sur les sources 7) apt-get install gcc make zlibc zlib1g-dev binutils util-linux module-init-tools e2fsprogs procps udev libncurses5- dev kernel-package initramfs-tools cramfsprogs debconf-utils build-essential transfère des paquets utiles pour la suite. 8) apt-get clean pour faire un peu de ménage avant de poursuivre 9) cp i /boot/config-3.2.0.2-686-pae /usr/src/linux/.config copie la configuration courante comme base de la nouvelle 10) cd /usr/src/linux NE QUITTEZ PAS CE REPERTOIRE POUR LES COMMANDES SUIVANTES 11) make menuconfig configure le noyau via des menus textuels, utilisez la touche «Entrée» pour les sous-menus 12) Sauvegardez le fichier /usr/src/linux/.config que vous venez de générer en utilisant une commande du genre : cp /usr/src/linux/.config /boot/config-3.2.0.2-l3infodebian1 une autre copie, par sécurité : cp /usr/src/linux/.config /root/config-3.2.0.2-l3infodebian1 Quelques options à connaître lors de la compilation du noyau : - General setup - Kernel log buffer size Réduisez la taille du fichier log du noyau sur les machines possédant peu de RAM - Initial RAM filesystem ( ) Surtout ne pas désactiver si votre config. utilise initrd sinon plantage! - Optimize for size Si c est actif [*] on réduit la taille du noyau en mémoire, sinon [ ] il va plus vite! - Configure standard kernel A voir pour les machines possédant peu de RAM (ou «exotiques») - Kernel Performance Events And Counters Voir également tout ce qui concerne le Profiling, Kprobes et debugfs. C'est utile pour faire des mesures de performances et du tuning, il faut désactiver ensuite pour gagner éventuellement un peu en performances. - Profiling support Utile [*] tant que vous faites du tuning, à supprimer [ ] ensuite! - Oprofile Sous forme de <M>odule tant que vous faites du tuning, à supprimer < > ensuite! - Enable loadable module support Config classique Ne modifiez rien là, sinon plus de modules Plantage! - Enable the block layer - Support for Large Block Devices [*] [ ] sauf si vous avez au moins 2To de disque(s)! - - Processor type and features - Symmetric multi-processing support [*] [ ] si vous avez un seul processeur/cœur - Support for big SMP systems... [*] [ ] si vous avez moins de 9 processeurs/cœurs - Paravirtualized guest support laissez actif [*] si vous voulez utiliser un hyperviseur - Processor family Choisissez en fonction de VOTRE processeur (core 2?)!!! - Generic x86 support Pas utile [ ] sauf si le même noyau est destiné à plusieurs processeurs x86 - Maximum number of CPUs Vous pouvez réduire à (2) pour gagner de la place en RAM - Hyperthreading... et Multi-core scheduler Choisissez en fonction de VOTRE processeur! - Preemption Model Là c est vraiment du tuning, ça dépend de ce que vous faites sur la machine! E. RAMAT L3 INFO 2

- High Memory Support ça dépend de votre machine, sélectionnez «(X) off» si pas utile! ATTENTION : Laissez sur 4GB pour les TP!!! - Timer frequency (250Hz) Privilégier réactivité ou puissance de calcul, là est la question - Bus options Choisissez ce qui est nécessaire pour VOTRE machine (ça ira plus vite en compilation, cela fera gagner de la place et évitera la présence de modules inutiles/dangereux...) - File systems Choisissez vos systèmes de fichiers préférés (ça prend +/- du temps et de la place sur disque) ATTENTION : le système de fichiers racine ne doit pas être un module <M> mais inclus dans la code (<*>) du noyau il s'agit de ext2fs ou ext3fs selon la configuration (ou les deux). - Kernel hacking Sélectionnez certaines options via [*] pour faire du tuning, sinon désélectionnez [ ] - Magic SysRq key FAITES TRES ATTENTION A CETTE OPTION!!! SUR UNE MACHINE DE PRODUCTION ET/OU ACCESSIBLE LIBREMENT CETTE OPTION DOIT IMPERATIVEMENT ETRE DESACTIVEE!!! - Virtualization Exclusivement utile sur les processeurs qui le permettent!!! SURTOUT N OUBLIEZ PAS DE SAUVEGARDER VOTRE CONFIGURATION AVANT DE QUITTER!!! Mise en garde avant la recompilation du noyau Les sources du noyau doivent être placées dans un répertoire caché aux yeux des utilisateurs. Ce répertoire, votre répertoire d accueil (/home/<nom_de_login>) et le répertoire d accueil de root (/root) doivent être a priori uniquement visibles et accessibles par leur propriétaire (drwx------), ceci est obtenu via la commande suivante : chmod 700 <nom_du_répertoire> La recompilation du noyau peut prendre énormément de temps et d espace disque Sur les ordinateurs possédant peu de mémoire ou peu d espace disque ou tout simplement si vous voulez recompiler rapidement, ne sélectionnez que le minimum nécessaire et suffisant dans les systèmes de fichiers et les drivers à recompiler!!! Avant de lire la suite de ce paragraphe, je précise que je vous déconseille vivement d utiliser la commande présentée ci-dessous sur les machines en salle de TP car elles ont suffisamment de puissance de calcul et de mémoire pour permettre la compilation du noyau tout en restant en mode multi-utilisateurs/graphique! Sur une machine en réseau ou sur une machine possédant peu de mémoire en revanche, il peut être souhaitable de passer en mode «single user». Attention dans ce cas, un seul utilisateur peut se connecter sur une seule console locale (par défaut), il n y a plus de réseau, plus d interface graphique La commande permettant de passer en mode single est la suivante, ne l invoquez pas dans une console graphique/x sinon vous allez vous faire «éjecter» : telinit 1 Cette commande force le passage du processus «init» (processus ancêtre de tous les processus du système) en mode/niveau «1» en stoppant/tuant tous les processus (daemons) n appartenant pas à ce niveau. Sauvegardez votre fichier /usr/src/linux/.config ailleurs en utilisant un nom qui vous permette de retrouver la date, la machine sur laquelle le noyau a été compilé et éventuellement d autres informations Par exemple : cp /usr/src/linux/.config /root/config-3.2.0.2-debian_`hostname`_`date + %Y%m%d%H %M%S ` ATTENTION : dans la commande ci-dessus, ne confondez pas quote et backquote «`»!!! E. RAMAT L3 INFO 3

Recompilation du noyau selon la «méthode Debian» (i.e. via un paquet.deb) 13) make-kpkg --jobs 2 --initrd --revision=1 --append-to-version=-l3infodebian kernel-image Compile le noyau et le place dans un paquet debian. Remarque : par sécurité, si vous tapez uniquement make-kpkg --initrd kernel-image, une chaîne de caractères sera automatiquement ajoutée au nom du noyau pour indiquer qu il s agit d un noyau customisé/personnel et non d un noyau officiel. Ceci évite de remplacer accidentellement un noyau officiel par votre noyau «expérimental». 14) cd /usr/src puis dpkg --install linux-image-2.6.32-i2ldebian_1_i386.deb installe le noyau et met à jour Grub. 15) cd /usr/src/linux puis make-kpkg clean fait le ménage dans les sources. 16) Rebootez la machine, testez le nouveau noyau en vérifiant la version grâce à la commande uname a. 17) Rebootez la machine et relancez l ancien noyau (vérifiez avec uname a et uname -v). ATTENTION : pour la suite vous devez impérativement avoir démarré linux à partir de l ancien noyau 18) apt-get remove --purge linux-image-3.2.0.2-l3infodebian désinstalle le nouveau noyau. 19) rm /usr/src/linux-image-3.2.0.2-l3infodebian_1_i386.deb supprime le paquet contenant le noyau. E. RAMAT L3 INFO 4

Recompilation du noyau «à la main» (i.e. via la commande make) Pour les commandes suivantes, j ai supposé que <tuning/custom_string> était initialisé à «-l3infomain» 20) cd /usr/src/linux puis make mrproper fait le ménage dans les sources (y-compris le fichier.config!) 21) Recréez un fichier de configuration /usr/src/linux/.config à partir d une sauvegarde antérieure ou en récupérant une configuration de base dans /boot et en la modifiant via make menuconfig 22) Éditez le fichier Makefile pour remplacer «EXTRAVERSION=» par «EXTRAVERSION=-l3infomain». Ajoutez «-j3» à la variable «MAKEFLAGS», selon les versions de noyau cela ressemble à : MAKEFLAGS += -j3 -rr no-print-directory Ceci permet de booster la compilation sur une machine comportant deux processeurs/coeurs (Core 2...). 23) make lance la compilation 24) make modules_install installe les modules dans /lib/modules/3.2.0.2-l3infomain 25) Copie des fichiers générés par la compilation du noyau dans /boot (vérifiez avant si les noms de fichiers n existent pas déjà) : cd /usr/src/linux cp -i arch/x86/boot/bzimage /boot/vmlinuz-3.2.0.2-l3infomain cp -i System.map /boot/system.map-3.2.0.2-l3infomain cp -i.config /boot/config-3.2.0.2-l3infomain 26) Création de l image RamDisk (si initrd est nécessaire) : cd /usr/src/linux mkinitramfs o /boot/initrd.img-3.2.0.2-l3infomain /lib/modules/3.2.0.2-l3infomain 27) Création des liens dans / utile uniquement pour lilo a priori (vérifiez avant les liens qui existent déjà ) : cd / mv vmlinuz vmlinuz.old ln -si /boot/vmlinuz-3.2.0.2-l3infomain vmlinuz mv initrd.img initrd.img.old ln -si /boot/initrd.img-3.2.0.2-l3infomain initrd.img mv System.map Sustem.map.old ln -si /boot/system.map-3.2.0.2-l3infomain System.map 28) cd /boot/grub puis, selon la version de Grub, tapez l'une de ces deux commandes : - cp menu.lst menu.lst.orig - cp grub.cfg grub.cfg.orig crée une copie de sécurité de la configuration de Grub. ATTENTION : si les deux fichiers (menu.lst et grub.cfg) existent dans votre répertoire /boot/grub (ce n'est pas le cas en salle de TP a priori), cela signifie vraisemblablement qu'une ancienne version de Grub a été installée, puis remplacée par Grub 2. En ce cas il ne faut modifier que le fichier «grub.cfg». 29) Éditez/générez menu.lst ou grub.cfg et ajoutez une entrée pour le nouveau noyau (cf. «cours» pour explications détaillées ou basez-vous sur le détail donné lors de l explication du fichier menu.lst ou grub.cfg automatiquement généré lors de l utilisation de la recompilation du noyau via un paquet Debian). Je suppose que vous utilisez Grub2 pour la suite. Il suffit donc de taper : grub-mkconfig > grub.cfg.new Vérifiez si le fichier généré est correct avec diff -bbd grub.cfg grub.cfg.new Si OK alors mv grub.cfg.new grub.cfg Puis chmod 444 grub.cfg 30) update-grub met à jour Grub et crée automatiquement un mode «single-user» pour votre version de noyau. 31) Rebootez la machine, testez le nouveau noyau en vérifiant la version grâce à la commande uname -a. 32) Si tout est OK, pas de «panic», nous allons juste faire un petit test supplémentaire, effectuez la commande suivante avec les droits administrateur («root») : mv /boot/initrd.img-3.2.0.2-l3infomain /boot/initrd.img-3.2.0.2-l3infomain.orig 33) Reboot & Sélection du nouveau noyau (l3infomain) 34) Joli, non????????????? 35) Reboot & sélection de l'ancien noyau (3.2.0.2-686-pae) 36) mv /boot/initrd.img-3.2.0.2-l3infomain.orig /boot/initrd.img-3.2.0.2-l3infomain 37) FIN E. RAMAT L3 INFO 5

ATTENTION : NE FAITES PAS LE MENAGE DANS /usr/src/linux ET NE REBOOTEZ PAS SUR L ANCIENNE VERSION DU NOYAU POUR EFFECTUER LA SUITE DES TP!!! Voilà, c est terminé! E. RAMAT L3 INFO 6