![Собственная виртуальная машина Debian X32?](https://rvso.com/image/1482497/%D0%A1%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F%20%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%B0%20Debian%20X32%3F.png)
Я пытаюсь настроить собственную виртуальную машину Debian X32. Обратите внимание, что X32 отличается от X86 и X64. Подробности см.Разница между архитектурами x86, x32 и x64?на Stack Overflow. Некоторые другие дистрибутивы, например Red Hat, предлагают сборку X32 для серверов.
Debian не предоставляет X32 ISO. У меня установлен Debian 8.2 amd64, и ядро загружается в 32-битной конфигурации:
$ 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
Debian'sX32-порт wikiговорит мне, что следующим шагом будет настройка QEMU chroot. Я хочу избежать QEMU chroot и превратить это в нативную установку X32.
Вопрос: Как превратить эту установку в собственную установку X32?
Хотя я загружаю ядро, настроенное для X32, пользовательские инструментынетнастроено таким образом. Например, компилятор, вероятно, наиболее важен для меня, но он не настроен для 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
Я не вижу ILP32
или __ILP32__
, что означает, что я не в режиме X32. Изменение -march=native
на -mx32
не имеет значения.
Вот машина:
$ 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
Вот мойsources.list
. Но не очевидно, что мне следует включить, чтобы получить двоичные файлы X32, а не 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
Следующие работы:
$ sudo dpkg --add-architecture x32
Но это нарушает 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.
Если это важно, я подключаюсь к коробке по SSH. Меня не интересуют оконные менеджеры и другие программы с графическим интерфейсом, которые не были портированы. Мне в основном нужно, чтобы ядро, базовая установка и инструменты сборки были в режиме X32, чтобы я мог тестировать свое программное обеспечение под X32.