VirtualBox

source: vbox/trunk/src/VBox/Installer/solaris/postinstall.sh@ 20340

Last change on this file since 20340 was 20308, checked in by vboxsync, 16 years ago

Solaris/Installer: boot-archive update and python installs only on global zone.

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Author Date Id Revision
File size: 5.4 KB
Line 
1#!/bin/sh
2## @file
3# Sun VirtualBox
4# VirtualBox postinstall script for Solaris.
5#
6
7#
8# Copyright (C) 2007-2009 Sun Microsystems, Inc.
9#
10# This file is part of VirtualBox Open Source Edition (OSE), as
11# available from http://www.virtualbox.org. This file is free software;
12# you can redistribute it and/or modify it under the terms of the GNU
13# General Public License (GPL) as published by the Free Software
14# Foundation, in version 2 as it comes in the "COPYING" file of the
15# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
16# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
17#
18# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
19# Clara, CA 95054 USA or visit http://www.sun.com if you need
20# additional information or have any questions.
21#
22
23# Check for xVM/Xen
24currentisa=`uname -i`
25if test "$currentisa" = "i86xpv"; then
26 echo "## VirtualBox cannot run under xVM Dom0! Fatal Error, Aborting installation!"
27 exit 2
28fi
29
30osversion=`uname -r`
31currentzone=`zonename`
32if test "$currentzone" = "global"; then
33 echo "Loading VirtualBox kernel modules..."
34 /opt/VirtualBox/vboxdrv.sh stopall silentunload checkarch
35 rc=$?
36 if test "$rc" -eq 0; then
37 /opt/VirtualBox/vboxdrv.sh start
38 rc=$?
39
40 # VBoxDrv loaded successfully, proceed with the rest...
41 if test "$rc" -eq 0; then
42 # Load VBoxNetAdapter vboxnet
43 if test -f /platform/i86pc/kernel/drv/vboxnet.conf; then
44 /opt/VirtualBox/vboxdrv.sh netstart
45 rc=$?
46
47 # nwam/dhcpagent fix
48 nwamfile=/etc/nwam/llp
49 nwambackupfile=$nwamfile.vbox
50 if test "$rc" -eq 0 && test -f "$nwamfile"; then
51 sed -e '/vboxnet/d' $nwamfile > $nwambackupfile
52 echo "vboxnet0 static 192.168.56.1" >> $nwambackupfile
53 mv -f $nwambackupfile $nwamfile
54 fi
55 fi
56
57 # Load VBoxNetFilter vboxflt
58 if test -f /platform/i86pc/kernel/drv/vboxflt.conf; then
59 /opt/VirtualBox/vboxdrv.sh fltstart
60 rc=$?
61 fi
62
63 # Load VBoxUSBMon vboxusbmon (do NOT load for Solaris 10)
64 if test -f /platform/i86pc/kernel/drv/vboxusbmon.conf && test "$osversion" != "5.10"; then
65 /opt/VirtualBox/vboxdrv.sh usbstart
66 rc=$?
67 if test "$rc" -eq 0; then
68 # Add vboxusbmon to the devlink.tab
69 sed -e '/name=vboxusbmon/d' /etc/devlink.tab > /etc/devlink.vbox
70 echo "type=ddi_pseudo;name=vboxusbmon \D" >> /etc/devlink.vbox
71 mv -f /etc/devlink.vbox /etc/devlink.tab
72 fi
73 fi
74 fi
75 fi
76
77 # Fail on any errors while unloading previous modules because it makes it very hard to
78 # track problems when older vboxdrv is hanging about in memory and add_drv of the new
79 # one suceeds and it appears as though the new one is being used.
80 if test "$rc" -ne 0; then
81 echo "## Loading failed. Aborting installation."
82 exit 2
83 fi
84
85 echo "Configuring services and drivers..."
86
87 # Web service
88 if test -f /var/svc/manifest/application/virtualbox/webservice.xml; then
89 /usr/sbin/svccfg import /var/svc/manifest/application/virtualbox/webservice.xml
90 /usr/sbin/svcadm disable -s svc:/application/virtualbox/webservice:default
91 fi
92
93 # Add vboxdrv to the devlink.tab
94 sed -e '/name=vboxdrv/d' /etc/devlink.tab > /etc/devlink.vbox
95 echo "type=ddi_pseudo;name=vboxdrv \D" >> /etc/devlink.vbox
96 mv -f /etc/devlink.vbox /etc/devlink.tab
97
98 # Create the device link
99 /usr/sbin/devfsadm -i vboxdrv
100
101 # Don't create link for Solaris 10
102 if test -f /platform/i86pc/kernel/drv/vboxusbmon.conf && test "$osversion" != "5.10"; then
103 /usr/sbin/devfsadm -i vboxusbmon
104 fi
105 sync
106
107 # We need to touch the desktop link in order to add it to the menu right away
108 if test -f "/usr/share/applications/virtualbox.desktop"; then
109 touch /usr/share/applications/virtualbox.desktop
110 fi
111
112 # Zone access service
113 if test -f /var/svc/manifest/application/virtualbox/zoneaccess.xml; then
114 /usr/sbin/svccfg import /var/svc/manifest/application/virtualbox/zoneaccess.xml
115 /usr/sbin/svcadm enable -s svc:/application/virtualbox/zoneaccess
116 fi
117
118 # Install python bindings
119 if test -f "/opt/VirtualBox/sdk/installer/vboxapisetup.py" || test -h "/opt/VirtualBox/sdk/installer/vboxapisetup.py"; then
120 PYTHONBIN=`which python`
121 if test -f "$PYTHONBIN" || test -h "$PYTHONBIN"; then
122 echo "Installing Python bindings..."
123
124 VBOX_INSTALL_PATH=/opt/VirtualBox
125 export VBOX_INSTALL_PATH
126 cd /opt/VirtualBox/sdk/installer
127 $PYTHONBIN ./vboxapisetup.py install > /dev/null
128 else
129 echo "** WARNING! Python not found, skipped installed Python bindings."
130 echo " Manually run '/opt/VirtualBox/sdk/installer/vboxapisetup.py install'"
131 echo " to install the bindings when python is available."
132 fi
133 fi
134
135 # Update boot archive
136 BOOTADMBIN=/sbin/bootadm
137 if test -f "$BOOTADMBIN" || test -h "$BOOTADMBIN"; then
138 echo "Updating boot archive..."
139 $BOOTADMBIN update-archive > /dev/null
140 fi
141fi
142
143/usr/sbin/installf -f $PKGINST
144
145echo "Done."
146
147# return 20 = requires reboot, 2 = partial failure, 0 = success
148exit 0
149
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette