Problems with VirtualBox 5.1.4 in Solaris 11.3 non-global zone

Discussions related to using VirtualBox on Solaris hosts.

Problems with VirtualBox 5.1.4 in Solaris 11.3 non-global zone

Postby vi_sjo » 4. Sep 2016, 16:02

Hi all

Having some issues running VBoxManage from within a non-global zone. Some background:

Reasonably fresh install of Solaris 11.3 amd64:

Code: Select all   Expand viewCollapse view
root@wedge:/# uname -a
SunOS wedge 5.11 11.3 i86pc i386 i86pc


Two zones running. Global and one non-global zone:

Code: Select all   Expand viewCollapse view
root@wedge:/root# zoneadm list -iv
  ID NAME             STATUS      PATH                         BRAND      IP
   0 global           running     /                            solaris    shared
   6 enterprise       running     /tank/zones/enterprise       solaris    excl


And the config for the 'enterprise' zone. You will see there are a few lofs parameters (including a test one for /opt/VirtualBox):

Code: Select all   Expand viewCollapse view
root@wedge:/root# zonecfg -z enterprise info
zonename: enterprise
zonepath: /tank/zones/enterprise
brand: solaris
autoboot: true
autoshutdown: shutdown
bootargs:
file-mac-profile:
pool:
limitpriv:
scheduling-class:
ip-type: exclusive
hostid:
tenant:
fs-allowed:
fs:
        dir: /virtualmachines
        special: /tank/virtualmachines
        raw not specified
        type: lofs
        options: []
fs:
        dir: /iso
        special: /tank/software/iso
        raw not specified
        type: lofs
        options: []
fs:
        dir: /opt/VirtualBox
        special: /opt/VirtualBox
        raw not specified
        type: lofs
        options: []
anet:
        linkname: net0
        lower-link: auto
        allowed-address not specified
        configure-allowed-address: true
        defrouter not specified
        allowed-dhcp-cids not specified
        link-protection: mac-nospoof
        mac-address: auto
        auto-mac-address: 2:8:20:63:cd:a8
        mac-prefix not specified
        mac-slot not specified
        vlan-id not specified
        priority not specified
        rxrings not specified
        txrings not specified
        mtu not specified
        maxbw not specified
        bwshare not specified
        rxfanout not specified
        vsi-typeid not specified
        vsi-vers not specified
        vsi-mgrid not specified
        etsbw-lcl not specified
        cos not specified
        pkey not specified
        linkmode not specified
        evs not specified
        vport not specified
device:
        match: /dev/vboxdrv
        storage not specified
        allow-partition not specified
        allow-raw-io not specified
device:
        match: /dev/vboxdrvu
        storage not specified
        allow-partition not specified
        allow-raw-io not specified



So got to this point loosely by following the instructions (section 2.4.1)..

However, the docs are a bit confusing..

It states:
The installation must be performed as root and from the global zone as the VirtualBox installer loads kernel drivers which cannot be done from non-global zones.

however then below in the green box
If you are using Solaris Zones, to install VirtualBox only into the current zone and not into any other zone, use pkgadd -G.


On the second note, apparently with pkgadd, the -G option has been deprecated so this doesn't appear supported.

I have installed VirtualBox as per the docs:

Code: Select all   Expand viewCollapse view
pkgadd -d VirtualBox-5.1.4-SunOS-amd64-r110228.pkg


This has been done in both the global and non-global zone as I couldn't seem to find a way to only install it in the non-global zone.

VBoxManage works fine from the global zone. It does not from the non-global zone, here is an example:

Code: Select all   Expand viewCollapse view
root@enterprise:/# /opt/VirtualBox/VBoxManage list vms
ld.so.1: VBoxManage: fatal: relocation error: file /opt/VirtualBox/amd64/components/VBoxXPCOMIPCC.so: symbol _ZNSt15_List_node_base7_M_hookEPS_: referenced symbol not found
Killed


There was another library issue before (from within the non-global zone only) which was resolved with:

Code: Select all   Expand viewCollapse view
crle -64 -u -l /usr/sfw/lib/amd64
crle -u -l /usr/sfw/lib



So now a bit stuck. I don't remember having these issues a couple of years ago with a Solaris 11.0 box I set up in a similar way, but maybe i've forgotten since then.


Can anyone help please with getting this working? Or at least identifying if there is a genuine problem outside of PEBKAC.

Thanks in advance
vi_sjo
 
Posts: 3
Joined: 4. Sep 2016, 15:41

