Bonjour à tous,
je cherche à recompiler un noyau de version antérieure pour une machine cible qui n'est pas ma machine hote.
Voilà ma configuration:
- Machine hote
Linux localhost.localdomain 2.6.11-1.1369_FC4 #1 Thu Jun 2 22:55:56 EDT 2005 i686 i686 i386 GNU/Linux
- Machine cible
Kernel 2.4.31
glibc 2.3.3
processeur i586MMX
J'ai donc récupérer le kernel 2.4.31. En lisant les README j'ai vu qu'il me fallait utiliser gcc-2.95.3 (et donc binutils-2.10.1).
Je pars donc du début en regénérant binutils-2.10.1, le 'configure' (--target=i586-linux) se passe bien mais la compilation echoue sur la génération du 'gas' lors d'un include
------------------------------------------
make[3]: Entering directory `/home/herve/development/binutils-2.10.1/gas'
gcc -DHAVE_CONFIG_H -I. -I. -I. -D_GNU_SOURCE -I. -I. -I../bfd -I./config -I./../include -I./.. -I./../bfd -I./../intl -I../intl -DLOCALEDIR="\"/usr/local/binutils-2.10.1/share/locale\"" -g -O2 -W -Wall -c app.c
In file included from ./targ-cpu.h:1,
from ./config/obj-elf.h:40,
from ./obj-format.h:1,
from ./config/te-linux.h:4,
from targ-env.h:1,
from as.h:620,
from app.c:29:
./config/tc-i386.h:441: erreur: les éléments du tableau sont de type incomplet
m
------------------------------------------
La machine hote est avec:
gcc 4.0.0 20050519 (Red Hat 4.0.0-8)
Je ne sais pas s'il est possible de regénérer binutils antérieur avec une version plus récente de gcc.
Est-ce que quelqu'un peu m'aider ?
Me donner un bon séquencemment de génération à suivre ?
Des liens utiles peut-être (HOW-TO) ?
D'avance merci pour votre aide.
# pas grand chose de special
Posté par Victor . Évalué à 1.
Ensuite tout ira tranquillement :]
pas besoin de recompiler gcc, binutils ni rien du tout.
[^] # Re: pas grand chose de special
Posté par HColt . Évalué à 1.
je ne savais pas :)
Je vais donc essayer de recompiler le kernel pour la machine cible.
Merci du conseil.
[^] # Ca ne marche pas
Posté par HColt . Évalué à 1.
J'ai donc tenté de recompiler mon noyer 2.4.31 depuis ma Fedora 4.
J'ai fais:
make oldconfig (j'avais un ancien .config)
make dep
make
Et dès le premier fichier comilé j'ai une erreur:
------------------------------------------------------------------------
gcc -D__KERNEL__ -I/home/herve/development/linux-2.4.31/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i586 -fno-unit-at-a-time -DKBUILD_BASENAME=main -c -o init/main.o init/main.c
In file included from /home/herve/development/linux-2.4.31/include/linux/kernel.h:15,
from /home/herve/development/linux-2.4.31/include/linux/wait.h:13,
from /home/herve/development/linux-2.4.31/include/linux/fs.h:12,
from /home/herve/development/linux-2.4.31/include/linux/capability.h:17,
from /home/herve/development/linux-2.4.31/include/linux/binfmts.h:5,
from /home/herve/development/linux-2.4.31/include/linux/sched.h:9,
from /home/herve/development/linux-2.4.31/include/linux/mm.h:4,
from /home/herve/development/linux-2.4.31/include/linux/slab.h:14,
from /home/herve/development/linux-2.4.31/include/linux/proc_fs.h:5,
from init/main.c:15:
/home/herve/development/linux-2.4.31/include/asm/byteorder.h:14: attention : qualificateurs de type ignorés pour le type à retourner par la fonction
/home/herve/development/linux-2.4.31/include/asm/byteorder.h:30: attention : qualificateurs de type ignorés pour le type à retourner par la fonction
In file included from /home/herve/development/linux-2.4.31/include/linux/byteorder/little_endian.h:11,
from /home/herve/development/linux-2.4.31/include/asm/byteorder.h:65,
from /home/herve/development/linux-2.4.31/include/linux/kernel.h:15,
from /home/herve/development/linux-2.4.31/include/linux/wait.h:13,
from /home/herve/development/linux-2.4.31/include/linux/fs.h:12,
from /home/herve/development/linux-2.4.31/include/linux/capability.h:17,
from /home/herve/development/linux-2.4.31/include/linux/binfmts.h:5,
from /home/herve/development/linux-2.4.31/include/linux/sched.h:9,
from /home/herve/development/linux-2.4.31/include/linux/mm.h:4,
from /home/herve/development/linux-2.4.31/include/linux/slab.h:14,
from /home/herve/development/linux-2.4.31/include/linux/proc_fs.h:5,
from init/main.c:15:
/home/herve/development/linux-2.4.31/include/linux/byteorder/swab.h:160: attention : qualificateurs de type ignorés pour le type à retourner par la fonction
/home/herve/development/linux-2.4.31/include/linux/byteorder/swab.h:173: attention : qualificateurs de type ignorés pour le type à retourner par la fonction
/home/herve/development/linux-2.4.31/include/linux/byteorder/swab.h:186: attention : qualificateurs de type ignorés pour le type à retourner par la fonction
/home/herve/development/linux-2.4.31/include/linux/byteorder/swab.h:200: attention : qualificateurs de type ignorés pour le type à retourner par la fonction
In file included from /home/herve/development/linux-2.4.31/include/linux/prefetch.h:13,
from /home/herve/development/linux-2.4.31/include/linux/list.h:6,
from /home/herve/development/linux-2.4.31/include/linux/wait.h:14,
from /home/herve/development/linux-2.4.31/include/linux/fs.h:12,
from /home/herve/development/linux-2.4.31/include/linux/capability.h:17,
from /home/herve/development/linux-2.4.31/include/linux/binfmts.h:5,
from /home/herve/development/linux-2.4.31/include/linux/sched.h:9,
from /home/herve/development/linux-2.4.31/include/linux/mm.h:4,
from /home/herve/development/linux-2.4.31/include/linux/slab.h:14,
from /home/herve/development/linux-2.4.31/include/linux/proc_fs.h:5,
from init/main.c:15:
/home/herve/development/linux-2.4.31/include/asm/processor.h:75: erreur: les éléments du tableau sont de type incomplet
make: *** [init/main.o] Erreur 1
----------------------------------------------------------------------------
J'imagine que celà vient du fait que je n'ai pas la bonne version de glibc mais je n'en suis pas certain.
Quelqu'un peut-il m'aider ?
D'avance merci.
[^] # Re: Ca ne marche pas
Posté par slack . Évalué à 1.
make mrproper
make menuconfig
make dep
make
P.S. make oldconfig ne fonctionne pas toujours correctement.
# mes 2 cts
Posté par TheBreton . Évalué à 1.
Pour ton pb, c'est vrai que c'est possible de faire de la cross-compilation
(voir sur google :gcc cross compilation) pour avoir des tutos.
Mais le plus rapide/le plus simple dans ton cas puisque tu tourne sur la meme archi (ia32) c'est de partionner ton disque dur. Installe une vieille distrib embarquant le kernel 2.4 (mandrake 8 ou 9 par exemple) et recompile pour ta cible.
Attention le 2.4 ne supporte pas le SATA !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.