LINUX.ORG.RU

Virtualbox не стартует на 64-битной машине

 ,


0

1

Есть 64-битная машина, на ней SuSE 11 x86-64, на ней VirtualBox 4.1.16 x86-64. При попытке запуска графического интерфейса Коробки получаю следующую ошибку:

VirtualBox: supR3HardenedMainGetTrustedMain: dlopen("/opt/VirtualBox/VirtualBox.so",) failed: /usr/lib64/libGL.so.1: undefined symbol: XDamageAdd

Погуглил, говорят, что в libGL этих функций и нет, а провайдятся они libXdamage.so. Смотрим:

$ ls -l /usr/lib64/libGL.so
lrwxrwxrwx 1 root root 21 Aug 27 11:13 /usr/lib64/libGL.so -> /usr/lib64/libGL.so.1
$ ls -l /usr/lib64/libXdamage.so
lrwxrwxrwx 1 root root 19 Apr 20  2010 /usr/lib64/libXdamage.so -> libXdamage.so.1.1.0
$ readelf -s /usr/lib64/libGL.so | grep -i xdamage
    28: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XDamageAdd
    79: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND XDamageQueryVersion
$ readelf -s /usr/lib64/libXdamage.so | grep -i xdamage
    19: 0000000000001370   268 FUNC    GLOBAL DEFAULT   12 XDamageCreate
    22: 0000000000000d60   701 FUNC    GLOBAL DEFAULT   12 XDamageFindDisplay
    23: 00000000000014e0    84 FUNC    GLOBAL DEFAULT   12 XDamageQueryExtension
    24: 0000000000001140   292 FUNC    GLOBAL DEFAULT   12 XDamageSubtract
    25: 0000000000001020   276 FUNC    GLOBAL DEFAULT   12 XDamageAdd
    27: 0000000000001716     7 OBJECT  GLOBAL DEFAULT   14 XDamageExtensionName
    30: 0000000000001270   252 FUNC    GLOBAL DEFAULT   12 XDamageDestroy
    31: 0000000000202080    24 OBJECT  GLOBAL DEFAULT   24 XDamageExtensionInfo
    32: 0000000000001480    84 FUNC    GLOBAL DEFAULT   12 XDamageQueryVersion
$ ldd /usr/lib64/libGL.so |grep libXdamage
	/usr/lib64/libXdamage.so.1 (0x00007fe94fc10000)
$ 

пробую насильно подсунуть VBox'у libXdamage через LD_PRELOAD - ноль эффекта. При этом на соседней 32-битной машине 32-битный VBox работает нормально.

Есть идеи, как приручить смутьяна?

★★★

Последнее исправление: marvin_yorke (всего исправлений: 1)

Может это неправильный libGL? Я не пробовал 4.1.16 - я после 4.0.15 обновился сразу до 4.2.0 RC2, пакеты для всех поддерживаемых дистрибутивов Linux есть.

Предлагаю попробовать VirtualBox OSE - RPM-ку из репозитория дистрибутива, либо релиз-кандидат 4.2.0.

ZenitharChampion ★★★★★
()
Ответ на: комментарий от ZenitharChampion

из репозитория и 4.2.0 в силу требований заказчика не катят. Пока что рочь идет именно о 4.1.16.
хотя 4.2 в принципе можно попробовать, но такая же фигня была и на одной из более ранних 4.1.x версий

А что с libGL может быть не так? он как раз из репов

marvin_yorke ★★★
() автор топика
Ответ на: комментарий от marvin_yorke

Его мог заменить проприетарный драйвер. Но я заметил, что устанавливаемый из RPM драйвер теперь распаковывает свой libGL в каталог /usr/X11R6.

ZenitharChampion ★★★★★
()
Ответ на: комментарий от no-dashi
# ldd /opt/VirtualBox/VirtualBox
	linux-vdso.so.1 =>  (0x00007fffba8b3000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6f0a0c5000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f6f09ec1000)
	libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f6f09bb5000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f6f0985c000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f6f0a2e1000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f6f09606000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6f093ee000)
