|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2001
Città: Pescara
Messaggi: 3695
|
Compilare un kernel x86_64 su un sistema a 32 bit
Ciao a tutti,
sono 2 giorni che sto cercando di capire come sia possibile compilare un kernel per x86_64 (ho un A64 3000+ per le mani) partendo da una distribuzione a 32 bit. Mi è parso di capire che occorre fare una cross-compilation utilizzando una versione recente di gcc (>= 3.4); non mi è ben chiaro invece se devo prima costruirmi un ambiente a 64 bit facendo una directory con tutto il necessario e poi facendoci un chroot. Ho iniziato la configurazione del nuovo kernel dando il comando "make ARCH=x86_64 CROSS_COMPILE=x86_64-linux- menuconfig"; il file di configurazione generato contiene correttamente la variabile "ARCH=x86_64". Ho creato un link a gcc-3.4 chiamandolo x86_64-linux-gcc dato che usando la variabile "CROSS_COMPILE=x86_64-linux-" il make cerca di trovare il compilatore chiamato nome_variabile+"gcc". Ho quindi dato il comando "make ARCH=x86_64 CROSS_COMPILE=x86_64-linux-" per iniziare la compilazione ma la compilazione si interrompe subito dandomi il messaggio "cripts/mod/empty.c:1: error: code model `kernel' not supported in the 32 bit mode". Non riesco a capire quale sia il problema, dato che in rete c'è una confusione incredibile sull'argomento... Potete indicarmi dove sbaglio e cosa posso fare per correggermi? Grazie a tutti! ![]() |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Tutto corretto tranne questo:
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Qui
http://home.ix.netcom.com/~ejohns/glfs-amd64/intro.html si parla di come costruire una toolchain con un cross compiler per x86_64. Se ne trovi uno già fatto è meglio, il lavoro è lungo.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Sep 2001
Città: Pescara
Messaggi: 3695
|
Ok, vediamo se riesco!
Avevo trovato anche io qualcosa ieri in merito, ma poi mi sono detto: "ma non può essere così incasinato!" ![]() Grazie mille ilsensine, meriti un monumento (se non altro per la pazienza di rispondermi! ![]() Ciao. ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:31.