diff options
Diffstat (limited to 'initrd/distro-specs/debian/functions-3.1')
-rw-r--r-- | initrd/distro-specs/debian/functions-3.1 | 268 |
1 files changed, 6 insertions, 262 deletions
diff --git a/initrd/distro-specs/debian/functions-3.1 b/initrd/distro-specs/debian/functions-3.1 index 878df587..3b884631 100644 --- a/initrd/distro-specs/debian/functions-3.1 +++ b/initrd/distro-specs/debian/functions-3.1 @@ -1,268 +1,12 @@ -# Description: configuration script for Debian 3.1 to configure -# linux diskless clients (executed within initial -# ramdisk after genconfig) +# Description: configuration script for Debian Sarge (3.1) to configure +# linux diskless clients (executed within initial ramdisk +# after genconfig) # -# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 18-05-2006 +# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 23-06-2006 # Felix Endres, 30-04-2006 # # Copyright: (c) 2006 - RZ Universitaet Freiburg # -# Version: 0.2.1d +# Version: 0.3.0a -# distro specific stuff to initialize -preinit () { - echo "Creating dhcp user" - echo "dhcp:x:101:" >>/etc/group - echo "dhcp:x:101:101::/nonexistent:/bin/false" >>/etc/passwd -} - -# distro specific function called from servconfig script -config_distro () { -# add the halt link to the 0 and 6 runlevel directories - ln -sf ../init.d/halt /mnt/etc/rc0.d/S90halt - ln -sf ../init.d/reboot /mnt/etc/rc6.d/S90reboot - - # set default runlevel - sed -e "s/.*initdefault/id:${D_INITDEFAULT}:initdefault/" -i /mnt/etc/inittab -} - -# AUS SuSE-9.3 -# udev/hotplug - auto device discovery service -# Result: 1 is bad, 0 is good -udev_hotplug () { - local result=0 - [ -d /etc/hotplug -a -d /etc/hotplug.d ] || error "$df_errhotpl" nonfatal - echo "Enabling hotplug/udev" - #udevstart && result=0 - #udevtrigger && result=0 - udevd --daemon || result=1 - [ ! -e /sbin/udevsend ] && result=1 - echo "/sbin/udevsend/" > /proc/sys/kernel/hotplug - mkdir -p /dev/.udev/db /dev/.udev/queue - trigger_device_events - return $result -} - -# distro specific general function called from servconfig script -config_distro () { -# add the halt link to the 0 and 6 runlevel directories - ln -sf ../halt /mnt/etc/rc0.d/S90halt - ln -sf ../reboot /mnt/etc/rc6.d/S90reboot - - # set default runlevel - sed -e "s/.*initdefault/id:${D_INITDEFAULT}:initdefault/" -i /mnt/etc/inittab -} - - -# linking runlevel scripts -rllinker () { -local script="$1" -local start="$2" -local stop="$3" -# empty runlevel links - decision on running certain services is -# passed via configuration -# "stop" seems not to be used in Debian!? - It is. Felix -for i in rc2.d/K$stop$script rc3.d/K$stop$script \ - rc2.d/S$start$script rc3.d/S$start$script ; do - if ! [ -f /mnt/etc/init.d/$script ]; then - echo "Target `pwd`../$script does not exist. Skipping links" - break - else - ln -sf ../init.d/$script /mnt/etc/$i - echo "Linked $script" - fi -done -} - -# make a runlevel script -d_mkrlscript () { -local switch=$1 -local name=$2 -local info=$3 -} - -# group of functions for the normal runlevels - first parameter is start -# second stop (fixme: is "stop" needed in Debian?? - Yep) -# function for ntp configuration -config_ntp () { -if [ -f /mnt/etc/init.d/ntp ] ; then - echo -e "ntp:x:74:65534:NTP daemon:/var/lib/ntp:/bin/false" \ - >>/mnt/etc/passwd - testmkd /mnt/var/lib/ntp/var/run/ntp &>/dev/null - if [ "x$start_ntp" = "xinitial" ] ; then - echo -e "# entry added by $0: $date" \ - >>/mnt/etc/${D_INITDIR}/boot.ld - echo "ntpdate -s -b $ntp_servers >${LOGFILE} 2>&1 &" \ - >>/mnt/etc/${D_INITDIR}/boot.ld - else - rllinker "ntp" "20" "02" - fi -fi -} - -# function for atd -config_atd () { -if [ "x$start_atd" = "xyes" ]; then - # fixme!! needed? Fix permissions - #testmkd /mnt/var/spool/cron/atjobs - #testmkd /mnt/var/spool/cron/atspool - #chown /mnt/var/spool/cron/atjobs /mnt/var/spool/cron/atspool - rllinker "atd" "89" "01" -fi -} - -# function for configuration of cron services -config_cron () { -if [ "x$start_cron" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/cron ] ; then - rllinker "cron" "89" "01" - testmkd /mnt/var/spool/cron/crontabs - echo -e "# /etc/crontab - file generated by $0:\n\ -#\t$date\nSHELL=/bin/sh\nPATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin\ -\nMAILTO=\n-*/15 * * * *\troot\ttest -x /usr/lib/cron/run-crons && \ -/usr/lib/cron/run-crons >/dev/null 2>&1\n" >/mnt/etc/crontab - else - error "$df_errcron" nonfatal - fi -fi -} - -# syslog service -config_syslog () { -if [ "x$start_syslog" = "xyes" ] ; then - : -fi -} - -# secure shell service -config_sshd () { -if [ "x$start_sshd" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/ssh ] ; then - rllinker "sshd" "20" "02" - fi -fi -} - -# snmp agent for remote monitoring -config_snmp () { -if [ "x$start_snmp" = "xyes" ] ; then - if [ -f /mnt/etc/init.d/snmpd ] ; then - rllinker "snmpd" "30" "03" - testmkd /mnt/var/lib/net-snmp >/dev/null 2>&1 - fi - # fixme!! - # write service monitor depending on services started - fi -} - -# x11 stuff -descsession () { -if [ "x$desktop_session" != "x" ] ; then - windowmanagers="$desktop_session" - # write script for desktop-session chooser - if [ "x$vmware" != "xno" ] ; then - debug="" - [ ${DEBUGLEVEL} -gt 0 ] && debug="--debug 1" - echo -e "#!/bin/sh\n#\n# file generated by\n#\t$0:\n#\t$date\n -OSTYPE=\`echo \$0 | sed -e \"s,-, ,\" -e \"s,.*/,,\" | awk '{print \$1}'\` -SPECTYPE=\`echo \$0 | sed -e \"s,-, ,\" -e \"s,.*/,,\" | awk '{print \$2}'\`\n -OPTS=\"-o \$OSTYPE \${SPECTYPE:+\"-s \$SPECTYPE\"}\"\n -xterm -bg black -fg white -geometry 170x30+0-0 +sb \ --e \"runvmware \$OPTS $debug\"\n" > /mnt/var/X11R6/bin/desktop-session - chmod a+x /mnt/var/X11R6/bin/desktop-session - addpath="true"; - fi -else - windowmanagers="kde,gnome,icewm,failsafe" -fi -# check if /usr/X11R6/bin is writeable, else use /var/X11R6/bin -if [ -w /mnt/usr/X11R6/bin/WM-Session ] ; then - sesspath="/usr/X11R6/bin" -else - sesspath="/var/X11R6/bin" - addpath="true" -fi - -# create links to desktop-session chooser -[ -f /mnt/usr/bin/X11/wmlist ] && wmlist=`cat /mnt/usr/bin/X11/wmlist` - -for i in `echo $windowmanagers|sed -e "s/,/ /g"` ; do - # beware!! quickhack for VMware sessions - strinstr "$i" "$wmlist" || \ - test -x /mnt/usr/X11R6/bin/$i || \ - echo -e "[Desktop Entry]\nX-SuSE-translate=true\nEncoding=UTF-8\n\ -Type=XSession\nExec=$i\nTryExec=$sesspath/$i\n\ -Name=$i\n" > /mnt/etc/X11/sessions/$i.desktop - # does not work correctly (add /var/X11R6/bin to path!!) - test -x /mnt/usr/X11R6/bin/$i || \ - ln -fs /var/X11R6/bin/desktop-session /mnt/$sesspath/$i -done - -# add special path /var/X11R6/bin to the PATH variable -# fixme!! add path directly to /etc/profile!? -#[ "x$addpath" != "x" ] && \ -# echo -e "# added path component by $0: $date\n\ -#PATH=\"\$PATH:/var/X11R6/bin\"" >>/mnt/etc/profile -} - - -# consolefont and language -consolefont () { -echo -e "setfont ${CONSOLE_FONT} >${LOGFILE} 2>&1" \ - >>/mnt/etc/${D_INITDIR}/boot.ld -# fixme!! check for proper operation -sed -e "s,LANGUAGE=.*,LANGUAGE=\"${LANG}\" # set within initramfs," \ - -e "s,LANG=.*,LANG=\"${LANG}\" # set within initramfs," \ - -i /mnt/etc/environment -} - -# configure gdm as display manager -config_gdm () { - ln -sf ../${D_INITDIR}/gdm /mnt/etc/rc3.d/K20gdm - echo -e "\t/etc/${D_INITDIR}/gdm start >${LOGFILE} 2>&1\n\ - \t( sleep 120; ln -sf /etc/${D_INITDIR}/gdm /etc/rc3.d/S01gdm \ - >${LOGFILE} 2>&1) &\n" >>/mnt/etc/${D_INITDIR}/boot.ld - # check for gdm user in passwd and group files - # fixme!! -# echo "gdm:x:113:">>/mnt/etc/group -# echo "gdm:x:106:113:Gnome Display Manager:/var/lib/gdm:/bin/false" \ - >>/mnt/etc/passwd -} - -# configure kdm as display manager -config_kdm () { - ln -sf ../${D_INITDIR}/kdm /mnt/etc/rc3.d/K20kdm - ln -sf ../${D_INITDIR}/kdm /mnt/etc/rc3.d/S20kdm -} - -# configure hal, dbus, resmgr and services like that -config_dreshal () { -if [ "x$start_dreshal" = "xyes" ]; then - : -fi -} - - -# fixme!! taken from SuSE10.0 untested here ... -# prepare virtual machine environment (vmware, vmplayer) -config_vmware () { -rllinker "vmware-prep" "22" "02" -rllinker "vmware" "24" "02" -# during vmware sessions linux should not handle usb events/devices -testmkd /mnt/var/X11R6/bin -echo '#!/bin/sh'>> /mnt/etc/udev/rules.d/01-udev-vm.rules -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, <dirk@goe.net>\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, <dirk@goe.net>\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 -} +# nothing changed yet from default |