1 #!/sbin/sh
   2 #
   3 # CDDL HEADER START
   4 #
   5 # The contents of this file are subject to the terms of the
   6 # Common Development and Distribution License (the "License").
   7 # You may not use this file except in compliance with the License.
   8 #
   9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  10 # or http://www.opensolaris.org/os/licensing.
  11 # See the License for the specific language governing permissions
  12 # and limitations under the License.
  13 #
  14 # When distributing Covered Code, include this CDDL HEADER in each
  15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  16 # If applicable, add the following below this CDDL HEADER, with the
  17 # fields enclosed by brackets "[]" replaced with your own identifying
  18 # information: Portions Copyright [yyyy] [name of copyright owner]
  19 #
  20 # CDDL HEADER END
  21 #
  22 #
  23 # Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  24 # Use is subject to license terms.
  25 #
  26 # Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T.
  27 # All rights reserved.
  28 #
  29 #
  30 # ident "%Z%%M% %I%     %E% SMI"
  31 
  32 # Initiate the device reconfiguration process in case we need some
  33 # device links established so that we can successfully perform our
  34 # remaining standard mounts.
  35 
  36 . /lib/svc/share/smf_include.sh
  37 
  38 smf_is_globalzone || exit $SMF_EXIT_OK
  39 
  40 svcprop -q -p system/reconfigure system/svc/restarter:default
  41 if [ $? -eq 0 ]; then
  42         echo 'Configuring devices.' > /dev/msglog 2>&1
  43         /usr/sbin/devfsadm >/dev/msglog 2>&1
  44         if [ -x /usr/ucb/ucblinks -a -f /usr/ucblib/ucblinks.awk ]; then
  45                 /usr/ucb/ucblinks >/dev/null 2>&1
  46         fi
  47 
  48         #
  49         # Flush any existing socket mappings since the major numbers of
  50         # the device files may have changed.
  51         #
  52         /usr/bin/awk '/^[^#]/ { print $1, $2, $3 }' /etc/sock2path | \
  53                 /sbin/soconfig -f /dev/fd/0 >/dev/null 2>&1
  54         /sbin/soconfig -f /etc/sock2path >/dev/null 2>&1
  55 
  56         #
  57         # Update kernel driver.conf cache.
  58         #
  59         /usr/sbin/devfsadm -I
  60 fi
  61 
  62 # Establish the default framebuffer name.
  63 
  64 fbdev=`/usr/sbin/prtconf -F 2>/dev/null`
  65 
  66 if [ $? -eq 0 ]; then
  67         set -- /devices$fbdev*
  68         if [ -c $1 ]; then
  69                 if [ -h /dev/fb ]; then
  70                         fblink=`ls -l /dev/fb | /usr/bin/awk '{ print $11 }'`
  71 
  72                         if [ "$1" != "$fblink" ]; then
  73                                 rm -f /dev/fb
  74                                 ln -s $1 /dev/fb
  75                         fi
  76                 else
  77                         rm -f /dev/fb
  78                         ln -s $1 /dev/fb
  79                 fi
  80         fi
  81 fi
  82 
  83 # Create any zvol devices
  84 if [ -x /usr/sbin/zfs ]; then
  85         /usr/sbin/zfs volinit || exit $SMF_EXIT_ERR_FATAL
  86         #
  87         # Add swap again to allow for swapping to zvols.
  88         #
  89         /sbin/swapadd
  90 fi
  91 
  92 exit $SMF_EXIT_OK