# ldd /opt/VirtualBox/VirtualBox.so
	linux-vdso.so.1 =>  (0x00007fff416d5000)
	libXinerama.so.1 => /usr/X11R6/lib64/libXinerama.so.1 (0x00007f4185f27000)
	libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007f4185ca6000)
	VBoxVMM.so => /opt/VirtualBox/VBoxVMM.so (0x00007f41859e1000)
	VBoxKeyboard.so => /opt/VirtualBox/VBoxKeyboard.so (0x00007f41858d1000)
	VBoxRT.so => /opt/VirtualBox/VBoxRT.so (0x00007f41853ff000)
	libXcursor.so.1 => /usr/X11R6/lib64/libXcursor.so.1 (0x00007f41852f5000)
	libXext.so.6 => /usr/X11R6/lib64/libXext.so.6 (0x00007f41851e4000)
	libX11.so.6 => /usr/X11R6/lib64/libX11.so.6 (0x00007f4184fd5000)
	VBoxXPCOM.so => /opt/VirtualBox/VBoxXPCOM.so (0x00007f4184d72000)
	libQtCoreVBox.so.4 => /opt/VirtualBox/libQtCoreVBox.so.4 (0x00007f41848f3000)
	libQtGuiVBox.so.4 => /opt/VirtualBox/libQtGuiVBox.so.4 (0x00007f4183b46000)
	libQtNetworkVBox.so.4 => /opt/VirtualBox/libQtNetworkVBox.so.4 (0x00007f41838fc000)
	libQtOpenGLVBox.so.4 => /opt/VirtualBox/libQtOpenGLVBox.so.4 (0x00007f41836df000)
	libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007f4183440000)
	libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f4183134000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f4182ede000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f4182cc5000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f418296c000)
	libXxf86vm.so.1 => /usr/X11R6/lib64/libXxf86vm.so.1 (0x00007f4182867000)
	libXdamage.so.1 => /usr/X11R6/lib64/libXdamage.so.1 (0x00007f4182764000)
	libXfixes.so.3 => /usr/X11R6/lib64/libXfixes.so.3 (0x00007f418265f000)
	libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x00007f4182456000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4182239000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f4182035000)
	VBoxREM.so => /opt/VirtualBox/VBoxREM.so (0x00007f4181e07000)
	libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f4181bc9000)
	libz.so.1 => /lib64/libz.so.1 (0x00007f41819b3000)
	librt.so.1 => /lib64/librt.so.1 (0x00007f41817aa000)
	libXrender.so.1 => /usr/X11R6/lib64/libXrender.so.1 (0x00007f41816a0000)
	libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f418146e000)
	libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007f4181269000)
	libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f4180fa3000)
	libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f4180d1e000)
	libSM.so.6 => /usr/X11R6/lib64/libSM.so.6 (0x00007f4180c14000)
	libICE.so.6 => /usr/X11R6/lib64/libICE.so.6 (0x00007f4180af8000)
	libXrandr.so.2 => /usr/X11R6/lib64/libXrandr.so.2 (0x00007f41809f5000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f4186812000)
	libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f41807ca000)
	libpcre.so.0 => /usr/lib64/libpcre.so.0 (0x00007f418059a000)
marvin_yorke ★★★
() автор топика

получилось запустить от рута с LD_PRELOAD=/usr/lib64/libXdamage.so
от пользователя по-прежнему не работает. Права на либы вроде есть

marvin_yorke ★★★
() автор топика
Ответ на: комментарий от marvin_yorke

libXdamage.so.1 => /usr/X11R6/lib64/libXdamage.so.1 (0x00007f4182764000)
LD_PRELOAD=/usr/lib64/libXdamage.so

Ничего странного не замечаешь? Это какие-то очень уж пути к бибилиотеке...

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

это я походу с LD_LIBRARY_PATH баловался. Вот листинг с чистой консоли

// 64-bit host

$ echo $LD_LIBRARY_PATH
/home/pub/suse_64/lib:/usr/local/lib:/home/pub/suse_64/lib:/usr/local/lib

# ldd /opt/VirtualBox/VirtualBox
	linux-vdso.so.1 =>  (0x00007fffb4fff000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5d767d5000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f5d765d1000)
	libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f5d762c5000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f5d75f6c000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f5d769f1000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f5d75d16000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f5d75afe000)
