Aller au contenu

[Debian GNU/Linux] Recompiler son propre noyau


Messages recommandés

  • Réponses 209
  • Créé
  • Dernière réponse
normalement, je pense que le stop des services fait un killall en standard ou alors il retrouve les pid dans le fichier services.pid, mais chez THC çà n'a pas l'air de fonctionner. Peut-être un problème de config.

C'est pas que ça ne marche pas, c'est qu'il n'a pas essayé...

(et les stop des services ne font pas que des killall...

En général, ils stoppent les services qu'ils ont lancé et ils effectuent d'autres tests

Lien vers le commentaire
Partager sur d’autres sites

J'aimerai avoir 2 ou 3 précisions sur qqs passages que je n'ai pas totalement compris:

1/ Pourquoi faire "rm /usr/src/linux" avant de créer le lien symbolique? Je suppose que cette commande s'adresse à ceux qui ont déjà compiler leur noyau?

2/ En cas de problème pour rebooter sous l'ancien noyau il suffit d'aller ds lilo.conf ou grub.conf, et de remplacer le noyau qui pointe sur vmlinuz par celui qui pointe sur vmzlinuz.older, c'est tout?

3/Après avoir fini de compiler, il faut toujours installer l'image du noyau compilé, que l'on est est compilé des kernel-source de chez kernel.org ou des kernels-sources de sa distribution, c'est ça? Au vu de la commande:

dpkg --install ../kernel-image...<version-du-noyau>.deb

J'en déduit que l'image créé lors d'une compil sur une Debian est tjs un .deb?

Que signifie les ".." avant "/kernel-image et les "..." après? Je suppose que l'install de l'image créé se fait autaumatiquement ds le bon répertoire, mais quel est ce répertoire?

J'espere ne pas trop avoir poé de questions, sinon bravo pour le topic, qui m'a justement permis de ne pas m'en poser plus...

:keskidit:

Lien vers le commentaire
Partager sur d’autres sites

1/ Pourquoi faire "rm /usr/src/linux" avant de créer le lien symbolique? Je suppose que cette commande s'adresse à ceux qui ont déjà compiler leur noyau?

Parce qui ce lien existe deja, la creation du lien va echouer et un newbie ne parlant pas anglais ne comprendra pas, alors qu'en faisant un rm, c'est nickel§. Vu que ce n'est pas un rm -rf, au pire ca ne virera pas les sources si qq'un les a mise dans un rep linux ( ce qui est crado ).

2/ En cas de problème pour rebooter sous l'ancien noyau il suffit d'aller ds lilo.conf ou grub.conf, et de remplacer le noyau qui pointe sur vmlinuz par celui qui pointe sur vmzlinuz.older, c'est tout?

C'est tout !

3/Après avoir fini de compiler, il faut toujours installer l'image du noyau compilé, que l'on est est compilé des kernel-source de chez kernel.org ou des kernels-sources de sa distribution, c'est ça? Au vu de la commande:

Oui, le noyau compile est un package, il suffit de l'installer tout betement. Ceci etant dit, il est genere proprement, c'est a dire dans ./arch/i386/boot/bzImage et le System.map est a la racine. le dpkg copie donc ces fichiers ainsi qu'une copie du .config dans /boot.

en déduit que l'image créé lors d'une compil sur une Debian est tjs un .deb?

Tu l'as explicitement demande par make-kpkg. tu peux aussi faire make, make modules_install etc... puis copier a la main tes fichiers, mais le make-kpkg fait tout pour toi, et il genere aussi les images du noyau la ou elle doivent etre. C'est une sorte de script qui regoupe la methode classique si tu preferes... ( en gros ...)

Que signifie les ".." avant "/kernel-image et les "..." après? Je suppose que l'install de l'image créé se fait autaumatiquement ds le bon répertoire, mais quel est ce répertoire?

C'est la base des systemes de fichiers ca. ".." designe le repertoire poarent. La, c'est donc genere dans le repertoire parent, soit /usr/src .

J'espere ne pas trop avoir poé de questions, sinon bravo pour le topic, qui m'a justement permis de ne pas m'en poser plus...

merci, mais ca voudrait donc dire qu'il pourrait etre plus clair, va falloir que je trouve le temps de le modifier.

Lien vers le commentaire
Partager sur d’autres sites

Merci pour tes précisions....

Là je viens d'essayer mais sans succès:

j'ai fait:

mount /cdrom && dpkg --install /cdom/kernel-source-2.6.7_2.6.7-3_all.deb

J'ai également fait dpkg -l|grep kernel-source pour constater que celui-ci se trouvait bien désormais sur mon ordi (j'ai fait de même pour gcc, libncurses5-dev, binutils, modutils, module-init-tools)

