Vous n'êtes pas identifié.
Transféré sur le wiki : http://wiki.swisslinux.org/fr/documenta … ompilation
-- Calimarno, 9 août 2007
Compilation du noyau 2.6.12 sous Debian avec les patchs "CK et Bootsplash"
Il me semble que je dois faire un mini howto concernant la compilation du kernel avec support bootsplash et ajout de patch. Alors voilà je débute en espérant que ce petit howto peut aider a faire tourné un noyau 2.6.12.
Je signale que je suis sous Debian SID, certains paquets ne sont pas disponible sur la stable/testing alors il faut voir sur www.apt-get.org ou www.backports.org.
On commence par installer les outils nécessaires:
# apt-get install build-essential fakeroot kernel-package modutils module-init-tools libncurses5-dev cramfsprogs initrd-tools
On télécharge le noyau:
$ mkdir $HOME/src && cd $HOME/src/ && wget http://www.kernel.org/pub/linux/kernel/ … 12.tar.bz2
On dézippe le noyau, et on crée un lien symbolique:
$ tar xvfj linux-2.6.12.tar.bz2 1>/dev/null && ln -s linux-2.6.12 linux
De mon coté j'utilise le patch CK et le bootsplash:
$ wget http://ck.kolivas.org/patches/2.6/2.6.1 … 12-ck2.bz2 && bunzip2 patch-2.6.12-ck2.bz2 && wget http://www.bootsplash.de/files/bootspla … .6.12.diff && cd linux
On regarde si aucune erreur n'est détecté quand on simule l'application des patchs:
$ patch -p1 --dry-run -s < ../patch-2.6.12-ck2 && patch -p1 --dry-run -s < ../bootsplash-3.1.6-2.6.12.diff
Si on a aucun message d'erreur alors on patch:
$ 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
Maintenant que le kernel est patché je vous laisse le temps de configurer vos modules selon vos besoins/matériels (Prochainement je vais mettre le descriptif des options du noyau, voici mon fichier .config qui est destiné à un: P4 2Ghz, 1G de RAM, Carte mère Asus P4B266-SE avec chipset Intel 845D, ATX, 2 HDD IDE, 1 DVD IDE, 1 Graveur IDE, Imprimante et Scanner USB, Ipod 4°Génération 40GB, Carte réseau TE100-PCIW chip RTL-8139C. Ceci dit mon fichier .config peut fonctionné sans aucun prob pour une config identique à la mienne). Je tiens juste a signalé pour que le bootsplash fonctionne vous devez avoir les options suivantes au niveau de votre noyau:
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
Une fois la config de votre noyau fini, alors on passe a la compilation, je ne vais pas expliqué les détails de ses commandes, le man existe pour ça. Je suppose que vous êtes toujours dans ~/src/linux, alors on débute la compilation:
$ make-kpkg clean
$ make-kpkg --rootcmd fakeroot --append-to-version=.X --revision=2.6.12 kernel-image
Il faut remplacé X par un chiffre [0 à 9].
Pour ceux qui utilise initrd:
make-kpkg --rootcmd fakeroot --initrd --append-to-version=.X --revision=2.6.12 kernel-image
Une fois la compilation fini, alors on passe dans le répertoire ~/src
$ cd ~/src && su
# dpkg -i kernel-image-2.6.12-ck2.X_2.6.12_i386.deb
Ceci va vous poser quelques questions: choisissez les choix par défaut !
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.
Et je vous conseil de réexécuté
lilo -v
Jusqu'à présent tout est bien, ce qu'il nous reste c'est de mettre en place le bootsplash. On ajoute la ligne suivante dans notre /etc/apt/sources.list
deb http://www.bootsplash.de/files/debian unstable main
Et ensuite:
# 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:
1. Choix du théme? Réponse: On laisse par defaut
2. Sélection d'une image initrd? Réponse: none
3. Séléction de la résolution? Réponse:1024x768 dans mon cas
4. Séléction du bootloader? Réponse: lilo dans mon cas
5. Il va vous dire ce que vous devriez faire/ajouter dans votre fichier de configuration du bootloader (Lilo/Grub).
Normalement après tout ça le bootsplash est mit en place avec le thème par défaut, il nous reste que modifié le lilo.conf, mais essayons de mettre un autre thème que celui offert par défaut.
# cd /etc/bootsplash/themes && wget http://www.bootsplash.de/files/themes/T … st.tar.bz2 && tar xjvf Theme-Debian-Mist.tar.bz2
# rm -f current
# ln -sf /etc/bootsplash/themes/Debian-Mist/ current
Il nous 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 800x600. Le thème Debian-Mist supporte que 800x600 et 1024x768 alors:
Pour les 1027x768
# splash -s -f /etc/bootsplash/themes/current/config/bootsplash-1024x768.cfg > /boot/initrd.splash
Pour les 800x600:
# 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:
Mode Silent:
Voilà à quoi ressemble ma console:
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
Dernière modification par calimarno (09 Aug 2007 16:09:24)
Hors ligne
Merci pour ton tuto, je m'en suis servit pour installer tout cela sur ma machine :cheesy:
Par contre pour compiler le noyaux j'ai ajouter l'option --initrd
make-kpkg --rootcmd fakeroot --initrd --append-to-version=.X --revision=2.6.9 kernel-image
sinon j'avais pas d'initrd et donc impossible de le patcher
Merci beaucoup
Hors ligne
Merci, normalement les paquetages "cramfsprogs initrd-tools" installer tout au début du tuto sont responsables du fichier intrd donc pas besoin d'ajouter la commande --initrd je colle ici la nécessité du package initrd-tools:
Description: tools to create initrd image for prepackaged Linux kernel. This package contains tools needed to generate an initrd image suitable for booting a prepackaged Linux kernel image (as shipped with the Debian main distribution). It does not cater for other uses of initrd at the moment.
Je l'ajoute dans le tuto pour ceux qui utilise un initrd, de mon coté je m'en sert que pour le bootsplash pas plus.
Hors ligne
Par contre j'ai un petit soucis car cela ne marche pas chez moi :cry:
J'utilise un initrd (je suis obligé sinon ca ne boot pas).
Par rapport à ton tuto, si j'ai un initrd, je n'ai pas à faire l'étape :
Pour les 800x600: # splash -s -f /etc/bootsplash/themes/current/config/bootsplash-800x600.cfg > /boot/initrd.splash
puisque j'ai déjà un initrd.
Donc ce que j'ai fait c'est un :
dpkg-reconfigure bootsplash
La il me demande de séléctionner le initrd et la résolution.
Au reboot, le bootsplash ne marche pas, par contre j'ai la jolie console
Hors ligne
Par contre j'ai un petit soucis car cela ne marche pas chez moi :cry:
J'utilise un initrd (je suis obligé sinon ca ne boot pas).
Par rapport à ton tuto, si j'ai un initrd, je n'ai pas à faire l'étape :
Code:
Pour les 800x600: # splash -s -f /etc/bootsplash/themes/current/config/bootsplash-800x600.cfg > /boot/initrd.splashpuisque j'ai déjà un initrd.
Donc ce que j'ai fait c'est un :Code:
dpkg-reconfigure bootsplashLa il me demande de séléctionner le initrd et la résolution.
Au reboot, le bootsplash ne marche pas, par contre j'ai la jolie console
Ce que je sais c'est que si tu fais un dpkg-reconfigure bootsplash, il te remet leur thème par default. Sinon est ce que t'as compilé ton kernel avec les bonnes options? Est ce que tu utilises un autre thème? Puis dans ton cas (800x600) la valeur vga doit être à 788 au lieu de 791.
Hors ligne
Ce que je sais c'est que si tu fais un dpkg-reconfigure bootsplash, il te remet leur thème par default. Sinon est ce que t'as compilé ton kernel avec les bonnes options? Est ce que tu utilises un autre thème? Puis dans ton cas (800x600) la valeur vga doit être à 788 au lieu de 791.
J'ai bien rechangé le theme après avoir fait le reconfigure et j'ai bien mis dans grub 788.
Par contre, j'ai fait cela super tard hier et je n'ai pas plus approfondit que cela.
Je vais refaire quelques tests et je te tiens informé de l'évolution.
Hors ligne
tout va bien jusqu'à la compilation, et là il arrête avec un
drivers/built-in.o(.text+0xc1f2): In function `splash_getraw': : undefined reference to `con2fb_map' drivers/built-in.o(.text+0xca37): In function `splash_verbose': : undefined reference to `con2fb_map' drivers/built-in.o(.text+0xcf2d): In function `splash_status': : undefined reference to `con2fb_map' drivers/built-in.o(.text+0xd06a): In function `splash_read_proc': : undefined reference to `con2fb_map' drivers/built-in.o(.text+0xd24b): In function `splash_write_proc': : undefined reference to `con2fb_map' make[1]: *** [.tmp_vmlinux1] Erreur 1 make[1]: Leaving directory `/root/src/linux-2.6.10' make: *** [stamp-build] Erreur 2
A voir c'est bootsplash qui est en cause, vu que si je n'applique pas le patch bootsplash ça compile jusqu'au bout...
Je devrais faire quoi ?
Hors ligne
Essaye le patch officiel qui est maintenant disponible: http://www.bootsplash.de/files/bootspla … .6.10.diff
Sinon tu compiles quoi comme version de kernel et tu as appliqué quoi comme autres patchs ?
je vais faire la maj des liens dans le tuto
Hors ligne
Essaye avec le patch officiel, perso j'ai compilé avec le patch que j'avais mit avant à disposition de tout le monde. Sinon si tu utilises le patch CK, ils sont en CK5 si t'as envie de mettre vraiment tout à jour.
De mon coté je suis avec le 2.6.10/Ck1/patch non officiel bootsplash
Hors ligne
Très bien fait ton tuto :cheesy:
Hors ligne
Question bête, le patch ck me semble plutot non-officiel, du coup je me demande la fiablité de la chose ainsi que son réel intérêt?
Edit : waver j'ai mis les paquetage que tu as signalé, sans l'option initrd.. j'ai droits à un beau kernel panic sur la ligne VFS comme quoi il ne peut pas monter le root.
Hors ligne
C'est que ton filesystem est en module et non en dur. Si tu veux, j'ai le config-2.6.7 de Mepis online, je l'utilise toujours comme une base). Les filesystem sont en durs, donc pas besoin d'initrd. Marche très bien avec le tuto de Waver.
Hors ligne
Ok, merci, je ne savais pas..
j'ai jeté un oeil à ce config, mais il a tellement de différence avec le mien que je vais pas me baser la dessus..
Mais je vais rester en initrd pour le moment, car j'ai un autre prob bizarre.. c'est la perte de framebuffer, bien que je suis sûr d'avoir tout coché correctement.
Je me suis basé sur le kernel-source 2.6.10 de debian.. sûrement la le problème..
EDIT : je confirme, le kernel-source 2.6.10 chez debian est foireux! maintenant je n'ai plus de problème..
Hors ligne
Au faite pour le patch ck il y a une nouvelle version ck5 je crois. Le tuto a été fait avant la sortie officielle du ck1
Sinon normalement il y a aucun prob, tu voir sur mon site perso, pas mal de monde la testé et sa marche.
Hors ligne
J'ai exactement le même problème que frooze.. je n'ai que Tux qui s'affiche dans la console.. et cela, en mode silent.. en 1280x1024 / 16 soit : append="splash=silent" vga=794
dans le dmesg :
vesafb: framebuffer at 0xe8000000, mapped to 0xe0880000, using 5120k, total 131072k vesafb: mode is 1280x1024x16, linelength=2560, pages=1 vesafb: protected mode interface info at c000:ea60 vesafb: scrolling: redraw vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0 bootsplash: scanning last 2MB of initrd for signature bootsplash 3.1.4-2004/02/19: looking for picture.... silentjpeg size 60860 bytes, found (1280x1024, 89373 bytes, v3). Console: switching to colour frame buffer device 160x64 fb0: VESA VGA frame buffer device
A croire que tout baigne..
beuh?!? :-)
EDIT : bon, sur bootsplash.de c'est indiqué qu'il ne faut pas activer :
Processor type and features ---> [ ] Use register arguments (EXPERIMENTAL)
Je reteste ainsi!
EDIT2 : Echec, ca ne marche pas plus
Hors ligne
Waver > en fait il y a une petite faute dans ton tuto, ce qui provoque l'absence de verbose avec bootsplah sous grub
Tu as écris :
kernel (hd0,0)/vmlinuz append="splash=silent" vga=791 root=/dev/hda1
Mais il faut écrire :
kernel (hd0,0)/vmlinuz splash=silent vga=791 root=/dev/hda1
Et c'est tout bon..
Hors ligne
J'avais oublier de faire la modification dans ce tuto, celui dans mon page perso était corrigé. Dsl
Hors ligne
Pas de soucis, j'aime bien me casser la tête la dessus..
j'ai fais un peu le tour de ton site.. t'as de bonnes astuces instructives.. bravo pour tout ces tuto!
PS : y a le ck6 maintenant..
Hors ligne
Merci [GO]Skywalker13.
Je vais essayé de mettre en place un tuto concernant grsec (si j'arrive) il n'y a presque pas de tuto complet le concernant.
Hors ligne
Merci pour cet excellent tutoriel :cheesy:
Il m'a permis d'installer pour la première fois un bootsplash et une jolie console en une soirée
Cependant, j'aimerai ajouter un détail manquant au tutoriel. La création de l'intrd destiné au chargement du bootsplash est faite par la commande suivante :
splash -s -f /etc/bootsplash/themes/current/config/bootsplash-1024x768.cfg > /boot/initrd.splash
Par ailleurs, pour ceux disposant déjà d'un intrd, un problème se pose. En effet, le nouvel initrd ne contiendra uniquement les info pour mettre en place le bootsplash, et on se tapera un joli "Kernel panic" :evil:
Il faut donc ajouter les informations à l'ancien initrd à l'aide de la commande suivante :
splash -s -f /etc/bootsplash/themes/current/config/bootsplash-1024x768.cfg >> /boot/initrd.img-2.6.10-ck1.1
Voilà, en espérant avoir aidé
Kal
EDIT: A chaque nouvelle install de mon système, ma debian me créé automatiquement un initrd, nécessaire pour le lancement de ma machine. Je me demande si c'est possible de dire pendant l' install de ne pas faire d'initrd :shock:
Je suis actuellement en train de recompiler mon Kernel pour le support des fichier ext3 et ext2 en dur afin de supprimer le initrd d'origine, mais je me tape un kernel panic... :frown:
Hors ligne
Si çà peut te rassurer ce n'est pas ext2 ou ext3 en dur qui pourrait provoquer le kernel panic. Il est d'ailleurs fortement recommandé de mettre les formats de fichier en dur dans le kernel sous peine justement de se payer un joli kernel panic au boot.
Tout simplement parce que les modules sont en principe chargés après le montage des partitions.
Hors ligne
Justement j'ai mis ext2 et ext3 en dur, sans le support de devfs pour éviter des problèmes. J'ai aussi ajouté en dur le support de mon chipset IDE (nvidia nforce2) et ca marche toujours pas Kernel pannic, unable to mount blablabla :evil:
Hors ligne