Сборка VirtualBox v5.2.42 (32bit) на Debian 10 (Buster) x86 (i686) платформе

archive view archive save

virtualbox-logo, jpg "Оракля" забастовала и прекратила собирать "дистры" для юзеров x86 платформ, прога VirtualBox 32bit также вылетела из репозитория Debian Buster, а взамен предлагается юзать KVM.

Однако, на железе не поддерживающем аппаратную виртуализацию KVM будет ехать точно так же, как едут лыжи по асфальту. Для примера, установка Debian на QEMU (так как полноценное KVM не поддерживается) в текстовом режиме (ака "Low memory mode") продолжалась целую ночь с вечера до утра и так не закончилась - зависла собака нахрен. Примерно тот же результат был получен при попытке установить Debian на QEMU в т.н. "standalone" режиме - т.е. без использования "virt-manager" и прямым запуском эмулятора /usr/bin/qemu-system-i386. Установка же Debian на VirtualBox занимала +- один час с включая "перекуры" на другие задачи.

Итак, пользователи 32bit-ных VirtualBox-ов посланы нахрен, а кого что не устраивает мол берите и "собирайте" сами. Компиляция VirtualBox v5.2.42 на Debian Buster x86 (i686) заняла несколько часов не учитывая времени потраченного на лечение "геморра" в виде ошибок "error: unsupported size for integer register" и т.п., что при любых раскладах вышло быстрее нежели установки Debian на QEMU.

Глядя на то, как один за одним разработчики прекращают поддержку х32/x86 (i686) платформ, можно предположить полное её отмирание в ближайшем будущем.

Компиляция VirtualBox v5.2.42 (32bit) в Debian 10 (Buster)

virtualbox-32bit-on-debian-buster-x86_1, jpg

Описание сборки приведено на странице:

  • Linux build instructions – Oracle VM VirtualBox
    https://www.virtualbox.org/wiki/Linux%20build%20instructions
apt-get install acpica-tools chrpath doxygen g++-multilib libasound2-dev libcap-dev libcurl4-openssl-dev libdevmapper-dev libidl-dev libopus-dev libpam0g-dev libpulse-dev libqt5opengl5-dev libqt5x11extras5-dev libsdl1.2-dev libsdl-ttf2.0-dev libssl-dev libvpx-dev libxcursor-dev libxinerama-dev libxml2-dev libxml2-utils libxmu-dev libxrandr-dev make nasm python3-dev python-dev qttools5-dev-tools texlive texlive-fonts-extra texlive-latex-extra unzip xsltproc default-jdk libstdc++5 libxslt1-dev linux-kernel-headers makeself mesa-common-dev subversion yasm zlib1g-dev pylint python3-psycopg2 python-psycopg2 python-pil
 
mkdir ~/opt
cd ~/opt
wget http://download.virtualbox.org/virtualbox/5.2.42/VirtualBox-5.2.42.tar.bz2
tar -xf VirtualBox-5.2.42.tar.bz2 && rm -rf VirtualBox-5.2.42.tar.bz2 && cd VirtualBox-5.2.42
 
./configure --disable-java --disable-hardening
Checking for environment: Determined build machine: linux.x86, target machine: linux.x86, OK.
Checking for kBuild: found, OK.
Checking for gcc: found version 8.3.0, OK.
Checking for Open Watcom:
  ** Open Watcom was not found, using alternative BIOS sources!
