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 2008 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 # Initiate the device reconfiguration process in case we need some
  31 # device links established so that we can successfully perform our
  32 # remaining standard mounts.
  33 
  34 . /lib/svc/share/smf_include.sh
  35 
  36 smf_is_globalzone || exit $SMF_EXIT_OK
  37 
  38 svcprop -q -p system/reconfigure system/svc/restarter:default
  39 if [ $? -eq 0 ]; then
  40         echo 'Configuring devices.' > /dev/msglog 2>&1
  41         /usr/sbin/devfsadm >/dev/msglog 2>&1
  42         if [ -x /usr/ucb/ucblinks -a -f /usr/ucblib/ucblinks.awk ]; then
  43                 /usr/ucb/ucblinks >/dev/null 2>&1
  44         fi
  45 
  46         #
  47         # Flush any existing socket mappings since the major numbers of
  48         # the device files may have changed.
  49         #
  50         /usr/bin/awk '/^[^#]/ { print $1, $2, $3 }' /etc/sock2path | \
  51                 /sbin/soconfig -f /dev/fd/0 >/dev/null 2>&1
  52         /sbin/soconfig -f /etc/sock2path >/dev/null 2>&1
  53 
  54         #
  55         # Update kernel driver.conf cache.
  56         #
  57         /usr/sbin/devfsadm -I
  58 fi
  59 
  60 # Establish the default framebuffer name.
  61 
  62 fbdev=`/usr/sbin/prtconf -F 2>/dev/null`
  63 
  64 if [ $? -eq 0 ]; then
  65         set -- /devices$fbdev*
  66         if [ -c $1 ]; then
  67                 if [ -h /dev/fb ]; then
  68                         fblink=`ls -l /dev/fb | /usr/bin/awk '{ print $11 }'`
  69 
  70                         if [ "$1" != "$fblink" ]; then
  71                                 rm -f /dev/fb
  72                                 ln -s $1 /dev/fb
  73                         fi
  74                 else
  75                         rm -f /dev/fb
  76                         ln -s $1 /dev/fb
  77                 fi
  78         fi
  79 fi
  80 
  81 # Create any zvol devices
  82 if [ -x /usr/sbin/zfs ]; then
  83         /usr/sbin/zpool key -l -a
  84         /usr/sbin/zfs volinit || exit $SMF_EXIT_ERR_FATAL
  85         #
  86         # Add swap again to allow for swapping to zvols.
  87         #
  88         /sbin/swapadd
  89 fi
  90 
  91 exit $SMF_EXIT_OK