1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
# Copyright (c) 2003 - 2006 - RZ Uni Freiburg
# Copyright (c) 2006, 2007 - OpenSLX GmbH
#
# This program/file is free software distributed under the GPL version 2.
# See http://openslx.org/COPYING
#
# If you have any feedback please consult http://openslx.org/feedback and
# send your feedback to feedback@openslx.org
#
# General information about OpenSLX can be found under http://openslx.org
#
# Configuration functions for SuSE 10.1 which differ from functions defined
# in general SuSE base definitions ... General changes should be done there,
# version specific changes for the 10.1 go here.
# afs client
# configure afs client
config_afs () {
if [ "x$start_afs" = "xyes" ] ; then
if [ -f /mnt/etc/init.d/openafs-client ] ; then
test -d /mnt/afs || error "${df_errafsd}"
testmkd /mnt/var/cache/openafs
rllinker "openafs-client" 15 6
# echo -e "# /etc/sysconfig/afs-client - file generated by \
#$0:\n#\t$date\n" >/etc/sysconfig/afs-client.new;
# sed -e "s,THIS_CELL_SERVER.*,THIS_CELL_SERVER=\"$cell_serv\"," \
# -e "s,PREFERREDSERVERS.*,PREFERREDSERVERS=\"$cell_serv\"," \
# -e "s,THIS_CELL.*,THIS_CELL=\"$this_cell\"," \
# -e "s,MEMCACHE.*,MEMCACHE=\"yes\"," \
# /etc/sysconfig/afs-client >> \
# /etc/sysconfig/afs-client.new
# mv /etc/sysconfig/afs-client.new /etc/sysconfig/afs-client
else
error "${df_errafsn}" nonfatal
fi
fi
}
# prepare virtual machine environment (vmware, vmplayer)
config_vmware () {
# during vmware sessions linux should not handle usb events/devices
# vmplayer and recent versions of vmware do not need this hack
if [ ! -x /mnt/usr/bin/vmplayer ] ; then
echo '#!/bin/sh'> /mnt/var/X11R6/bin/vm-udev
echo -e "# Script for blocking linux from handling usb \
devices\n# during vmware sessions. If you like to remove certain modules \
add them\n# to the list below - Dirk von Suchodoletz, <dvs@OpenSLX.com>\n\
STATE=1\nps aux|grep -i vmware|grep -v \"grep\" &>/dev/null && { STATE=0; \
/sbin/rmmod usb-storage &>/tmp/null; }\n\
[ x\$ACTION = xremove ] && { [ \$STATE = 0 ] && /sbin/rmmod usb-storage \
&>/dev/null; }\nexit \$STATE" >> /mnt/var/X11R6/bin/vm-udev
chmod u+x /mnt/var/X11R6/bin/vm-udev
echo -e "# special entry to block linux from reacting to usb events during \
running\n# vmware sessions, generated by $0 during initramfs\n# Dirk von \
Suchodoletz, <dvs@OpenSLX.com>\nSUBSYSTEM==\"usb\", ACTION==\"add\", \
PROGRAM=\"/var/X11R6/bin/vm-udev\", OPTIONS=\"ignore_device\"\n\
SUBSYSTEM==\"usb\", ACTION==\"remove\", PROGRAM=\"/var/X11R6/bin/vm-udev\"" \
>> /mnt/etc/udev/rules.d/01-udev-vm.rules
fi
}
# set up keytable (function run in hwautocfg)
# kbd runlevel link is in the list of initial runlevel scripts (see
# config-10.1 file)
keytable () {
# remove unneeded components from the startscript
sed -e "/wanted keytable/,/^fi$/d;/load usb drivers/,/^esac$/d" \
-i /mnt/etc/${D_INITDIR}/kbd
sed -e "s,KEYTABLE=.*,KEYTABLE=\"${KEYTABLE}\"," \
-i /mnt/etc/${D_SYSCONFDIR}/keyboard
}
# consolefont and language (function run in hwautocfg)
consolefont () {
sed -e "s,RC_LANG=.*,RC_LANG=\"${LANG}\" # added in initrd," \
-i /mnt/etc/${D_SYSCONFDIR}/language
}
# check the glx and tvout stuff and configure it
checkgraphix () {
# test if unionfs
case "${XMODULE}" in
radeon)
# IGP is not supported with fglrx driver (at least not in some versions)
# comment if it works properly ...
strinfile " IGP" /tmp/hwsetup.info && exit
# check ${XDESC}/ hwsetup.info device string in Cards file and then
# for needed components
# not all radeon cards are properly supported by fglrx, so the decision on
# module might be done via hwsetup!?
test -e /mnt/lib/modules/${KERNEL}/kernel/drivers/char/drm/fglrx.ko \
&& test -e /mnt/usr/X11R6/lib/modules/drivers/fglrx_drv.* && {
XMODULE=fglrx
# it only works for UnionFS enabled systems
ln -sf /usr/X11R6/lib/libGL.so.1.2 \
/mnt/usr/X11R6/lib/libGL.so.1 2>/dev/null
}
# check whether to enable tvout. option could be set in machine-setup
if [ -n "$tvout" ] && [ "$tvout" != "no" -a "$tvout" != "NO" ] ; then
[ "$tvout" = "yes" ] && tvout="PAL-B"
TVOUT='\tOption\t\t"TVFormat" "'$tvout
TVOUT=$TVOUT'"\n\tOption\t\t"DesktopSetup" "horizontal"'
fi
;;
nv)
# check for needed components (kernel and libraries)
test -e /mnt/lib/modules/${KERNEL}/kernel/drivers/char/drm/nvidia.ko \
&& test -e /mnt/usr/X11R6/lib/modules/drivers/nvidia_drv.* && {
gllib=$(ls /mnt/usr/X11R6/lib/libGL.so.1.0.* 2>/dev/null|sed -n "1p")
if [ -n "$gllib" ] ; then
ln -sf ${gllib#/mnt} /mnt/usr/X11R6/lib/libGL.so.1 2>/dev/null
# same for GLcore lib
gllib=$(ls /mnt/usr/X11R6/lib/libGLcore.so.1.0.* 2>/dev/null|\
sed -n "1p")
ln -sf ${gllib#/mnt} /mnt/usr/X11R6/lib/libGLcore.so.1 2>/dev/null \
|| fail=1
# load server modules (trick put the path before the official one)
testmkd /mnt/etc/X11/modules
ln -sf /usr/X11R6/lib/modules/updates/extensions/libglx.so \
/mnt/etc/X11/modules/libglx.so || fail=1
ln -sf /usr/X11R6/lib/modules/updates/drivers/nvidia_drv.so \
/mnt/etc/X11/modules/nvidia_drv.so || fail=1
[ -z $fail ] && XMODULE=nvidia
# ensure proper permissions for nvidia devices - does not work for some reason
#echo -e "# nvidia stuff added by $0 in InitRamFS\nKERNEL==\"nvidia*|nvidiactl*\",\
#GROUP=\"video\",MODE=\"0666\"" > /mnt/etc/udev/rules.d/10-nvidia-devperms.rules
fi
}
;;
esac
}
# secure shell service
config_sshd () {
if [ "x$start_sshd" = "xyes" ] ; then
if [ -f /mnt/etc/${D_INITDIR}/sshd ] ; then
testmkd /mnt/var/lib/sshd
testmkd /mnt/var/lib/empty
if ! strinfile "sshd:" /mnt/etc/passwd ; then
echo -e "sshd:x:71:65::/var/run/sshd:/bin/false" \
>>/mnt/etc/passwd
echo -e "sshd:!:13099:0:99999:7:::" >>/mnt/etc/shadow
fi
rllinker "sshd" 25 10
else
error "$df_errsshd" nonfatal
fi
fi
}
# Xorg variable settings. Lots of stuff changes for newer Xorg servers
displayvars () {
synapticsdrv="/usr/X11R6/lib/modules/input/synaptics_drv.o"
}
|