| 1 | beyerle@PS | 1 | #!/bin/bash
 | 
        
           |  |  | 2 | #
 | 
        
           |  |  | 3 | # Fix things during bootup - run first 
 | 
        
           | 84 | beyerle@PS | 4 | # For example: Enable services, etc ...
 | 
        
           | 1 | beyerle@PS | 5 | # Executed at the very end of /etc/rc.d/rc.sysinit
 | 
        
           |  |  | 6 | #
 | 
        
           |  |  | 7 | # Urs Beyerle, PSI
 | 
        
           |  |  | 8 | #
 | 
        
           |  |  | 9 |   | 
        
           |  |  | 10 | ### -----------------------------------------------------------
 | 
        
           | 84 | beyerle@PS | 11 | ### Definitions
 | 
        
           | 1 | beyerle@PS | 12 | ### -----------------------------------------------------------
 | 
        
           |  |  | 13 |   | 
        
           |  |  | 14 | # dir of mounted /$MOUNTDIR/live
 | 
        
           |  |  | 15 | MOUNTDIR=livecd
 | 
        
           |  |  | 16 |   | 
        
           |  |  | 17 | # source functions
 | 
        
           |  |  | 18 | . /$MOUNTDIR/live/liblinuxlive
 | 
        
           |  |  | 19 | . /etc/init.d/functions
 | 
        
           |  |  | 20 |   | 
        
           |  |  | 21 |   | 
        
           |  |  | 22 | ### -----------------------------------------------------------
 | 
        
           |  |  | 23 | ### Get boot parameters
 | 
        
           |  |  | 24 | ### -----------------------------------------------------------
 | 
        
           |  |  | 25 |   | 
        
           |  |  | 26 | # start afs?
 | 
        
           |  |  | 27 | AFS=$( cmdline_parameter afs )
 | 
        
           |  |  | 28 | CELL=$( cmdline_value cell )
 | 
        
           |  |  | 29 |   | 
        
           |  |  | 30 | # or force no afs
 | 
        
           |  |  | 31 | [ $( cmdline_parameter noafs ) ] && AFS=""
 | 
        
           |  |  | 32 |   | 
        
           |  |  | 33 | # start ssh server?
 | 
        
           |  |  | 34 | SSH=$( cmdline_parameter ssh )
 | 
        
           |  |  | 35 |   | 
        
           |  |  | 36 | # root on NFS?
 | 
        
           |  |  | 37 | NFSROOT=$( cmdline_value nfsroot )
 | 
        
           |  |  | 38 |   | 
        
           |  |  | 39 | # PSI setup?
 | 
        
           |  |  | 40 | PSI=$( cmdline_parameter psi )
 | 
        
           |  |  | 41 |   | 
        
           |  |  | 42 | # do not start network
 | 
        
           |  |  | 43 | NONET=$( cmdline_parameter nonet )
 | 
        
           |  |  | 44 |   | 
        
           |  |  | 45 | # Are PXE/TFTP and NFS Server the same host ? not uesed any more
 | 
        
           |  |  | 46 | ONEMASTER=$( cmdline_parameter onemaster )
 | 
        
           |  |  | 47 |   | 
        
           |  |  | 48 | # fast booting ?
 | 
        
           |  |  | 49 | FASTBOOT=$( cmdline_parameter fastboot )
 | 
        
           |  |  | 50 |   | 
        
           |  |  | 51 | # if run=rdesktop, we do fast boot
 | 
        
           |  |  | 52 | if [ "$( cmdline_value run )" = "rdesktop" ]; then
 | 
        
           |  |  | 53 |     FASTBOOT="fastboot"
 | 
        
           |  |  | 54 | fi
 | 
        
           |  |  | 55 |   | 
        
           |  |  | 56 | # start ntpd ?
 | 
        
           |  |  | 57 | NTPD=$( cmdline_parameter ntpd )
 | 
        
           |  |  | 58 |   | 
        
           |  |  | 59 | # services on/off
 | 
        
           |  |  | 60 | SERVICEON=$( cmdline_value serviceon )
 | 
        
           |  |  | 61 | SERVICEOFF=$( cmdline_value serviceoff )
 | 
        
           |  |  | 62 |   | 
        
           | 88 | beyerle@PS | 63 | # Xserver configurations
 | 
        
           |  |  | 64 | SCREEN=$( cmdline_value screen )
 | 
        
           | 1 | beyerle@PS | 65 |   | 
        
           | 88 | beyerle@PS | 66 |   | 
        
           | 1 | beyerle@PS | 67 | ### -----------------------------------------------------------
 | 
        
           | 84 | beyerle@PS | 68 | ### Configure services
 | 
        
           | 1 | beyerle@PS | 69 | ### -----------------------------------------------------------
 | 
        
           |  |  | 70 |   | 
        
           |  |  | 71 | ### disable rpcidmapd, if LiveCD mounted over NFS
 | 
        
           |  |  | 72 | if [ $NFSROOT ]; then
 | 
        
           | 105 | beyerle@PS | 73 |     chkconfig rpcidmapd off >/dev/null 2>&1
 | 
        
           | 1 | beyerle@PS | 74 | fi
 | 
        
           |  |  | 75 |   | 
        
           | 88 | beyerle@PS | 76 | ### disable NetworkManager, if LiveCD mounted over NFS
 | 
        
           |  |  | 77 | if [ $NFSROOT ]; then
 | 
        
           | 105 | beyerle@PS | 78 |     chkconfig NetworkManager off           >/dev/null 2>&1
 | 
        
           |  |  | 79 |     chkconfig NetworkManagerDispatcher off >/dev/null 2>&1 
 | 
        
           | 88 | beyerle@PS | 80 | fi
 | 
        
           |  |  | 81 |   | 
        
           | 1 | beyerle@PS | 82 | ### disable shutdown of network and nfs, 
 | 
        
           |  |  | 83 | # if we have the LiveCD mounted over NFS
 | 
        
           |  |  | 84 | if [ $NFSROOT ]; then
 | 
        
           |  |  | 85 |     if [ $ONEMASTER ]; then
 | 
        
           |  |  | 86 |         # "network off" is only necessary, 
 | 
        
           |  |  | 87 |         # if PXE/TFTP and NTS server is on same machine
 | 
        
           |  |  | 88 | 	chkconfig network off
 | 
        
           |  |  | 89 |     fi
 | 
        
           |  |  | 90 |   | 
        
           |  |  | 91 |     rm -f /etc/rc.d/rc6.d/K75netfs
 | 
        
           |  |  | 92 |     rm -f /etc/rc.d/rc6.d/K86nfslock
 | 
        
           |  |  | 93 |     rm -f /etc/rc.d/rc6.d/K87portmap
 | 
        
           |  |  | 94 |     rm -f /etc/rc.d/rc6.d/K90network
 | 
        
           |  |  | 95 |   | 
        
           |  |  | 96 |     rm -f /etc/rc.d/rc0.d/K75netfs
 | 
        
           |  |  | 97 |     rm -f /etc/rc.d/rc0.d/K86nfslock
 | 
        
           |  |  | 98 |     rm -f /etc/rc.d/rc0.d/K87portmap
 | 
        
           |  |  | 99 |     rm -f /etc/rc.d/rc0.d/K90network
 | 
        
           |  |  | 100 | fi
 | 
        
           |  |  | 101 |   | 
        
           |  |  | 102 | ### enable AFS during start up, if given by boot parameter
 | 
        
           |  |  | 103 | if [ $AFS ]; then
 | 
        
           |  |  | 104 |     chkconfig afs on
 | 
        
           |  |  | 105 | fi
 | 
        
           |  |  | 106 |   | 
        
           |  |  | 107 | ### disable some services for fast booting
 | 
        
           |  |  | 108 | if [ $FASTBOOT ]; then    
 | 
        
           |  |  | 109 |     echo "Fast booting enabled"
 | 
        
           |  |  | 110 |     chkconfig vpnclient_init off
 | 
        
           |  |  | 111 |     chkconfig haldaemon off
 | 
        
           |  |  | 112 |     chkconfig pcmcia off
 | 
        
           |  |  | 113 |     chkconfig ntpd off
 | 
        
           |  |  | 114 |     chkconfig atd off
 | 
        
           |  |  | 115 |     chkconfig cpuspeed off
 | 
        
           |  |  | 116 |     chkconfig gpm off
 | 
        
           |  |  | 117 |     chkconfig messagebus off
 | 
        
           |  |  | 118 |     rm -rf /etc/rc.d/rc3.d/S04kudzu-auto
 | 
        
           |  |  | 119 |     rm -rf /etc/rc.d/rc5.d/S04kudzu-auto
 | 
        
           |  |  | 120 | fi
 | 
        
           |  |  | 121 |   | 
        
           |  |  | 122 | ### enable ntpd?
 | 
        
           |  |  | 123 | if [ $NTPD ]; then
 | 
        
           |  |  | 124 |     chkconfig ntpd on
 | 
        
           |  |  | 125 | fi
 | 
        
           |  |  | 126 |   | 
        
           |  |  | 127 | ### enable SSH server during start up, if given by boot parameter
 | 
        
           |  |  | 128 | if [ $SSH ]; then
 | 
        
           |  |  | 129 |     chkconfig sshd on
 | 
        
           |  |  | 130 | fi
 | 
        
           |  |  | 131 |   | 
        
           | 84 | beyerle@PS | 132 | ### activate ipw3945d daemon, if we have Intel IPW3945 WLAN 
 | 
        
           |  |  | 133 | if [ ! $NONET ]; then
 | 
        
           |  |  | 134 |     lspci | grep -q Intel.*3945ABG
 | 
        
           |  |  | 135 |     if [ "$?" = "0" ]; then
 | 
        
           |  |  | 136 | 	chkconfig ipw3945d on 2>/dev/null
 | 
        
           |  |  | 137 |     fi
 | 
        
           |  |  | 138 | fi
 | 
        
           |  |  | 139 |   | 
        
           |  |  | 140 | ### enable 915resolution on Intel Mobile Display controller
 | 
        
           | 88 | beyerle@PS | 141 | #   and set resolution in /etc/sysconfig/915resolution defined by screen=
 | 
        
           | 84 | beyerle@PS | 142 | lspci | grep -q Display.*Intel.*Mobile
 | 
        
           |  |  | 143 | if [ "$?" = "0" ]; then 
 | 
        
           |  |  | 144 |     chkconfig 915resolution on 2>/dev/null
 | 
        
           | 88 | beyerle@PS | 145 |     if [ -e /etc/sysconfig/915resolution ]; then
 | 
        
           |  |  | 146 | 	X=$( echo $SCREEN | cut -d"x" -f1 )
 | 
        
           |  |  | 147 | 	Y=$( echo $SCREEN | cut -d"x" -f2 )
 | 
        
           |  |  | 148 | 	if [ $X ]; then
 | 
        
           |  |  | 149 | 	    sed -i "s|^X=.*|X=$X|" /etc/sysconfig/915resolution
 | 
        
           |  |  | 150 | 	fi
 | 
        
           |  |  | 151 | 	if [ $Y ]; then
 | 
        
           |  |  | 152 | 	    sed -i "s|^Y=.*|Y=$Y|" /etc/sysconfig/915resolution
 | 
        
           |  |  | 153 | 	fi
 | 
        
           |  |  | 154 |     fi
 | 
        
           | 84 | beyerle@PS | 155 | fi
 | 
        
           |  |  | 156 |   | 
        
           | 1 | beyerle@PS | 157 | ### services on
 | 
        
           |  |  | 158 | if [ -n $SERVICEON ]; then
 | 
        
           |  |  | 159 |     for service in `echo "$SERVICEON" | tr ':' ' '`; do
 | 
        
           |  |  | 160 | 	if [ -f /etc/init.d/$service ]; then
 | 
        
           |  |  | 161 | 	    chkconfig $service on
 | 
        
           |  |  | 162 | 	fi
 | 
        
           |  |  | 163 |     done
 | 
        
           |  |  | 164 | fi
 | 
        
           |  |  | 165 |   | 
        
           |  |  | 166 | ### services off
 | 
        
           |  |  | 167 | if [ -n $SERVICEOFF ]; then
 | 
        
           |  |  | 168 |     for service in `echo "$SERVICEOFF" | tr ':' ' '`; do
 | 
        
           |  |  | 169 | 	if [ -f /etc/init.d/$service ]; then
 | 
        
           |  |  | 170 | 	    chkconfig $service off
 | 
        
           |  |  | 171 | 	fi
 | 
        
           |  |  | 172 |     done
 | 
        
           |  |  | 173 | fi
 | 
        
           |  |  | 174 |   | 
        
           | 84 | beyerle@PS | 175 |   | 
        
           |  |  | 176 | ### -----------------------------------------------------------
 | 
        
           |  |  | 177 | ### Main
 | 
        
           |  |  | 178 | ### -----------------------------------------------------------
 | 
        
           |  |  | 179 |   | 
        
           |  |  | 180 | ### get resolv.conf, if we have the LiveCD mounted over NFS
 | 
        
           |  |  | 181 | if [ $NFSROOT ]; then
 | 
        
           |  |  | 182 |     cp -f /$MOUNTDIR/live/etc/resolv.conf /etc/
 | 
        
           |  |  | 183 | fi
 | 
        
           |  |  | 184 |   | 
        
           |  |  | 185 | ### restore blacklist (modified in runveryfirst)
 | 
        
           |  |  | 186 | if [ $NFSROOT ]; then
 | 
        
           |  |  | 187 |     [ -e /etc/hotplug/blacklist ] && BLACKLIST_FILE=/etc/hotplug/blacklist
 | 
        
           |  |  | 188 |     [ -e /etc/modprobe.d/blacklist ] && BLACKLIST_FILE=/etc/modprobe.d/blacklist
 | 
        
           |  |  | 189 |     mv -f ${BLACKLIST_FILE}.backup ${BLACKLIST_FILE}
 | 
        
           |  |  | 190 | fi
 | 
        
           |  |  | 191 |   | 
        
           |  |  | 192 | ### create AFS mount point
 | 
        
           |  |  | 193 | mkdir -p /afs
 | 
        
           |  |  | 194 |   | 
        
           |  |  | 195 | ### set afs cell, if given by boot parameter
 | 
        
           |  |  | 196 | if [ $CELL ]; then
 | 
        
           |  |  | 197 |     echo $CELL > /usr/vice/etc/ThisCell
 | 
        
           |  |  | 198 | fi
 | 
        
           |  |  | 199 |   | 
        
           | 1 | beyerle@PS | 200 | ### fix perm of /tmp
 | 
        
           |  |  | 201 | chmod 1777 /tmp
 | 
        
           |  |  | 202 |   | 
        
           | 101 | beyerle@PS | 203 | ### link /opt -> /usr/opt ! 
 | 
        
           |  |  | 204 | [ ! -e /opt ] && ln -s /usr/opt /opt
 | 
        
           | 1 | beyerle@PS | 205 |   | 
        
           |  |  | 206 | ### create home
 | 
        
           |  |  | 207 | mkdir -p /home
 | 
        
           |  |  | 208 |   | 
        
           |  |  | 209 | ### create /scratch
 | 
        
           |  |  | 210 | mkdir -p /scratch
 | 
        
           |  |  | 211 | chmod 1777 /scratch
 | 
        
           |  |  | 212 |   | 
        
           |  |  | 213 | ### create /data
 | 
        
           |  |  | 214 | if [ $PSI ]; then
 | 
        
           |  |  | 215 |     mkdir -p /data
 | 
        
           |  |  | 216 |     chmod 1777 /data
 | 
        
           |  |  | 217 | fi
 | 
        
           |  |  | 218 |   | 
        
           |  |  | 219 | ### add PSI master
 | 
        
           |  |  | 220 | if [ $PSI ]; then
 | 
        
           |  |  | 221 |     mkdir -p /mnt/master
 | 
        
           |  |  | 222 |     echo "pxeserv01:/master       /mnt/master             nfs     nfsvers=2,noauto,nolock,ro 0 0" >> /etc/fstab
 | 
        
           |  |  | 223 | fi
 | 
        
           |  |  | 224 |   |