[resolu] erreur compilation noyau 2.6.21

Bonjour,

Désolé de polluer le but original du post, mais j’ai moi aussi lancé une compilation du 2.6.21 (Bravo au passage au tuto de Ash), il me restait 800 Mo, je pensais que çà suffisai… mais çà ne suffisait pas … gros problème d’espace disque …
hors j’avais déjà fait du ménage avant …

ma question serait donc (puisque je doit je pense faire une croix sur ce noyau) où puis je nettoyer ce début de compil pour récupérer un peu d’espace de vie … en attendant un nouveau disque dur

Merci

Fyffe

Tu n’as surement pas besoin de 800 Mo free pour faire une compile.
Les sources du noyau customisé et déployées font chez moi 14 Mo.
Installes xdiskusage à lancer en root, et vois ce qui cloche.

@bpier:
Je n’ai pas coché ce module sur mon 2.6.21 mais il avait bien compilé sur un ancien 2.6.20, faudrait vérifier dans les sources du 2.6.20 si c’est écrit pareil …
De plus, je pense que si les deux syntaxes sont correctes (le contraire m’étonnerait finalement), et bien c’est un problème de version du gcc, est-ce que tu compile avec un 3.x ou le 4.1 ?

Chez moi aussi avant la compil …

j’ai trouvé 700 Mo de sources 2.6.21 dans root / .trash … tout simplement
Merci pour xdiskusage pour repérer ce “reste”

Il y a donc un truc qui cloche dans ma compilation … c con
Merci en tout cas !

Fyffe

Ok.

[quote=“fyffe”]Chez moi aussi avant la compil …[/quote]Tu es sûr ?
avant compil, les sources avoisinnent plutôt les 43-50 Mo non ?

tu as fait un make-kpkg clean avant de lancer la compil ?

:wink:

usinagaz a écrit :

[quote]Sauvegarde ton fichier /usr/src/linux/drivers/char/rtc.c en le copiant ailleurs, édite le et modifie
#if defined(i386) par #ifdef i386 pour voir, retente la compile. [/quote]

Je n’ai pas compilé dans /usr/src, mais dans un dossier créé dans ce but dans mon home (comme le préconise Linus Torswald). J’ai, depuis, nettoyé ce dossier pour retenter bientôt une autre compil sans RT, pour tester si l’erreur vient du noyau en lui-même ou des modules ajoutés par le patch RT.

Quant à gcc, j’utilise la version 4.1.2 20061115 :

[quote]% gcc --version
gcc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
Copyright © 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.[/quote]

Peut-être faudra-t-il que j’utilise une version antérieure ? Dans ce cas comment le préciser dans les commandes de la compil. Y-a-t-il une option au make-kpkg ?

Enfin, je suis allé faire un tour sur la buglist debian, rien sur un éventuel bogue concernant rtc.o

scorpio81 a écrit :

Tu la poses à qui cette question ? Comme il y a désormais deux demandes d"aide sur le même post, ça se complique. Pour ma part, en tout cas, j’ai bien fait un make-kpkg clean avant de lancer la compil. Par ailleurs, pas mal ton site.

OK, peu importe où tu compiles, dans /usr/src ou dans ton home, tant que /usr/src/linux pointe bien vers les sources du noyau que tu tentes de compiler.
Soit tu essayes de compiler en modifiant la ligne comme je dis plus haut (le test if dans rtc.c), soit tu désactive ce module dans le menuconfig avant compilation.

Non le gcc c’est bon, c’est un des plus récents.

ps: quelqu’un qui fait du C devrait nous dire si cette ligne est correcte, ou si c’est une erreur d’inattention de l’auteur de rtc.c.

[quote=“bpier”]
scorpio81 a écrit :

Tu la poses à qui cette question ? Comme il y a désormais deux demandes d"aide sur le même post, ça se complique. Pour ma part, en tout cas, j’ai bien fait un make-kpkg clean avant de lancer la compil. Par ailleurs, pas mal ton site.[/quote]

je répondais a fyffe
:wink:

merci :wink:

[quote=“scorpio81”]tu as fait un make-kpkg clean avant de lancer la compil ?

:wink:[/quote]bah faut garder le .config, supprimmer l’arbo du noyau, et redéployer les sources, peut être ? quand c’est pourri…
Enfin je n’ai pas tout suivi :smiley:

