Sujet : Compilation du noyau 2.6.12 sous Debian avec les patchs “CK” et “Bootsplash”.
Niveau : Avancé
Distribution : Debian SID
Auteur : Compilé par Calimarno à partir des messages de WaVeR et phoenix818.
Lisez toute cette page avant de faire quoi que ce soit! N'oubliez pas de sauvegarder vos données, tant sous Windows que sous une version de Gnu/Linux.
Il faut prévoir assez pour / de manière à ne pas être géné quand vous installez/décompressez les sources du noyau.
Commencez par installer les outils nécessaires :
# apt-get install build-essential fakeroot kernel-package modutils module-init-tools libncurses5-dev cramfsprogs initrd-tools
Il existe deux méthodes pour se procurer les sources du noyau :
$ mkdir $HOME/src && cd $HOME/src/ && wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.12.tar.bz2
$ tar xvfj linux-2.6.12.tar.bz2 1>/dev/null && ln -s linux-2.6.12 linux
# apt-get install kernel-source-2.6.12
(NB : remplacez le numéro de version par celui désiré.)
$ su Password: # cd /usr/src # tar jxvf kernel-source-2.X.X.tar.bz2
# ln -s kernel-source-2.6.12 linux
Si vous utilisez cette méthode, la plupart des commandes décrites ci-après nécessiteront les droits superutilisateur puisque les sources ne se trouvent pas dans votre répertoire utilisateur.
$ wget http://ck.kolivas.org/patches/2.6/2.6.12/2.6.12-ck2/patch-2.6.12-ck2.bz2 && bunzip2 patch-2.6.12-ck2.bz2 && wget http://www.bootsplash.de/files/bootsplash-3.1.6-2.6.12.diff && cd linux
$ patch -p1 --dry-run -s < ../patch-2.6.12-ck2 && patch -p1 --dry-run -s < ../bootsplash-3.1.6-2.6.12.diff
$ patch -p1 -s < ../patch-2.6.12-ck2 && patch -p1 -s < ../bootsplash-3.1.6-2.6.12.diff
(Je fais un petit contrôle stupide ^^:
$ cat Makefile |grep -- -ck EXTRAVERSION =-ck2
$ make menuconfig
Si vous désirez un paramétrage graphique du kernel, installez libsoqt-dev
# apt-get install libsoqt-dev
et exécutez
# make xconfig
au lieu de make menuconfig
.
Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers Processor type and features ---> [*] MTRR (Memory Type Range Register) support Device Drivers ---> Block devices ---> <*> Loopback device support <*> RAM disk support (4096) Default RAM disk size [*] Initial RAM disk (initrd) support Graphics support ---> [*] Support for frame buffer devices [*] VESA VGA graphics support Console display driver support ---> [*] Video mode selection support <*> Framebuffer Console support Bootsplash configuration ---> [*] Bootup splash screen
Et absolument décocher:
Device Drivers ---> Graphics support ---> < > nVidia Riva support Logo configuration ---> [ ] Bootup logo
Cette étape nécessite du temps. Armez-vous de patience!
$ make-kpkg clean
$ make-kpkg --rootcmd fakeroot --append-to-version=.X --revision=2.6.12 kernel-image
Il faut remplacer X par un chiffre de 0 à 9.
Pour ceux qui utilisent initrd
:
$ make-kpkg --rootcmd fakeroot --initrd --append-to-version=.X --revision=2.6.12 kernel-image
# make-kpkg --revision=Release1.0 kernel_image
L'option –revision=
est un moyen de repère pour vous tout comme debian. Mettez par exemple la version, voire carrément la date à laquelle vous avez compilez votre noyau.
!! Attention: il faut y mettre un nom de version, et un numéro de version, sinon ce n'est pas accepté!!
Une fois la compilation finie, passez dans le répertoire src
(?) et installez le paquet contenant l'image du noyau.
$ cd .. && su # dpkg -i kernel-image-2.6.12-ck2.X_2.6.12_i386.deb
Choisissez les choix par défaut aux questions qui vous seront posées.
Voilà ce qu'il a fait pendant l'installation du kernel-image-2.6.12-ck2.X_2.6.12_i386.deb:
1. installé le fichier /boot/vmlinuz-2.6.12-ck2.X (c'est le noyau),
2. installé le fichier /boot/System.map-2.6.12-ck2.X (c'est la System map),
3. installé le fichier /boot/config-2.6.12-ck2.X (c'est le fichier de configuration du noyau),
4. installé les modules dans le répertoire /lib/modules/2.6.12-ck2.X/,
5. modifié le lien symbolique /vmlinuz pour qu'il pointe sur le noyau que vous venez d'installer,
6. modifié le lien symbolique /vmlinuz.old pour qu'il pointe sur le noyau actuel,
7. exécuté lilo.
On vous proposera de faire une disquette de boot en cas de gros soucis…. petit conseil: si vous êtes soucieux, acceptez.. et si vous l'êtes pas, acceptez quand même.. Personnellement, jamais eu de problème, mais…
Et je vous conseille de Réexécutez
<code>lilo -v</code>
Jusqu'à présent tout est bien, ce qu'il nous reste c'est de Pour mettre en place le bootsplash, ajoutez la ligne suivante dans le fichier /etc/apt/sources.list
deb http://www.bootsplash.de/files/debian unstable main
Puis, faites :
# apt-get update # apt-get install bootsplash sysv-rc-bootsplash
Le paquet sysv-rc-bootsplash va patcher les scripts de boot /etc/rc?.d/ , pour que les animations fonctionnent. Bootsplash va installer les utilitaires et un thème par défaut dans /etc/bootsplash/themes/
Pendant l'installation vous aurrez droit à ses questions:
Normalement après tout ça le bootsplash est mis en place avec le thème par défaut, il ne reste qu'à modifier le fichier lilo.conf
.
Pour mettre un autre thème que celui offert par défaut :
# cd /etc/bootsplash/themes && wget http://www.bootsplash.de/files/themes/Theme-Debian-Mist.tar.bz2 && tar xjvf Theme-Debian-Mist.tar.bz2 # rm -f current # ln -sf /etc/bootsplash/themes/Debian-Mist/ current
Il ne reste plus qu'à créer un initrd
qui chargera le bootsplash en mémoire en même temps que le noyau. La commande à taper dépend de la résolution d'écran que peux supporter votre frameBuffer. Si vous l'ignorez, je vous conseille 800×600. Le thème Debian-Mist ne supporte que le 800×600 et le 1024×768 :
# splash -s -f /etc/bootsplash/themes/current/config/bootsplash-1024x768.cfg > /boot/initrd.splash
# splash -s -f /etc/bootsplash/themes/current/config/bootsplash-800x600.cfg > /boot/initrd.splash
Il nous nous reste que configurer lilo ou grub, la configuration du chargeur de boot est simple, il suffit de lui indiquer l'initrd à charger ainsi que la résolution à laquelle il démarrera le noyau. Pour spécifier une résolution à un chargeur d'OS, le plus simple est de renseigner la variable vga avec le code de la résolution. Parmi les codes possibles, on a:
vga=788 - pour 800 x 600 - 16 bits vga=791 - pour 1024 x 768 - 16 bits vga=794 - pour 1280 x 1024 - 16 bits vga=834 - pour 1400 x 1050 - 16 bit
La modification concernant le bootsplash dans lilo.conf est en gras:
image=/vmlinuz label=Linux vga=791 initrd=/boot/initrd.splash # append="splash=silent" append="splash=verbose" read-only # restricted # alias=1
Dans mon cas j'ai choisis le mode verbose ce qui me donne une image dans le fond et mes messages de démarrage. Il faut relancé la commande
lilo -v
pour voir si tout est Ok.
Mode Verbose:
http://users.linuxbourg.ch/waver/tmp/image/verbose.png
Mode Silent:
http://users.linuxbourg.ch/waver/tmp/image/silent.png
Voilà à quoi ressemble ma console:
http://users.linuxbourg.ch/waver/tmp/image/console-thumb.png
Pour ceux qui utilise grub je suppose que leur fichier doit ressemblé a ceci:
title Linux root (hd0,0) kernel (hd0,0)/vmlinuz splash=silent vga=791 root=/dev/hda1 initrd /boot/initrd.splash
Ben voilà j'arrive à la fin, Il ne vous reste plus qu'à redémarrer votre machine :
# reboot
Si tout se passe bien, tant mieux… sinon, rebootez sous l'ancienne version du noyau, et faites:
# apt-get remove kernel-image-2.X.Xperso
OU
# apt-get remove –purge kernel-image-2.x.Xperso ¦¦ Permet de tout virer, fichier de config compris