Compilation Noyau 2.6.26 - Error Xen

Bonjour à toutes et à tous :smiley:

C’est la première fois que je compile un noyau Linux et j’obtiens une erreur dès le début de la compilation à propos d’un module Xen. Pourriez vous m’indiquer de quel type d’erreur s’agit t-il car je n’y connais absolument rien du tout. Je poste la trace de la compile jusqu’à l’erreur.

[code]compil:/home/compil/src/linux# make-kpkg kernel-image --rootcmd fakeroot --initr d --append-to-version=date +%y%m%d --revision=2.6.26
exec debian/rules DEBIAN_REVISION=2.6.26 APPEND_TO_VERSION=091118 INITRD=YES ROOT_CMD=fakeroot kernel-image
====== making target conf.vars [new prereqs: ]======

====== making target debian/stamp/build/kernel [new prereqs: conf.vars]======
This is kernel package version 11.015.
if [ -f include/linux/version.h ]; then uts_ver=$(grep ‘define UTS_RELEASE’ incl ude/linux/version.h | perl -nle ‘m/^\s*#define\s+UTS_RELEASE\s+("?)(\S+)\1/g & & print $2;’); if [ “X$uts_ver” != “X” ]; then echo “The UTS Release version in include/linux/version.h”; echo " “$uts_ver” "; echo "does not match current version " ; echo " “2.6.26091118” " ; echo “Reconfiguring.” ; touch Makefile; fi; fi
test ! -f scripts/package/builddeb.kpkg-dist || mv -f scripts/package/builddeb.k pkg-dist scripts/package/builddeb
test ! -f scripts/package/Makefile.kpkg-dist || mv -f scripts/package/Makefile.k pkg-dist scripts/package/Makefile
/usr/bin/make EXTRAVERSION=091118 ARCH=i386
bzImage
make[1]: Entering directory /home/compil/src/linux-source-2.6.26' scripts/kconfig/conf -s arch/x86/Kconfig make[1]: Leaving directory/home/compil/src/linux-source-2.6.26’
make[1]: Entering directory /home/compil/src/linux-source-2.6.26' CHK include/linux/version.h UPD include/linux/version.h CHK include/linux/utsrelease.h UPD include/linux/utsrelease.h SYMLINK include/asm -> include/asm-x86 CC kernel/bounds.s GEN include/linux/bounds.h CC arch/x86/kernel/asm-offsets.s GEN include/asm-x86/asm-offsets.h CALL scripts/checksyscalls.sh HOSTCC scripts/genksyms/genksyms.o SHIPPED scripts/genksyms/lex.c SHIPPED scripts/genksyms/parse.h SHIPPED scripts/genksyms/keywords.c HOSTCC scripts/genksyms/lex.o scripts/genksyms/lex.c:1487: warning: âinputâ defined but not used SHIPPED scripts/genksyms/parse.c HOSTCC scripts/genksyms/parse.o HOSTLD scripts/genksyms/genksyms CC scripts/mod/empty.o HOSTCC scripts/mod/mk_elfconfig MKELF scripts/mod/elfconfig.h HOSTCC scripts/mod/file2alias.o HOSTCC scripts/mod/modpost.o HOSTCC scripts/mod/sumversion.o HOSTLD scripts/mod/modpost HOSTCC scripts/kallsyms HOSTCC scripts/conmakehash HOSTCC scripts/bin2c CC init/main.o CHK include/linux/compile.h UPD include/linux/compile.h CC init/version.o CC init/do_mounts.o CC init/do_mounts_rd.o CC init/do_mounts_initrd.o LD init/mounts.o CC init/initramfs.o CC init/calibrate.o LD init/built-in.o HOSTCC usr/gen_init_cpio GEN usr/initramfs_data.cpio.gz AS usr/initramfs_data.o LD usr/built-in.o CC arch/x86/kvm/svm.o CC arch/x86/kvm/vmx.o CC arch/x86/kvm/../../../virt/kvm/kvm_main.o CC arch/x86/kvm/../../../virt/kvm/ioapic.o CC arch/x86/kvm/x86.o CC arch/x86/kvm/mmu.o CC arch/x86/kvm/x86_emulate.o CC arch/x86/kvm/i8259.o CC arch/x86/kvm/irq.o CC arch/x86/kvm/lapic.o CC arch/x86/kvm/i8254.o LD arch/x86/kvm/kvm.o LD arch/x86/kvm/kvm-intel.o LD arch/x86/kvm/kvm-amd.o LD arch/x86/kvm/built-in.o CC arch/x86/xen/enlighten.o CC arch/x86/xen/setup.o arch/x86/xen/setup.c: In function âxen_enable_sysenterâ: arch/x86/xen/setup.c:75: warning: unused variable âcpuâ CC arch/x86/xen/multicalls.o CC arch/x86/xen/mmu.o .{standard input}: Assembler messages: {standard input}:272805: Warning: end of file not at end of a line; newline inserted gcc: Internal error: Killed (program cc1) Please submit a full bug report. See <file:///usr/share/doc/gcc-4.3/README.Bugs> for instructions. make[2]: *** [arch/x86/xen/mmu.o] Error 1 make[1]: *** [arch/x86/xen] Error 2 make[1]: Leaving directory/home/compil/src/linux-source-2.6.26’
make: *** [debian/stamp/build/kernel] Error 2
compil:/home/compil/src/linux#[/code]

Salut,

Peut-être ça :
Si tu n’a pas besoin du support Xen, désactive-le.

menuconfig > Processor type and features > Paravirtualized guest support > Xen guest support

salut,

en fait j’en ai besoin car mes vm sont sous vmware server et je compte utiliser bientôt Xen.

merci

Les paquets Debian pour Xen sont disponibles dans les dépôts officiels.

Il y a t-il une raison de vouloir absolument compiler Xen ?

heu ben a vrai dire non. Mais si je désactive le support xen dans le noyau je ne pourrai pas l’utiliser après sur ma machine ? ou alors j’ai loupé un train !

merci de votre aide

[quote=“scarabaeus”]salut,

en fait j’en ai besoin car mes vm sont sous vmware server et je compte utiliser bientôt Xen.

merci[/quote]

Re,
Dans ce cas là, oui, laisse xen :wink:
Mais il faut trouver l’erreur… et là :mrgreen: compte pas sur mes maigres connaissances… Désolé !

Ce n’est pas une erreur de compilation mais un plantage du compilateur. D’après une recherche rapide, ce genre de plantage pourrait être lié à un manque de mémoire.
La machine a combien de RAM, de swap, d’espace disque libre ? Est-il possible d’augmenter la RAM ou le swap, ou d’arrêter des applications gourmandes en RAM le temps de la compilation ?

Concernant Xen, des noyaux précompilés sont disponbles en paquets Debian (linux-image-2.6-xen-*) donc pas besoin de compiler un noyau juste pour ça.

J’ai droit à “you need to load the kernel first” avec ces noyaux Xen… (Grub legacy et Grub2 pareil…) :confused: J’ai essayé cet aprem’…

En effet, ma machine avait trop peu de ram, j’ai donc augmenté celle ci. La compilation à continué son cours jusqu’à cet instant voici le message d’erreur:
Merci à tous pr votre aide

./debian/pkg/image/prerm > /home/compil/src/linux/debian/linux-image-2.6.26091118/DEBIAN/prerm chmod 755 /home/compil/src/linux/debian/linux-image-2.6.26091118/DEBIAN/prerm echo using old template using old template sed -e 's/=V/2.6.26091118/g' -e 's/=IB//g' \ -e 's/=ST/linux/g' -e 's/=R//g' \ -e 's/=K/bzImage/g' -e 's/=L/lilo/g' \ -e 's@=MK@mkinitramfs-kpkg mkinitrd.yaird@g' -e 's@=A@i386@g' \ -e 's/=I/YES/g' -e 's,=D,/boot,g' \ -e 's/=MD/initramfs-tools (>= 0.53) | yaird (>= 0.0.11) | linux-initramfs-tool, /g' \ -e 's@=M@@g' -e 's/=OF//g' \ -e 's/=S//g' -e 's@=B@i386@g' \ ./debian/templates.l10n > ./debian/templates.master install -p -o root -g root -m 644 ./debian/templates.master /home/compil/src/linux/debian/linux-image-2.6.26091118/DEBIAN/templates dpkg-gencontrol -DArchitecture=i386 -isp \ -plinux-image-2.6.26091118 -P/home/compil/src/linux/debian/linux-image-2.6.26091118/ dpkg-gencontrol: error: package linux-image-2.6.26091118 not in control info make[2]: *** [debian/stamp/binary/linux-image-2.6.26091118] Error 255 make[2]: Leaving directory `/home/compil/src/linux-source-2.6.26' make[1]: *** [debian/stamp/binary/pre-linux-image-2.6.26091118] Error 2 make[1]: Leaving directory `/home/compil/src/linux-source-2.6.26' make: *** [kernel-image] Error 2 compil:/home/compil/src/linux#

Par curiosité, il y avait combien de RAM et de swap ?

La compilation s’est bien terminée, c’est la construction du paquet Debian qui coince maintenant. Tu as bien fait un “make-kpkg clean” avant la compilation ? Il m’est arrivé d’avoir des erreurs à la recompilation après avoir changé la version ou la révision si je ne le faisais pas, mais il me semble que c’était plutôt au début de la compilation et pas à la fin. Toujours avec une recherche rapide (et dans les bugs Debian) on peut trouver des signalement d’erreurs similaires liées à une différence de nom des paquets à construire dans le fichier debian/control. Qu’affiche la commande suivante ?

si non t’utilise ton bz à a place … (ton .deb c’est juste l’empaquetage de ton bzImage et du résultat du “mknitramfs”)

/usr/src/linux"xxx?"/arch/“xen?”/boot"/bzImage

pourquoi t’est en /home/compil/src/ ?

Non, l’initramfs n’est pas inclus dans le paquet image du noyau, il est construit lors de l’installation de celui-ci. Ce sont les modules, dont certains sont éventuellement repris dans l’initramfs, qui sont empaquetés ou qu’il faut installer en plus du bzImage si on n’installe pas le noyau avec la méthode Debian mais de façon “classique”. Mais franchement je trouverais dommage de se priver des avantages de la méthode Debian : facilité d’installation et désinstallation y compris sur une autre machine, automatisation de la création de l’initramfs et de la configuration du chargeur…

oui, je voulais dire un
cp bz
puis un mkinitramfs
(je n’ai toujours pas compris le initramfs/initrd, que je n’utilise pas d’ailleurs, je n’ai pas trouver un seul avantage ou leurs utilité lors de la compil kernel)

il s’agissait d’une machine virtuelle avec une centaine de ram pour compiler lol.
La commande suivante ne s’exécute pas: grep Package: debian/control
je ne trouve pas l’erreur dans ls syntaxe.

bonne soirée

Avec le make-kpkg clean j’obtiens toujours la meme erreur à debian control.
Cela viendrait t-il pas du fait que je modifie le nom de ma version avec --append-to-version ??

merci de votre aide

Et cette machine virtuelle n’avait pas de swap ?

Comment ça, la commande ne s’exécute pas ? Elle provoque une erreur, ou bien ne retourne rien ? Il faut l’exécuter depuis le répertoire des sources du noyau. Après avoir compilé avec make-kpkg tu as bien un sous-répertoire “debian” qui contient des fichiers dont un nommé “control” (avec un “c” minuscule) qui contient des descriptions de paquets ?

Oui, tu peux éventuellement essayer sans modifier la version. Sinon tu peux aussi insérer un tiret “-” pour séparer la version originelle de l’ajout.

La machine n’avait pas de swap il me semble. J’ai essayé avec un - pour séparé la version mais j’obtiens toujours la même erreur.

Voici le résultat de la commande:

Package: linux-headers-2.6.26.091008 Package: linux-source-2.6.26.091008 Package: linux-image-2.6.26.091008 Package: linux-doc-2.6.26.091008 Package: linux-manual-2.6.26.091008 Package: linux-uml-2.6.26.091008 Package: linux-xen0-2.6.26.091008 Package: linux-xenu-2.6.26.091008

Effectivement ça ne colle pas. L’append-to-version de make-kpkg est “091118” alors que celui du fichier debian/control correspond apparemment à “.091008”. On pourrait penser à première vue que c’est un reste d’une vieille compilation mais “make-kpkg clean” devrait avoir effacé le répertoire debian/. En tout cas c’est comme ça chez moi. La modification manuelle de debian/control pourrait peut-être contourner le problème.

Si je me trompe dite le moi mais l’append-to-version permet de spécifier sa version perso du kernel histoire de les différencier lors du boot non ?

Oui, et en tant que paquetage Debian aussi puisque cette chaîne est ajoutée au nom du paquetage.

A part ça, tu as vérifié si make-kpkg clean effaçait bien le répertoire debian/ ?