J’ai récupéré le linux-source 2.6.21 du dépôt unstable, suivi toutes la procédure (de nouveau), j’ai, après le make menuconfig, fait un make-kpkg clean, mais ça a coincé au make modules_clean. La preuve :

[quote][bpier@debian:~/kernel-2.6.21/usr/src/linux] [ven mai 25 15:24:14]
% make-kpkg modules clean
exec debian/rules DEBIAN_REVISION=2.6.21-rt7-10.00.Custom modules clean
echo “The UTS Release version in include/linux/version.h”; echo " “” "; echo “does not match current version:”; echo " “2.6.21-rt7” “; echo “Please correct this.”; exit 2
The UTS Release version in include/linux/version.h
”"
does not match current version:
"2.6.21-rt7"
Please correct this.
make: *** [modules] Erreur 2
[bpier@debian:~/kernel-2.6.21/usr/src/linux] [ven mai 25 15:24:19]
%[/quote]

J’ai alors un peu bidouillé, créé un fichier version.h dans include/linux du dossier de compil. Mais rien n’y fait.

On se demandait justement si un make-kpkg clean supprimait le .cofig, je ne pense pas (mais peut-être qu’il écrase par le .config.old [s’il est présent], dans ce cas, tu fait un make-kpkg clean (et non modules clean) avant de faire ton menuconfig.
Tu as toujours le tar.bz2 des sources ?
bon, alors tu supprimes les sources du 2.6.21 déployées,
tu détarres à nouveau les sources,
tu vérifies tes liens (linux),
tu vas faire la modif de test dans rtc.c,
tu suis la procédure normale de compil du kernel: make-kpkg --initrd buildpackage --config menuconfig etc … (ou pour la config tu colles ton .config dans tes sources.)
Enfin moi je ferais comma ça si j’ai trop bidouillé avec les anciennes sources …

ps: verifies que tu as bien le rtc cochée dans la config ou lors du menuconfig …

Je me suis absenté. Je testerai tes suggestions dès que j’aurai un moment. Cela dit, comment dois-je m’y prendre pour faire la modif de test dans rtc.c ?

Ok, mais relis le post où je parle de modifier le if defined(…) :wink:

Re,
je laisse tomber ma requête pour simplifier la question initiale !
Bonne continuation

Fyffe

Fyffe, passe là sur un post qui lui sera dédié.
Usinagaz, je relis ton post.

Ne connaissant pas le C, il se peut que j’ai dis une connerie … mais bon.

Usinagaz, voilà la réponse, après avoir modifié le fichier rtc.c :

[quote] CC drivers/char/rtc.o
drivers/char/rtc.c:85:5: warning: “defined__i386__” is not defined
drivers/char/rtc.c:89:1: error: unterminated #ifdef
make[4]: *** [drivers/char/rtc.o] Erreur 1
make[3]: *** [drivers/char] Erreur 2
make[2]: *** [drivers] Erreur 2
make[2]: quittant le répertoire « /home/bpier/kernel-2.6.21/usr/src/linux-source-2.6.21-rt7 »
make[1]: *** [debian/stamp-build-kernel] Erreur 2
make[1]: quittant le répertoire « /home/bpier/kernel-2.6.21/usr/src/linux-source-2.6.21-rt7 »
make: *** [stamp-buildpackage] Erreur 2
[/quote]

Faudra que j’essaie autre chose.

ah non, moi j’aurai plutôt mis ça :

#ifdef __i386__ à la place, on s’est mal compris.

Pardon usinagaz, j’ai mal interprêté ton post. Entre deux, j’ai chargé la version la plus récente du patche real time. Résultat :

[quote]make[1]: quittant le répertoire « /home/bpier/kernel-2.6.21/usr/src/linux-source-2.6.21 »
====== making target stamp-kernel-image [new prereqs: linux-image-2.6.21-rt8.070528 linux-image-2.6.21-rt8.070528]======
This is kernel package version 10.067.
echo done > stamp-kernel-image
====== making target kernel-image [new prereqs: stamp-configure stamp-build-kernel stamp-kernel-image]======
This is kernel package version 10.067.
[bpier@debian:~/kernel-2.6.21/usr/src/linux] [lun mai 28 17:32:59]
[/quote]

Problème réglé.(’:P’)
Merci à tous, en particulier à usinagaz.