Checking for iasl: found version 20181213, OK.
Checking for xslt: found, OK.
Checking for pthread: found, OK.
Checking for libxml2: found version 2.9.9, OK.
Checking for libIDL: found version 0.8.14, OK.
Checking for ssl: found version OpenSSL 1.1.1g  21 Apr 2020, OK.
Checking for libcurl: found version 7.64.0, OK.
Checking for libvpx: found version 1.8.1, OK.
Checking for libopus: found, OK.
Checking for zlib: found version 1.2.11, OK.
Checking for libpng: found version 1.6.36, OK.
Checking for SDL: found version 1.2.15, OK.
Checking for X libraries: found, OK.
Checking for Xcursor: found, OK.
Checking for Xinerama: found, OK.
Checking for Xrandr: found, OK.
Checking for Xmu: found, OK.
Checking for Mesa / GLU: found version 1.4, OK.
Checking for Qt5: found version 5.11.3, OK.
Checking for Qt5 devtools: found version moc 5.11.3, OK.
Checking for Python support: found version 2.7.16, OK.
Checking for PulseAudio: found version 12.2.0 API version 12, OK.
Checking for static stc++ library: found, OK.
Checking for Linux kernel sources: found version 4.19.118, OK.
Checking for ALSA: found version 1.1.8, OK.
Checking for libdevmapper: found version 1.02.155 (2018-12-18), OK.
Checking for libcap library: found, OK.
Checking for compiler.h: compiler.h not found, OK.
Checking for makeself: found version 2.4.0, OK.
 
Successfully generated '/home/user/opt/VirtualBox-5.2.42/AutoConfig.kmk' and '/home/user/opt/VirtualBox-5.2.42/env.sh'.
Source '/home/user/opt/VirtualBox-5.2.42/env.sh' once before you start to build VBox:
 
  source /home/user/opt/VirtualBox-5.2.42/env.sh
  kmk
 
To compile the kernel modules, do:
 
  cd ./out/linux.x86/release/bin/src
  make
 
 
  +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++
  Hardening is disabled. Please do NOT build packages for distribution with
  disabled hardening!
  +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++
 
Enjoy!
 
source /home/user/opt/VirtualBox-5.2.42/env.sh
kmk all
cd ./out/linux.x86/release/bin/src
make
 
su
make install
make[1]: вход в каталог «/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxdrv»
make V= CONFIG_MODULE_SIG= CONFIG_MODULE_SIG_ALL= -C /lib/modules/4.19.0-9-686/build M=/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxdrv SRCROOT=/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxdrv -j1 modules
make[2]: вход в каталог «/usr/src/linux-headers-4.19.0-9-686»
  Building modules, stage 2.
  MODPOST 1 modules
make[2]: выход из каталога «/usr/src/linux-headers-4.19.0-9-686»
make V= CONFIG_MODULE_SIG= CONFIG_MODULE_SIG_ALL= -C /lib/modules/4.19.0-9-686/build M=/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxdrv SRCROOT=/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxdrv INSTALL_MOD_PATH= INSTALL_MOD_DIR=misc modules_install
make[2]: вход в каталог «/usr/src/linux-headers-4.19.0-9-686»
  INSTALL /home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxdrv/vboxdrv.ko
  DEPMOD  4.19.0-9-686
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[2]: выход из каталога «/usr/src/linux-headers-4.19.0-9-686»
make[1]: выход из каталога «/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxdrv»
make[1]: вход в каталог «/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxnetflt»
make V= CONFIG_MODULE_SIG= CONFIG_MODULE_SIG_ALL= -C /lib/modules/4.19.0-9-686/build M=/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxnetflt SRCROOT=/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxnetflt -j1 modules
make[2]: вход в каталог «/usr/src/linux-headers-4.19.0-9-686»
  Building modules, stage 2.
  MODPOST 1 modules
make[2]: выход из каталога «/usr/src/linux-headers-4.19.0-9-686»
make V= CONFIG_MODULE_SIG= CONFIG_MODULE_SIG_ALL= -C /lib/modules/4.19.0-9-686/build M=/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxnetflt SRCROOT=/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxnetflt INSTALL_MOD_PATH= INSTALL_MOD_DIR=misc modules_install
make[2]: вход в каталог «/usr/src/linux-headers-4.19.0-9-686»
  INSTALL /home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxnetflt/vboxnetflt.ko
  DEPMOD  4.19.0-9-686
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[2]: выход из каталога «/usr/src/linux-headers-4.19.0-9-686»
make[1]: выход из каталога «/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxnetflt»
make[1]: вход в каталог «/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxnetadp»
make V= CONFIG_MODULE_SIG= CONFIG_MODULE_SIG_ALL= -C /lib/modules/4.19.0-9-686/build M=/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxnetadp SRCROOT=/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxnetadp -j1 modules
make[2]: вход в каталог «/usr/src/linux-headers-4.19.0-9-686»
  Building modules, stage 2.
  MODPOST 1 modules
