| Qui est en ligne ? |
| Il y a : 25 utilisateurs en ligne, consultez le détail |
Forum » Documentation Linux » Thème I (noyau 2.6.x) : Compilation facile du noyau |
Forum modéré par : Jul |
| Même auteur |
|
Score ( voter ) : ![]() ![]()
|
|
|
|
|
| Page : [1] |
| Auteur | Message |
|---|---|
|
|
#0 Message posté le : 20-05-2005 à 16:04:02 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 04-07-2003 Nombre de messages : 177 |
Dans ce didacticiel, je vais expliquer comment installer facilement un noyau 2.6.X. La plus part des cas de figures courants vont être abordés. C'est à dire que je prends en compte, les personnes dont la distribution fourni déjà un noyau 2.6.x, pour eux il s'agit d'une simple mise à jour. Je traite également le cas des personnes utilisant une distribution avec noyau 2.4.x mais dont l'ensemble des logiciels est près pour le 2.6.x. 1. Introduction1.1 Les nouveautés du 2.6.xVoici un petit récapitulatif des avancées technologiques du noyau Linux 2.6 :
1.2 Pré-requisPour installer le noyau 2.6.x, assurez-vous d'avoir les paquets suivants :
vérifiez également les versions des logiciels suivants :
2. Installer les sources2.1 Avec les paquetages de sa distributionDe nombreuses distributions comme Mandriva,Fedora, Debian et Slackware peuvent s'installer d'office avec un noyau 2.6.x déjà patché. Il est tout à fait légitime de vouloir mettre à jour ce noyau avec un noyau provenant de kernel.org, mais cela vous ferait perdre tous les patchs déjà inclus. C'est pourquoi je vous conseille, pour ces distributions, de simplement recompiler votre noyau, en rajoutant les options qui vous poussent à compiler. Pour les utilisateurs de Mandrivail suffit de taper :
# urpmi kernel-headers kernel-source Pour les utilisateurs de Fedorail suffit de taper :
# yum install kernel-source Pour les utilisateurs de DebianDeux cas possibles, votre distribution est installée d'office avec le noyau 2.6, tapez :
# apt-get install kernel-headers-$(uname -r) kernel-source-$(uname -r) Pour tous les autres cas, passez au 2.2 Pour les utilisateurs de SlackwareDeux cas possibles, votre distribution est installée d'office avec le noyau 2.6, il suffit d'installer les paquetages k/kernel-source-2.6.x.tgz ( et k/kernel-headers-2.6.x.tgz s'il y'en a) par :
# installpkg /où_est/kernel-source-2.6.x.tgz /où_est/kernel-headers-2.6.x.tgz Pour tous les autres cas, passez au 2.2 2.2 Avec les sources officiellesD'autres distributions, sont prêtes pour le 2.6. Pourtant, elles continuent à utiliser le 2.4 par défaut. Pour ces distributions, téléchargez les sources du noyau le plus récent sur kernel.org. Dans la suite, je vais supposer que vous avez téléchargé le fichier linux-2.6.12.4.tar.bz2. Avant de les installer je vous propose d'en verifier l'integrité, grâce à l'outil gpg. Pour le noyau linux-2.6.12.4.tar.bz2 téléchargez également le fichier linux-2.6.12.4.tar.bz2.sign qui se trouve dans le même dossier. Copiez les deux Dans /usr/src/. Quand vous êtes prêt, téléchargez la clé publique de " Linux Kernel Archives " par :
# gpg --keyserver wwwkeys.pgp.net --recv-keys 0x517D0F0E Un repertoire ~/.gnupg avec un fichier options sera créé. Si c'est la première fois, re-executez la même commande. Vérifiez maintenant l'authenticité de cette clé grâce a l'option fingerprint :
# gpg --fingerprint Comparez le resultat avec le site principal du noyau Linux à cette adresse. Si tout vous semble correct, passez à la verification des sources :
# cd /usr/src/ # gpg --verify linux-2.6.12.4.tar.bz2.sign linux-2.6.12.4.tar.bz2 Qui devrait vous retourner quelque chose comme :
gpg: Signature made Thu 12 May 2005 01:13:10 AM CEST using DSA key ID 517D0F0E gpg: Good signature from "Linux Kernel Archives Verification Key <ftpadmin@kernel.org>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint : C75D C40A 11D7 AF88 9981 ED5B C86B A06A 517D 0F0E Il ne vous reste plus qu'à installer les sources comme suite :
# cd /usr/src # tar xjvf linux-2.6.12.4.tar.bz2 # rm linux # ln -s linux-2.6.12.4 linux # cd linux # make mrproper 3. Patcher son noyau :Cette étape, concerne les personnes qui souhaitent rajouter un patch à leur noyau, si vous n'avez pas de patch à appliquer, passer au 4. Sinon, commencez par copier le patch dans le répertoire des sources du noyau : cp /où_est/lePatch.gz /usr/src/linux/ Si vous avez téléchargé ce patch sur kernel.org, vous pouvez en vérifier l'authenticité exactement comme pour les sources du noyau, ci-dessus. Quand vous êtez prêt appliquez-le ainsi :
cd /usr/src/linux/ gunzip lePatch.gz patch -p1 < lePatch.patch Pour annuler ce patch, il suffira de rappeler patch. Ceci suppose bien-sûr que le patch soit compressé avec gzip. 4. Le ./configureRappelons que cette étape a pour but, la génération du fichier de configuration, qui indiquera au compilateur les parties à inclure dans l'exécutable. Heureusement pour nous, de nombreuses distributions sont livrées avec le fichier de config du noyau 2.6.x qu'elles utilisent. Ce fichier est souvent localisé dans /boot/, il s'appelle /boot/config-ide-2.6.xx ou /boot/config-2.6.xx, peu importe, copiez-le, dans le dossier des sources du noyau : cp /boot/config-ide-2.6.xx /usr/src/linux/.config Si vous n'avez pas de fichier de config pour le noyau 2.6, je fournis un fichier prêt à l'emploi ICI. Ce fichier est adapté à un noyau 2.6.12.4. Vous ne pouvez l'utiliser qu'avec un noyau de version au moins égale 2.6.12.4 : cp /où/est/config-trust-2.6 /usr/src/linux/.config Ceux qui ont l'expérience des commandes Unix, ont naturellement compris que le fichier de configuration du noyau n'est pas config.h mais .config, peu importe, ils jouent le même rôle. C'est à dire que la modification de ce fichier n'influe en rien sur l'exécutable déjà présent sur votre système. Pour changer de noyau, il faut le re-compiler et le re-installer exactement comme avec les autres logiciels. A ce stade, si vous décidiez de lancer la compilation, vous obtiendrez exactement l'exécutable que vous avez déjà sur votre système ou exactement le système que mon fichier de configuration génère par défaut. Pour le customiser lisez le point 5. sinon, passez au 6. 5. Les options les plus courantesPour rajouter une option au fichier de configuration du noyau, lancez l'utilitaire menuconfig, par :
cd /usr/src/linux/ make menuconfig C'est une interface ncurse, rudimentaire, mais qui conviendra pour ce qu'on souhaite faire. Elle s'organise en menus, vous pouvez naviguer grâce aux touches directionnelles. Pour valider une action, positionnez-vous sur <Select> et pressez la touche [enter], pour changer une option ([N] pour non,[M] pour module,[*] pour yes) utilisez la touche [espace]. 5.1 Customiser le nom du noyau :Pour modifier le nom de votre noyau, il vous suffit d'éditer le fichier /usr/src/linux/Makefile, qui ressemble à ceci : VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 14 EXTRAVERSION = -DBZ Votre noyau s'appelle en fait Linux-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) (Linux-2.6.14-DBZ chez moi). Si vous souhaitez disposer d'un noyau 5.4.6-BigBoss avant tout le monde, c'est le moment d'en profiter. Pour cela, il suffit de modifier /usr/src/linux/Makefile comme suite : VERSION = 5 PATCHLEVEL = 4 SUBLEVEL = 6 EXTRAVERSION = -BigBoss Je vous conseille, cependant, de ne modifier que la variable $(EXTRAVERSION). Notez enfin, qu'après compilation, vos modules s'installent dans /lib/modules/$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) (/lib/modules/2.6.14-DBZ chez moi). 5.2 Processor Type and featuresL'option « Subarchitecture Type » permet d'accéder à un sous-menu, pour indiquer le type de machine pour l'architecture du processeur, pour lequel le noyau doit être défini. Pour la plupart des machines basées sur des processeurs x86 ou x86-64 d'AMD, le type d'architecture utilisé est « PC-Compatible ». L'option « Processor family » vous permet de spécifier le type de processeur sur lequel le noyau fonctionnera. L'option « Preemptible Kernel » permet d'autoriser le multitâche préemptif au sein même des appels systèmes, à activer pour les PC Desktop. 5.3 Device DriversCette partie sert à gérer les périphériques. C'est notamment dans « Sound » que vous pourrez mettre le driver de votre carte son en module. Les drivers ALSA seront choisis de préférence en activant l'option « Advanced Linux Sound Architecture ». Cependant, l'interface de programmation des drivers OSS étant très utilisée, on veillera à activer les options de compatibilité « OSS Mixer API », « OSS PCM (digital audio) API », et « OSS Sequencer API ». 5.4 File systemsAssurez-vous que le système de fichier utilisé par votre partition « / » est bien compilé en dur (option Yes). 6. makeComme annoncé dans l'introduction, le make sert à générer un exécutable, pour ce faire il suit les indications contenues dans le .config. Rappelons que la compilation est une traduction, au même titre que le passage de l'anglais au français. On passe d'un fichier ascii, contenant du code source C à un fichier binaire (contenant des 0 et des 1) appelé exécutable. Pour la plus part des logiciels, la commande make suffit à lancer la compilation, pour le noyau aussi, alors tapez :
# cd /usr/src/linux/ # make 7. make installRien de bien compliqué ici non plus, puisqu'il s'agit d'installer le noyau et les modules. On commence par le noyau :
# cd /usr/src/linux/ # cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.12.4 # cp System.map /boot/System.map-2.6.12.4 Le 2.6.12.4 c'est parce que j'installe un noyau 2.6.12.4, mais le nom n'a pas d'importance, évitez néanmoins de les appeler vmlinuz ou System.map tout court. A ce stade votre noyau est installé, mais pour être totalement en règle avec la syntaxe Linux, exécutez également les commandes suivantes :
# cd /boot # mv vmlinuz vmlinuz.old # ln -sf /boot/vmlinuz-2.6.12.4 vmlinuz # rm System.map # ln -s System.map-2.6.12.4 System.map Il ne vous reste plus qu'à installer les modules :
# cd /usr/src/linux/ # make modules_install Si votre distribution utilise un disque ram initial (initial ramdisk = initrd) pour démarrer, je pense à Mandriva, Fedora et Debian tapez également : # mkinitrd -o /boot/initrd-2.6.14.4 2.6.14.4 Les « 2.6.14.4 » c'est parce que mon noyau s'appelle ainsi, adaptez à ce qu'il y a chez vous. 8. Mise à jour du chargeur d'OSMaintenant que votre noyau est installé il vous reste à mettre à jour votre chargeur d'OS, il peut s'agir de lilo ou grub. 8.1 Si vous utilisez LiloEditez votre fichier /etc/lilo.conf, focalisez sur la zone qui démarre Linux (label=linux), chez moi elle ressemble à ce qui suit, il peut y avoir quelques variations chez vous, cela n'a aucune importance : image = /boot/vmlinuz root = /dev/hda4 label = Linux vga = 773 read-only Vous devez la dédoubler et modifier chacun des deux blocs : # Ancien noyau : image = /boot/vmlinuz.old root = /dev/hda4 label = mylinux-old vga = 773 read-only # Nouveau noyau : image = /boot/vmlinuz root = /dev/hda4 label = Linux vga = 773 read-only Le reste doit rester inchangé. Si vous utilisez une distribution avec initrd, votre /etc/lilo.conf ressemblera plutôt à ceci : image=/boot/vmlinuz label=linux root=/dev/hdc6 initrd=/boot/initrd.img append="quiet devfs=mount" vga=788 read-only Vous devez la dédoubler et modifier chacun des deux blocs : # Ancien noyau : image=/boot/vmlinuz.old label = mylinux-old root=/dev/hdc6 initrd=/boot/initrd.img append="quiet devfs=mount" vga=788 read-only # Nouveau noyau image=/boot/vmlinuz label=Linux root=/dev/hdc6 initrd=/boot/initrd-2.6.12.4 append="quiet devfs=mount" vga=788 read-only Le reste doit demeurer inchangé. Quand vous êtes satisfait, validez vos changements en tapant : /sbin/lilo -v 8.2 Si vous utilisez GrubPour grub c'est le fichier /boot/grub/menu.lst, qu'il faut éditer, la section linux (title Linux) ressemble à : title Linux root (hd0,3) kernel /boot/vmlinuz root=/dev/hda4 vga=773 Vous devez la dédoubler et modifier chacun des deux blocs : # Ancien noyau : title mylinux-old root (hd0,3) kernel /boot/vmlinuz.old root=/dev/hda4 vga=773 # Nouveau noyau title Linux root (hd0,3) kernel /boot/vmlinuz root=/dev/hda4 vga=773 Le reste doit rester inchangé. Si vous utilisez une distribution avec initrd, votre /boot/grub/menu.lst ressemblera plutôt à ceci : title Linux kernel (hd0,5)/boot/vmlinuz root=/dev/hdc6 quiet devfs=mount vga=788 initrd (hd0,5)/boot/initrd.img Vous devez la dédoubler et modifier chacun des deux blocs : # Ancien noyau : title mylinux-old kernel (hd0,5)/boot/vmlinuz.old root=/dev/hdc6 quiet devfs=mount vga=788 initrd (hd0,5)/boot/initrd.img # Nouveau noyau title Linux kernel (hd0,5)/boot/vmlinuz root=/dev/hdc6 quiet devfs=mount vga=788 initrd (hd0,5)/boot/initrd-2.6.12.4 9. On redémarreVoilà vous pouvez redémarrer, au boot vous choisirez Linux, en cas de difficultés vous pourrez toujours revenir à l'ancienne version en choisissant mylinux-old et recommencer plus consciencieusement. --Message édité par TrustRobot le 20-05-2005 à 16:04:02-- |
| Page : [1] |
Forum » Documentation Linux » Thème I (noyau 2.6.x) : Compilation facile du noyau |
Forum modéré par : Jul |
| Même auteur |
|
Score ( voter ) : ![]() ![]()
|
|
|
|
|
- Petit scarabée : 0 pastille, moins de 100 messages
- Scarabée : 0 pastille, plus de 100 messages
- Hobbit : 1 pastille, plus de 1000 messages
- Naboo : 2 pastilles, plus de 2000 messages
- Elfe : 3 pastilles, plus de 3000 messages
- Jedi : 4 pastilles, plus de 4000 messages
- Maître Jedi : 5 pastilles, plus de 5000 messages