# ldd /opt/VirtualBox/VirtualBox.so
	linux-vdso.so.1 =>  (0x00007fff5f3d6000)
	libXinerama.so.1 => /usr/X11R6/lib64/libXinerama.so.1 (0x00007f6ca5071000)
	libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007f6ca4df0000)
	VBoxVMM.so => /opt/VirtualBox/VBoxVMM.so (0x00007f6ca4b2b000)
	VBoxKeyboard.so => /opt/VirtualBox/VBoxKeyboard.so (0x00007f6ca4a1b000)
	VBoxRT.so => /opt/VirtualBox/VBoxRT.so (0x00007f6ca4549000)
	libXcursor.so.1 => /usr/X11R6/lib64/libXcursor.so.1 (0x00007f6ca443f000)
	libXext.so.6 => /usr/X11R6/lib64/libXext.so.6 (0x00007f6ca432e000)
	libX11.so.6 => /usr/X11R6/lib64/libX11.so.6 (0x00007f6ca411f000)
	VBoxXPCOM.so => /opt/VirtualBox/VBoxXPCOM.so (0x00007f6ca3ebc000)
	libQtCoreVBox.so.4 => /opt/VirtualBox/libQtCoreVBox.so.4 (0x00007f6ca3a3d000)
	libQtGuiVBox.so.4 => /opt/VirtualBox/libQtGuiVBox.so.4 (0x00007f6ca2c90000)
	libQtNetworkVBox.so.4 => /opt/VirtualBox/libQtNetworkVBox.so.4 (0x00007f6ca2a46000)
	libQtOpenGLVBox.so.4 => /opt/VirtualBox/libQtOpenGLVBox.so.4 (0x00007f6ca2829000)
	libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007f6ca258a000)
	libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f6ca227e000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f6ca2028000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6ca1e0f000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f6ca1ab6000)
	libXxf86vm.so.1 => /usr/X11R6/lib64/libXxf86vm.so.1 (0x00007f6ca19b1000)
	libXdamage.so.1 => /usr/X11R6/lib64/libXdamage.so.1 (0x00007f6ca18ae000)
	libXfixes.so.3 => /usr/X11R6/lib64/libXfixes.so.3 (0x00007f6ca17a9000)
	libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x00007f6ca15a0000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6ca1383000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f6ca117f000)
	VBoxREM.so => /opt/VirtualBox/VBoxREM.so (0x00007f6ca0f51000)
	libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f6ca0d13000)
	libz.so.1 => /lib64/libz.so.1 (0x00007f6ca0afd000)
	librt.so.1 => /lib64/librt.so.1 (0x00007f6ca08f4000)
	libXrender.so.1 => /usr/X11R6/lib64/libXrender.so.1 (0x00007f6ca07ea000)
	libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f6ca05b8000)
	libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007f6ca03b3000)
	libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f6ca00ed000)
	libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f6c9fe68000)
	libSM.so.6 => /usr/X11R6/lib64/libSM.so.6 (0x00007f6c9fd5e000)
	libICE.so.6 => /usr/X11R6/lib64/libICE.so.6 (0x00007f6c9fc42000)
	libXrandr.so.2 => /usr/X11R6/lib64/libXrandr.so.2 (0x00007f6c9fb3f000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f6ca595c000)
	libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f6c9f914000)
	libpcre.so.0 => /usr/lib64/libpcre.so.0 (0x00007f6c9f6e4000)
# virtualbox
VirtualBox: supR3HardenedMainGetTrustedMain: dlopen("/opt/VirtualBox/VirtualBox.so",) failed: /usr/lib64/libGL.so.1: undefined symbol: XDamageAdd
# setenv LD_PRELOAD /usr/lib64/libXdamage.so.1
libXdamage.so.1@     libXdamage.so.1.1.0* 
# setenv LD_PRELOAD /usr/lib64/libXdamage.so.1.1.0 
# virtualbox
# ldd /opt/VirtualBox/VirtualBox.so |grep Xdam
         libXdamage.so.1 => /usr/lib64/libXdamage.so.1.1.0 (0x00007f6246ed9000)
# 

$ virtualbox
VirtualBox: supR3HardenedMainGetTrustedMain: dlopen("/opt/VirtualBox/VirtualBox.so",) failed: /usr/lib64/libGL.so.1: undefined symbol: XDamageAdd
$ setenv LD_PRELOAD /usr/lib64/libXdamage.so.1.1.0 
$ virtualbox
VirtualBox: supR3HardenedMainGetTrustedMain: dlopen("/opt/VirtualBox/VirtualBox.so",) failed: /usr/lib64/libGL.so.1: undefined symbol: XDamageAdd
$

// для сравнения 32-bit host