make[2]: выход из каталога «/usr/src/linux-headers-4.19.0-9-686»
make V= CONFIG_MODULE_SIG= CONFIG_MODULE_SIG_ALL= -C /lib/modules/4.19.0-9-686/build M=/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxnetadp SRCROOT=/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxnetadp INSTALL_MOD_PATH= INSTALL_MOD_DIR=misc modules_install
make[2]: вход в каталог «/usr/src/linux-headers-4.19.0-9-686»
  INSTALL /home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxnetadp/vboxnetadp.ko
  DEPMOD  4.19.0-9-686
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[2]: выход из каталога «/usr/src/linux-headers-4.19.0-9-686»
make[1]: выход из каталога «/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxnetadp»
make[1]: вход в каталог «/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxpci»
make V= CONFIG_MODULE_SIG= CONFIG_MODULE_SIG_ALL= -C /lib/modules/4.19.0-9-686/build M=/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxpci SRCROOT=/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxpci -j1 modules
make[2]: вход в каталог «/usr/src/linux-headers-4.19.0-9-686»
  Building modules, stage 2.
  MODPOST 1 modules
make[2]: выход из каталога «/usr/src/linux-headers-4.19.0-9-686»
make V= CONFIG_MODULE_SIG= CONFIG_MODULE_SIG_ALL= -C /lib/modules/4.19.0-9-686/build M=/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxpci SRCROOT=/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxpci INSTALL_MOD_PATH= INSTALL_MOD_DIR=misc modules_install
make[2]: вход в каталог «/usr/src/linux-headers-4.19.0-9-686»
  INSTALL /home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxpci/vboxpci.ko
  DEPMOD  4.19.0-9-686
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[2]: выход из каталога «/usr/src/linux-headers-4.19.0-9-686»
make[1]: выход из каталога «/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/src/vboxpci»

По идее на этом должен наступить "Enjoy!", для чего достаточно просто запустить файл "/home/user/opt/VirtualBox-5.2.42/out/linux.x86/release/bin/VirtualBox", да "сталося не так як гадалося"...

Проблемы сборки VirtualBox 5.2.42 на Linux x86

error: unsupported size for integer register

Первая попытка сборки VirtualBox на x86 (i686) Debian 10 (Buster) закончилась ошибкой "error: unsupported size for integer register":

# kmk all
...
kBuild: Compiling tstRTMemEf - /opt/src/VirtualBox-5.2.42/src/VBox/Runtime/testcase/tstRTMemEf.cpp
/opt/src/VirtualBox-5.2.42/src/VBox/Runtime/testcase/tstRTMemEf.cpp: In function ‘int main()’:
/opt/src/VirtualBox-5.2.42/src/VBox/Runtime/testcase/tstRTMemEf.cpp:84:1: error: unsupported size for integer register
 }
 ^