Re: Problems with VirtualBox 5.1.4 in Solaris 11.3 non-global zone

Postby vi_sjo » 7. Sep 2016, 14:09

No ideas folks?

Maybe I should log as a bug.
vi_sjo
 
Posts: 3
Joined: 4. Sep 2016, 15:41

Re: Problems with VirtualBox 5.1.4 in Solaris 11.3 non-global zone

Postby vi_sjo » 12. Sep 2016, 09:33

Very good.. Oracle promote Virtualbox all over their website and it doesn't even run in a non-global zone properly and with documentation that's more out of date than Windows 98. Well done.

Next steps...

- Remove Solaris
- Upgrade to FreeBSD
vi_sjo
 
Posts: 3
Joined: 4. Sep 2016, 15:41

Re: Problems with VirtualBox 5.1.4 in Solaris 11.3 non-global zone

Postby martyscholes » 27. Sep 2016, 22:10

I am seeing the same thing with VBoxManage 5.1.6 and Solaris 11.3 using Sun Rays.

Code: Select all   Expand viewCollapse view
bash-4.1$ VBoxManage startvm "MBA W7 x64"
ld.so.1: VBoxManage: fatal: relocation error: file /opt/VirtualBox/amd64/VBoxManage: symbol _ZNSt15_List_node_base7_M_hookEPS_: referenced symbol not found
Killed
martyscholes
 
Posts: 202
Joined: 11. Sep 2011, 00:24
Primary OS: Solaris
VBox Version: PUEL
Guest OSses: Win 7, Ubuntu, Win XP, Vista, Win 8, Mint, Pear, Several Linux Virtual Appliances

Re: Problems with VirtualBox 5.1.4 in Solaris 11.3 non-global zone

Postby Ramshankar » 29. Sep 2016, 12:08

Does installing system/library/gcc-45-runtime in the zone help (e.g.):
Code: Select all   Expand viewCollapse view
root@testzone:~#pkg install gcc-45-runtime


If not, could you paste the output of ldd /opt/VirtualBox/amd64/VBoxManage from the zone?
Oracle Corp.
Ramshankar
Oracle Corporation
 
Posts: 774
Joined: 7. Jan 2008, 16:17

Re: Problems with VirtualBox 5.1.4 in Solaris 11.3 non-global zone

Postby martyscholes » 29. Sep 2016, 22:08

In know you asked the other poster, but I am having the same issue in the global zone. Installing gcc-45-runtime did not help.

Code: Select all   Expand viewCollapse view
bash-4.1$ VBoxManage startvm "MBA W7 x64"
ld.so.1: VBoxManage: fatal: relocation error: file /opt/VirtualBox/amd64/components/VBoxXPCOMIPCC.so: symbol _ZNSt15_List_node_base7_M_hookEPS_: referenced symbol not found
Killed
bash-4.1$ ldd /opt/VirtualBox/amd64/VBoxManage
   VBoxDDU.so =>    /opt/VirtualBox/amd64/VBoxDDU.so
   VBoxRT.so =>    /opt/VirtualBox/amd64/VBoxRT.so
   librt.so.1 =>    /lib/64/librt.so.1
   libthread.so.1 =>    /lib/64/libthread.so.1
   VBoxXPCOM.so =>    /opt/VirtualBox/amd64/VBoxXPCOM.so
   libstdc++.so.6 =>    /usr/sfw/lib/amd64//libstdc++.so.6
   libgcc_s.so.1 =>    /usr/sfw/lib/amd64//libgcc_s.so.1
   libc.so.1 =>    /lib/64/libc.so.1
   libkstat.so.1 =>    /lib/64/libkstat.so.1
   libcontract.so.1 =>    /lib/64/libcontract.so.1
   libsmbios.so.1 =>    /usr/lib/64/libsmbios.so.1
   libsocket.so.1 =>    /lib/64/libsocket.so.1
   libm.so.2 =>    /lib/64/libm.so.2
   libsendfile.so.1 =>    /lib/64/libsendfile.so.1
   libnvpair.so.1 =>    /lib/64/libnvpair.so.1
   libnsl.so.1 =>    /lib/64/libnsl.so.1
   libmp.so.2 =>    /lib/64/libmp.so.2
   libucrypto.so.1 =>    /lib/64/libucrypto.so.1
   libelf.so.1 =>    /lib/64/libelf.so.1
   libcryptoutil.so.1 =>    /lib/64/libcryptoutil.so.1
   libz.so.1 =>    /lib/64/libz.so.1