# ldd /opt/VirtualBox/VirtualBox
	linux-gate.so.1 =>  (0xffffe000)
	libpthread.so.0 => /lib/libpthread.so.0 (0xb7888000)
	libdl.so.2 => /lib/libdl.so.2 (0xb7883000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb778f000)
	libc.so.6 => /lib/libc.so.6 (0xb7633000)
	/lib/ld-linux.so.2 (0xb78d8000)
	libm.so.6 => /lib/libm.so.6 (0xb7609000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb75fa000)
# ldd /opt/VirtualBox/VirtualBox.so
	linux-gate.so.1 =>  (0xffffe000)
	libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb71f2000)
	libGL.so.1 => /usr/lib/libGL.so.1 (0xb717d000)
	VBoxVMM.so => /opt/VirtualBox/VBoxVMM.so (0xb6fbe000)
	VBoxKeyboard.so => /opt/VirtualBox/VBoxKeyboard.so (0xb6fb0000)
	VBoxRT.so => /opt/VirtualBox/VBoxRT.so (0xb6c8f000)
	libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb6c84000)
	libXext.so.6 => /usr/lib/libXext.so.6 (0xb6c73000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0xb6b40000)
	VBoxXPCOM.so => /opt/VirtualBox/VBoxXPCOM.so (0xb6a14000)
	libQtCoreVBox.so.4 => /opt/VirtualBox/libQtCoreVBox.so.4 (0xb66c3000)
	libQtGuiVBox.so.4 => /opt/VirtualBox/libQtGuiVBox.so.4 (0xb5aeb000)
	libQtNetworkVBox.so.4 => /opt/VirtualBox/libQtNetworkVBox.so.4 (0xb59b8000)
	libQtOpenGLVBox.so.4 => /opt/VirtualBox/libQtOpenGLVBox.so.4 (0xb58a9000)
	libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0xb5808000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb5714000)
	libm.so.6 => /lib/libm.so.6 (0xb56ea000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb56db000)
	libc.so.6 => /lib/libc.so.6 (0xb557f000)
	libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0xb5579000)
	libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb5575000)
	libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb556f000)
	libdrm.so.2 => /usr/lib/libdrm.so.2 (0xb5564000)
	libpthread.so.0 => /lib/libpthread.so.0 (0xb554a000)
	libdl.so.2 => /lib/libdl.so.2 (0xb5545000)
	VBoxREM.so => /opt/VirtualBox/VBoxREM.so (0xb5542000)
	libcrypt.so.1 => /lib/libcrypt.so.1 (0xb550b000)
	libz.so.1 => /lib/libz.so.1 (0xb54f5000)
	librt.so.1 => /lib/librt.so.1 (0xb54eb000)
	libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb54e1000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0xb54dd000)
	libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xb54da000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb54bb000)
	libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb548a000)
	libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb5484000)
	libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb53bf000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb533f000)
	libSM.so.6 => /usr/lib/libSM.so.6 (0xb5335000)
	libICE.so.6 => /usr/lib/libICE.so.6 (0xb531a000)
	/lib/ld-linux.so.2 (0xb7804000)
	libexpat.so.1 => /lib/libexpat.so.1 (0xb52f2000)
	libpcre.so.0 => /usr/lib/libpcre.so.0 (0xb52bf000)
	libuuid.so.1 => /lib/libuuid.so.1 (0xb52b8000)

$ echo $LD_LIBRARY_PATH
/home/pub/suse/lib:/usr/local/lib:/home/pub/suse/lib:/usr/local/lib

откуда X11R6 вылезает на 64-битной я что-то не очень понимаю. Или есть еще какая-то опция наподобие LD_LIBRARY_PATH?

marvin_yorke ★★★
() автор топика
Ответ на: комментарий от marvin_yorke

У тебя явственные проблемы с бибилиотеками в системе. libXdamage (для одной архитектуры) должен быть один, в одном месте.

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

действительно, проверил еще одну 64-битную тачку - там барахла в /usr/X11R6/{lib,lib64} нет. Но дифф по списку установленных пакетов вроде бы ничего подозрительного не показывает, а yum provides */libXdamage* показывает только файлы в /usr/{lib,lib64}/

По дате создания файлов в /usr/X11R6/{lib,lib64} в логах ничего нет. Есть идеи, как отловить, откуда эти файлы происходят?

marvin_yorke ★★★
() автор топика
Ответ на: комментарий от no-dashi

сработало, спасибо! понять бы теперь еще, кто их туда напихал, и не поломало ли то, что я их выкинул, что-то еще

marvin_yorke ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.