/opt/src/VirtualBox-5.2.42/include/iprt/asm.h: Сообщения ассемблера:
/opt/src/VirtualBox-5.2.42/include/iprt/asm.h:4134: Ошибка: плохое имя регистра: «%sil»
kmk: *** [/opt/src/VirtualBox-5.2.42/kBuild/footer-pass2-compiling-targets.kmk:277: /opt/src/VirtualBox-5.2.42/out/linux.x86/release/obj/tstRTMemEf/tstRTMemEf.o] Error 1
The failing command:
@g++ -c -O2 -g -pipe -pedantic -Wshadow -Wall -Wextra -Wno-missing-field-initializers -Wno-unused -Wno-trigraphs -fdiagnostics-show-option -Wno-unused-parameter     -Wlogical-op   -Wno-variadic-macros -Wno-long-long -Wunused-variable -Wunused-function -Wunused-label -Wunused-parameter  -Wno-overloaded-virtual -Wno-array-bounds -Wno-ignored-qualifiers -Wno-variadic-macros -march=i586 -O2 -mtune=generic -fno-omit-frame-pointer -fno-strict-aliasing -fvisibility=hidden -DVBOX_HAVE_VISIBILITY_HIDDEN -DRT_USE_VISIBILITY_DEFAULT -fvisibility-inlines-hidden   -m32 -I/opt/src/VirtualBox-5.2.42/out/linux.x86/release/obj/tstRTMemEf/dtrace -I/opt/src/VirtualBox-5.2.42/include -I/opt/src/VirtualBox-5.2.42/out/linux.x86/release -DVBOX -DVBOX_OSE -DVBOX_WITH_64_BITS_GUESTS -DRT_OS_LINUX -D_FILE_OFFSET_BITS=64 -DRT_ARCH_X86 -D__X86__ -DVBOX_WITH_DEBUGGER -DIN_RING3 -DGC_ARCH_BITS=64 -DVBOX_WITH_DTRACE -DVBOX_WITH_DTRACE_R3 -DHC_ARCH_BITS=32 -Wp,-MD,/opt/src/VirtualBox-5.2.42/out/linux.x86/release/obj/tstRTMemEf/tstRTMemEf.o.dep -Wp,-MT,/opt/src/VirtualBox-5.2.42/out/linux.x86/release/obj/tstRTMemEf/tstRTMemEf.o -Wp,-MP -o /opt/src/VirtualBox-5.2.42/out/linux.x86/release/obj/tstRTMemEf/tstRTMemEf.o  /opt/src/VirtualBox-5.2.42/src/VBox/Runtime/testcase/tstRTMemEf.cpp

Проблема у GCC с использованием регистров на платформах x86, ниже по тексту о том, как оно лечится.

Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!

modprobe: FATAL: Module vboxdrv not found

modprobe vboxdrv
modprobe: FATAL: Module vboxdrv not found in directory /lib/modules/4.19.0-9-686

Проблема в том, что по умолчанию драйвера были установлены в директорию "INSTALL_MOD_DIR=misc", в данном случае "/lib/modules/4.19.0-9-686/misc/", которая в системный путь поиска не входит. Вылечить можно двумя способами.

Способ №1:

Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!

Способ №2:

Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!

VirtualBox kernel driver not accessible

Не удалось открыть сессию для виртуальной машины WindowsXP.

The virtual machine 'WindowsXP' has terminated unexpectedly during startup with exit code 1 (0x1).

Код ошибки: NS_ERROR_FAILURE (0x80004005)
Компонент: MachineWrap
Интерфейс: IMachine {85cd948e-a71f-4289-281e-0ca7ad48cd89}

Лечим следующим образом:

Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!


Нет комментариев

Вы можете стать первым, кто добавит комментарий к этой записи.

Добавить комментарий

АХТУНГ! Все комменты гостей модерасятся модерастом.
  1. Мессаги исключительно рекламного содержания, либо содержащие только одни оценочные суждения типа "круто" ("отлично", "спасибо", "автор дебил" и т.п.) не публикуются;
  2. Злостным спамерам, пранкерам и прочей сетевой нечисти рекомендуем напрасно не тратить своего времени и удовлетворять свои больные фантазии на специализированных Интернет ресурсах!;
  3. Разумная обоснованная критика, замечания, дополнения приветствуются. Поля помеченные символом * обязательны к заполнению.


Защитный код
Обновить

Комментарии в блоге
Новое на форуме