Собственная виртуальная машина Debian X32?

369
jww

Я пытаюсь настроить собственную виртуальную машину Debian X32. Обратите внимание, что X32 отличается от X86 и X64. Подробности см. В разделе Разница между архитектурами x86, x32 и x64? Переполнение стека. Некоторые другие дистрибутивы, такие как 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 для X32-портов говорит мне, что следующим шагом является настройка chroot QEMU. Я хочу, чтобы избежать chroot QEMU и превратить его в родную установку 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.

0
https://en.wikipedia.org/wiki/X32_AB Я оставляю эту ссылку здесь, так как я запутался. https://bugs.debian.org/cgi-bin/pkgreport.cgi?users=debian-x32@lists.debian.org;tag=di-x32, по-видимому, предполагает, что некоторые из вещей, которые вам нужны для прямого запуска x32, могут пока не поддерживается, как загрузчик. Journeyman Geek 8 лет назад 1
Спасибо, Путешественник. * "x32 еще не поддерживается, как загрузчик ..." * - Хорошо, спасибо. Я не уверен, что это проблема на практике, потому что мы можем загрузить ядро ​​с помощью *** `syscall.x32 = y` ***. Я нашел его пользовательское пространство, которое вызывает боль, как компилятор. jww 8 лет назад 0

0 ответов на вопрос