1# $NetBSD: dot.instutils,v 1.3 1997/08/15 23:03:57 perry Exp $ 2# 3# Copyright (c) 1994 Christopher G. Demetriou 4# All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions 8# are met: 9# 1. Redistributions of source code must retain the above copyright 10# notice, this list of conditions and the following disclaimer. 11# 2. Redistributions in binary form must reproduce the above copyright 12# notice, this list of conditions and the following disclaimer in the 13# documentation and/or other materials provided with the distribution. 14# 3. All advertising materials mentioning features or use of this software 15# must display the following acknowledgement: 16# This product includes software developed by Christopher G. Demetriou. 17# 4. The name of the author may not be used to endorse or promote products 18# derived from this software without specific prior written permission 19# 20# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 21# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 22# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 23# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 24# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 25# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 29# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30# 31 32# Installation configuration utilities (functions), to get NetBSD configured 33# reasonably once it is installed on the hard disk. These are meant to be 34# invoked from the shell prompt, by people installing NetBSD. 35 36config_int() 37{ 38 local intf resp ifname ifaddr ifflags 39 intf=$1 40 case "$intf" in 41 ""|lo*|ppp*|sl*|tun*) 42 return 0; 43 ;; 44 *) 45 ;; 46 esac 47 48 echo -n "Configure" $intf "? [y]" 49 read resp 50 case "$resp" in 51 n*|N*) 52 return 0; 53 ;; 54 *) 55 ;; 56 esac 57 58 echo -n "What is the hostname for this interface? [$hname] " 59 read ifname 60 if [ "$ifname" = "" ]; then 61 ifname=$hname 62 fi 63 ifaddr= 64 while [ "$ifaddr" = "" ]; do 65 echo -n "What is the IP address associated with " 66 echo -n "interface ${intf}? " 67 read ifaddr 68 done 69 echo "$ifaddr $ifname `echo $ifname | sed -e s/\.$dname//`" \ 70 >> ${ETC}/hosts 71 72 echo -n "Does this interface have a special netmask? [n] " 73 read resp 74 case "$resp" in 75 y*) 76 echo -n "What is the netmask? [0xffffff00] " 77 read ifnetmask 78 if [ "$ifnetmask" = "" ]; then 79 ifnetmask=0xffffff00 80 fi 81 ifnetmask_arg="netmask $ifnetmask" 82 ;; 83 *) 84 ifnetmask= 85 ifnetmask_arg= 86 ;; 87 esac 88 89 echo -n "Does this interface need a special media type? [n] " 90 read resp 91 case "$resp" in 92 y*) 93 echo -n "What media type? [10baseT/UTP] " 94 read ifflags 95 if [ "$ifflags" = "" ]; then 96 ifflags="10baseT/UTP" 97 fi 98 ifflags_arg="media $ifflags" 99 ;; 100 *) 101 ifflags= 102 ifflags_arg= 103 ;; 104 esac 105 echo "inet $ifname $ifnetmask_arg $ifflags_arg" > ${ETC}/ifconfig.$intf 106} 107 108 109Configure() 110{ 111 DEV=/dev 112 ETC=/etc 113 ROOT=/ 114 if [ ! -f /etc/fstab ]; then 115 DEV=/mnt/dev 116 ETC=/mnt/etc 117 ROOT=/mnt 118 fi 119 120 echo "You will now be prompted for information about this" 121 echo "machine. If you hit return, the default answer (in" 122 echo "brackets) will be used." 123 124 echo "" 125 echo -n "What is this machine's hostname? [unknown.host.domain] " 126 read hname 127 if [ "$hname" = "" ]; then 128 hname=unknown.host.domain 129 fi 130 echo $hname > ${ETC}/myname 131 proto_domain=`echo $hname | sed -e 's/[^.]*\.//'` 132 133 echo "" 134 echo "What domain is this machine in (this is NOT its YP" 135 echo -n "domain name)? [$proto_domain] " 136 read dname 137 if [ "$dname" = "" ]; then 138 dname=$proto_domain 139 fi 140 141 echo "" 142 if [ -e $ETC/sendmail.cf ]; then 143 echo "WARNING: A default sendmail.cf exists, and probably" 144 echo "needs to be tuned and/or replaced, to work properly at" 145 echo "your site!" 146 else 147 echo "WARNING: No default sendmail.cf installed. Did you" 148 echo "forget to install the 'etc' distribution?" 149 fi 150 151 echo "127.0.0.1 localhost localhost.$dname" > ${ETC}/hosts 152 153 echo "" 154 echo -n "Configure network interfaces? [y] " 155 read resp 156 case "$resp" in 157 n*) 158 ;; 159 *) 160 for if in `ifconfig -l` 161 do 162 config_int $if 163 done 164 ;; 165 esac 166 167 168 echo "" 169 echo -n "Making device nodes (may take a while)..." 170 cd ${DEV} 171 sh MAKEDEV all 172 echo " done." 173 174 sync 175 176 if [ ! -f ${ROOT}/netbsd ] 177 then 178 echo "You have not unpacked the kernel installation" 179 echo "set. You must do so before you reboot." 180 fi 181} 182 183# Upgrade cleanup utilities (functions), to make sure a recently-upgraded 184# system is safely runnable. These are meant to be invoked from the shell 185# prompt, by people installing NetBSD. 186 187Cleanup() 188{ 189 upgrade_dir=/ 190 191 if [ ! -f /etc/fstab ]; then 192 upgrade_dir=/mnt 193 fi 194 195 echo "Cleaning up miscellaneous files in /etc..." 196 mv $upgrade_dir/etc/rc.bak $upgrade_dir/etc/rc 197 chroot $upgrade_dir /usr/sbin/pwd_mkdb -p /etc/master.passwd 198 chroot $upgrade_dir /bin/rm /etc/sendmail.fc > /dev/null 2>&1 199 sync 200 echo "Done." 201 202 echo "" 203 echo "All that's left to do now is to install a new NetBSD kernel" 204 echo "on your hard disk. You should now halt your machine using" 205 echo "the 'halt' command. Once the machine is halted, replace the" 206 echo "installation floppy with the kernel-copy floppy and hit any" 207 echo "key to reboot. Use the kernel-copy floppy to copy a kernel" 208 echo "to your hard disk." 209} 210