Zweck: In diesen Tagen 64-Bit-Hardware und Betriebssystem werden immer mehr und mehr üblich und bezahlbar. Nun, wenn Sie eine benutzerdefinierte Linux-Kernel auf einer regulären Intel-Architektur 32-Bit-Maschine (i386) für eine 32-Bit-Rechner selbst kompilieren, dann gibt es keine Probleme. Aber jetzt, wenn Sie versuchen, einen benutzerdefinierten Linux-Kernel für 32-Bit-auf 64-Bit-Rechner kompilieren anfangen, Dinge anders. Man kann nicht direkt kompilieren eine 32-Bit-Kernel auf einem 64-Bit-Rechner in einer Art und Weise einfach . Ich habe in mehreren fragte Foren aber nicht bekommen eine richtige Antworten, so habe ich beschlossen, die Forschung über meine eigenen. In diesem Blog-Post werden wir lernen, wie man eine 32-Bit-Kernel auf einem 64-Bit-Rechner kompilieren.

Wenn Sie, wie man eine 32-Bit-Grafik (X Windows)-Anwendung auf einem 64-Bit-Betriebssystem ausgeführt wird, klicken Sie hier .

Terminologie: In der Regel in der Linux-Welt:

  • i386 - Bezieht sich auf 32-Bit-
  • amd64 - Bezieht sich auf 64-Bit-

Hinweis: "amd64" bedeutet nicht nur 64-Bit-AMD-Maschinen. Intel, AMD und VIA - Der Begriff amd64 wird allgemein für alle 64-Bit-Maschine verwendet. Um Kredit zu geben, für das erste AMD kommen mit 64-Bit-Architekturen wird das Wort amd64 verwendet.

Szenario: Hier ist meine aktuelle Szenario, das ich in dieser ganzen Blog-Post verwenden werden

Host-Computer: AMD Athlon X2 Dual Core 64-Bit-Rechner mit 64-Bit-OS Debian installieren

Zielcomputer: Intel Celeron 32-Bit-Rechner

Nun, würde Ich mag, um eine Linux-Kernel für mein Ziel auf meiner Maschine Host-Computer zu kompilieren. Typischerweise Menschen tun dies, weil in der Regel schneller als Host-Computer als Zielrechner oder wie in meinem Fall habe ich mich entschlossen, alle meine Linux-Kernel auf Host-Maschine kompiliert sind. Allerdings, wenn Sie eine 32-Bit-OS (Operating System) auf einem 64-Bit-Computer installiert haben, dann können Sie einfach Ihren Kernel kompilieren, wie Sie es nutzen, um vor zu tun. Sie brauchen nicht, diesen Beitrag zu folgen.

Schritt 1: Erstellen Sie eine 32-Bit-System debootstrap
Die Faust Schritt ist, um eine 32-Bit-Debian-Bootstrap-System auf Ihrem Host-Computer zu erstellen. Sie können folgen Sie diesem Link für die Schritt-für-Schritt-Anleitung, wie Sie das tun.

Das Endergebnis dieser Schritt wird sein, dass Sie eine brandneue 32-Bit-System in das folgende Verzeichnis haben:

/home/kushalk/chroots/debian32

auf Ihrem 64-Bit-Rechner

Schritt 2: Richten Sie Ihre Kernel-Quellen

Jetzt nur noch "chroot" in der Bootstrap System gy geben Sie den folgenden Befehl:

amd64# chroot /home/kushalk/chroots/debian32
debian32# cd /usr/src/
debian32# apt-get install linux-source-2.6.26
debian32# tar -xjvf linux-source-2.6.26.tar.bz2

und Sie sind bereit zu starten Kompilieren des Kernels

Hinweis: Anstelle des Herunterladens Quellen noch einmal aus dem Internet, kann man auch Quelltext Ordner von Ihrem / usr / src / Verzeichnis auf Ihrem Host-Maschine. Linux Kernel-Quellen werden nicht 32-bit/64-bit abhängig was bedeutet, dass die gleiche Quelle Tarballdatei verwendet werden, um 32-Bit und 64-Bit-Kernel zu kompilieren.

Schritt 3: Konfigurieren Sie Ihren Linux-Kernel

Jetzt können Sie entweder nur eine Standard-Kernel-Konfigurationsdatei durch.:

debian32# cd /usr/src/linux-source-2.6.26
debian32# make defconfig

sonst können Sie kopieren eine bestehende Konfigurationsdatei durch.:

debian32# cp </path-to-config-file/.config> .config

sonst können Sie Ihren Kernel konfigurieren, um eine Konfigurationsdatei zu erzeugen durch.:

debian32# make menuconfig

Nun, wenn Sie grafische Kernel-Konfiguration wie "make xconfig" oder "machen gconfig" verwenden wollen, werden Sie nicht in der Lage, mit der obigen Einstellung so weit zu tun. Wenn Sie zu tun versuchen Sie werden am Ende immer folgende Fehlermeldung:

debian32# make xconfig
scripts/kconfig/qconf arch/x86/Kconfig
No protocol specified
qconf: cannot connect to X server :0.0
make[1]: *** [xconfig] Error 1
make: *** [xconfig] Error 2
debian32#

Wir müssen einige zusätzliche Schritte durchführen, um das grafische Konfigurations-Bildschirm, die ich in meiner Erklärung erhalten nächsten Post (siehe Schritt 5).

Schritt 4: Stellen Sie Ihre Linux-Kernel

Nun gibt es zwei Möglichkeiten, um einen Linux-Kernel kompilieren - die "Standard" so oder so "Debian" Weise, die mit "make-kpkg" Dienstprogramm beinhaltet. Ich in der Regel mit Debian zu kompilieren.

debian32# make-kpkg --initrd --append-to-version=-32bit kernel_image kernel_headers

Nun gehen und einen Kaffee holen und Sie sollten Ihren Kernel bereit in wenigen Minuten.

Jetzt können Sie kommen aus Ihrem "chroot"-Umgebung und kopieren Sie das Kernel-Image zurück auf dem Host-System.

debian32# exit
amd64# cp /home/kushalk/chroots/debian32/usr/src/*.deb /root/

In dem oben genannten Befehl, bin ich kopieren Sie alle *. Deb-Dateien (die kompilierten Kernel und Header-Dateien) von meinem 32-Bit-System auf die Bootstrap-Benutzer "root"-Verzeichnis auf meinem Host-System (amd64). Obwohl wir den Begriff des "32-Bit-System" verwendet, es bedeutet nur, ein Verzeichnis, das auf dem Host-System befindet. Ihr 32-Bit-Bootstrap-System in auf Ihrem 64-Bit-Maschine.

Das war's. Glückliche 32-bit'ing!

Kontaktfreudig sein, Share!