Máquina virtual Debian X32 nativa?

0

Estou tentando configurar uma máquina virtual Debian X32 nativa. Observe que o X32 é diferente de X86 e X64. Para obter detalhes, consulte Diferença entre as arquiteturas x86, x32 e x64? no estouro de pilha. Algumas outras distros, como a Red Hat, oferecem uma compilação X32 para servidores.

O Debian não fornece um ISO X32. Eu tenho o Debian 8.2 amd64 instalado, e o kernel está inicializando na configuração de 32 bits:

$ 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

O wiki do X32-port do Debian me diz que o próximo passo é configurar um chroot do QEMU. Eu quero evitar o chroot do QEMU e transformá-lo em uma instalação nativa do X32.

Pergunta : Como faço para transformar esta instalação em uma instalação nativa do X32?

Embora eu esteja inicializando o kernel configurado para o X32, as ferramentas do usuário não são configuradas dessa maneira. Por exemplo, o compilador é provavelmente o mais importante para mim, mas não está configurado para o X32:

$ 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

Não vejo ILP32 ou __ILP32__ , o que significa que não estou no modo X32. Alterar -march=native para -mx32 não faz diferença.

Aqui está a máquina:

$ 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

Aqui está o meu sources.list . Mas não é óbvio o que devo habilitar para obter os binários do X32 em vez dos binários do X64:

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

Os seguintes trabalhos:

$ sudo dpkg --add-architecture x32

Mas isso quebra o 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.

Se isso importa, eu SSH na caixa. Eu não me importo com gerenciadores de janelas e outros programas gráficos que não tenham sido portados. Eu basicamente preciso que o kernel, a instalação básica e as ferramentas de compilação estejam no modo X32 para que eu possa testar o meu software no X32.

    
por jww 01.02.2016 / 01:08

0 respostas