[linux] Re: niet compilerend systeem (32/64 bits conflict)
Julien Michielsen
michkloo op xs4all.nl
Wo Okt 1 14:03:10 CEST 2014
On 09/30/14 18:53, Daniel C. von Asmuth wrote:
> Aldus schreef Julien Michielsen op Tue, Sep 30, 2014 at 04:51:44PM +0200:
>> Het lukt me momenteel niet meer een kernel te compileren. Na de
>> "make bzImage" opdracht krijg ik de melding
>> scripts/mod/empty.c:1:0: error: code model 'kernel' not supported in the
>> 32 bit mode
>> scripts/mod/empty.c:1:0: sorry, unimplemented: 64-bit mode not compiled in
>> scripts/mod/devicetable-offsets.c:1:0: error: code model 'kernel' not
>> supported in the 32 bit mode
>>
>> Ik weet niet of de compiler niet ziet dat ik een 64-bits systeem heb
>> (Athlon 64 X2
>> Dual Core Processor 5200+ ) of dat er een 32bits compiler staat
>> ge??nstalleerd die
>> niet samenwil met de 64-bits processor.
> De vraagstelling laat ons weer raden wat het probleem is, in het bijzonder
> de uitspraak 'het lukt niet meer een kernel te compileren' suggereert dat
> het eerst wel lukte.
>
> Als u een 64-bit processor hebt, waarop een 64-bit kernel draait en u
> probeert een 64-bit kernel te compileren met een 64-bit compiler dan
> zou het moeten lukken.
>
> Met vriendelijke groet,
>
>
>
> Daniel von Asmuth
>
Zoals je schreef: "De vraagstelling laat ons weer raden wat het probleem is"
Dat is eigenlijk ook het niveau waarop ik zelf zit: een compilatie "deed
het altijd
gewoon": je geeft een commando als "make -j5 bzImage", of "make -j5
modules",
en je doet net of je geduld hebt tot het systeem klaar is. Maar dan
ineens lukt
het niet meer, en krijg je moeilijke foutmeldingen.
Twee aanvullingen:
Een verandering aan mijn computer: er zit nu een ssd-disk in. Maar ja,
dat zou
weinig te maken moeten hebben met de 32/64-bits meldingen.
Tweede aanvulling, die eigenlijk geen aanvulling is:
vanmorgen heb ik nog een keer een "make bzImage" uitgevoerd, en vandaag
vielen
mij dingen op die ik eerder over het hoofd zag:
# make bzImage
HOSTCC arch/x86/tools/relocs_32.o
HOSTCC arch/x86/tools/relocs_64.o
HOSTCC arch/x86/tools/relocs_common.o
HOSTLD arch/x86/tools/relocs
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
CC kernel/bounds.s
kernel/bounds.c:1:0: error: code model 'kernel' not supported in the 32
bit mode
/*
^
kernel/bounds.c:1:0: sorry, unimplemented: 64-bit mode not compiled in
make[1]: *** [kernel/bounds.s] Error 1
Het meest opvallende is mogelijk de 32-bits klacht: "code model 'kernel'
not
supported in the 32 bit mode". Ook volgens de .config in de betreffende
directory (/home/julien/local/linux-3.16.2) is het een 64-bits machine.
Kan het nut hebben (en is daar een parameter voor) bij make op te geven
dat het gaat om een 64-bits machine? Het lijkt bijna zinloos, want bovenaan
in .config staat
CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y
Maar dan toch: wanneer het systeem ziet dat het om een 64-bitter gaat,
waarom zou het dan zoals boven staat melden
" kernel/bounds.c:1:0: error: code model 'kernel' not supported in the
32 bit mode" ??
Nu hopelijk een vraagstelling die niet laat raden wat het probleem is ;-)
bvd
Julien
--
Julien Michielsen
julien_at_michkloo.xs4all.nl
More information about the Linux
mailing list