Debian 64bit Kernel kompilieren

Servus,

auf einem Intel Board DG45ID mit Core 2 Quad-Prozessor (Q9400) würde ich gerne einen 64-bit-Kernel (2.6.27.7) kompilieren. Da diese Maschine m. W. 64-bit-fähig ist, sollte cross-compiling nicht erforderlich sein. Zunächst konfiguriere ich

 make ARCH=x86\_64 menuconfig

Schaue ich mir danach die .config an, sieht auch alles aus, wie gewünscht:

CONFIG\_64BIT=y
# CONFIG\_X86\_32 is not set
CONFIG\_X86\_64=y
CONFIG\_X86=y
CONFIG\_ARCH\_DEFCONFIG="arch/x86/configs/x86\_64\_defconfig"
[...]

Woran ich hängebleibe, ist der Aufruf von make-kpkg […] kernel_image. Wenn ich die Dokumentation richtig verstehe, muss ich auch hier den Parameter – ARCH=x86_64 mitgeben. Aber was immer ich als Architektur oder Subarchitektur mitgebe - ich laufe auf einen Fehler (unknown Debian architecture) oder der Konfigurationsprozess wird neu gestartet.

Ich habe mich zwar mittlerweile einige Stunden durch die manpages gelesen, mehr als eine gewisse geistige Wirrnis hat das aber nicht erbracht. Auch eine ausgiebige Webrecherche hat nicht zur Erleuchtung geführt.

Was erfolgreich kompiliert, aber eben nur einen 32-bit-Kernel, ist die Parametrisierung mit ARCH=i386 SUBARCH=amd64 (make menuconfig) bzw. --ARCH=i386 --SUBARCH=amd64 (make-kpkg). Was mich nun vollends verwirrt, da ich amd64 für 64-bit gehalten habe.

Ich wäre dankbar, wenn jemand hier ein bisschen Licht ins Dunklew bringen könnte

Servus,

auf einem Intel Board DG45ID mit Core 2 Quad-Prozessor (Q9400)
würde ich gerne einen 64-bit-Kernel (2.6.27.7) kompilieren. Da
diese Maschine m. W. 64-bit-fähig ist, sollte cross-compiling
nicht erforderlich sein.

Unter was für einem System machst Du das ganze denn? Wenn Du auf einem 32 Bit Linux einen 64 Bit Kernel kompilieren möchtest, dann nennt man das „cross compiling“ mit all den zugehörigen Tücken.

Am einfachsten wäre es, wenn Du Dir das entsprechende 64 Bit Linux komplett installierst. Wenn Du nämlich den Kernel dann irgendwann startest, dann müssen auch alle zugehörigen Anwendungen entsprechend neu kompiliert werden oder es wird ein Krampf mit 32- und 64 Bit Sofware und Bibliotheken parallel.

Gruß

Fritze

Moien

auf einem Intel Board DG45ID mit Core 2 Quad-Prozessor (Q9400)
würde ich gerne einen 64-bit-Kernel (2.6.27.7) kompilieren. Da
diese Maschine m. W. 64-bit-fähig ist, sollte cross-compiling
nicht erforderlich sein.

Ob CrossCompiling nötig ist oder nicht hängt davon ab welches Debian installiert wurde. Was genau sagt „uname -a“ ?

cu

(Wenn die 32Bit Version installiert ist macht ein 64Bit Kernel gar keinen Sinn)

Hallo Herrmann,

Woran ich hängebleibe, ist der Aufruf von make-kpkg […]
kernel_image. Wenn ich die Dokumentation richtig verstehe,
muss ich auch hier den Parameter – ARCH=x86_64 mitgeben.

Der Parameter --arch foo ist doch wohl nur notwendig, wenn Du cross-compiling machen willst/musst. Du schreibst aber

Da
diese Maschine m. W. 64-bit-fähig ist, sollte cross-compiling
nicht erforderlich sein.
Aber
was immer ich als Architektur oder Subarchitektur mitgebe -
ich laufe auf einen Fehler (unknown Debian architecture)

wenn Du den Parameter schon verwenden musst, sollte er dann nicht

--arch=x86\_64-linux

lauten?

Was
mich nun vollends verwirrt, da ich amd64 für 64-bit gehalten
habe.

Das verwirrt mich auch, ich habe den Kernel linux-image-2.6.18-6-amd64 und das sind 64-bit. Sonst will ich mein Geld zurück :wink:

Viele Grüße
Marvin

(Wenn die 32Bit Version installiert ist macht ein 64Bit Kernel
gar keinen Sinn)

Ja, das war wohl Betriebsblindheit bei mir. Ich hatte zwar einen der vorkompilierten amd-64-bit Kernel installiert, aber unter einem 32bit-Debian - was wohl doch etwas anderes ist, als gleich ein amd64-Debian zu installieren.

Gruß

Unter was für einem System machst Du das ganze denn? Wenn Du
auf einem 32 Bit Linux einen 64 Bit Kernel kompilieren
möchtest, dann nennt man das „cross compiling“ mit all den
zugehörigen Tücken.

Da habe ich tatsächlich die Begrifflichkeiten durcheinander gebracht, gleichzeitig die Tunnelblick-Brille aufgesetzt und mich infolgedessen arg festgerannt. Ich werde die Sache noch mal neu angehen müssen, diesmal aber mit einer 64-bit-Distribution, nicht mit einer 32-bit-Distri und nachinstalliertem 64bit-Kernel.

Vielen Dank

Das verwirrt mich auch, ich habe den Kernel
linux-image-2.6.18-6-amd64 und das sind 64-bit. Sonst will ich
mein Geld zurück :wink:

Ja, einen solchen Kernel (genauer: linux-image-2.6.24-etchnhalf.1-amd64) hatte ich auch installiert. Was aber nicht sonderlich zielführend ist, wenn ansonsten eine 32bit-Distribution installiert ist. Also nochmal auf Anfang…

Gruß