J'ai créer un lien symbolique:

ln -s /usr/src/linux-2.6.7 /usr/src/linux

J'ai vérifier avec la commande ls -l et je vois bien: linux --> /usr/src/linux-2.6.7

Là où ça se gâte c'est quand je fais, cd usr/src/linux, il apparait le message "aucun fichier ou repertoire de ce type", j'ai la même réponse en faisant: cd /usr/src/linux-2.6.7.

Je peux seullement me mettre dans cd /usr/src et si je fais "make menuconfig" j'obtiens le message: "make*** Pas de regle pour fabriquer la cible menuconfig .Arrt".

C'est où que j'ai foiré?

Lien vers le commentaire
Partager sur d’autres sites

J'ai créer un lien symbolique:

ln -s /usr/src/linux-2.6.7 /usr/src/linux

J'ai vérifier avec la commande ls -l et je vois bien: linux --> /usr/src/linux-2.6.7

Là où ça se gâte c'est quand je fais, cd usr/src/linux, il apparait le message "aucun fichier ou repertoire de ce type", j'ai la même réponse en faisant: cd /usr/src/linux-2.6.7.

Je peux seullement me mettre dans cd /usr/src et si je fais "make menuconfig" j'obtiens le message: "make*** Pas de regle pour fabriquer la cible menuconfig .Arrt".

C'est où que j'ai foiré?

Quelque chose me dit que le répertoire /usr/src/linux-2.6.7 n'existe pas...

