VirtualBox

Ticket #12271 (closed defect: fixed)

Opened 6 months ago

Last modified 4 months ago

Unable to open /devices/pseudo/vboxdrv@0:vboxdrvu" in non-global zone after upgrade to 4.3.0

Reported by: dpim Owned by:
Priority: major Component: other
Version: VirtualBox 4.3.0 Keywords: zone, Solaris
Cc: Guest type: all
Host type: Solaris

Description (last modified by ramshankar) (diff)

In Solaris 11.1 zone, vbox try to open physical device /devices/pseudo/vboxdrv@0:vboxdrvu instead of /dev/vboxdrvu; 1.) Zone not able to configure /dev/vboxdrvu directly due non-availablity symlink for vboxdrvu between /dev and /devices in global zone; 2.) On other side, physical device /devices/pseudo/vboxdrv@0:vboxdrvu is not exist in non-global zone; Anyway, non-global zone operates only with /dev via "set match" zonecfg (1M) Solaris directive;

00:00:00.000850 main     Log opened 2013-10-21T08:14:07.119992000Z

00:00:00.000853 main     Build Type: release

00:00:00.000860 main     OS Product: SunOS

00:00:00.000861 main     OS Release: 5.11

00:00:00.000863 main     OS Version: 11.1

00:00:00.003190 main     Host RAM: 16343MB total, 11070MB available

00:00:00.003197 main     Executable: /opt/VirtualBox/amd64/VBoxSVC

00:00:00.003199 main     Process ID: 19571

00:00:00.003200 main     Package type: SOLARIS_64BITS_GENERIC

00:00:01.822415 nspr-2   Loading settings file "/export/home/vbox/.VirtualBox/VirtualBox.xml" with version "1.12-solaris"

00:00:03.548329 nspr-2   Failed to open "/devices/pseudo/vboxdrv@0:vboxdrvu", errno=2, rc=VERR_VM_DRIVER_NOT_INSTALLED

00:00:03.548703 nspr-2   VDInit finished

Change History

comment:1 Changed 5 months ago by ramshankar

You need to configure the zone manually. Also, it should be "vboxdrv" and not "vboxdrvu".

Please check the user manual https://www.virtualbox.org/manual/ch02.html#solaris-zones

comment:2 Changed 5 months ago by ramshankar

Update: It seems vboxdrvu is a new device node in 4.3.x and thus you will need to manually add it to your zone configuration.

vboxdrvu is used by VBoxSVC to talk to the driver for figuring out things like VT-x/AMD-V features.

comment:3 Changed 5 months ago by dpim

It's not described why Virtrualbox tried to use physical device in Solaris instead of /dev tree. Instead, we should understand why zone try to open physical dev - /devices/pseudo/vboxdrv@0:vboxdrvu instead of match: /dev/vboxdrvu in /dev tree: Zones not able to operate physical paths (below /devices tree) paths and only uses /dev tree;

here is a part of VBoxSVC.log runned in Solaris zone, with correctly configured /dev/vboxdrvu below (see config below) ---

VirtualBox XPCOM Server 4.3.0 r89960 solaris.amd64 (Oct 15 2013 12:35:06) release log
00:00:00.001095 main     Log opened 2013-11-23T21:48:41.068987000Z
00:00:00.001099 main     Build Type: release
00:00:00.001117 main     OS Product: SunOS
00:00:00.001118 main     OS Release: 5.11
00:00:00.001119 main     OS Version: 11.1
00:00:00.003312 main     Host RAM: 16343MB total, 12393MB available
00:00:00.003319 main     Executable: /opt/VirtualBox/amd64/VBoxSVC
00:00:00.003320 main     Process ID: 2389
00:00:00.003321 main     Package type: SOLARIS_64BITS_GENERIC
00:00:02.478113 nspr-2   Loading settings file "/export/home/vbox/.VirtualBox/VirtualBox.xml" with version "1.12-solaris"
00:00:04.665279 nspr-2   Failed to open "/devices/pseudo/vboxdrv@0:vboxdrvu", errno=2, rc=VERR_VM_DRIVER_NOT_INSTALLED
00:00:04.665827 nspr-2   VDInit finished

Different Unix'es like Linux as i see still use settings vboxdrv and vboxdrvu for DEVICE_NAME_SYS and DEVICE_NAME_USR ;

see

 http://www.virtualbox.org/svn/vbox/trunk/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c Mac OSX too:  http://www.virtualbox.org/svn/vbox/trunk/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp

Instead of hardcoded /devices/pseudo/vboxdrv@0:vboxdrvu and /devices/pseudo/vboxdrv@0:vboxdrv in  http://www.virtualbox.org/svn/vbox/trunk/src/VBox/HostDrivers/Support/solaris/SUPLib-solaris.cpp

Here system try to access to /devices/pseudo/vboxdrv@0:vboxdrvu; and /devices/pseudo/vboxdrv@0:vboxdrv; instead of /dev/vboxdrvu which are the link to /devices/pseudo/vboxdrv@0:vboxdrvu;

Again, IMHO Virtualbox should not use the physical device path - it should be /dev/vboxdrvu instead /devices/pseudo/vboxdrv@0:vboxdrvu and /dev/vboxdrv for /devices/pseudo/vboxdrv@0:vboxdrv

