Native virtuelle Debian X32-Maschine?

457
jww

Ich versuche, eine native virtuelle Debian X32-Maschine einzurichten. Beachten Sie, dass sich X32 von X86 und X64 unterscheidet. Weitere Informationen finden Sie unter Unterschied zwischen x86-, x32- und x64-Architekturen. bei Stapelüberlauf. Einige andere Distributionen wie Red Hat bieten einen X32-Build für Server.

Debian bietet kein X32-ISO an. Ich habe Debian 8.2 amd64 installiert und der Kernel bootet in der 32-Bit-Konfiguration:

$ dmesg | grep -i x32 [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.16.0-4-amd64 root=UUID=69773d98-b9fa-4695-8392-92759d8e6094 ro syscall.x32=y syscall.x32=y quiet [ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.16.0-4-amd64 root=UUID=69773d98-b9fa-4695-8392-92759d8e6094 ro syscall.x32=y syscall.x32=y quiet [ 0.316500] Enabled x32 syscalls 

Debians X32-Port-Wiki sagt mir, dass der nächste Schritt die Einrichtung einer QEMU-Chroot ist. Ich möchte die QEMU-Chroot vermeiden und diese in eine native X32-Installation verwandeln.

Frage : Wie kann ich aus dieser Installation eine native X32-Installation machen?


Obwohl ich den für X32 konfigurierten Kernel boote, sind die Userland-Tools nicht auf diese Weise konfiguriert. Zum Beispiel ist der Compiler für mich wahrscheinlich am wichtigsten, aber nicht für X32 konfiguriert:

$ g++ -march=native -dM -E - </dev/null | egrep "(x86_64|amd64|ilp)" #define __x86_64 1 #define __amd64 1 #define __x86_64__ 1 #define __amd64__ 1 

Ich sehe ILP32oder nicht __ILP32__, was bedeutet, dass ich nicht im X32-Modus bin. Das Wechseln -march=nativezu -mx32macht keinen Unterschied.


Hier ist die Maschine:

$ uname -a Linux debian8-x32q 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) x86_64 GNU/Linux 

Hier ist mein sources.list. Es ist jedoch nicht offensichtlich, was ich ermöglichen sollte, um die X32-Binärdateien anstelle der X64-Binärdateien zu erhalten:

deb http://ftp.us.debian.org/debian/ jessie main deb-src http://ftp.us.debian.org/debian/ jessie main  deb http://security.debian.org/ jessie/updates main deb-src http://security.debian.org/ jessie/updates main  # jessie-updates, previously known as 'volatile' deb http://ftp.us.debian.org/debian/ jessie-updates main deb-src http://ftp.us.debian.org/debian/ jessie-updates main 

Die folgenden Arbeiten:

$ sudo dpkg --add-architecture x32 

Aber es bricht APT:

$ sudo apt-get update Ign http://ftp.us.debian.org jessie InRelease Hit http://ftp.us.debian.org jessie-updates InRelease  Hit http://ftp.us.debian.org jessie Release.gpg  Hit http://ftp.us.debian.org jessie Release  Hit http://security.debian.org jessie/updates InRelease  Hit http://ftp.us.debian.org jessie-updates/main Sources  Get:1 http://ftp.us.debian.org jessie-updates/main amd64 Packages/DiffIndex [367 B] Get:2 http://ftp.us.debian.org jessie/main Sources [7,058 kB] Hit http://security.debian.org jessie/updates/main Sources Hit http://security.debian.org jessie/updates/main amd64 Packages  Hit http://ftp.us.debian.org jessie/main amd64 Packages  Fetched 7,058 kB in 3s (2,066 kB/s)  W: Failed to fetch http://security.debian.org/dists/jessie/updates/InRelease Unable to find expected entry 'main/binary-x32/Packages' in Release file (Wrong sources.list entry or malformed file)  W: Failed to fetch http://ftp.us.debian.org/debian/dists/jessie-updates/InRelease Unable to find expected entry 'main/binary-x32/Packages' in Release file (Wrong sources.list entry or malformed file)  W: Failed to fetch http://ftp.us.debian.org/debian/dists/jessie/Release Unable to find expected entry 'main/binary-x32/Packages' in Release file (Wrong sources.list entry or malformed file)  E: Some index files failed to download. They have been ignored, or old ones used instead. 

Wenn es darauf ankommt, ich SSH in die Box. Fenstermanager und andere GUI-Programme, die nicht portiert wurden, interessieren mich nicht. Grundsätzlich brauche ich den Kernel, die Basisinstallation und die Build-Tools im X32-Modus, damit ich meine Software unter X32 testen kann.

0
https://en.wikipedia.org/wiki/X32_ABI diesen Link hier lassen, da ich verwirrt wurde. https://bugs.debian.org/cgi-bin/pkgreport.cgi?users=debian-x32@lists.debian.org;tag=di-x32 scheint anzudeuten, dass einige der Dinge, die Sie benötigen, um x32 direkt ausführen zu können noch nicht unterstützt werden, wie ein Bootloader. Journeyman Geek vor 8 Jahren 1
Danke Geselle. * "x32 wird möglicherweise noch nicht unterstützt, wie ein Bootloader ..." * - OK, danke. Ich bin mir nicht sicher, ob dies ein Problem in der Praxis ist, weil wir den Kernel mit *** `syscall.x32 = y` *** booten können. Ich habe ein Userland gefunden, das den Schmerz verursacht, wie der Compiler. jww vor 8 Jahren 0

0 Antworten auf die Frage