martyscholes
 
Posts: 202
Joined: 11. Sep 2011, 00:24
Primary OS: Solaris
VBox Version: PUEL
Guest OSses: Win 7, Ubuntu, Win XP, Vista, Win 8, Mint, Pear, Several Linux Virtual Appliances

Re: Problems with VirtualBox 5.1.4 in Solaris 11.3 non-global zone

Postby Ramshankar » 30. Sep 2016, 12:13

martyscholes wrote:In know you asked the other poster, but I am having the same issue in the global zone. Installing gcc-45-runtime did not help.


The symbol in question "_ZNSt15_List_node_base7_M_hookEPS_" demangled ("std::_List_node_base::_M_hook(std::_List_node_base*)") is in libstdc++.

We switched to using GCC 4.5 with VirtualBox 5.1 (required because of switching to a newer Qt version). In you case, I suspect there is some library path ordering issues that makes your linker look at the incorrect/old libstdc++.so while trying to resolve symbols for VBoxXPCOMIPCC.so.

Output of the following would be useful:
Code: Select all   Expand viewCollapse view
ls -l /usr/gcc/4.5/lib/amd64/libstdc++.so.6

Code: Select all   Expand viewCollapse view
nm /usr/sfw/lib/amd64/libstdc++.so.6 | grep _ZNSt15_List_node_base7_M_hookEPS_


Does this work?
Code: Select all   Expand viewCollapse view
LD_LIBRARY_PATH=/usr/gcc/4.5/lib/amd64/:$LD_LIBRARY_PATH VBoxManage
Oracle Corp.
Ramshankar
Oracle Corporation
 
Posts: 774
Joined: 7. Jan 2008, 16:17

Re: Problems with VirtualBox 5.1.4 in Solaris 11.3 non-global zone

Postby martyscholes » 17. Oct 2016, 00:08

Thanks for the help and apologies for the delay in responding. Here is the result of the commands.

Code: Select all   Expand viewCollapse view
bash-4.1$ ls -l /usr/gcc/4.5/lib/amd64/libstdc++.so.6
lrwxrwxrwx   1 root     root          19 Sep 29 14:05 /usr/gcc/4.5/lib/amd64/libstdc++.so.6 -> libstdc++.so.6.0.14*
bash-4.1$ nm /usr/sfw/lib/amd64/libstdc++.so.6 | grep _ZNSt15_List_node_base7_M_hookEPS_
bash-4.1$


The LD_LIBRARY_PATH option worked. Thank you. This upgrade has been rather painful for me. You didn't ask, but let me share here some of the issues I have seen, so at least they are written down somewhere. If I should log them somewhere else (or just keep this stuff to myself), please let me know.

Issues thus far with VB 5.1.6 on Sunray on Solaris 11.3
  • This issue here with the libraries causing VBoxManage to fail sometimes
  • Fullscreen only works for the first head (ticket 15993 filed)
  • Dual head windowed on boot only instantiates first head correctly; second head is black. Toggling to full screen and back stacks all head windows on first physical head, but fixes the problem.
  • Error message in GUI says that VRAM must be at least 138 MB, but GUI only allows 128 MB. Command line can set VRAM to 256 MB
  • Audio does not work at all. If default Intel HD audio is chosen, VM will abort during boot. If any other type is chosen, Windows claims that no audio device was found. This might be because Solaris Audio host driver is no longer available, and Sun Ray does not support OSS.
martyscholes
 
Posts: 202
Joined: 11. Sep 2011, 00:24
Primary OS: Solaris
VBox Version: PUEL
Guest OSses: Win 7, Ubuntu, Win XP, Vista, Win 8, Mint, Pear, Several Linux Virtual Appliances

Re: Problems with VirtualBox 5.1.4 in Solaris 11.3 non-global zone

Postby michaln » 17. Oct 2016, 09:11

Please add to or open tickets for the bugs, especially any crashes. Just listing it here will do nothing.

Some of the problems are caused by switching to Qt5, which unfortunately was extra painful on Solaris due to an attempt to keep supporting Solaris 10 hosts.

Re audio, if you look around the forum, you'll see that there are "problems" with it in VirtualBox 5.1. But again it's extra troublesome on Solaris for obvious reasons.
michaln
Oracle Corporation
 
Posts: 2841
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all


Return to VirtualBox on Solaris Hosts

Who is online

Users browsing this forum: No registered users and 1 guest