this is my zone config: ('zonecfg -z vbox info); If you need something, let me know:

here is the zoneconfig with correct /dev/vboxdrvu provided to the local zone:

[vbox]$ ls -lsa /dev/vboxdrvu
   0 crw-rw-rw-   1 root     sys      299,  1 Nov 24 01:48 /dev/vboxdrvu

[oz]# zonecfg -z vbox info
zonename: vbox
zonepath: /rpool1/zones/vbox
brand: solaris
autoboot: true
bootargs:
file-mac-profile:
pool:
limitpriv:
scheduling-class:
ip-type: exclusive
hostid:
fs-allowed:
fs:
    dir: /opt
    special: /opt
    raw not specified
    type: lofs
    options: []
net:
    address not specified
    allowed-address not specified
    configure-allowed-address: true
    physical: vnic1
    defrouter not specified
net:
    address not specified
    allowed-address not specified
    configure-allowed-address: true
    physical: vnic2
    defrouter not specified
net:
    address not specified
    allowed-address not specified
    configure-allowed-address: true
    physical: vnic3
    defrouter not specified
net:
    address not specified
    allowed-address not specified
    configure-allowed-address: true
    physical: vnic4
    defrouter not specified
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: random
    auto-mac-address: 2:8:20:2d:19:d3
    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
    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
device:
    match: /dev/vboxdrv
    allow-partition not specified
    allow-raw-io not specified
device:
    match: /dev/vboxusbmon
    allow-partition not specified
    allow-raw-io not specified
device:
    match: /dev/zvol/rdsk/rpool1/zones/volumes/w2003sbs
    allow-partition not specified
    allow-raw-io not specified
device:
    match: /dev/zvol/dsk/rpool1/zones/volumes/w2003sbs
    allow-partition not specified
    allow-raw-io not specified
device:
    match: /dev/zvol/dsk/rpool1/zones/volumes/osx
    allow-partition not specified
    allow-raw-io not specified
device:
    match: /dev/zvol/rdsk/rpool1/zones/volumes/osx
    allow-partition not specified
    allow-raw-io not specified
device:
    match: /dev/zvol/dsk/rpool1/zones/volumes/xp
    allow-partition not specified
    allow-raw-io not specified
device:
    match: /dev/zvol/rdsk/rpool1/zones/volumes/xp
    allow-partition not specified
    allow-raw-io not specified
device:
    match: /dev/zvol/dsk/vmpool/w2008r2
    allow-partition not specified
    allow-raw-io not specified
device:
    match: /dev/zvol/rdsk/vmpool/w2008r2
    allow-partition not specified
    allow-raw-io not specified
device:
    match: /dev/vboxnet*
    allow-partition not specified
    allow-raw-io not specified
device:
    match: /dev/vboxdrvu
    allow-partition not specified
    allow-raw-io not specified
dataset:
    name: space/distro
    alias: distro
Last edited 5 months ago by ramshankar (previous) (diff)

comment:4 Changed 5 months ago by ramshankar

  • Description modified (diff)

comment:5 Changed 5 months ago by jbcraig

Any update on progress? I can confirm that the issue persists with "v4.3.2".

comment:6 Changed 5 months ago by Az

It persists on v4.3.4 at a Solaris 11.1 SRU 13.6.
Furthermore, despite the installation success message in the GZ:

root@s11:/tmp# pkgadd -a autoresponse -n -d VirtualBox-4.3.4-SunOS-amd64-r91027.pkg all
Checking package dependencies...
Done.
Checking for older bits...
Installing new ones...
Detected Solaris 11 Version 175
Loading VirtualBox kernel modules...

  • Loaded: Host module
  • Loaded: NetAdapter module
  • Loaded: NetFilter (Crossbow) module
  • Loaded: USBMonitor module
  • Loaded: USB module

Configuring services...

  • Loaded: Zone access service

Installing MIME types and icons...
Installing Python bindings...

  • Installed: Bindings for Python 2.6

Updating the boot archive...

Installation of <SUNWvbox> was successful.


But I get no /dev/vboxdrv at all.

root@s11:~# ll /dev/vbox*
lrwxrwxrwx 1 root root ... /dev/vboxflt -> ../devices/pseudo/clone@0:vboxflt
lrwxrwxrwx 1 root root ... /dev/vboxnet0 -> ../devices/pseudo/vboxnet@0:vboxnet0
lrwxrwxrwx 1 root root ... /dev/vboxnet -> ../devices/pseudo/clone@0:vboxnet
lrwxrwxrwx 1 root other ... /dev/vboxusbmon -> ../devices/pseudo/vboxusbmon@0:vboxusbmon

I really hope that this gets addressed ASAP.

Regards.

comment:7 Changed 4 months ago by ramshankar

Fixed in SVN. Fix should be available in the next maintenance release.

comment:8 Changed 4 months ago by frank

You might want to test this test build.

comment:9 Changed 4 months ago by frank

Actually after the initial fix there was another fix, so please use this test build instead.

comment:10 Changed 4 months ago by frank

  • Status changed from new to closed
  • Resolution set to fixed

Fixed in 4.3.6.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use