Було трохи вільного часу і я вирішив погратись з Windows XP в останньому Virtualbox 6.1.26 і виявив що з нього прибрали реалізацію Direct3D! По форумам знайшов багато порад про 256MB ОЗУ для відео і маркнутий чекбокс "3d accelerated" і тд. Все спробував але нічого не працювало.
На одному з старих бордів була знайдена корисна інформація, що у версії 5.1.38 ця фіча працює. Тож я не вагаючись зніс нову версію і встановив стару з deb пакетів.

$ sudo apt purge virtualbox
$ wget https://download.virtualbox.org/virtualbox/5.1.38/virtualbox-5.1_5.1.38-122592~Ubuntu~bionic_amd64.deb
$ wget http://security.ubuntu.com/ubuntu/pool/main/libv/libvpx/libvpx5_1.7.0-3ubuntu0.18.04.1_amd64.deb
$ sudo dpkg -i virtualbox-5.1_5.1.38-122592~Ubuntu~bionic_amd64.deb 
$ sudo dpkg -i libvpx5_1.7.0-3ubuntu0.18.04.1_amd64.deb 
$ sudo dpkg -i virtualbox-5.1_5.1.38-122592~Ubuntu~bionic_amd64.deb

Воно встановилось, але з помилками. Декількох пакетів не вистачало.

 /bin/sh: 1: flex: not found
 /bin/sh: 1: bison: not found

Добре, не проблема. Ставлю з реп.

$ sudo apt install flex bison

Наступка проблема з похибкою в архітектурі процессора:

make[2]: *** No rule to make target 'arch/x86/entry/syscalls/syscall_32.tbl', needed by 'arch/x86/include/generated/uapi/asm/unistd_32.h'.  Stop.

Це була остання зупинка експериментів. Я вирішив повернути все як було. І з цього моменту починається пригода!

$ sudo apt install virtualbox

systemd[1]: Starting LSB: VirtualBox Linux kernel module...
virtualbox[6676]:  * Loading VirtualBox kernel modules...
virtualbox[6676]:  * modprobe vboxdrv failed. Please use 'dmesg' to find out why

When trying to start the VM it displays the info window:
Kernel driver not installed (rc=-1908)
The VirtualBox Linux kernel driver is either not loaded or not set up correctly. Please try setting it up again by executing

Перевіряю чи підвантажився модуль virtualbox в ядро:

$ lsmod | grep vbox

Модулів нема. Роблю реконфіг, що видаляє і компілює модуль під мій проц. Всі операції успішні, запевняє мене dkms.

$ sudo dpkg-reconfigure virtualbox-dkms

Але модуль не завантажується в ядро програмою modprobe:

$ sudo modprobe vboxdrv
modprobe: ERROR: could not insert 'vboxdrv': Exec format error

Якщо я вірно зрозумів корінь проблему, то він заключається якраз таки в базі на процессі компіляції.
Можливо різниця в версіях gcc, diff kernel і інших. Для перевірик версій використав наступні команди:

$ cat /proc/version
Linux version 5.13.0-22-generic (buildd@lgw01-amd64-012) (gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0, GNU ld (GNU Binutils for Ubuntu) 2.37) #22-Ubuntu SMP Fri Nov 5 13:21:36 UTC 2021
$ gcc --version
gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Всі вставлені версії збігаються з тими, якими компілювалось ядро. Я спробував компілювати за допомогою gcc-10 через команду update-alternatives, але все марно.
Доречі, перевірити інфо по модулю можно командою modinfo:

$ sudo modinfo vboxdrv
filename:       /lib/modules/5.13.0-22-generic/updates/dkms/vboxdrv.ko
version:        6.1.26_Ubuntu r145957 (0x00300000)
license:        GPL
description:    Oracle VM VirtualBox Support Driver
author:         Oracle Corporation
srcversion:     384D5079D63E907132614A5
depends:        
retpoline:      Y
name:           vboxdrv
vermagic:       5.13.0-22-generic SMP mod_unload modversions 
sig_id:         PKCS#7
signer:         XXX
sig_key:        61:25:97:55:99:82:F9:F4:77:EB:FF:51:E0:22:4C:F8:9F:57:A0:E1
sig_hashalgo:   sha512
signature:      XXXX
parm:           force_async_tsc:force the asynchronous TSC mode (int)

Настрій був зіпсований згаяними декількома годинами на ці пошуки і експериментию. Я почав втрачати здоровий глузд.
Наостанок я вирішив перевстановити заголовки поточного ядра. І ЦЕ СПРАЦЮВАЛО.

$ sudo apt install --reinstall linux-headers-$(uname -r) 
$ sudo dpkg-reconfigure virtualbox-dkms 
$ sudo modprobe vboxdrv

Після цього модулі були успішно завантажені в ядро і віртуалки запрацювали знову. АЛЕ, без підтримки Direct3D у WinXP.

Коментувати

Вміст цього поля є приватним і не буде доступний широкому загалу.
  • Не дозволено жодних HTML теґів.
 dP     dP   d88888P   888888ba   d8888b.         dP 
88 88 d8' 88 `8b `88 88
88aaaaa88a d8' a88aaaa8P' aaad8' 88
88 88 d8' 88 `8b. `88 88
88 88 d8' 88 .88 .88 88. .d8P
dP dP d8' 88888888P d88888P `Y8888'

Уведіть код, зображений у стилі Ascii-Арт.