Subversion Repositories livecd

Rev

Rev 105 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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