vérifie ça (ls /usr/src et regarde ce qu'il y a)... et adapte en conséquence (le nom peut êtr un peu différent...)

Lien vers le commentaire
Partager sur d’autres sites

Quelque chose me dit que le répertoire /usr/src/linux-2.6.7 n'existe pas...

vérifie ça (ls /usr/src et regarde ce qu'il y a)... et adapte en conséquence (le nom peut êtr un peu différent...)

Je viens de faire ls /usr/src, et j'ai trois répertoires:

- un kernel-source-2.6.7.tar.gz2 (ce n'est pas le kernel-source que j'ai mis hier, le mien est un .deb, il doit s'agir d'un kernel-source qui était fourni avec le cd d'installation de ma Sarge)

- un Linux (celui-ci est censé être le mien, mais qd je fais cd /usr/src/linux on me dit que ce répertoire n'existe pas);

- un rpm (ça doit être le driver de ma carte ATI qu'il va falloir que je convertisse avec Alien)

Donc, le répertoire Linux existe bien mais je peux pas aller dessus :keskidit:

Lien vers le commentaire
Partager sur d’autres sites

Je viens de faire ls /usr/src, et j'ai trois répertoires:

- un kernel-source-2.6.7.tar.gz2 (ce n'est pas le kernel-source que j'ai mis hier, le mien est un .deb, il doit s'agir d'un kernel-source qui était fourni avec le cd d'installation de ma Sarge)

- un Linux (celui-ci est censé être le mien, mais qd je fais cd /usr/src/linux on me dit que ce répertoire n'existe pas);

- un rpm (ça doit être le driver de ma carte ATI qu'il va falloir que je convertisse avec Alien)

Donc, le répertoire Linux existe bien mais je peux pas aller dessus :keskidit:

Tu ne peux pas aller dans le répertoire linux, car c'es un lien qui pointe vers le répertoire linux-2.6.7 qui n'existe pas! (comme un raccourci sous windows)

Mais vu que tu as l'archive, tu vas pouvoir la décompresser, ce qui reviendra au même...

Donc tu vas dans /usr/src

puis "tar -xvjf kernel-source-2.6.7.tar.gz2"

cela va te créer un répertoire (linux-2.6.7 normalement, mais c'est pas sûr)

Et là, tu pourra utiliser le lien linux...

Lien vers le commentaire
Partager sur d’autres sites

Tu ne peux pas aller dans le répertoire linux, car c'es un lien qui pointe vers le répertoire linux-2.6.7 qui n'existe pas! (comme un raccourci sous windows)

Mais vu que tu as l'archive, tu vas pouvoir la décompresser, ce qui reviendra au même...

Donc tu vas dans /usr/src

puis "tar -xvjf kernel-source-2.6.7.tar.gz2"

cela va te créer un répertoire (linux-2.6.7 normalement, mais c'est pas sûr)

Et là, tu pourra utiliser le lien linux...

Oui, effectivement du coup je pense aussi faire comme ça (mais ça m'explique pas ce qu'il est advenu de mon .deb :keskidit: )

Lien vers le commentaire
Partager sur d’autres sites

K-Pax:/home/chris# apt-cache search kernel-source-2.6

kernel-patch-debian-2.6.5 - Debian patches to Linux 2.6.5

kernel-patch-debian-2.6.6 - Debian patches to Linux 2.6.6

kernel-patch-debian-2.6.7 - Debian patches to Linux 2.6.7

kernel-source-2.6.5 - Linux kernel source for version 2.6.5 with Debian patches

kernel-source-2.6.6 - Linux kernel source for version 2.6.6 with Debian patches

kernel-source-2.6.7 - Linux kernel source for version 2.6.7 with Debian patches

K-Pax:/home/chris# apt-get install kernel-source-2.6.7

Lecture des listes de paquets... Fait

Construction de l'arbre des dépendances... Fait

kernel-source-2.6.7 est déjà la plus récente version disponible.

0 mis à jour, 0 nouvellement installés, 0 à enlever et 216 non mis à jour.

K-Pax:/home/chris# ls /usr/src

kernel-source-2.6.7 kernel-source-2.6.7.tar.bz2 linux rpm

K-Pax:/home/chris# cd /usr/src

K-Pax:/usr/src# tar jxf kernel-source-2.6.7.tar.bz2

K-Pax:/usr/src# rm /usr/src/linux

K-Pax:/usr/src# ln -s /usr/src/kernel-source-2.6.7 /usr/src/linux

K-Pax:/usr/src# ln -ls

ln: option invalide -- l

Pour en savoir davantage, faites: « ln --help ».

K-Pax:/usr/src# ls -l

total 33556

drwxr-xr-x 18 root root 4096 2004-07-08 08:12 kernel-source-2.6.7

-rw-r--r-- 1 root root 34309196 2004-07-08 08:17 kernel-source-2.6.7.tar.bz2

lrwxrwxrwx 1 root root 28 2004-07-23 14:06 linux -> /usr/src/kernel-source-2.6.7

drwxr-xr-x 7 root root 4096 2004-07-21 11:39 rpm

K-Pax:/usr/src# cd /usr/src/linux

K-Pax:/usr/src/linux# make menuconfig

HOSTCC scripts/basic/fixdep

/bin/sh: line 1: gcc: command not found

make[1]: *** [scripts/basic/fixdep] Erreur 127

make: *** [scripts_basic] Erreur 2

J'ai tout fait comme sur le tuto et ça ne marche pas :keskidit:

Lien vers le commentaire
Partager sur d’autres sites

S'il te plaît, regarde un peu les messages d'erreur :

gcc n'est pas installé...

(il va aussi te falloir gcc-devel, ncurses, ncurses-devel à ce que je me rapelle...)

Je met pas de carton jaune, mais c'était pas loin...

Autant pour moi :oops: j'étais pourtant persuadé de l'avoir:

K-Pax:/home/chris# dpkg -l|grep gcc

ii gcc-3.3-base 3.3.4-3 The GNU Compiler Collection (base package)

ii libgcc1 3.3.4-3 GCC support library

Lien vers le commentaire
Partager sur d’autres sites

Ayé j'ai compilé mon premier kernel :roule:

Pour faire l'install, dans la mesure où au moment de valider make-kpkg --revision=1.0 kernel-image, j'ai eu le message commande intouvable, j'ai finalement fait make, puis make modules_install, et enfin make install. Je voulais juste savoir, si pour installer l'image générée c'est tjs la même commande que celle mentionnée ds le tuto, à savoir: dpkg --install ../kernel-image...2.6.7.deb ?

Lien vers le commentaire
Partager sur d’autres sites

Ayé j'ai compilé mon premier kernel :mad2:

:roule:

Pour le reste, à mon avis, c'est une install standard que tu fais et non plus debian...

De plus, je n'aime pas trop le "make install", il ne sert pas à grand chose, et je pense qu'il vaut mieux le faire à la main (copier bzImage + modifier lilo.conf)

Lien vers le commentaire
Partager sur d’autres sites

Merci :mad2:

Par contre c'est normal que l'image créée n'apparait pas:

K-Pax:/home/chris# dpkg -l|grep kernel

ii iptables 1.2.9-10 Linux kernel 2.4+ iptables administration to

ii kcmlinuz 3.2.2-1 KDE Frontend for the Linux kernel configurat

ii kernel-image-2 2.4.26-2 Linux kernel image for version 2.4.26 on 386

ii kernel-source- 2.6.7-3 Linux kernel source for version 2.6.7 with D

ii linux-kernel-h 2.5.999-test7- Linux Kernel Headers for development

ii module-init-to 3.1-pre5-1 tools for managing Linux kernel modules

ii nfs-kernel-ser 1.0.6-3 Kernel NFS server support

ii pciutils 2.1.11-11 Linux PCI Utilities (for 2.*.* kernels)

K-Pax:/home/chris#

Là je viens de rebooter et je suis tjs sur le même noyau :roule:

Lien vers le commentaire
Partager sur d’autres sites

Sans vouloir passer pour quoique que ce soit, y compris un râleur, mais plutôt pour ma culture et que cet aprèm j'ai la flemme de chercher

j'ai toujours installé un noyau par :

cp arch/i386/boot/bzImage /boot/bzImage-x.x.x-machin

( avec x.x.x = 1.2.8 la première fois, ça nous rajeunit pas !! avec une Slack sur 62 disquettes )

vi /etc/lilo.conf ; lilo puis plus tard vi /boot/grub/menu.lst

pouvez m'expliquer l'intérêt profond de make-kpkg puis dpkg -i ? d'autant que c'est spécifique à Debian ?

Lien vers le commentaire
Partager sur d’autres sites

A la fin de ma compilation, j’ai eu le message comme quoi, mon kernel-image se situe dans :

/boot/arch/i386/boot/bzImage-2.6.7

J’ai donc fait:

Cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.7

J’ai fait de même pour le fichier système afin d’éviter des surprises au boot:

Cp /usr/src/linux/System.map /boot/System.map-2.6.7

Et j’ai recréer un lien symbolique :

rm /bbot/System.map

ln –s /boot/System.map-2.6.7 /boot/System.map

Je pense qu’il me reste plus qu’à configurer GRUB :

vi /boot/grub/menu.lst

Je suppose que je dois modifier ceci :

##End Default Options##

Title : Debian GNU/Linux, kernel 2.4.26-1-386

Root : (hd0,5)

Kernel: /boot/vmlinuz-2.4.26-1-386 root=/dev/hda6 ro

Initrd: /boot/initrd.omg-2.4.26-1-386

Savedefault

Boot

Title: Debian GNU/Linux, kernel 2.4.26-1-386 (recovery mode)

Root : (hd0,5)

Kernel: /boot/vmlinuz-2.4.26-1-386 root=/dev/hda6 ro single

Initrd: /boot/initrd.omg-2.4.26-1-386

Savedefault

Boot

Après modification, je devrais avoir:

##End Default Options##

Title : Debian GNU/Linux, kernel 2.6.7

Root : (hd0,5)

Kernel: /boot/vmlinuz-2.6.7 root=/dev/hda6 ro

Initrd: /boot/initrd.omg-2.6.7

Savedefault

Boot

( Le recovery mode pas la peine d'y toucher?)

J'ai bon ou pas?

Lien vers le commentaire
Partager sur d’autres sites

Moi , j'aurais rajouté une option une entrée à grub au lieu de modifiée celle existante...

...comme ça, si ça marche pas (erreur dans la config de grub, problème dans le noyau), ça évite d'avoir à modifier tout ça depuis l'invite de grub (notamment quand on sait pas trop comment ça marche...)

Sandeman : je suis d'accord avec toi, avec la méthode debian, on sait pas trop ce que l'ordi fait... plein de commandes, mais à l'arrivée, on a quoi? un nouveau noyau dans /boot ? le lien /vmlinux qui pointe sur le nouveau noyau? où est le system.map? y a t'il un initrd?

Toutes les réponses à ces questions dans le prochein épisode... ah non, pardon :francais:

Quand on fait à la main, on sait exactement ce que ça fait...

(et la méthode gentoo aussi :roll:)

Lien vers le commentaire
Partager sur d’autres sites

Moi , j'aurais rajouté une option une entrée à grub au lieu de modifiée celle existante...

...comme ça, si ça marche pas (erreur dans la config de grub, problème dans le noyau), ça évite d'avoir à modifier tout ça depuis l'invite de grub (notamment quand on sait pas trop comment ça marche...)

Sandeman : je suis d'accord avec toi, avec la méthode debian, on sait pas trop ce que l'ordi fait... plein de commandes, mais à l'arrivée, on a quoi? un nouveau noyau dans /boot ? le lien /vmlinux qui pointe sur le nouveau noyau? où est le system.map? y a t'il un initrd?

Toutes les réponses à ces questions dans le prochein épisode... ah non, pardon :francais:

Quand on fait à la main, on sait exactement ce que ça fait...

(et la méthode gentoo aussi :roll:)

Ben, disons que dans mon esprit y-vait tjs le recovery mode, mais t'as certainement raison, je vais laiser ces deux là et en rajouter une autre :)

Lien vers le commentaire
Partager sur d’autres sites

J'ai fait les modifications dans grub, et rien à changer au demerrage, j'ai pas mon 2.6.7 et au 2d rebbot sans avoir rien touché j'ai: Error 15: File not found :incline:

Un petit résumé de ce que j'ai fait:

L'image étant dans /boot/arch/i386/boot/bzImage-2.6.7, j'ai fait:

cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.7

cp /usr/src/linux/System.map /boot/System.map-2.6.7

Puis vi /boot/grub/menu.lst, etajout d'une entrée:

Title : Debian GNU/Linux, kernel 2.6.7

Root : (hd0,5)

Kernel: /boot/vmlinuz-2.6.7 root=/dev/hda6 ro

Initrd: /boot/initrd.omg-2.6.7

Savedefault

Boot

C'est qui qui va pas cette fois :incline:

Mon pb ce serait pas d'avoir oublié dans les commandes cp, le /boot/ entre /usr/src/ et /arch/ ?

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.


×
×
  • Créer...