#!/bin/sh # # Description: Kernel of a generic runlevel script file for use with # Diskless X Stations (v4.0) - script prepares vmware # environment. Start and stop functionality is added within # initial ramdisk # # Author(s): Michael Janczyk , 15-04-2006 # Dirk von Suchodoletz , 31-05-2006 # Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg # # Version: 0.2e WILL DISAPPEAR SOON!!! ################################################################################ ### VERBOSE? ################################################################### # set verbose mode (set -x(v)) #set -xv ### CONFIGURATION ############################################################## # read configuration information . /etc/machine-setup ### VARIABLES SECTION ########################################################## # Declaration of default variables vmdir=/var/lib/vmware #path=/var/X11R6/bin #sessions= #session_name= ### FUNCTIONS SECTION ########################################################## # NOT NEEDED NOW # unionfs used? #pathtest () { # if `touch /usr/X11R6/bin/touch >/dev/null 2>&1`; then # path=/usr/X11R6/bin/ # rm ${path}/touch >/dev/null 2>&1 # else # test -d ${path} || mkdir -p ${path} # fi #} # loop file for exchanging information between linux and vmware mount_loop () { modprobe loop >/dev/null 2>&1 mkdir -p /tmp/loop0 cp ${vmdir}/templ/fd0.img /tmp/${clientip}-fd0.img chmod a+rw /tmp/${clientip}-fd0.img mount -n -t msdos -o loop,umask=000 /tmp/${clientip}-fd0.img \ /tmp/loop0 } # device creation - the module does not trigger udev properly vmnet () { for i in 0 1 2 3 4 5 6 7 8 9; do [ -c /dev/vmnet${i} ] || mknod /dev/vmnet${i} c 119 ${i}; done chmod 0700 /dev/vmnet* } # MOVED TO INITRD # special start script for vmware with predefined image #copyscript () { # # runvmware # cp ${vmdir}/templ/runvmware ${path} # chmod 755 ${path}/runvmware >/dev/null 2>&1 # # # default kdm session. Xdialog with WM and VMware images # cp ${vmdir}/templ/defaultwm ${path}/defaultwm # chmod 755 ${path}/defaultwm >/dev/null 2>&1 #} # MOVED TO INITRD # blabla sessiondinens #desktop_session () { # echo -e "#!/bin/sh\n#\n# file generated by ${0} at ${date}\ # \n# set to black background\nxsetroot -solid \"black\"\ # \nstartvm=\$(echo \$0 | sed -e \"s,.*/,,\")\ # \nxterm -bg black -fg white -geometry 100x30+0-0 +sb \ # -e \"${path}/runvmware -s \${startvm} ${debug}\"\n" \ # > ${path}/desktop-session # chmod 755 ${path}/desktop-session #} # MOVED TO INITRD # copy nach blabla #vmsession2desktop_session () { # sessions=$(ls ${vmdir}/vmsessions/*.desktop 2>/dev/null) # if [ -n "${sessions}" ]; then # for i in ${vmdir}/vmsessions/*.desktop; do # session_name=$(cat ${i} | grep -iw "exec" \ # | awk -F "=" '{print $2}') # ln -s ${path}/desktop-session ${path}/${session_name} # done # fi #} ### START SCRIPT ############################################################### # create vmdir #mkdir -p /var/lib/vmware 2>&1 # mount von zeugs (wohl besser in der InitRD, da sonst Sessions nicht # rechtzeitig fuer gdm/kdm verfuegbar) #mount -t nfs -o ro,nolock,intr,nodev,soft,timeo=2,nosuid ${imgsrv} ${vmdir} # check path #pathtest # device creation - the module does not trigger udev properly vmnet # special start script for vmware with predefined image #copyscript # loop file for exchanging information between linux and vmware guest mount_loop # blabla sessiondinens #desktop_session # copy nach blabla #vmsession2desktop_session